亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > CMS > Wordpress > 正文

wordpress中實現嵌套評論回復添加@功能

2024-09-07 00:51:06
字體:
來源:轉載
供稿:網友

構成原理:打開 wp-includes/comment-template.php,查找 Walker_Comment 類,以下展開介紹這 4 個方法.

start_lvl

子菜單列表的開始標簽,默認是 <ul>,在第一個子條目之前生成.

end_lvl

對應 start_lvl 的子菜單列表的結束標簽,默認是 </ul>,在最后一個子條目之后生成.

start_el

條目的前半部分,包括開始符號和評論內容,開始符號是 <div> 或者 <li> (外層是 ol 或 ul 的情況下是 <li>); 評論內容就是評論的相關信息顯示,WordPress 向我們提供了可即用的布局,但也可以通過 callback 方法改變評論內容的結構,調用回調函數的部分代碼示意如下:

  1. function start_el(&$output$comment$depth$args) { 
  2.  $depth++; 
  3.  $GLOBALS['comment_depth'] = $depth
  4.  
  5.  // 如果定義了回調函數, 則調用其回調函數, 并終止后面的處理. 
  6.  if ( !emptyempty($args['callback']) ) { 
  7.   call_user_func($args['callback'], $comment$args$depth); 
  8.   return
  9.  } 
  10.  
  11.  // 如果沒有定義回調函數, 則執行本方法中后面的處理, 生成默認的評論布局. 
  12.  ... 

我們所謂的自定義嵌套回復,就是創建一個 callback 方法,并在 wp_list_comments 方法中調用這個它生成自定義的評論結構.也可以認為是定義一個新的方法,取代 start_el 方法內部的默認布局.

end_el

條目的后半部分,其實就一個結束符號.這里也提供一個名為 end-callback 的回調方法, 原理和 start_el 一樣, 是一個自定義的處理方式. 但是 end-callback 并不常用, 因為 end_el 只生成一個簡單的結束符號, 實在沒必要為此再定義一個方法.我覺得只有在需要復雜的評論結構時, 才有必要用到 end-callback. 如: 要在評論的上方和下方都添加背景圖效果, 評論框內可能需要多一個 DIV 層, 則可能用上 end-callback. 在 callback 方法中以 <div><div> 作為開始, 而 end-callback 中以 </div></div> 結束掉.

舉例說明,下面將以一個嵌套回復的例子來證明上述內容.現有評論嵌套結構如下:

  1. comment (1) 
  2.         comment (1.1)  
  3.         comment (1.2) 
  4.             comment (1.2.1)  
  5.     comment (2) 

依照上述方法,執行順序如下:

  1. start_el (1) 
  2. start_lvl (1) 
  3. start_el (1.1) 
  4. end_el (1.1) 
  5. start_el (1.2) 
  6. start_lvl (1.2) 
  7. start_el (1.2.1) 
  8. end_el (1.2.1) 
  9. end_lvl (1.2) 
  10. end_el (1.2) 
  11. end_lvl (1) 
  12. end_el (1) 
  13. start_el (2) 
  14. end_el (2) 

假設方法配置都是默認的,則代碼如下:

  1. start_lvl 為 <ul> 
  2. end_lvl 為 </ul> 
  3. start_el 為 <li> 和內容部分 
  4. end_el 為 </li> 

又設 “…” 為評論內容,則代碼生成如下:

  1. <li> 
  2.  ... (1) 
  3.  
  4.  <ul> 
  5.   <li> 
  6.    ... (1.1) 
  7.  
  8.   </li> 
  9.   <li> 
  10.    ... (1.2) 
  11.  
  12.    <ul> 
  13.     <li> 
  14.      ... (1.2.1) 
  15.  
  16.     </li> 
  17.    </ul> 
  18.   </li> 
  19.  </ul> 
  20. </li> 
  21. <li> 
  22.  ... (2) 
  23.  
  24. </li> 

好了原理講了下面我們來實現了.

一、添加評論@回復js代碼

js代碼如下,可自行新建js文件調用,也可添加到已有的js文件,代碼所在js文件必須在文章頁面有調用:

  1. /*   
  2. 嵌套評論@回復,添加@鏈接,  
  3. */   
  4.     jQuery(document).ready(function($){         //Begin jQuery     
  5.         $(‘.reply’).click(function() {     
  6.             var atid = ’“#’ + $(this).parent().attr(“id“) + ’”‘;            //獲取當前評論的鏈接地址      
  7.             var atname = $(this).prevAll().find(“.fayan”).text();           //獲取當前評論的姓名    
  8.             $(“#comment”).attr(“value”,’<a href=’ + atid + ’>@’ + atname + ’</a>’ + “:”).focus();   
  9.             });    
  10.         $(‘.cancel-comment-reply a’).click(function() {                     //點擊取消回復評論清空評論框的內容     
  11.             $(“#comment”).attr(“value”,”);   
  12.             }   
  13.             );   
  14.     }) 

注意對照我所調用的相應div 的ID,對應你所要修改的主題,對照性修改!

二、修改CSS代碼

接下來,把子評論的右移去掉(這玩意兒太占手機屏幕了)

.commentlist li.comment ul.children {margin-left:20px;border-top: 0px;}  

把其中的margin-left:20px;刪去,或修改為margin-left:0;

三、清除function函數模板中的沖突函數

如果你的主題添加了評論跳轉代碼,則要修改其中的代碼,避免造成@鏈接跳轉錯誤,可對照如下代碼:

  1. /*評論鏈接跳轉*/      
  2. add_filter(‘get_comment_author_link’, ’add_redirect_comment_link’, 5);      
  3. //add_filter(‘comment_text’, ’add_redirect_comment_link’, 99);      
  4. function add_redirect_comment_link($text = ”){      
  5.     $text=str_replace(‘href=“‘, ’href=”‘.get_option(‘home’).’/?go=’, $text);      
  6.     $text=str_replace(“href=’”, “href=’”.get_option(‘home’).“/?go=”, $text);      
  7.     return $text;      
  8. }      
  9. add_action(‘init’, ’redirect_comment_link’);      
  10. function redirect_comment_link(){      
  11.     $redirect = $_GET['go'];      
  12.     if($redirect){      
  13.         if(strpos($_SERVER['HTTP_REFERER'],get_option(‘home’)) !== false){      
  14.             header(“Location: $redirect”);      
  15.             exit;      
  16.         }      
  17.         else {       
  18. header(“Location: /”);      
  19. exit;      
  20. }      
  21. }      

可以看到其中的第3行已經被我注釋掉了,主要原因就是該行代碼會在評論內容(text)存在的鏈接自動加上go跳轉,我們原來的評論鏈接為:

  1. <a href=“#comment-976″>@XXX</a>    
  2. 其相當于完整鏈接: 
  3. <a href=“/error-sto.html#comment-976″>@XXX</a>   
  4. 當被加上go跳轉后則變成: 
  5. <a href=“/?go=#comment-976″>@XXX</a>   

打開這個鏈接試試,是不是跳轉到首頁去了,這樣的話,@鏈接就失去意義了,為了防止這樣的“悲劇”,我們一定要清除沖突的代碼,給你的@鞏固地位.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩精品免费观看| 国产精品爽爽爽爽爽爽在线观看| 国产91热爆ts人妖在线| 国产精品久久久久久久久借妻| 97在线看免费观看视频在线观看| 国产精品免费小视频| 亚洲激情视频在线| 久久久久久亚洲| 中日韩美女免费视频网址在线观看| 精品国偷自产在线| 欧美日韩裸体免费视频| 国产精品高清免费在线观看| 午夜精品久久久久久久白皮肤| 亚洲欧美中文日韩v在线观看| 日韩理论片久久| 国产精品久久久久久超碰| 永久555www成人免费| 亚洲娇小xxxx欧美娇小| 69国产精品成人在线播放| 欧美亚洲视频在线观看| 日韩精品在线视频美女| 91成人精品网站| 欧美成人精品一区二区| 亚洲欧美在线一区| 青草青草久热精品视频在线观看| 91精品免费久久久久久久久| 久久久久日韩精品久久久男男| 欧美亚洲成人xxx| 色综合久久悠悠| 欧美精品制服第一页| 97超级碰碰碰久久久| 欧美亚洲免费电影| 国模私拍视频一区| 成人精品网站在线观看| 91高潮在线观看| 色yeye香蕉凹凸一区二区av| 国产亚洲欧美日韩精品| 日韩一区二区福利| 久久久久久中文字幕| 国产欧美日韩免费| 国产精品男女猛烈高潮激情| 尤物99国产成人精品视频| 欧美高清在线视频观看不卡| 国产成人久久久精品一区| 国产一区二区三区直播精品电影| 中文字幕自拍vr一区二区三区| 久久天天躁狠狠躁夜夜躁| 久久69精品久久久久久国产越南| 一本色道久久88综合亚洲精品ⅰ| 久久精品视频在线| 亚洲自拍在线观看| 欧洲亚洲妇女av| 欧美大片va欧美在线播放| 欧美日韩一区二区在线播放| 亚洲а∨天堂久久精品喷水| 欧美激情性做爰免费视频| 亚洲毛茸茸少妇高潮呻吟| 国产精品69精品一区二区三区| 欧美性生交大片免网| 国产精品看片资源| 国产一区二区三区在线免费观看| 中国人与牲禽动交精品| 久久久久久久久久av| 欧美人与性动交a欧美精品| 亚洲国产成人一区| 国产成人综合亚洲| 97久久精品人搡人人玩| 琪琪第一精品导航| 欧美日韩午夜视频在线观看| 国产噜噜噜噜久久久久久久久| 欧美猛交免费看| 久久影视三级福利片| 欧美尺度大的性做爰视频| 色婷婷久久av| 日韩欧美在线播放| 亚洲欧美精品伊人久久| 日韩女在线观看| 538国产精品视频一区二区| 夜色77av精品影院| 亚洲男女性事视频| 亚洲a级在线观看| 2021久久精品国产99国产精品| 日本精品视频网站| 日韩在线精品一区| 午夜精品久久久久久99热软件| 亚洲a级在线观看| 91亚洲va在线va天堂va国| 欧美日韩性视频在线| 国产九九精品视频| 亚洲另类图片色| 亚洲第一网站免费视频| 亚洲精品动漫100p| 欧美老女人性生活| 午夜精品久久久久久99热| 亚洲缚视频在线观看| 久久久亚洲成人| 色偷偷综合社区| 国产一区二中文字幕在线看| 性欧美视频videos6一9| 久久6精品影院| 日韩精品福利在线| 欧美成人黑人xx视频免费观看| 久久视频精品在线| 美女福利视频一区| 亚洲精品国产综合区久久久久久久| 91精品国产综合久久香蕉的用户体验| 日韩成人在线播放| 欧美日韩视频免费播放| 国内精品视频一区| 成人国产精品一区| 欧洲精品毛片网站| 久久久爽爽爽美女图片| 精品亚洲va在线va天堂资源站| 久久久99久久精品女同性| 亚洲福利视频在线| 国产精品久久电影观看| 亚洲人成在线观看网站高清| 精品久久久久久久久久久久久久| 精品国偷自产在线视频99| 亚洲高清不卡av| 中文字幕综合在线| 97精品久久久中文字幕免费| 成人夜晚看av| 国产精品自产拍在线观看| 最近中文字幕mv在线一区二区三区四区| 午夜剧场成人观在线视频免费观看| 国产精品久久久久久网站| 成人激情在线播放| 久久韩国免费视频| 亚洲视频999| 在线不卡国产精品| 亚洲国产成人精品女人久久久| 国产精品久久久久7777婷婷| 国产精品嫩草视频| 中文字幕亚洲欧美一区二区三区| 91精品国产99| 久久久99久久精品女同性| 精品亚洲一区二区三区在线观看| 国模私拍一区二区三区| 精品福利在线观看| 久久久精品一区二区三区| 成人免费网站在线| 国产亚洲精品va在线观看| 91九色国产视频| 国产精品网站入口| 日韩中文字幕精品视频| 欧美整片在线观看| 亚洲资源在线看| 一区二区av在线| 亚洲白拍色综合图区| 国产精品自产拍高潮在线观看| 日韩电视剧在线观看免费网站| 国产在线视频一区| 国产不卡av在线| 亚洲人成网站色ww在线| 日韩在线视频导航| 亚洲欧美激情另类校园| 色噜噜国产精品视频一区二区| 亚洲影视九九影院在线观看| 亚洲第一网站男人都懂| 国产97在线观看| 少妇高潮久久久久久潘金莲| 成人网在线观看| 日本高清久久天堂|