自定义搜索WordPress自定义帖子类型页面

时间:2013-12-23 16:15:21

标签: wordpress search post custom-post-type

我有一个相当简单的问题,我希望这个问题相当普遍,但经过数小时的搜索和测试后,我有点卡住了。

我试图这样做,扩展了我的自定义帖子类型页面上默认的“搜索帖子”功能的搜索功能。这是我的代码,但是当我搜索已知的电子邮件地址时,它什么也没有返回。我觉得我可能会完全咆哮错误的树。任何人都可以推荐一个解决方案......

function iymp_modify_mp_posts_search($query) {

    /*
     * If admin and if my custom post type
     */
    if (is_admin() && $query->query_vars['post_type'] === 'mp_post') {

        /*
         * Show 200 posts per page in ascending order
         */
        $query->set('posts_per_page', '200');
        $query->set( 'order', 'ASC' );

        /*
         * If user entered a search term
         */
        if (isset($_GET['s'])) {
            /*
             * As well as searching in the title (default behaviour), search in
             * the _email_key field as well.
             * *** Doesn't work ***
             */
            $query->query_vars['meta_query'][] = array(
                'key' => '_email_key',
                'value' => $_GET['s'],
                'compare' => 'LIKE',
            );

        }   
    }
}
add_action( 'pre_get_posts', 'iymp_modify_mp_posts_search' );

问题可能是WP正在对标题和_email_key字段中的搜索进行AND运算。如果那是问题,我该怎么做呢?

1 个答案:

答案 0 :(得分:0)

问题确实是WP在标题和_email_key字段中进行AND搜索。

要进行OR搜索,我尝试合并WP_Query结果,如此处所示 - https://wordpress.stackexchange.com/questions/55519/can-i-merge-2-new-wp-queryvariable-s - 在guidod的答案中。这不是一个很好的解决方案,并导致不稳定的行为。

我找到的正确解决方案是使用WP自定义查询修改查询,如代码所示(需要进行一些修改) - http://codex.wordpress.org/Custom_Queries ..