对Pre_Get_POST中的序列数组中的元值进行排序

时间:2015-11-17 作者:Rafael

我正在使用pre\\u get\\u posts和meta\\u value自定义类别中的帖子显示。每个人都会收到一个meta\\u值帖子,并希望它们按照数组的顺序排列。

我希望这样(1)sec\\u a(2)sec\\u c(3)sec\\u b。结果表明,顺序是字母的首字母缩写,结果看起来像sec\\u a、sec\\u b和sec\\u c。我如何修复?

function pregp_wpse_97354($qry) {
  if (is_category(2) && is_main_query()) {
    $qry->set(\'post_type\', array( \'post\', \'post-2\' ));
    $qry->set(\'cat\',2);
    $qry->set(\'posts_per_page\',10);
    $itens = array(1 => \'sec_a\', 3 => \'sec_b\', 2 => \'sec_c\' );
    $meta_query = array(
          array(
            \'key\'     => \'sec_special\',
            \'value\'   => $itens,
            \'compare\' => \'IN\',
    )); 
    $qry->set(\'meta_query\', $meta_query);
    $qry->set(\'orderby\', \'meta-value\');
    }
}
add_action(\'pre_get_posts\',\'pregp_wpse_97354\');

1 个回复
SO网友:Rarst

您的顺序似乎是任意的,因此没有明确的方法将其表示为查询参数。最接近微观管理的顺序是post__in, 但是你必须拥有所有的帖子ID,对于大量的帖子来说,这根本就不合理。

您可能只想创建另一个自定义字段,并用可按字母排序的值填充该字段。

相关推荐

无法在模板函数.php中使用IS_HOME

我试图在标题中加载一个滑块,但只在主页上加载。如果有帮助的话,我正在使用Ultralight模板。我正在尝试(在template functions.php中)执行以下操作:<?php if ( is_page( \'home\' ) ) : ?> dynamic_sidebar( \'Homepage Widget\' ); <?php endif; ?> 但这行不通。现在,通过快速的google,我似乎需要将请