WordPress技巧:非插件实现高效SEO

efficient-seo-without-a-plugin

很多时候为了博客能够更好地被搜索引擎抓取,我们需要做一些SEO方面的优化。当然,有很多插件可以帮助我们来实现,但是如果不想使用插件,这里有一个简单的代码实现的方式,可以使你的博客对搜索引擎更加友好。

首先,将下面的代码粘贴到主题 functions.php 文件中。

function basic_wp_seo() {
    global $page, $paged, $post;
    $default_keywords = 'wordpress, plugins, themes, design, dev, development, security, htaccess, apache, php, sql, html, css, jquery, javascript, tutorials'; // customize
    $output = '';

    // description
    $seo_desc = get_post_meta($post->ID, 'mm_seo_desc', true);
    $description = get_bloginfo('description', 'display');
    $pagedata = get_post($post->ID);
    if (is_singular()) {
        if (!empty($seo_desc)) {
            $content = $seo_desc;
        } else if (!empty($pagedata)) {
            $content = apply_filters('the_excerpt_rss', $pagedata->post_content);
            $content = substr(trim(strip_tags($content)), 0, 155);
            $content = preg_replace('#\n#', ' ', $content);
            $content = preg_replace('#\s{2,}#', ' ', $content);
            $content = trim($content);
        } 
    } else {
        $content = $description;    
    }
    $output .= '<meta name="description" content="' . esc_attr($content) . '">' . "\n";

    // keywords
    $keys = get_post_meta($post->ID, 'mm_seo_keywords', true);
    $cats = get_the_category();
    $tags = get_the_tags();
    if (empty($keys)) {
        if (!empty($cats)) foreach($cats as $cat) $keys .= $cat->name . ', ';
        if (!empty($tags)) foreach($tags as $tag) $keys .= $tag->name . ', ';
        $keys .= $default_keywords;
    }
    $output .= "\t\t" . '<meta name="keywords" content="' . esc_attr($keys) . '">' . "\n";

    // robots
    if (is_category() || is_tag()) {
        $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
        if ($paged > 1) {
            $output .=  "\t\t" . '<meta name="robots" content="noindex,follow">' . "\n";
        } else {
            $output .=  "\t\t" . '<meta name="robots" content="index,follow">' . "\n";
        }
    } else if (is_home() || is_singular()) {
        $output .=  "\t\t" . '<meta name="robots" content="index,follow">' . "\n";
    } else {
        $output .= "\t\t" . '<meta name="robots" content="noindex,follow">' . "\n";
    }

    // title
    $title_custom = get_post_meta($post->ID, 'mm_seo_title', true);
    $url = ltrim(esc_url($_SERVER['REQUEST_URI']), '/');
    $name = get_bloginfo('name', 'display');
    $title = trim(wp_title('', false));
    $cat = single_cat_title('', false);
    $tag = single_tag_title('', false);
    $search = get_search_query();

    if (!empty($title_custom)) $title = $title_custom;
    if ($paged >= 2 || $page >= 2) $page_number = ' | ' . sprintf('Page %s', max($paged, $page));
    else $page_number = '';

    if (is_home() || is_front_page()) $seo_title = $name . ' | ' . $description;
    elseif (is_singular())            $seo_title = $title . ' | ' . $name;
    elseif (is_tag())                 $seo_title = 'Tag Archive: ' . $tag . ' | ' . $name;
    elseif (is_category())            $seo_title = 'Category Archive: ' . $cat . ' | ' . $name;
    elseif (is_archive())             $seo_title = 'Archive: ' . $title . ' | ' . $name;
    elseif (is_search())              $seo_title = 'Search: ' . $search . ' | ' . $name;
    elseif (is_404())                 $seo_title = '404 - Not Found: ' . $url . ' | ' . $name;
    else                              $seo_title = $name . ' | ' . $description;

    $output .= "\t\t" . '<title>' . esc_attr($seo_title . $page_number) . '</title>' . "\n";

    return $output;
}

完成之后,在上述代码的第三行中 $default_keywords 的值替换为你自己博客的关键词。

然后,在 header.php 中添加以下代码调用函数:

<?php echo basic_wp_seo(); ?>

P.S. 可以根据自己的需要对上述代码进行微调,以达到最佳效果。

以上代码摘自:digwp.com

EOF

文章标签:

发表评论

3T35