WordPress Triply主题下如何修改预订地点的排序方式?
WordPress Triply主题下如何修改预订地点的排序方式?
Hey there! 我刚好对BA Book Everything插件有点了解,给你几个可行的方案来实现按slug排序预订地点:
用WordPress过滤器修改查询(推荐)
这款插件应该是用自定义文章类型来存储预订地点的,咱们可以通过pre_get_posts钩子来调整排序规则,不用动插件核心代码,还不怕插件更新丢失修改。把下面的代码加到你主题(最好是子主题)的functions.php文件里(记得先备份文件!):add_action('pre_get_posts', 'custom_sort_booking_locations_by_slug'); function custom_sort_booking_locations_by_slug($query) { // 确认是前台查询,且对应预订地点的自定义文章类型 // 这里的`ba_location`需要替换成插件实际的自定义文章类型slug,你可以去数据库wp_posts表的post_type字段找,或者插件代码里搜`register_post_type` if (!is_admin() && $query->is_main_query() && $query->get('post_type') == 'ba_location') { $query->set('orderby', 'name'); // `name`对应数据库里的post_name,也就是slug $query->set('order', 'ASC'); // 升序排列,要降序就改成DESC } return $query; }要是不确定自定义文章类型的slug,你可以直接去数据库的
wp_posts表里找,看预订地点对应的post_type字段值就行,比如可能是ba_booking_location之类的。修改插件核心文件(不推荐)
要是实在找不到合适的钩子,也可以直接改插件的查询代码,但这个方法不建议用——因为插件一更新,你的修改就没了。步骤大概是:- 在WordPress后台的插件编辑器里找到BA Book Everything插件
- 找到负责获取地点列表的文件,比如可能叫
class-ba-locations.php或者ba-locations-template.php - 找到里面的
WP_Query查询代码,把orderby参数改成name,order改成你想要的排序方向(ASC或DESC) - 保存修改就行
另外提个醒:尽量用子主题来加代码,不然主题更新后你的代码也会丢失哦!
备注:内容来源于stack exchange,提问作者Trojanist
相关产品推荐
相关产品推荐

