私はこのようなパーマリンク構造を持っています、
%category%/%postname%
Category.phpテンプレートをコーディングし、特定のカテゴリの投稿を取得しようとしているので、たとえば、私のURLは次のようになります。
/ category/category1
次のコードを使用するとnullが返されるので、category1にあるすべての投稿を返すようにします。
get_query_var('cat')
このコードはこのようなURLを探していると思います、
?cat = category1
それではどのように私はそれをパーマリンクで動作させるのですか?
WordPressはルールを目に見えない形で内部的にきれいではないフォーマットに変換し、適切な変数を設定して要求されたページをロードします。
cat
クエリvarは、名前ではなく、要求されたカテゴリのIDに設定されます。
それは言った、これ:
$my_category = get_query_var('cat');
echo $my_category;
はカテゴリページに選択されたカテゴリIDを印刷します。そうでなければ、私たちはあなたをさらに助けるためにあなたのコードを見なければならないでしょう。
また、$wp_query
グローバルを見て、特定のページに設定されているすべてのクエリ変数を確認してください。
global $wp_query
print_r($wp_query);
これは私が私の答えを得るのを助けました、私が見つけた問題はからのオブジェクトが
global $wp_query
パーマリンクがオンになっている場合、カテゴリIDは含まれませんでした。ただし、カテゴリ名が含まれていたため、カテゴリIDを取得するために次のコードを使用しました。
$category = get_query_var('category_name');
$categoryid = array(get_cat_ID( $category ));
これはpre_get_posts
で特に役に立ちます