wordpress 指定链接加 nofollow

Mr.Wu 119 0

wordpress 后台链接加 nofollow 功能

将下面的代码加入到主题的 functons.php 文件末尾

/**
 * 以下两个钩子是为了保证代码只在links页面显示
 * 如果你想了解更多load-$page action的信息,访问http://codex.wordpress.org/Adding_Administration_Menus#Page_Hook_Suffix
 */
add_action('load-link.php', 'sola_blogroll_nofollow');
add_action('load-link-add.php', 'sola_blogroll_nofollow');
function sola_blogroll_nofollow() {
    //通过action add_meta_boxes创建我们需要的Meta Box
    add_action('add_meta_boxes', 'sola_blogroll_add_meta_box', 1, 1);
    //通过filter pre_link_rel将数据保存
    add_filter('pre_link_rel', 'sola_blogroll_save_meta_box', 10, 1);
}
//创建Nofollow Meta Box
function sola_blogroll_add_meta_box() {
    //翻译成中文就是,创建一个名叫Blogroll Nofollow的Meta Box,放在link页面的右侧边栏,Meta Box的结构
    //由函数sola_blogroll_inner_meta_box产生
    add_meta_box('sola_blogroll_nofollow_div', __('Nofollow标签'), 'sola_blogroll_inner_meta_box', 'link', 'side');
}
//输出Meta Box的HTML结构
function sola_blogroll_inner_meta_box($post) {
    $bookmark = get_bookmark($post->ID, 'ARRAY_A');
    if (strpos($bookmark['link_rel'], 'nofollow') !== FALSE)
        $checked = ' checked="checked"';
    else
        $checked = '';
    ?>
    <label for="sola_blogroll_nofollow_checkbox"><?php echo __('是否添加Nofollow标签?'); ?></label>
    <input value="1" id="sola_blogroll_nofollow_checkbox" name="sola_blogroll_nofollow_checkbox"<?php echo $disabled; ?> type="checkbox"<?php echo $checked; ?> /> <?php echo $message; ?>
    <?php
}
//保存用户的选择
function sola_blogroll_save_meta_box($link_rel) {
    $rel = trim(str_replace('nofollow', '', $link_rel));
    if ($_POST['sola_blogroll_nofollow_checkbox'])
        $rel .= ' nofollow';
    return trim($rel);
}

页面调用链接

1.复制一份新的页面模板文件到主题根目录,并更名 *-links.php

2.在该文件中添加短代码调用链接

// 添加友链短代码
function mk_linklist($atts, $content = null) {
    extract(shortcode_atts(array( 'catid' => '' ) , $atts));
    $html = '<ul class="links-list clear-fix">';
    $default_ico = get_template_directory_uri().'/images/default_favicon.ico';
    if($catid) {
        $bookmarks = get_bookmarks('title_li=&orderby=link_rating&order=DESC&category=' . $catid);
    } else {
        $bookmarks = get_bookmarks('title_li=&orderby=link_rating&order=DESC');
    }
    if(!empty($bookmarks)) {
        foreach($bookmarks as $bookmark) {
            // var_dump($bookmark);
            $link_ico = $bookmark->link_image;
            if(!$link_ico) {
                $favicon_api = mk_theme_option('favicon_api');
                if($favicon_api) {
                    // 只能获取 favicon
                    $link_url = $bookmark->link_url;
                    $link_url = str_replace(array('http://', 'https://', '//'), '', $link_url);
                    $link_ico = $favicon_api.$link_url;
                } else {
                    $link_ico = $bookmark->link_url.'/favicon.ico';
                }
            }
            
                if (strpos($bookmark->link_rel, 'nofollow') !== FALSE)
                                $html .= '
                                    <li>
                                        <img class="no-error" src="'.$link_ico.'" onerror="onerror=null;src=\''.$default_ico.'\'"><a class="links" 
                                          href="'.$bookmark->link_url.'" title="'.$bookmark->link_notes.'" target="_blank" rel="nofollow" no-jump-page>'.$bookmark->link_name.'</a>
                                    </li>';
                else
                               $html .= '
                                    <li>
                                        <img class="no-error" src="'.$link_ico.'" onerror="onerror=null;src=\''.$default_ico.'\'"><a class="links" 
                                          href="'.$bookmark->link_url.'" title="'.$bookmark->link_notes.'" target="_blank" no-jump-page>'.$bookmark->link_name.'</a>
                                    </li>';


/*
不区分nofollow
 */
/* 
$html .= '
<li>
    <img class="no-error" src="'.$link_ico.'" onerror="onerror=null;src=\''.$default_ico.'\'"><a class="links" 
      href="'.$bookmark->link_url.'" title="'.$bookmark->link_notes.'" target="_blank" no-jump-page>'.$bookmark->link_name.'</a>
</li>';*/
        }
    }
    $html .= '</ul>';
    return $html;
}
add_shortcode('linklist', 'mk_linklist');

3.给链接创建分类目录

4.后台创建页面,调用友情链接

调用代码:[linklist catid="374] [/linklist] 其中 catid 后的值是链接分类目录的ID

5.根据情况添加链接,区分是否加 nofollow 属性

6.访问页面查看效果

广告

打赏
发表评论 取消回复
表情 图片 链接 代码

分享
微信
微博
QQ