簡體   English   中英

正確獲取頁面名稱(使用 Barba.JS 和 Wordpress 的 data-barba-namespace)

[英]Get page name correctly (data-barba-namespace with Barba.JS and Wordpress)

現在,我正在使用 Sage 9 創建一個主題。 我已經安裝了 Barba,它工作正常,除了一件事。 我正在嘗試在我的 data-barba-namespace 中正確獲取頁面名稱。 現在,我正在使用以下內容:

data-barba-namespace="{{ get_post_field('post_name', $post_id) }}"

但是對於一個名為“Work”的頁面(顯示來自我使用 CPT UI 創建的自定義帖子類型的作品),我創建了一個模板(template-work.blade.php),並且在其中我有不同的查詢在不同的類別中工作。 我的主要問題是我之前在此頁面上的代碼在我的 data-barba-namespace 中返回了一個工作/項目的名稱,而不是頁面的名稱......我不知道為什么

所以我嘗試使用以下代碼:

<?php
      $pagename = get_query_var('pagename');
      if ( !$pagename && $id > 0 ) {
      $post = $wp_query->get_queried_object();
      $pagename = $post->post_name;
      }
?> 

所以

data-barba-namespace="{{ $pagename }}"

但問題是因為我使用的是 static 首頁(創建了一個 front-page.blade.php 文件),因此主頁的 data-barba-namespace 是空的,即使它適用於其他頁面。 並且此解決方案無法像 get_post_field('post_name', $post_id) 那樣正確獲取工作頁面名稱。

我的最后一個問題是我創建的自定義帖子類型工作。 當使用我的第一個解決方案時,我的工作頁面中提到了一個問題(在 data-barba-namespace 中放置作品的名稱而不是“work”)和另一個顯而易見的問題:在 data-barba-namespace 中,我有項目的名稱。 除了我必須為所有項目創建一個 barba 過渡之外,這應該很棒。即使對像我這樣的初學者來說也很糟糕。 我寧願在我的 data-barba-namespace 中有一個“工作頁面”或類似的東西來為我的所有工作頁面創建一個過渡,但我不知道如何做到這一點。 我什么都找不到。。

任何幫助將不勝感激!

編輯:編輯:使用第二種解決方案,我發現我可以添加一個條件語句來檢查它是否是主頁。 由於某些原因,它第一次沒有用..這是我正在使用的:

@php
      if( is_home() || is_front_page() ){
        $pagename = "home";
      } else {
        $pagename = get_query_var('pagename');
        if ( !$pagename && $id > 0 ) {
          // If a static page is set as the front page, $pagename will not be set. Retrieve it from the queried object
          $post = $wp_query->get_queried_object();

          $pagename = $post->post_name;
        }
      }
@endphp

但是我仍然很難找到工作頁面的解決方案,所以給他們一個唯一的命名空間名稱

問題已解決:我使用了以下內容:

@php
    function is_post_type($type){
      global $wp_query;
      if($type == get_post_type($wp_query->post->ID))
          return true;
      return false;
    }

      if( is_home() || is_front_page() ){
        $pagename = "home";
      } elseif (is_single() && is_post_type('work')){
        $pagename = "work-item";
      } else {
        $pagename = get_query_var('pagename');
        if ( !$pagename && $id > 0 ) {
          // If a static page is set as the front page, $pagename will not be set. Retrieve it from the queried object
          $post = $wp_query->get_queried_object();

          $pagename = $post->post_name;
        }
      }
@endphp

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM