A-A+

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

2015年11月17日 灵犀一指 查询并展示WordPress文章是否被收录,仅管理员可见已关闭评论 阅读 790 人 次

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

纯代码部署方法

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

  1. function baidu_check($url){
  2. global $wpdb;
  3. $post_id = ( null === $post_id ) ? get_the_ID() : $post_id;
  4. $baidu_record = get_post_meta($post_id,'baidu_record',true);
  5. if( $baidu_record != 1){
  6. $url='http://www.baidu.com/s?wd='.$url;
  7. $curl=curl_init();
  8. curl_setopt($curl,CURLOPT_URL,$url);
  9. curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
  10. $rs=curl_exec($curl);
  11. curl_close($curl);
  12. if(!strpos($rs,'没有找到')){
  13. if( $baidu_record == 0){
  14. update_post_meta($post_id, 'baidu_record', 1);
  15. } else {
  16. add_post_meta($post_id, 'baidu_record', 1, true);
  17. }
  18. return 1;
  19. } else {
  20. if( $baidu_record == false){
  21. add_post_meta($post_id, 'baidu_record', 0, true);
  22. }
  23. return 0;
  24. }
  25. } else {
  26. return 1;
  27. }
  28. }
  29. function baidu_record() {
  30. if(baidu_check(get_permalink()) == 1) {
  31. echo '<a target="_blank" title="点击查看" rel="external nofollow" href="http://www.baidu.com/s?wd='.get_the_title().'">百度已收录</a>';
  32. } else {
  33. echo '<a style="color:red;" rel="external nofollow" title="点击提交,谢谢您!" target="_blank" href="http://zhanzhang.baidu.com/sitesubmit/index?sitename='.get_permalink().'">百度未收录</a>';
  34. }
  35. }

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

  1. <?php if( current_user_can( 'manage_options' ) ) {
  2. baidu_record();
  3. } ?>

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

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

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

补充说明:

文章末尾的插件,默认是可以选择展示给登陆用户或者全部用户,状态显示在文章末尾。

3.1、改为只显示给管理员,将上面提到的current_user_can( 'manage_options'段落按照下面改正:

sss

3.2、我喜欢显示到标题栏下方:

ss

修改方法:找到single.php,定位修改如下:

ss

OK,have fun!

评论已关闭!