我正在尝试在其内容中收到包含当前帖子标题的所有帖子。
我几乎已经实现了这一点,除了一件事:对于在其标题中包含撇号或右引号的帖子,它不会返回任何结果。虽然包含带撇号或右引号的当前搜索词的帖子肯定存在。
以下是代码:
$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 />';
}
}
所以我的想法是在搜索词和WP_Query搜索结果中删除所有撇号和所有正确的引号。
可以看出我已成功(至少我认为如此)将str_replace
应用于搜索字词,现在又返回
我是一个糟糕的程序员
而不是
我是一个糟糕的程序员
但我完全不知道如何将相同的str_replace
应用于WP_Query结果。
所以我需要你的帮助。
答案 0 :(得分:1)
作为临时(但可能是同时最好的)解决方案我运行以下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,'\’','\'');
更改我现有的帖子,然后冗余更改 p>
$title = '"'.str_replace(array("'","’","'","’"),
array("","","",""),
wp_strip_all_tags(get_the_title())).'"';
与
$title = '"'.str_replace(array("’","'","’"),
array("'","'","'"),
wp_strip_all_tags(get_the_title())).'"';
似乎我已经达到了预期的效果,至少目前是这样。