在Wordpress搜索循环中获取帖子类型

时间:2019-01-01 18:57:12

标签: php wordpress loops post search

我在search.php文件中使用循环来循环显示结果并显示其标题。

这很好用,但是我想检查每个结果,无论是页面还是帖子。以下代码似乎无效。

if ( have_posts() ) : ?>

    <h1 class="page-title"><?php printf( __( 'Results for: %s', 'domain' ), '<span>' . get_search_query() . '</span>' ); ?></h1>

    <?php while ( have_posts() ) : the_post();

        $title = get_the_title();

        echo '<article class="post-card">';

            if ( is_page() ) {
                echo 'page';
            } else if ( is_singular('post') ) {
                echo 'post';
            }

            echo '<h2>' .$title. '</h2>';
        echo '</article>';

    endwhile; ?>

<?php endif;

2 个答案:

答案 0 :(得分:0)

我认为您正在寻找此功能。会更短。只需传递post对象,它将返回包含post类型的字符串。

get_post_type(int | WP_Post | null $ post = null)

 $somePost; // post
 $postType = get_post_type($somePost);

 if ('page' === $postType) { 
    // page...
 }
 elseif ('post' === $postType { 
    // post...
 }

答案 1 :(得分:0)

这将在循环中获取帖子类型。

if ( 'page' == get_post_type( get_the_ID() )

最良好的祝愿

米切尔