Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.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 WordPress:将str_replace应用于WP_查询搜索结果_Php_Wordpress - Fatal编程技术网

Php WordPress:将str_replace应用于WP_查询搜索结果

Php WordPress:将str_replace应用于WP_查询搜索结果,php,wordpress,Php,Wordpress,我正在尝试获取所有内容中包含当前帖子标题的帖子 我几乎做到了这一点,除了一件事:对于标题中包含撇号或右引号的帖子,它不会返回结果。而包含带撇号或右引号的当前搜索词的帖子肯定存在 代码如下: $title = '"'.str_replace(array("'","’","'","’"), array("","","",""), wp_strip_all_tags(get_the_title())).'"'; $args = array( 's'

我正在尝试获取所有内容中包含当前帖子标题的帖子

我几乎做到了这一点,除了一件事:对于标题中包含撇号或右引号的帖子,它不会返回结果。而包含带撇号或右引号的当前搜索词的帖子肯定存在

代码如下:

$title = '"'.str_replace(array("'","’","'","’"),
array("","","",""),
wp_strip_all_tags(get_the_title())).'"';
$args = array(
    's'                 => $title,
    'cat'               => 48,
    'posts_per_page'    => -1,
    'orderby'           => date,
    'order'             => desc,
);
$query = new WP_Query( $args );
if ( $query->have_posts() ) {
    while ( $query->have_posts() ) { $query->the_post();
    echo the_time("Y.m.d");
    echo ': ';
    echo the_title();
    echo '<br />';
    }
}
$title='''''.str\u替换(数组(“'”、“'”、“';”、“’;”),
数组(“,”“,”“,”“),
wp_strip_all_标签(获取标题())。“;
$args=数组(
's'=>$title,
“猫”=>48,
“每页帖子数”=>-1,
'orderby'=>日期,
“订单”=>desc,
);
$query=新的WP\u查询($args);
如果($query->have_posts()){
而($query->have_posts()){$query->the_post();
回显时间(“Y.m.d”);
回声':';
附和标题();
回声“
”; } }
所以我的想法是去掉搜索词和WP_查询搜索结果中的所有撇号和所有正确的引号

可以看出,我已经成功地(至少我认为是这样)将
str\u replace
应用于搜索词,现在它返回

我是个蹩脚的程序员

而不是

我是个蹩脚的程序员

但是我完全不知道如何将相同的
str\u replace
应用于WP\u查询结果

所以我需要你的帮助。

作为一个临时(但同时可能是最好的)解决方案,我运行了以下SQL查询

UPDATE wp_posts SET post_content=REPLACE(post_content,'\&\#039\;','\'');
UPDATE wp_posts SET post_content=REPLACE(post_content,'\&\#8217\;','\'');
UPDATE wp_posts SET post_content=REPLACE(post_content,'\’','\'');
改变我现有的职位,然后重复改变

$title = '"'.str_replace(array("'","’","&#39;","&#8217;"),
array("","","",""),
wp_strip_all_tags(get_the_title())).'"';


看来我已经达到了预期的效果,至少现在是这样。

当您使用
$title
术语
$s
时会发生什么?使用搜索词的文章是否不返回?@Wold,所有内容都会完全返回,直到搜索词中出现撇号或右引号-然后什么也不返回,因为如果未应用
stru_replace
,或者如果应用,则数据库中没有任何Im错误的编码语句,WordPress无法搜索撇号,只是我是个糟糕的程序员(这就是一个例子)。但是,一旦我将所有“我是一个坏程序员”的实例改为“我是一个坏程序员”,那么在标题为“我是一个坏程序员”的页面上,我可以看到其中包含“我是一个坏程序员”句子的每一篇文章。因此,除了撇号和RQMs之外,一切似乎都很好
$title = '"'.str_replace(array("’","&#39;","&#8217;"),
array("'","'","'"),
wp_strip_all_tags(get_the_title())).'"';