說到隱藏部分文章內容,這種做法常見於論壇,在 WordPress 部落格程式中用得其實並不廣泛。當然,這也與兩者的使用者群體以及定位不同;論壇經常設定部分內容隱藏、內容登陸、回覆可見等限制,主要是為了吸引使用者註冊,而對於 WordPress 博主而言,這個目的並不是很強烈,所以對這個功能的需求也相對小很多。但是,隨著 WordPress 的盛行,使用 WordPress 建站的型別以及用途越來越多元化,而 WordPress 本帖隱藏的內容需要回復才可以瀏覽等這些功能也能起到一定的作用,下面就分享下 2 種簡單的方法來實現這個功能!

一、透過修改程式碼實現
個人覺得 WordPress 外掛來實現是很簡單方法,但是大家都知道 WordPress 外掛安裝過多的話,不僅會影響網站的整體訪問速度,同時網路上的免費 WordPress 外掛安全性也有待考量,如果你不患有程式碼恐懼症,還是自己倒騰吧,其實操作起來也很簡單!只需要將以下隱藏內容回覆可見程式碼加入到當前使用的主題的 functions.php 檔案裡即可。
if ($current_user->ID) {
$email = $current_user->user_email;
} else if (isset($_COOKIE['comment_author_email_'.COOKIEHASH])) {
$email = $_COOKIE['comment_author_email_'.COOKIEHASH];
}
$ereg = "^[_.a-z0-9]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,5}$";
if (eregi($ereg, $email)) {
global $wpdb;
global $id;
$comments = $wpdb->get_results("SELECT * FROM $wpdb->comments WHERE comment_author_email = '".$email."' and comment_post_id='".$id."'and comment_approved = '1'");
if ($comments) {
$stats = 'show';
}
}
$admin_email = "admin@admin.com"; //博主 Email, 博主直接檢視
if ($email == $admin_email) {
$stats = 'show';
}
$hide_notice = '<div style="text-align:center;border:1px dashed #FF9A9A;padding:8px;margin:10px auto;color:#FF6666;"> 溫馨提示:此處內容需要<a href="'.%20get_permalink().'#respond" title="評論本文"> 評論本文</a> 後,<a href="" title="重新整理"> 重新整理本頁</a> 才能檢視。</div>';
if( $stats == 'show' ){
$content = str_replace($hide_words[0], $hide_words[1], $content);
}else{
$content = str_replace($hide_words[0], $hide_notice, $content);
}
}
return $content;
}
add_filter('the_content', 'reply');
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
////回覆可見///// functionreply($content){ if(preg_match_all('/<!--reply start-->([sS]*?)<!--reply end-->/i',$content,$hide_words)){ $stats='hide'; global$current_user; get_currentuserinfo(); if($current_user->ID){ $email=$current_user->user_email; }elseif(isset($_COOKIE['comment_author_email_'.COOKIEHASH])){ $email=$_COOKIE['comment_author_email_'.COOKIEHASH]; } $ereg="^[_.a-z0-9]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,5}$"; if(eregi($ereg,$email)){ global$wpdb; global$id; $comments=$wpdb->get_results("SELECT * FROM $wpdb->comments WHERE comment_author_email = '".$email."' and comment_post_id='".$id."'and comment_approved = '1'"); if($comments){ $stats='show'; } } $admin_email="admin@admin.com";//博主 Email, 博主直接檢視 if($email==$admin_email){ $stats='show'; } $hide_notice='<div style="text-align:center;border:1px dashed #FF9A9A;padding:8px;margin:10px auto;color:#FF6666;"> 溫馨提示:此處內容需要<a href="http://'/spanspan./spanspanget_permalink/spanspan(/spanspan)/spanspan./spanspan'#respond" title="評論本文"> 評論本文</a> 後,<a href="" title="重新整理"> 重新整理本頁</a> 才能檢視。</div>'; if($stats=='show'){ $content=str_replace($hide_words[0],$hide_words[1],$content); }else{ $content=str_replace($hide_words[0],$hide_notice,$content); } } return$content; } add_filter('the_content','reply'); |
然後開啟你的 WordPress 後臺——外觀——編輯,找到右側的 funtion.php——點選開啟,然後把上面的程式碼黏貼到 function.php 的最後——點選更新
在發表博文,在你想要隱藏的某部分內容中加入
<!--reply start--> 隱藏內容<!--reply end--> 【需要你使用程式碼模式中輸入】
PS:(1) 請將管理員的 E-mail 改成自己管理賬戶的 E-mail,這樣你可以不用回覆就可見。
(2) 另外,目前 BUG 是,使用多說等評論外掛無效,只支援主題內建留言。
二、透過 WordPress 外掛實現
(1) 效果預覽
其實隱藏部分內容還是挺簡單的!
(2) 安裝方法:
1. 直接在 WordPress 後臺外掛搜尋安裝 「login to view all」 或者去 WordPress 官網下載外掛,解壓縮,你將會看到一個資料夾 login-to-view-all,然後將其放置到外掛目錄下,外掛目錄通常是 /wp-content/plugins/
2. 在後臺對應的外掛管理頁啟用該外掛 Login to view all
4. 完成
(3) 使用說明:
1. 在 WordPress 後臺編輯文章的時候,切換到 HTML 模式,選中你要隱藏的內容,點選按鈕 loginview 即可用
<!--loginview start--> 隱藏內容<!--loginview end-->
將隱藏內容括起來;使用這個標籤的好處是,你停用本外掛後,該標籤不會被顯示出來。
2. 這樣未登入的使用者瀏覽文章的時候,將無法閱讀隱藏的內容。