使用PRE_GET_POST以特定顺序按元显示搜索结果

时间:2014-12-05 作者:certainstrings

我有一个搜索查询,我限制在自定义帖子类型中搜索。当返回内容时,我将其按元值排序。后元是一个人的位置。

下面的函数按预期工作,但我需要拉动帖子并按特定顺序对其进行排序。

function kg_search_filter( $query ) {

    if( is_search() && ! is_admin() && $query->is_main_query() ) {

        $initial = ( !empty( $_GET[\'pro_search_initial\'] ) ) ? $_GET[\'pro_search_initial\'] : "";
        $expertise = ( !empty( $_GET[\'pro_search_expertise\'] ) ) ? $_GET[\'pro_search_expertise\'] : "";
        $office = ( !empty( $_GET[\'pro_search_office\'] ) ) ? $_GET[\'pro_search_office\'] : "";

        $query->set( \'post_type\', array(\'professional\') );

        if( $office ) {
            $query->set( \'tax-location\', $office );
        }

        if ( $expertise ) {
            $query->set( \'tax-expertise\', $expertise );
        }

        if ( $initial ) {
            $query->set( \'meta_query\', array(
                        array(
                              \'key\' => \'professional_last_initial\',
                              \'value\' => $initial,
                              \'compare\' => \'=\'
                        )
                    ));
        }

        $query->set( \'posts_per_page\', 10 );
        $query->set( \'meta_key\', \'professional_position\');
        $query->set( \'orderby\', \'meta_value\');
        $query->set( \'order\', \'DESC\');
    }
}
add_filter( \'pre_get_posts\', \'kg_search_filter\' );
我想要的是:首先向所有有总统头衔的人展示,然后是所有副总统,然后是剩下的人。

我知道我可以使用多个循环作为this solution 建议,但我不确定如何在引用我的查询时使用pre\\u get\\u posts来实现第二个建议。

1 个回复
SO网友:Rarst

相同的元字段值相互关联的概念不是WordPress固有的。

在我的头顶上,你可以创建第二个元域,它将相对性表示为一个数字。所以总统是1, 副总裁2 等等但是,如果将来层次结构发生变化,这将是一个需要调整的痛苦。

结束

相关推荐

有没有办法阻止WP编辑删除<gcse:earchbox-only></gcse:search box>

我想将我的谷歌自定义网站搜索代码粘贴到编辑器中,以显示在我的一个页面上。当粘贴到“文本”侧时,它会起作用,但如果我切换到“视觉”,get会变成一个NBSP有没有办法让我<gcse:searchbox-only></gcse:searchbox-only> 编辑是否得体?