最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
WordPress 对特点用户隐藏特定的文章
时间:2022-06-25 19:02:56 编辑:袖梨 来源:一聚教程网
具体需求,请参看:jeff网友的留言,这里不再重复。
对seo/seo.html" target="_blank">搜索引擎
直接上PHP代码,放到当前主题的functions.php中即可使用(用UTF-8编码另存为):
代码如下 | 复制代码 |
/ 文章/页面编辑页面添加选项 function ludouse_add_custom_box() { if (function_exists('add_meta_box')) { add_meta_box('ludou_allow_se', '搜索引擎', 'ludou_allow_se', 'post', 'side', 'low'); add_meta_box('ludou_allow_se', '搜索引擎', 'ludou_allow_se', 'page', 'side', 'low'); } } add_action('add_meta_boxes', 'ludouse_add_custom_box'); function ludou_allow_se() { global $post; //添加验证字段 wp_nonce_field('ludou_allow_se', 'ludou_allow_se_nonce'); $meta_value = get_post_meta($post->ID, 'ludou_allow_se', true); if($meta_value) echo 'checkbox" checked="checked" value="1" /> 屏蔽搜索引擎'; else echo ' 屏蔽搜索引擎'; } // 保存选项设置 function ludouse_save_postdata($post_id) { // 验证 if ( !isset( $_POST['ludou_allow_se_nonce'])) return $post_id; $nonce = $_POST['ludou_allow_se_nonce']; // 验证字段是否合法 if (!wp_verify_nonce( $nonce, 'ludou_allow_se')) return $post_id; // 判断是否自动保存 if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return $post_id; // 验证用户权限 if ('page' == $_POST['post_type']) { if ( !current_user_can('edit_page', $post_id)) return $post_id; } else { if (!current_user_can('edit_post', $post_id)) return $post_id; } // 更新设置 if(!empty($_POST['ludou-allow-se'])) update_post_meta($post_id, 'ludou_allow_se', '1'); else update_post_meta($post_id, 'ludou_allow_se', '0'); } add_action('save_post', 'ludouse_save_postdata'); // 对于设置不允许抓取文章和页面 // 禁止搜索引擎抓取,返回404 function do_ludou_allow_se() { // 本功能只对文章和页面有效 if(is_singular()) { global $post; $is_robots = 0; $ludou_allow_se = get_post_meta($post->ID, 'ludou_allow_se', true); if(!empty($ludou_allow_se)) { // 下面是搜索引擎Agent判断关键字数组 // 有点简单,自己优化一下吧 $bots = array( 'Baiduspider', 'Googlebot', 'sogou spider', 'Sogou web spider', 'YodaoBot', 'Bingbot', 'Slurp', 'MSNBot', 'googlebot-image', 'googlebot-mobile', 'yahoo-blogs', 'Slurp', 'psbot', 'Yandex', 'Yeti', 'blogsearch', 'EasouSpider', 'Mediapartners-Google' ); $useragent = $_SERVER['HTTP_USER_AGENT']; foreach ($bots as $lookfor) { if (stristr($useragent, $lookfor) !== false) { $is_robots = 1; break; } } // 如果当前文章/页面禁止搜索引擎抓取,返回404 if($is_robots) { status_header(404); exit; } } } } add_action('wp', 'do_ludou_allow_se'); |
使用方法
成功添加以上代码到当前主题的functions.php后,我们就可以正常使用了,完全傻瓜式。在WordPress后台文章和页面的编辑页面,右边栏底部我们可以看到这样的选框:
如果当前文章/页面需要禁止搜索引擎抓取,勾选即可。
对游客隐藏部分文章
言归正传,说说实现的方法。打开你主题目录下的 index.php,查找类似代码:
代码如下 | 复制代码 |
while (have_posts()) : the_post(); |
将其改成:
代码如下 | 复制代码 |
while (have_posts()) : the_post(); if (get_post_meta($post->ID, "hide", true) == 1 && !$user_ID) { continue; } |
该更改只针对首页,如果你想让所有归档页(分类页、标签页和日期页等)也对游客隐藏文章,可以照以上方法对主题目录下的archive.php进行更改,如果主题文件夹里还有category.php、tag.php、author.php、date.php和search.php,也对其更改!
相关文章
- 人们熟悉的寄居蟹属于以下哪种分类 神奇海洋11月21日答案 11-21
- 第五人格11.22共研服有什么更新 11月22日共研服更新内容介绍 11-21
- 原神恰斯卡怎么培养 11-21
- 无期迷途四星装束是谁 11-21
- 王者荣耀帝丹高中校服怎么获得 11-21
- 光遇姆明季后续版本怎么玩 11-21