还可以在分类、标记和定制字段中进行搜索

时间:2012-08-23 作者:Christian

我分别找到了分类法、自定义字段和标记的许多答案,其中大多数都已过时。

但如何在中组合搜索:

- designed custom fields of a custom post
- custom taxonomy terms
- Tags
- Title (already by default)
- Content (already by default)
我的一个自定义项目可以是,例如:

item 1
tag: tag1, tag2, tag3
taxonomy: tax1, tax2
custom field 1: cf1
title: composed title 1
desc: a full paragraph with many words
现在,我希望能够搜索:

"paragraph tag2 cf1 composed"
解决方案似乎极其复杂。。。是否只能使用新的SQL查询(JOIN LEFT 等)我能找到简单的方法吗$query->set() ?

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

if (!function_exists(\'cjg_theme_filter\')) {
    function cjg_theme_filter( $query ){

    if ( $query->is_main_query() ){
          //is_search is necessary for custom taxonomy urls
        if ( $query->get( \'tag\' ) OR $query->get( \'artprim_categories\' ) OR is_search() )
            $query->set( \'post_type\', array( \'post\', \'artprim_item\' ) );

        if ( is_search() ){
            $queryString = $query->query_vars[\'s\'];

            $queryTab = explode(\' \', $queryString);

            $meta = array();
            foreach($queryTab as $queryString){
                $meta[] = array(
                    \'key\' => \'date\',
                    \'value\' => $queryString,
                    \'compare\' => \'LIKE\');
            }
            $query->set( \'meta_query\',$meta );
        };        
    }

    return $query;

}}

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

看来Relevanssi 是一个非常好的更新插件

它解决了我的问题

结束

相关推荐

Clean-up script tags

我想收拾一下<script> WordPress生成的标签为HTML5生成更多语义输出。您已经可以为<style> 将使用此代码的标记附加到style_loader_tag 过滤器://clean up the default WordPress style tags add_filter(\'style_loader_tag\', \'clean_style_tag\'); function clean_style_tag($input) {