2012-08-13 86 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; 
?> 
相关问题