Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 向URL传递值以在wordpress中进行提前搜索时出错_Php_Wordpress_Woocommerce - Fatal编程技术网

Php 向URL传递值以在wordpress中进行提前搜索时出错

Php 向URL传递值以在wordpress中进行提前搜索时出错,php,wordpress,woocommerce,Php,Wordpress,Woocommerce,我正在制作一个搜索功能,用于在woocommerce中搜索产品 所以URL将类似于“” 用户将搜索任何网站将被搜索,此外,产品的自定义字段将被搜索。此代码可以在以下情况下正常工作:“”http://localhost/wp/?s=123&post_type=product在url中输入,则表示未找到任何产品 代码如下所示 function cf_search_where( $where ) { global $pagenow, $wpdb; if ( is_search() ) {

我正在制作一个搜索功能,用于在
woocommerce
中搜索产品
所以URL将类似于“”

用户将搜索任何网站将被搜索,此外,产品的自定义字段将被搜索。此代码可以在以下情况下正常工作:“
”http://localhost/wp/?s=123&post_type=product
在url中输入,则表示未找到任何产品

代码如下所示

function cf_search_where( $where ) {
global $pagenow, $wpdb;


    if ( is_search() ) {
$where = preg_replace("/\(\s*".$wpdb->posts.".post_title\s+LIKE\s*(\'[^\']+\')\s*\)/",
            "(".$wpdb->posts.".post_title LIKE $1) OR (".$wpdb->postmeta.".meta_value LIKE $1)", $where );
        $where .= " AND ($wpdb->posts.post_type = 'product') ";
    }

    return $where;
}
add_filter( 'posts_where', 'cf_search_where' );
那么需要做什么修改呢

URL
workfine

您在“”中编写$wpdb->posts,这就是它不起作用的原因。 你在下面检查一下

function cf_search_where( $where ) {
global $pagenow, $wpdb;


    if ( is_search() ) {
$where = preg_replace("/\(\s*".$wpdb->posts.".post_title\s+LIKE\s*(\'[^\']+\')\s*\)/",
            "(".$wpdb->posts.".post_title LIKE $1) OR (".$wpdb->postmeta.".meta_value LIKE $1)", $where );
        $where .= " AND (".$wpdb->posts.".post_type = 'product') ";
    }

    return $where;
}
add_filter( 'posts_where', 'cf_search_where' );

我肯定这不是问题所在。另一个提示是它在
?s=123
上工作,而在
?s=123&post_type=product