2012-08-13 40 views
1

在單,PHP,我想,如果類別名稱是不是已經在文章標題的部分類別名稱自動添加到標題標籤。否則,只是不要添加任何東西。 這就是我一直在使用的preg_match沒有運氣嘗試。如何添加標題類別名稱,如果不存在,在文章標題

<?php 
$keywords = array('Category phrase a', 'Category phrase b'); 
foreach($keywords as $word) 
{ 
    if(preg_match('/'.$word.'/i', 'wp_title', 'return=true')) { 
echo ""; 
} else { 
echo "Category Phrase"; 
} 
} 
?> 

任何想法?

UPDATE:所以我有點想通了,但陣列匹配工作不很正確:

$keywords = array('Test word', 'Test word more'); 
$issouttxt = "Category Phrase: "; 
$isstitle = wp_title('',false,'right'); 
foreach($keywords as $word) 
{ if(preg_match('/'.$word.'/i', $isstitle)) { 
$issout = ''; 
} else { 
$issout = $issouttxt; 
}} 
print $issout; 

例如,如果WP標題包含「測試單詞」它不承認匹配和$ issout = $ issouttxt(即,它不正確地添加類別名稱)。如果刪除了陣列(「測試字多」)的第二部分,它不識別匹配和$ issout =「」;。

是否有不同的方法來設置數組,使所有關鍵字匹配並且不會互相干擾?

回答

0

如果在循環的時候,那麼我會運行它是這樣的。如果您不在循環中,則可以將帖子ID添加到標題和類別的調用中。

這個腳本會添加所有缺失類別的標題。

<?php 
$title=get_the_title(); 
$categories=get_the_category(); // or use get_categories() for all categories 

    if(!empty($categories)) : 
    foreach($categories as $category) : 
     if(strpos($title,$category->name)===false) 
     $title.=', '.$category->name; 
    endforeach; 
    endif; 
echo $title; 
?> 
相關問題