如何按元值对主页进行排序?

时间:2013-07-05 作者:Jacob

我正在尝试按自定义元值对我的主页帖子进行排序。有人告诉我应该使用pre_get_posts 但我似乎没有正确地实施它。

这就是我正在做的:

add_filter(\'pre_get_posts\',\'alter_query\');

function alter_query($query){

      if( $query->is_home() ){
        $query->set( \'meta_key\', \'key name\' );
        $query->set( \'orderby\', \'meta_value_num\' );
        $query->set( \'order\', \'DESC\' );
      }
     return $query; 
}
当我使用上述功能时,主页查询没有返回所有帖子,也没有正确排序;我想知道我是否会用正确的方法来做这件事。

1 个回复
最合适的回答,由SO网友:s_ha_dum 整理而成

您可能还需要:

$query->set( \'ignore_sticky_posts\', true );
这将防止粘性帖子拖到顶部。

可能:

$query->set( \'posts_per_page\', -1 );
如果你得到的帖子太少。-1 表示“全部”。您可以使用它来更改为后端中设置的数字以外的数字。

几点注意事项:

  1. $query->set( \'meta_key\', \'key name\' ); 将限制结果meta_keymeta_value 对于key name 这不是一个真正的数字推理器不会正常工作。标点符号和字母会把事情搞砸
  2. is_home 可能很奇怪。确保它能满足你的需要
结束

相关推荐

jquery does't work

我的网站一直存在这个问题,我在网站中输入的一些脚本不起作用,而其他脚本则起作用。该站点在一个设置上功能齐全,在另一个设置上失败,即使代码相同。在我的站点标题中,我有4个对不同脚本的调用。滑块、自定义动画、分页和一些工具。我发现滑块工作正常,但下一个东西坏了。我可以删除滑块,另一个部分将开始工作。这很奇怪。我一直在读一些书,并决定尝试用“正确的方式”来读。我正在调用函数中的所有脚本。php文件使用注册脚本,然后排队。当我查看源代码并正确链接所有文件时,我可以在标题中看到它们。知道WordPress包含jqu