将category_description放在元描述中(wordpress)

时间:2011-04-20 09:05:14

标签: php wordpress meta-tags categories

我的主题中的标题我为元描述创建了以下代码:

<?php if (is_single() || is_page()) { ?>
<meta name="description" content="<?php echo metadesc($post->ID); ?>" />
<?php }else{ ?>
<meta name="description" content="<?php bloginfo('description'); ?>" />
<?php } ?>

并将此代码包含在我的function.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) > 150) {
return htmlspecialchars(substr($description,0,150) . "...");
}else{
return htmlspecialchars($description);
 }
}

现在我想将category_description合并到主题标题中:

<?php if ( is_category() ) { echo category_description(); } ?>
你能帮帮我怎么办?感谢

1 个答案:

答案 0 :(得分:1)

你已经完成了大部分工作:

<?php
    if( is_single() || is_page() ) $description = strip_tags($post->post_content);
    elseif( is_category() ) $description = category_description();
    else $description = get_bloginfo( 'description' );
    $description = substr($description,0,150);
?>

<meta name="description" content="<?= $description ?>" />

如您所见,我会忘记您在metadesc()中所做的所有清理工作,只是用strip_tags()删除html,但我认为无需删除换行符或转换为html实体,当然我认为搜索引擎根本不会想到换行符或&&amp;

另外,无需检查说明的长度。试着截断它,如果它的长度小于150个字符,substr()将返回整个字符串不变。

修改 如果您希望使用正在使用的metadesc()函数,则可以通过这种方式回复您的评论:

function metadesc() {
    global $post;

    if( is_single() || is_page() ) $description = strip_tags($post->post_content);
    elseif( is_category() ) $description = category_description();
    else $description = get_bloginfo( 'description' );

    $description = substr($description,0,150);

    return $description;
}