web-dev-qa-db-ja.com

get_query_var()とパーマリンク

私はこのようなパーマリンク構造を持っています、

%category%/%postname%

Category.phpテンプレートをコーディングし、特定のカテゴリの投稿を取得しようとしているので、たとえば、私のURLは次のようになります。

/ category/category1

次のコードを使用するとnullが返されるので、category1にあるすべての投稿を返すようにします。

get_query_var('cat')

このコードはこのようなURLを探していると思います、

?cat = category1

それではどのように私はそれをパーマリンクで動作させるのですか?

1
sico87

WordPressはルールを目に見えない形で内部的にきれいではないフォーマットに変換し、適切な変数を設定して要求されたページをロードします。

catクエリvarは、名前ではなく、要求されたカテゴリのIDに設定されます。

それは言った、これ:

$my_category = get_query_var('cat');
echo $my_category;

はカテゴリページに選択されたカテゴリIDを印刷します。そうでなければ、私たちはあなたをさらに助けるためにあなたのコードを見なければならないでしょう。

また、$wp_queryグローバルを見て、特定のページに設定されているすべてのクエリ変数を確認してください。

global $wp_query
print_r($wp_query);
5
Milo

これは私が私の答えを得るのを助けました、私が見つけた問題はからのオブジェクトが

global $wp_query

パーマリンクがオンになっている場合、カテゴリIDは含まれませんでした。ただし、カテゴリ名が含まれていたため、カテゴリIDを取得するために次のコードを使用しました。

$category = get_query_var('category_name');
$categoryid = array(get_cat_ID( $category ));

これはpre_get_postsで特に役に立ちます

0
nidal