麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > CMS > Wordpress > 正文

給WordPress評論表單增加字段的方法

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

在一般情況下wordpress博客評論不需要增加什么字段了,但今天給一個客戶做的他希望可以增加聯系人電話功能了.

問題描述:用 wp 的友友門都知道,wordpress評論表單的字段都只有4個,昵稱、郵箱、網址、內容,評論是存在wp_comments表中的,如果要加上其它額外字段就得另尋它法了,例如:tel電話字段.

解決思路:Wp_comments 也有一個與之對應的meta表,叫wp_commentmeta,Posts文章表可以用postmeta存儲一些額外的信息,那么comment也可以用commentmeta存儲額外的評論字段,如果你裝了多說評論插件,那么你再看看wp_commentmeta表,多說也是這么存儲內容的,這個表一共有四個字段:meta_id、comment_id、meta_key、meta_value.

存儲的形式就是上面那樣的,duoshuo_post_id 就是字段的名稱,meta_value存儲的就是內容.

如何向評論表單添加自定義字段?

1、在comments.php評論表單中添加自己想要的字段,如:

  1. <p> 
  2.     <input type="text" name="tel" id="tel" size="22" tabindex="4" /> 
  3.     <label for="tel">電話</label> 
  4. </p> 

tabindex 這個屬性按照從小到大排,為什么要這樣?你可以自己試試….

2、如果評論表單是使用系統自帶的,那么請用以下方法添加表單字段,如果不是,請略過

  1. add_filter('comment_form_default_fields','comment_form_add_ewai'); 
  2. function comment_form_add_ewai($fields) { 
  3.     $label1 = __( '國家/地區' ); 
  4.     $label2 = __( 'Skype賬號' ); 
  5.     $label3 = __( '電話' ); 
  6.     $label4 = __( '傳真' ); 
  7.     $label5 = __( '地址' ); 
  8.     $value1 = isset($_POST['guojia']) ? $_POST['guojia'] : false; 
  9.     $value2 = isset($_POST['skype']) ? $_POST['skype'] : false; 
  10.     $value3 = isset($_POST['tel']) ? $_POST['tel'] : false; 
  11.     $value4 = isset($_POST['fax']) ? $_POST['fax'] : false; 
  12.     $value5 = isset($_POST['address']) ? $_POST['address'] : false; 
  13.     $fields['guojia'] =<<<HTML 
  14.     <p> 
  15.     <label for="guojia">{$label1}</label> 
  16.     <input id="guojia" name="guojia" type="text" value="{$value1}" size="30" /> 
  17.     </p> 
  18.     HTML; 
  19.     return $fields

3、接收表單字段并寫入數據庫

在主題目錄的 functions.php添加以下代碼:

  1. add_action('wp_insert_comment','wp_insert_tel',10,2); 
  2. function wp_insert_tel($comment_ID,$commmentdata) { 
  3.     $tel = isset($_POST['tel']) ? $_POST['tel'] : false; 
  4.     //_tel 是存儲在數據庫里的字段名字,取出數據的就會用到 
  5.     update_comment_meta($comment_ID,'_tel',$tel); 

這兩步就可以將數據寫入數據庫了,不信你試試看

add_action()參數中的10和2分別表示該函數執行的優先級是10(默認值,值越小優先級越高),該函數接受2個參數.

4、在后臺顯示額外字段

前面兩步只是接收和寫入到數據庫,那么要怎么在后臺評論列表中顯示呢?將以下代碼復制到主題目錄的functions.php 中:

  1. add_filter( 'manage_edit-comments_columns''my_comments_columns' ); 
  2. add_action( 'manage_comments_custom_column''output_my_comments_columns', 10, 2 ); 
  3. function my_comments_columns( $columns ){ 
  4.     $columns'_tel' ] = __( '電話' );        //電話是代表列的名字 
  5.     return $columns
  6. function  output_my_comments_columns( $column_name$comment_id ){ 
  7.     switch$column_name ) { 
  8.     case "_tel" : 
  9.     echo get_comment_meta( $comment_id'_tel', true ); 
  10.     break

如果要在前臺的留言列表中調用,就用以下代碼,_tel就是你在數據庫中存儲的字段名字:

  1. <?php 
  2. $tel = get_comment_meta($comment->comment_ID,'_tel',true); 
  3. if( !emptyempty($tel)){ 
  4.     echo "電話".$tel
  5. ?> 

5、大功告成,看看后臺的評論列表,是不是多了一列電話,那樣的話就沒錯了.

6、如果要移除某一個自帶的表單字段,可以使用以下代碼:

  1. function tel_filtered($fields){ 
  2.     if(isset($fields['tel'])) 
  3.     unset($fields['tel']); 
  4.     return $fields
  5. add_filter('comment_form_default_fields''tel'

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 日韩精品一区二区三区中文 | 亚洲欧美不卡视频 | 免费在线观看亚洲 | 午夜久久电影 | 久久亚洲精品久久国产一区二区 | 午夜国产小视频 | 黄色大片网站在线观看 | 日韩字幕在线 | 高清做爰免费无遮网站挡 | 嫩呦国产一区二区三区av | 黄视频免费在线 | 免费国产在线视频 | 欧美成人免费看 | 国产一级毛片av | 欧美日韩免费看 | 国产高潮好爽受不了了夜色 | 极品美女一级毛片 | 国产91一区二区三区 | 国产免费永久在线观看 | 男女生羞羞视频网站在线观看 | 久久久av亚洲男天堂 | 91精品国产九九九久久久亚洲 | 91av在线影院 | 国产精品99免费视频 | 日韩高清电影 | japanese javhd | 最新福利在线 | 色蜜桃av| 女人裸体让男人桶全过程 | 免费a视频在线观看 | 一区二区免费网站 | 精品三级内地国产在线观看 | 一本一道久久久a久久久精品91 | 国产无遮挡一级毛片 | 午夜啪视频 | 香蕉成人在线视频 | 羞羞色在线观看 | 天堂成人一区二区三区 | 午夜精品久久久久久久96蜜桃 | 久久国产精品影视 | 永久免费毛片 |