Added if statement to loop

时间:2012-10-29 作者:hiiambo

我想给我的循环添加一个功能。与自定义post类型一起使用的php。然而,我不想让它显示在所有帖子上,只想显示那些自定义帖子类型的帖子(比如它被称为“review”)。

有没有办法说如果post type=review,那么显示这个新部分,否则隐藏?

我试过使用

<?php if( get_post_type() == \'reviews\' ) 
但我不知道如何将else语句表述为什么都不做,然后正常继续。

非常感谢。

3 个回复
最合适的回答,由SO网友:kaiser 整理而成

请尝试以下操作:

if ( have_posts() )
{
    while( have_posts() )
    {
        the_post();

        if ( \'reviews\' === get_post_type( get_the_ID() )
        {
            echo \'I am a post of the post type &rdquo;reviews&ldquo;\';

            // We\'re done here, continue to next post
            continue;
        }

        // Do other stuff
    }
}
编辑如果您不确定是否有可用的帖子类型,请使用以下插件检查(在管理员用户界面页脚下方)您有哪些自定义帖子类型可用。

<?php
/** Plugin Name: »kaiser« Get custom post type objects */
function wpsedebug_post_type_obj()
{
    if ( ! is_admin() )
        return;

    $pt = get_post_types(
         array(
             \'public\'   => true
            ,\'_builtin\' => false
         )
        ,\'object\'
    );
    return print \'<pre>\'.var_export( $pt, true ).\'</pre>\';
}
add_action( \'shutdown\', \'wpsedebug_post_type_obj\' );

SO网友:Halaster

尝试http://codex.wordpress.org/Function_Reference/get_post_type 使用它来获取自定义帖子类型的值并进行比较

例如:

<?php $myPostType = get_post_type( $post->ID ); 
 if($myPostType == \'Review\'){
  //It\'s a review post type, whoo!
}
?>

SO网友:hiiambo

我想出来了。我必须这样格式化它:

<?php if( get_post_type() == \'reviews\' ) { ?>
// stuff inside if statement
<?php } ?>

结束

相关推荐

exclude category in loop.php

我用的是二十十主题。我试图从作者帖子中排除类别1。我在循环中使用了以下代码。phpquery_posts(cat=\'-1\'); while ( have_posts() ) : the_post(); ?> 但没有显示帖子。如何修复此问题?