現在のページの分類用語を取得し、テンプレートにクエリを入力する方法


16

現在のページの特定の分類用語を取得して、同じ用語を共有する他の投稿タイプのクエリをページに入力できるようにする方法を見つけようとして、私はつまずいてきました。

基本的に:

  • ページ1には分類用語があります-教育政策
  • page.phpには4つの部分があります。
    1. ページを出力するが、その後3つのクエリを実行する標準ループ
    2. 分類用語を持つイベントのループ-教育政策
    3. 分類用語を含むレポートのループ-教育ポリシー
    4. 分類用語を持っている人のためのループ-教育政策

用語を追加のループにハードコーディングできるページ固有のテンプレートを作成しましたが、動的に実行する方法を理解する必要があります(当初は4ページまたは5ページであったはずだったものが、現在40または50になっています)。

同様の質問をいくつか見つけましたが、実際に実装する方法を見つけることができるものはありませんでした。

現在のページの分類法取得します。これは、実際に尋ねられていることに関して少しわかりにくいものでした。

カスタムsingle-post-type.phpテンプレートページでカスタム分類に属する用語IDを取得します

これが理にかなっていて、多くの感謝をすることを願っています。

回答:


25

「ページ」オブジェクトタイプの分類法を正しく登録し、その分類法の用語をページに割り当てた場合は、次の方法で分類法と用語スラッグにアクセスできると思います。

get_query_var( 'taxonomy' )
get_query_var( 'term' )

あなたならばprint_r($wp_query)、あなたが表示されます現在のページを生成するときに存在し、すべてのパラメータが表示されます。上記のコードでは、これらのパラメーターにからアクセスしています$wp_query

次に、完全な情報で用語オブジェクトを取得するには、次のようにget_term_by関数を使用できます

$term = get_term_by( 'slug', get_query_var('term'), get_query_var('taxonomy') );
echo $term->name;

これにより、用語の「素敵な」名前が出力されます。

あなたが使用するget_query_var('term')か、$term->slug(オブジェクトを取得した後)他のすべてのクエリでそのスラッグを使用できると信じています。

お役に立てば幸いです。ページに分類法を使用したことはありません。どうやって乗るのか教えてください。


2

コードの下に貼り付けてコピーするだけです

これにより、現在のページの分類名と説明が印刷されます(オプション)

<?php 
   $tax = $wp_query->get_queried_object();
   echo ''. $tax->name . '';
   echo "<br>";
   echo ''. $tax->description .''; 
?>

-2

ページネーションを有効にするために検索を有効にする必要があるかもしれません

カスタム分類を宣言している間、検索除外を無効にする必要があります。

exclude_from_search => false

これで問題が解決しました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.