查询并展示Wordpress文章是否被收录,仅管理员可见

Wordpress 2015-04-03 15960℃ 24 0

前一段时间就看到这个不错的功能了,站长可以方便的看到自己辛辛苦苦写的文章是否被收录,不过我在网上看到的代码都有一个不盒常理的地方,为什么要给用户看你的文章是否被收录呢?所以我改动了一个地方,让非管理员用户看不到是否被收录。

效果预览

查询并展示Wordpress文章是否被收录01查询并展示Wordpress文章是否被收录01 查询并展示Wordpress文章是否被收录02查询并展示Wordpress文章是否被收录02

纯代码部署方法

1、编辑WordPress主题目录下的functions.php文件,在最后一个?>标签之前,添加如下代码并保存:

function baidu_check($url) {
    global $wpdb;
    $post_id = (null === $post_id) ? get_the_ID() : $post_id;
    $baidu_record = get_post_meta($post_id, 'baidu_record', true);
    if ($baidu_record != 1) {
        $url = 'http://www.baidu.com/s?wd=' . $url;
        $curl = curl_init();
        curl_setopt($curl, CURLOPT_URL, $url);
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        $rs = curl_exec($curl);
        curl_close($curl);
        if (!strpos($rs, '没有找到')) {
            if ($baidu_record == 0) {
                update_post_meta($post_id, 'baidu_record', 1);
            } else {
                add_post_meta($post_id, 'baidu_record', 1, true);
            }
            return 1;
        } else {
            if ($baidu_record == false) {
                add_post_meta($post_id, 'baidu_record', 0, true);
            }
            return 0;
        }
    } else {
        return 1;
    }
}
function baidu_record() {
    if (baidu_check(get_permalink()) == 1) {
        echo '百度已收录';
    } else {
        echo '百度未收录';
    }
}

2、编辑WordPress主题下的文章模板(一般是single.php或者content.php),在想要显示收录结果的位置添加如下代码并保存:

<?php if( current_user_can( 'manage_options' ) ) {
baidu_record();
} ?>

current_user_can()可以根据不同角色拥有的权限来判断用户角色,具体的用户权限,可以查看WordPress的官方文档。

插件版

1、如果你嫌代码版麻烦可以使用插件。

相关插件地址:https://wordpress.org/plugins/wp-baidu-record/

小结

没有小结。

评论 (24)

  • 不太懂被收录的价值……
    以及我在后台都勾选了“建议搜索引擎不索引本站”功能

    回复
    • emblog也是差不懂,这代码重点是中间部分,不依赖WordPress

      回复
Top