В настоящее время я использую код условного метатега в wordpress. Все работает нормально, кроме некоторых страниц.
код в header.php:
<meta name="description" content="<?php echo metadesc($post->ID); ?>" />
<?php }else{ ?>
<meta name="description" content="<?php bloginfo('description'); ?>" />
<?php } ?>
код в functions.php:
function metadesc($pid) {
$p = get_post($pid);
$description = strip_tags($p->post_content);
$description = str_replace ("\n","",$description);
$description = str_replace ("\r","",$description);
if (strlen($description) > 135) {
return htmlspecialchars(substr($description,0,135) . "...");
}else{
return htmlspecialchars($description);
}
}
Вот что он показывает, когда я иду к источнику и смотрю на описание метатега на следующих страницах:
home: (описание домашней страницы, которое определено в общих настройках Wordpress (отметьте)
биография: первые 135 символов страницы (проверить)
контакт:
<meta name="description" content="[contact-form-7 id="25" title="Contact"]" />
Как вы можете видеть, у меня есть только контактная форма на моей странице контактов, и, похоже, мне нужно добавить фильтр в скрипт, чтобы он игнорировал теги скрипта и короткие коды, а вместо этого размещал описание домашней страницы.
Как я могу решить эту проблему?