如果标记了自定义字段,则显示自定义帖子

时间:2014-09-30 作者:GuiHarrison

我正试图让一篇自定义帖子只在标记了我创建的自定义字段的情况下显示在首页上,否则它应该查找标记的字段(并且只标记一个,而不是全部标记)。

我目前有:

            $args = array( \'post_type\' => \'courses\', \'posts_per_page\' => 1 );
            $loop = new WP_Query( $args );
            while ( $loop->have_posts() ) : $loop->the_post();

            $marked= get_post_meta($post->ID, \'feature-it\', true);
            if ($marked) {
                echo "<h3>";
                  the_title();
                  get_the_post_thumbnail();
                echo "</h3>";
            }
            endwhile;
这是一种工作,但如果最新的帖子没有标记为显示,它不会显示任何内容,而不是显示之前标记的帖子。

有人能告诉我怎么做吗?

谢谢

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

当然,如果您的第一篇帖子没有自定义字段,它将不会返回任何帖子feature-it. 因为您正在运行查询后检查自定义字段。

那么,让我解释一下您在查询中到底在做什么。您要求WordPress返回一篇帖子post_type courses. 无论自定义字段如何,WordPress将只返回1篇帖子。之后,您要求WordPress检查自定义字段feature-it 如果这篇文章有自定义字段,那么它将打印标题和缩略图。如果post没有自定义字段,则不会打印任何内容。

你应该得到一个职位post_type courses 具有自定义字段的feature-it. 因此,您需要在查询中检查它。这是它应该如何检查中的自定义字段WP_Query

$args = array(
    \'post_type\' => \'courses\',
    \'posts_per_page\' => 1,
    \'meta_query\' => array(
        array(
            \'key\' => \'feature-it\'
        )
    )
);

$loop = new WP_Query( $args );

if ( $loop->have_posts() ) :

    while ( $loop->have_posts() ) : $loop->the_post();

        echo "<h3>";
            the_title();
            get_the_post_thumbnail();
        echo "</h3>";

    endwhile;

endif;

wp_reset_postdata();

结束

相关推荐