hum*_*der 2 php sorting wordpress meta-tags
我之前在这里发了一篇文章: 如何在不手动创建新页面的情况下按自定义字段排序?
但是,我相信我提出了错误的问题(我可能仍然会问错误的问题).实际上我认为我可能需要一个复杂的查询来显示按元值排序的帖子.该网站使用的是名为"AgentPress"的主题.我相信通过URL栏传递params对于我需要的东西来说可能过于简单了.
老实说,我喜欢当前类别页面显示的方式(格式化等),我只需要"短路"过程,以便任何类别/存档页面按meta_key排序为"属性价格"而不是入境时间.如果有一个简单的,更"WordPress-y"的机制来做到这一点,我都是耳朵.请明确说明代码的放置位置等.
仅供参考,此时很清楚在URL中传递"order = ASC"和"order = DESC".但是,似乎我对"meta_key"或任何相关内容没有任何影响.
提前致谢.
您可以在pre_get_posts挂钩上添加过滤器.
将此代码放入functions.php(在您的主题目录中):
add_filter('pre_get_posts', 'pre_get_posts_hook' );
function pre_get_posts_hook($wp_query) {
if (is_category() || is_archive())
{
$wp_query->set( 'orderby', 'meta_value_num' );
$wp_query->set( 'meta_key', 'price' );
$wp_query->set( 'order', 'ASC' );
return $wp_query;
}
}
Run Code Online (Sandbox Code Playgroud)
您可以使用meta_value而不是meta_value_num(可用于v2.8),但我认为价格是一个数值.