只在模板上显示WordPress的“标准”帖子格式?

时间:2011-09-20 14:23:11

标签: wordpress

我最近在我的WordPress主题中添加了帖子格式 - 在博客页面上它很好,因为它们都是相应的样式。但是在我的主页模板上我只想显示“标准”帖子格式(没有链接,画廊,音频,视频等)。

在我的主题选项中,我可以决定在首页上显示的帖子数量是'dft_recent_number'的用途。

是否有人知道我如何更改以下代码以排除除“标准”帖子格式以外的所有内容?

<?php 
$query = new WP_Query();
    $query->query('posts_per_page='.get_option('dft_recent_number'));

    //Get the total amount of posts
$post_count = $query->post_count;

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

 ?>

非常感谢任何帮助!

3 个答案:

答案 0 :(得分:4)

WP_Query似乎没有post_format的简单参数。

从我的快速研究看来,帖子格式通过分类法相关联。所以,理论上,使用分类法参数应该工作。

$args = array(
    'tax_query' => array(
        array(
            'taxonomy' => 'post_format',
            'field' => 'slug',
            'terms' => 'post-format-standard',
        )
    )
);
$query = new WP_Query( $args );

注意:您需要更新博客的分类名称和slugs。这应该是您在functions.php文件中设置的名称。

答案 1 :(得分:4)

// there's no post-format-standard so you should write it like this to exclude all other postpformats
array(
'taxonomy' => 'post_format',
'field' => 'slug',
'terms' => array('post-format-quote','post-format-audio','post-format-gallery','post-format-image','post-format-link','post-format-video'),
'operator' => 'NOT IN'
)

答案 2 :(得分:1)

我知道这已经过时了,但我遇到了同样的问题,即使我找到了一个解决方案,我也想知道其他人做了什么来“修复”这个问题。

我认为更具可扩展性的解决方案可能是这样的:

$post_formats = get_theme_support( 'post-formats' );

$tax_query = false;
if ( $post_formats ) {
    $tax_query = array(
        array(
            'taxonomy' => 'post_format',
            'field'    => 'slug',
            'terms'    => $post_formats[0],
            'operator' => 'NOT IN'
        )
    );
}

// WP_Query arguments
$args = array(
    'post_type' => 'post',
    'order'     => 'DESC',
    'orderby'   => 'date',
    'tax_query' => $tax_query
);

这将排除已启用的帖子格式,如果WP将添加更多帖子格式(或添加添加更多内容的功能),也可以使用。