在我们继续之前,我必须指出这一点:
$i=1;
$temp = $wp_query;
$wp_query = null;
$wp_query = new WP_Query();
$wp_query -> query(\'post-format-audio\'.\'&paged=\'.$paged)
这与以下内容完全相同:
query_posts( \'post-format-audio\'.\'&paged=\'.$paged );
这太可怕了。当人们建议不要使用
query_posts
, 不只是功能不好,它的功能也不好。
谢天谢地有人告诉你WP_Query
, 但是他们没有完成工作。
这就是您的查询循环的实际外观:
$args = array(
\'post_format\' => \'post-format-audio\'
);
$q = new WP_Query( $args );
if ( $q->have_posts() ) {
while( $q->have_posts() ) {
$q->the_post();
the_title(); // etc
}
wp_reset_postdata(); // clean up after ourselves
}
重要的一点是,post格式在内部保存为自定义分类法,分类法名称为“post\\u format”。
But even this is bad!
我在原来的代码中看到,您完全放弃了原来的主查询(还有另一个原因
query_posts
是可怕的)。你应该做的是
pre_get_posts
筛选以在主查询运行之前修改它,这样您就不必丢弃它,浪费时间并降低页面速度。这种方式还为您提供了Core免费提供的所有分页和其他功能。
因此,如果这是您的主页,您可以这样做:
function audio_only( $query ) {
if ( $query->is_home() && $query->is_main_query() ) {
$query->set( \'post_format\', \'post-format-audio\' );
}
}
add_action( \'pre_get_posts\', \'audio_only\' );
在插件或
functions.php
您的主页将仅显示带有音频帖子格式的帖子。您可以在任何有主循环的地方,使用它覆盖单个术语存档、搜索、RSS提要等。
但这仍然不是最好的方法。WordPress自动为您提供免费的post格式存档!您甚至可以为其使用特殊的模板文件。所以没有必要建立音频格式的档案,那里已经有一个了
进一步阅读You don\'t know query, by Andrew Nacin最后的笔记echo do_shortcode("$myvalue");
是浪费,没有必要引用,使用echo do_shortcode( $myvalue );
相反,它的键入速度更快,对编辑和编写英特尔代码更为友好。我知道codex使用它,但不用担心if(): while() : the_post();
, 而是使用支架{}
把他们带到自己的路线上去。每行1条语句/命令。同样,它更容易阅读,对于自动化工具和编辑器来说也更好,我们都需要得到所有的帮助,这样我们才能专注于重要的东西,所有这些角跨元素<span class="top-left-corner"></span>
可以删除并替换为多个CSS背景,border-radius
, 或:after
和:before
css选择器