从子类别中排除所有帖子

时间:2012-09-10 作者:Mwild

需要wordpress任务的帮助

我想从子类别的所有职位被排除在外。

示例:

如果我用香蕉发帖子,我不希望它出现在派或蛋糕上。我只想用香蕉发布的帖子用香蕉显示,而不是用顶级类别。

我该怎么做?

我找到了一个代码,可以将其放入函数中。php,但它对第一个类别起到了作用,但对第二个类别却没有。

function fb_filter_child_cats($query) {
$cat = get_term_by(\'name\', $query->query_vars[\'category_name\'], \'category\');
$child_cats = (array) get_term_children( &$cat->term_id, \'category\' );
// also possible
// $child_cats = (array) get_term_children( get_cat_id($query->query_vars[\'category_name\']), \'category\' );
if ( !$query->is_admin )
$query->set( \'category__not_in\', array_merge($child_cats) );
return $query;
}
add_filter( \'pre_get_posts\', \'fb_filter_child_cats\' );

4 个回复
SO网友:gmazzap

不要更改模板,请更改not 使用query_posts.

将此添加到function.php:

add_action(\'pre_get_posts\', \'filter_out_children\');

function filter_out_children( $query ) {
  if ( is_main_query() && is_category() && ! is_admin() ) {
     $qo = $query->get_queried_object();
     $tax_query = array(
       \'taxonomy\' => \'category\',
       \'field\' => \'id\',
       \'terms\' => $qo->term_id,
       \'include_children\' => false
     );
     $query->set( \'tax_query\', array($tax_query) );
  }
}

SO网友:Rohit Pande

最简单的方法是使用类别模板。

http://codex.wordpress.org/Category_Templates

基本上你想要一个类别。php页面,然后更改

<?php while ( have_posts() ) : the_post(); ?>
到这个

<?php while (have_posts()) : the_post(); if (in_category($cat)) { ?>
以及

<?php endwhile; ?>

<?php } endwhile; ?>

SO网友:Dido Kotsev

我现在无法测试它,但您可以尝试使用以下代码:

$current_cat = intval( get_query_var(\'cat\') );
$paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;
$args=array(
   \'category__and\' => array($current_cat),
   \'paged\' => $paged,
   \'caller_get_posts\'=> 1
);
query_posts($args);

?>

<?php if (have_posts()) : ?>

   Your content - here!

wp_reset_query();
您需要编辑要在其中显示帖子和放置此代码的模板文件。

SO网友:Asif Raza

你可以试试这个,它对我有用

<?php 

// Subcategories IDs as an array

// In this example, the parent category ID is 3
$subcategories = get_categories(\'child_of=3\');

$subcat_array = array();
foreach ($subcategories as $subcat) {
    $subcat_array[] = \'-\' . $subcat->cat_ID;
}

// we also include parent category ID in the list
$subcat_array[] = \'-3\';

// and then call query_posts
query_posts(array(\'category__not_in\' => $subcat_array));
?>

复制自

http://www.maratz.com/blog/archives/2009/07/13/exclude-articles-from-a-category-tree-on-your-wordpress-homepage/

结束

相关推荐

List author's posts with SQL

我想用下面的代码显示作者的帖子,但不显示作者的姓名。怎么了?<? // query test $qry = $wpdb->get_results( $wpdb->prepare(\" SELECT * FROM $wpdb->posts WHERE post_type =\'post\' AND post_status=\'publish\' order by \'ID\' DESC LIMIT 5 \"));