【发布时间】:2018-05-11 21:13:57
【问题描述】:
我会尽量做到简短明了。
我的目标是什么?
我的目标是按元键对我的类别页面中的帖子进行排序。我有一个名为“Rating”的类别,该类别中的每个帖子都有一个名为“Rating”的元键 - 其中是一个数值。
例如,我在“评分”类别中有“餐厅 A”和“餐厅 B”。一个的元键“评分”值为 56,另一个为 40。我想将它们从最高评分显示到最低评分(不是按字母顺序、时间顺序或任何其他方式。)
我尝试了什么?
我已尝试将其直接添加到我的 category.php 文件中:
<?php global $query_string;
$posts = query_posts('posts_per_page=5&cat=rating&meta_key=rating&order=ASC');
?>
在这部分之前,它已经在 category.php 文件中:
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<?php fotomag_post_layout(); ?>
<?php endwhile; ?>
<?php endif; ?>
并以此部分结束代码:
<?php wp_reset_query(); ?>
我是怎么失败的?
它部分有效。例如,它确实显示了 5 个帖子,如果我从“评级”类别中的某些帖子中删除元键,它不会在此处显示它们(这是正确的 - 因为查询是显示评级类别中的帖子评级元字段)。但它不按升序或降序排列。
我做错了什么?我应该在我的函数文件中放置任何类型的过滤器或操作挂钩或其他东西吗?我的主题有什么问题吗? (顺便说一下,我没有安装其他插件)
其他文件:
我的 functions.php 文件(下面的答案中提到了 add_action 挂钩)-https://pastebin.com/WYyRknD6
我的 category.php 文件 - https://pastebin.com/nWFgL1bV
我的帖子布局文件(这是在 category.php 文件中调用的文件 - 它可能相关或不相关) - https://pastebin.com/3M6mrQVY
您可以在此处查看页面的实时版本 - https://preprod.pojej.me/category/rating/ - 帖子上显示的数字是“评分”元键字段中的数值(减去 % 符号)。
【问题讨论】: