Я хотел бы удалить запятую из мета-тега ключевых слов из этого:
<meta name="keywords" content="enhancing,nutritional,supplements," />
К этому:
<meta name="keywords" content="enhancing,nutritional,supplements" />
Вот полный код.
/ *
Автоматически генерирует мета ключевые слова пост / страница
для SEO в рамках Genesis.
Если Genesis не возвращает ключевые слова, то ключевые слова
автоматически генерируется из пост-тегов или
остальное из поста / заголовка страницы.
* /
add_action( 'genesis_meta', 'my_auto_keywords' , 11 );
function my_auto_keywords(){
if(
!is_singular() ||
genesis_get_custom_field( '_genesis_keywords' ) ||
genesis_get_custom_field( '_aioseop_keywords' ) ||
genesis_get_custom_field( 'thesis_keywords' ) ||
genesis_get_custom_field( 'keywords' )
) return;
$tags = get_the_tags(); #wp
if ($tags) {
foreach ($tags as $tag) {
$keywords .= $tag->name . ', ';
}
}
if ($keywords) {
$keywords = '<meta name="keywords" content="' . $keywords . '" />';
}
else {
$title = get_the_title();
$keywords = preg_split("/[\s,]+/", $title);
$keywords = array_map('strtolower', $keywords);
$keywords = array_diff($keywords, my_excluded_words()); //remove useless words
foreach ($keywords as $keyword)
$kw_list .= $keyword . ',';
$keywords = '<meta name="keywords" content="' . $kw_list . '" />';
}
echo $keywords . "\r\n";
}
function my_excluded_words(){
return array ("testword", "testword2", "testword3", "testword4");
}
Может быть, попробуйте:
$keywords = join(",", array_map(function($tag){ return $tag->name; }, $tags ));
if($keywords) {
$keywords = '<meta name="keywords" content="' . $keywords . '" />';
}
Заменить это:
if ($tags) {
foreach ($tags as $tag) {
$keywords .= $tag->name . ', ';
}
}
С этим:
if ($tags) {
foreach ($tags as $tag) {
$keywords[] = $tag->name;
}
$keywords = implode(',', $keywords);
}
и заменить это:
foreach ($keywords as $keyword)
$kw_list .= $keyword . ',';
с этим:
$kw_list = implode(',', $keywords);