要按照自定义字段对WordPress自定义文章进行排序,你可以使用pre_get_posts
钩子来修改查询参数。下面是一个示例代码:
// 在functions.php文件中添加以下代码
function custom_orderby($query) {
if ( is_admin() || ! $query->is_main_query() ) {
return;
}
// 检查是否是你想要排序的自定义文章类型
if ( $query->get('post_type') === 'your_custom_post_type' ) {
// 按照你想要排序的自定义字段进行排序
$query->set('meta_key', 'your_custom_field');
$query->set('orderby', 'meta_value');
$query->set('order', 'ASC'); // 或者 'DESC',根据你的需求
// 可选:如果你希望保留其他排序方式,请使用数组形式
// $query->set('orderby', array('meta_value' => 'ASC', 'title' => 'ASC'));
}
}
add_action('pre_get_posts', 'custom_orderby');
在上面的代码中,你需要将your_custom_post_type
替换为你想要排序的自定义文章类型的标识符,并将your_custom_field
替换为你想要排序的自定义字段的标识符。你还可以根据需要设置其他的排序方式。
通过使用pre_get_posts
钩子,我们可以在查询数据库之前修改查询参数,从而实现按照自定义字段进行排序的目的。请确保将上述代码添加到你的主题的functions.php
文件中,并替换相应的标识符。
下一篇:按照自定义字段获取帖子排序