在单个,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 :(得分: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;
?>