Query custom post types

时间:2011-09-14 作者:remi90

我在主页上创建的自定义帖子类型(事件)中遇到了一些问题。我正在尝试允许这个特定的帖子类型显示在查找类别8(特色)的查询下。

我已经成功地启用了向我的自定义帖子类型添加类别的功能,但由于某些原因,我的自定义帖子类型中的帖子实际上没有一篇显示在提要中,只有我的标准帖子。

我目前的帖子类型为POSTS,但我尝试将其更改为PAGES,但没有成功。

我觉得这可能是循环的问题,而不是函数中的代码的问题。php,因为我实际上在同一个主页上有另一个循环,它似乎在为我的事件自定义帖子类型提供信息。

下面是我正在使用的循环,但它不起作用:

<?php
                    $featuredPosts = new WP_Query();
                    $featuredPosts->query(\'showposts=5&cat=8\');
                    for($i=1; $i<=$featuredPosts; $i++) { // second for() loop for post slides
                        while ($featuredPosts->have_posts()) : $featuredPosts->the_post(); // loop for posts
                    ?>
                    <li id="slide-<?php echo $i++; ?>" class="clearfix">

                        <div class="thumb clearfix">
                            <?php if (has_post_thumbnail( $post->ID )): ?>
                                <?php $image = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), \'full\' ); ?>
                                <a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>"><img src="<?php bloginfo(\'template_directory\'); ?>/thumbs.php?src=<?php echo $image[0]; ?>&w=150&h=150&zc=1" alt="<?php the_title(); ?>" /></a>
                            <?php endif; ?> 
                        </div>
                        <div id="featuredPanelText">
                            <div class="postsnip">
                                <h2><a href="<?php the_permalink(); ?>"><?php echo substr($post->post_title,0,30); // short title ?>...</a></h2>
                                <?php the_excerpt(); ?> 
                            </div>
                        </div>
                    </li>

                    <?php endwhile;
                    } // end for() loop number 2
                ?>
下面是我在函数中找到并使用的PHP代码段。php:

    add_filter( \'pre_get_posts\', \'my_get_posts\' );

function my_get_posts( $query ) {

    if ( ( is_home() || is_tag() ) && empty( $query->query_vars[\'suppress_filters\'] ) )
        $query->set( \'post_type\', array( \'post\', \'events\' ) );

    return $query;
}
任何帮助都会很好,谢谢大家!

2 个回复
SO网友:Bainternet

替换此行:

$featuredPosts->query(\'showposts=5&cat=8\');
使用

$featuredPosts->query(array(\'showposts\' =>5, \'cat\' =>8,\'post_type\' => array(\'post\',\'events\')));

SO网友:remi90

似乎已通过以下代码解决了此问题:

<div id="featuredEvents">
    <h1 class="mainSectionHeader">Featured Events</h1>
    <?php $eventsFeed = new WP_Query(array(\'post_type\' => \'events\', \'posts_per_page\' => 2 )); ?>
    <?php while ($eventsFeed->have_posts() ) : $eventsFeed->the_post(); ?>
    <div id="featuredOne">
        <?php if (has_post_thumbnail( $post->ID )): ?>
            <?php $image = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), \'full\' ); ?>
            <a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>"><img src="<?php bloginfo(\'template_directory\'); ?>/thumbs.php?src=<?php echo $image[0]; ?>&w=150&h=150&zc=1" alt="<?php the_title(); ?>" /></a>
        <?php endif; ?> 
        <div class="featuredText">
            <h2 class="redSubHeader"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
            <?php the_excerpt(); ?>
        </div>
    </div>
    <?php endwhile;?>
    <div style="clear:both;"></div>
</div>
谢谢你的帮助!

结束

相关推荐

post categories

我有一些帖子,我想把它们分为三类:新闻、事件和新闻稿,然后我有三个页面使用相同的模板。我想在相关页面上显示这些帖子,以便在新闻页面上发布新闻帖子。有人能告诉我什么是最好的方式吗。我想这很简单,但我对Wordpress还是相当陌生的。非常感谢,