2016-11-28 37 views
0

我試圖獲取包含當前帖子標題的所有帖子。WordPress:將str_replace應用於WP_Query搜索結果

我幾乎實現了這一點,除了一件事情:對於標題中包含撇號或右引號的帖子,它不返回任何結果。雖然包含當前搜索字詞的撇號或右引號的帖子絕對存在。

下面是代碼:

$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

當'$ title'是'$ s'項時會發生什麼?使用搜索字詞不返回的文章? – Wold

+0

@Wold,直到撇號或右引號出現在搜索字詞中,所有內容都會完美返回 - 然後不會返回任何內容,因爲如果未應用str_replace,或者應用了沒有任何內容的應用程序,則WordPress無法搜索撇號** Im不好的編碼器* *在WP數據庫的洞裏,只是**我是一個糟糕的編碼器**(這是一個例子)。但是,只要我改變**的所有實例,我是一個糟糕的編碼器**,**我是一個糟糕的編碼器**,那麼在標題爲**的頁面上我是一個糟糕的編碼器**我可以看到每一篇文章包含**我是一個糟糕的編碼器**句子。所以一切似乎都很好,但撇號和RQM – YKKY

回答

0

作爲一個臨時的(但可能是最好的在同一時間)解決方案,我已經運行下面的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 = '"'.str_replace(array("’","&#39;","&#8217;"), 
array("'","'","'"), 
wp_strip_all_tags(get_the_title())).'"'; 

似乎我已經達到了預期的效果,至少現在是這樣。