2017-04-21 1 views
1

カテゴリが「magazine」で、このカテゴリの記事をいくつか作成します。これは私の記事のリンクですhttp://www.example.com/magazine/article-one/私がこのカテゴリーにいるかどうかをfunction.phpにチェックしたいのですが、そのために私はif(is_category('magazine')){die('I am in magazine category');}を使用しますが、私は何も持っていません。私はis_singleis_pageを使ってみましたが、このすべての機能は動作しません。is_category、is_single、is_pageがfunction.phpで機能していません

+0

functions.phpで使用しているコードを表示できますか?それを関数に入れましたか?フックに取り付けますか? – RST

+0

なので、「何も得られていません」とはどういうことでしょうか?白いページが見えます(パーサーエラーかもしれません)?結果はいつものように(間違ったテーマがアクティブかもしれません)?他に何か?これは何らかの答えを提供するために必要です。 – Boldewyn

答えて

1

はいこれらの機能は、次のようにそれらを使用する必要があり、そのために、のfunctions.phpに直接

add_filter('pre_get_posts', 'limit_archive_posts' ,5); 
function limit_archive_posts($query){ 
    if ($query->is_category) { 
     $query->set('posts_per_page', 3); 
    } 
    if($query->is_single == 1){ 
     $query->set('posts_per_page', 1); 
    } 
    return $query; 
} 

を仕事やwp_enqueue_scripts、wp_head、wp_footerフィルタでそれらを使用することはありません。

+0

あなたが試したコードをどのように追加して進んだのか教えてください – 1616

+0

こんにちは、上記のコードを使いましたが、 'if($ query-> is_category)の代わりに' 'if( 'magazine' == $ query- > query_vars ['category_name']) 'それは今働いた。 –

+0

うまくいきました:D –

0

はあなたがfunction.phpで、これらの機能は、そうでない場合、彼らは何の平均を持っていないだろうことはできませんコード

$category_object=get_queried_object(); 
$category_term_id = $category_object->term_id; 
if($category_term_id == "your magazine term_id")  
{ 
    echo 'I am in magazine category'; 
} 
+0

こんにちは、あなたの再生のためにあなたに感謝します。しかし、 'category_object'は私のために空を返します! –

+0

あなたのURLを共有してください。 –

+0

私のURLは次のようになります:http:// demo.muretprestige.com/magazine/magazine-mur-prestige-n1/' –

1

の下にこれを試してみてください。 is_categoryチェックカテゴリ。タクソノミのページのクエリでカテゴリを取得します。

add_filter('pre_get_posts', 'limit_archive_posts' ,5); 
function limit_archive_posts($query){ 
    if ('magazine' === $query->is_category) { 

    } 
    if(1 === $query->is_single){ 

    } 
    return $query; 
} 

あなたがあなたの関数のロジックがテーマfunctions.php に入れることができますし、条件に基づいて、適切なロジックをレンダリングするためにtaxonomy.phpまたはarchive.php に、この条件を使用することができ、あなたの仕事をするために、このアクションを使用しますか、

if(is_category('magazine')){ 
    call_my_category_work_function(); 
} 
+0

こんにちは、なぜこのコードを実行する必要があるのか​​わかりません。if(is_category( 'magazine')){ call_my_category_work_function();} 'taxonomy.php?フィルタ 'pre_get_posts'が働いていると思います。 –

+0

誰かが初心者で、 'actions'と' filters'をよく理解していなければ、 これはこの方法で行うことができます。 functions.phpにログイン部分を追加する方がずっと簡単ですし、テンプレートにテンプレート固有の作業を追加する方がずっと簡単です。 –

関連する問題