2017-02-13 6 views
0

このコードは、functions.phpにあります。WordPressでこのコードを使用している投稿のカテゴリが1つしか表示されないのはなぜですか?

カテゴリ50の投稿をフロントページから除外できますが、全く同じコードとは異なるページに表示されません。

は私が設定しようとしています変数が設定されますん

/カテゴリ/スラグ/から見ることができ、カテゴリ内の記事があります。私はprint_rとチェックした。それでも、ページには投稿が表示されません。

私はそれを取得しません。

function exclude_category($query) { 
    if ($query->is_home() && $query->is_main_query()) { 
    $query->set('cat', '-50'); // This part works 
    } else if ($query->is_page($pagename = 'santa-vs-krampus') && $query->is_main_query()) { 
    $query->set('category__in', '50'); // we get this far, it sets the variable, but doesn't show the posts. 
    /* print "<!-- Well, we got this far."; 
     print_r ($query); 
    print "-->"; */ 
    } 
} 
add_action('pre_get_posts', 'exclude_category'); 

答えて

0

このページのメインクエリで条件を設定しているため、ページ自体が表示されるためです。これらの3つの条件が満たされる必要があるでしょう:

  • $query->is_main_query()
  • $query->is_page('santa-vs-krampus')
  • ポストは、上記の少なくとも一つ、あなたがにしているどのページに応じてterm_ID == 50

とカテゴリにあり真実ではない。
var_dump()を確認してください。

関連する問題