我正在使用以下功能来更改帖子的显示顺序:
function wpse139657_orderby($query){
$query->set( 'orderby', 'meta_value' );
$query->set( 'order', 'DESC' );
$query->set( 'meta_key', 'book_release_date' );
$query->set( 'meta_type', 'NUMERIC' );
if (is_admin() || $query->query_vars['post_type'] != 'book') return $query;
}
add_filter('pre_get_posts','wpse139657_orderby');
...但是看起来好像与单个帖子产生了冲突,实际上,在我将上述功能添加到博客中之后,以下查询就停止了工作。
$images = get_attached_media('image');
$featured_image_id = get_post_thumbnail_id();
if ( has_post_thumbnail() ) {
unset($images[ $featured_image_id ] );
}
$ximage = wp_get_attachment_image_src( key($images),'medium');
echo '<img src="' . $ximage[0] . '">';
有什么方法可以编辑上面的第一个代码(功能)并进行设置,以免干扰单个帖子页面?
这很容易在设置查询参数之前进行检查。
function wpse139657_orderby($query){
if(is_single && !is_singular('book')){
return;
}
$query->set( 'orderby', 'meta_value' );
$query->set( 'order', 'DESC' );
$query->set( 'meta_key', 'book_release_date' );
$query->set( 'meta_type', 'NUMERIC' );
if (is_admin() || $query->query_vars['post_type'] != 'book') return $query;
}
add_filter('pre_get_posts','wpse139657_orderby');