Set a category for a page

时间:2011-09-29 作者:Nick

我当前的主题有一个公文包部分,您可以根据项目所属的类别对其进行排列。我的问题是,我有几个页面,我想在公文包部分,但不能将它们添加到那里,因为你不能将类别分配给单独的页面。围绕这个问题有什么方法或插件吗?

这是一些我认为在我的投资组合中被称为类别的代码。php:

<?php  if(is_category() && in_category($current_id) || post_is_in_descendant_category($current_id)){?>
        <h1><?php single_cat_title(); ?></h1>
        <ul class="portfolioCategs">
            <li><a href="<?php echo get_category_link(get_option(\'boldy_portfolio\'))?>">All projects</a></li>
            <?php   
                    $categories = get_categories(\'hide_empty=1&child_of=\'.$categs);
                    foreach ($categories as $cat) {
                    echo (\'<li><a href="\');
                    echo (get_category_link($cat->cat_ID).\'">\'.$cat->cat_name.\'</a></li>\');
                    }
                ?>
        </ul>
    <?php } ?>
    <div style="clear:both"></div>
        <div class="gallery">
            <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
                    <div class="portfolioItem">
                        <h2><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h2>
                        <a href="<?php echo get_thumb_urlfull($post) ?>" rel="prettyPhoto" title="<?php the_title();?>"><?php the_post_thumbnail(); ?></a>
                        <p><?php the_excerpt() ?></p>
                    </div>
            <?php endwhile; ?>
谢谢你,尼克。

1 个回复
最合适的回答,由SO网友:Chip Bennett 整理而成

类别是一种适用于帖子的分类法。页面不是帖子。页面是页面。

如果您需要内容来使用类别分类法,您有几个选项:

对该内容使用帖子,而不是页面functions.php (或在插件中):

这将为静态页面启用类别。

Grr。。。代码不想显示:

<?php 
register_taxonomy_for_object_type( \'category\', \'page\' ); 
?>
编辑2修改主循环查询的正确方法是通过pre_get_posts, e、 g.如是:

function wpse29834_filter_pre_get_posts( $query ) {
    if ( is_category() && $query->is_main_query() ) {
        $query->set( \'post_type\', array( \'post\', \'page\' ) );
    }
}
add_action( \'pre_get_posts\', \'wpse29834_filter_pre_get_posts\' );
使用pre_get_posts 优于使用query_posts(), 虽然最初的解决方案在这种情况下有效。

(原始解决方案)

要使分类页面显示在类别存档索引的循环中,需要在中修改循环查询category.php, 您可以使用query_posts() 作用e、 g.:

<?php
// Declare the global
global $wp_query;
// Define our custom args
// We\'re telling the query to use
// both Posts and Pages
$custom_args = array( \'post_type\' => array( \'post\', \'page\' ) );
// Merge the default query with our custom query
$query_args = array_merge( $wp_query->query, $custom_args );
// Finally, query posts based on our custom args
query_posts( $query_args );
?>
将此代码放在输出循环之前。

结束

相关推荐

U-plugins文件夹中的插件未加载

我正在尝试通过将插件放入mu-plugins 文件夹但是如果插件放在文件夹中,它就不会被加载。我尝试了一些流行的插件,如W3 Total Cache、Yoast的WordPress SEO,但都没有加载。WordPress是否只加载中只有单个文件的插件mu-plugins?