使用WordPress Codex中的this information我尝试在WordPress中按字母顺序对帖子进行排序,现在处理搜索结果。
这是模板的默认代码,适用于搜索,但默认情况下会按顺序排列:
<?php while ( have_posts() ) : the_post(); ?>
<?php get_template_part( 'content', apptheme_get_list_type() ); ?>
<?php endwhile; ?>
现在,我尝试将其更改为:
<?php
while ( have_posts() ) : the_post();
$args = array( 'posts_per_page' => -1, 'orderby'=> 'title', 'order' => 'ASC' );
$sorted_posts = get_posts( $args );
endwhile;
?>
<?php foreach ($sorted_posts as $post): setup_postdata($post); ?>
<?php get_template_part( 'content', apptheme_get_list_type() ); ?>
<?php endforeach; ?>
哪个适用于排序顺序,但它会返回所有帖子,而不仅仅是适合搜索的帖子。我应该更改哪个参数? (我熟悉PHP,但这是我第一次修改WordPress模板)
谢谢!
答案 0 :(得分:0)
我没有尝试,但它应该工作:
add_filter('posts_orderby','custom_search_sort_custom',10,2);
function custom_search_sort_custom( $orderby, $query ){
global $wpdb;
if(is_search())
$orderby = $wpdb->prefix."posts.post_type ASC, {$wpdb->prefix}posts.post_title ASC";
return $orderby;
}