Jor*_*ges 4 wordpress function
我想在查看类别时将wordpress默认查询更改为orderby title,而不是post id.
由于无法解释的原因(!)我想更改默认设置而不是使用自定义查询(我知道该怎么做)
理想情况下,我的模板的functions.php中会包含一些代码,而不是必须破解核心安装.
谢谢你的帮助!
Jer*_*son 34
您还可以使用操作'pre_get_posts'来更改orderby和order变量,如下所示:
add_action( 'pre_get_posts', 'custom_get_posts' );
function custom_get_posts( $query ) {
if( (is_category() || is_archive()) && $query->is_main_query() ) {
$query->query_vars['orderby'] = 'name';
$query->query_vars['order'] = 'ASC';
}
}
Run Code Online (Sandbox Code Playgroud)
注意:is_main_query()检查有助于确保您不会在插件和主题功能中导致意外行为.删除它是可以的,但要确保你知道你还在影响什么!
在archive.php中,找到代码
if (have_posts()) : while (have_posts()) : the_post();
Run Code Online (Sandbox Code Playgroud)
并替换为:
$cat_posts = new WP_Query($query_string."&orderby=title&order=ASC");
if ($cat_posts->have_posts()):while($cat_posts->have_posts()):$cat_posts->the_post();
Run Code Online (Sandbox Code Playgroud)
这应该可以解决问题.
更新:如果要更改源代码,则执行此操作.
| 归档时间: |
|
| 查看次数: |
13187 次 |
| 最近记录: |