我目前在 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);
}
}
这是当我转到源代码并查看以下页面上的元标记描述时显示的内容:
主页:(在 Wordpress 常规设置中定义的主页的描述(检查)
传记:页面的前 135 个字符(检查)
接触:
<meta name="description" content="[contact-form-7 id="25" title="Contact"]" />
如您所见,我的联系页面上只有一个联系表单,看起来我需要向脚本添加一个过滤器,以便它忽略脚本标签和短代码,并且它将放置主页描述。
我该如何解决这个问题?