私はこれを行う方法をWordPressで見つけました:
「news-sub」というサブカテゴリの下に何かを投稿するとします。このサブカテゴリの親カテゴリは「news」です。間違いなく、ワードプレスの投稿は、ニュースサブのカテゴリで投稿するように選択した場合でも、ニュースとニュースサブの両方で投稿されます。サブカテゴリのみに投稿するように選択した場合にのみ、サブカテゴリに投稿を投稿する方法を見つけました。これがfunctions.phpに挿入するコードです:
add_action( 'pre_get_posts', 'my_post_queries' );
function my_post_queries( $query ) {
// not an admin page and is the main query
if (!is_admin() && $query->is_main_query()){
if(is_category()){
add_action('posts_where', 'current_category_only');
}
}
}
function current_category_only($where) {
$current_cat = get_query_var('cat');
if($current_cat){
global $wpdb;
return " AND ( $wpdb->term_relationships.term_taxonomy_id IN ($current_cat) )
AND $wpdb->posts.post_type = 'post' AND ($wpdb->posts.post_status = 'publish'
OR $wpdb->posts.post_status = 'private')";
}
return $where;
}
このコードは素晴らしい働きをします。ただし、プラグインでは機能しません。たとえば...選択したカテゴリのサムネイルとタイトルを投稿するプラグインがあります。「news」カテゴリのみを表示するように選択したとします。「news-sub」カテゴリのすぐ下に何かを投稿した場合、前述の機能コードに関係なく、プラグインを介して表示されます。関数コードをコピーしてプラグインに貼り付けてみましたが、うまくいきませんでした。:(
では、この関数をカテゴリを表示するプラグインでどのように機能させるのでしょうか?変更してfunctions.phpファイルに残しますか、変更してプラグインファイルにコピーして貼り付けますか、それともどのように変更しますか?どんな助けでも大歓迎です!:)