/**
創(chuàng)新互聯(lián)公司服務(wù)項(xiàng)目包括蒼溪網(wǎng)站建設(shè)、蒼溪網(wǎng)站制作、蒼溪網(wǎng)頁(yè)制作以及蒼溪網(wǎng)絡(luò)營(yíng)銷(xiāo)策劃等。多年來(lái),我們專(zhuān)注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,蒼溪網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶(hù)以成都為中心已經(jīng)輻射到蒼溪省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶(hù)的支持與信任!
*?WordPress?添加額外選項(xiàng)字段到常規(guī)設(shè)置頁(yè)面
*/
$new_general_setting?=?new?new_general_setting();
class?new_general_setting?{
function?new_general_setting(?)?{
add_filter(?'admin_init'?,?array(?$this?,?'register_fields'?)?);
}
function?register_fields()?{
register_setting(?'general',?'favorite_color',?'esc_attr'?); add_settings_field('fav_color',?'label?for="favorite_color"'.__('最喜歡的顏色'?).'/label'?,?array($this,?'fields_html')?,?'general'?); }
function?fields_html()?{
$value?=?get_option(?'favorite_color',?''?); echo?'input?type="text"?id="favorite_color"?name="favorite_color"?value="'?.?$value?.?'"?/'; }
}
把A表指定的x字段數(shù)據(jù)更新到B表的y字段”的話(huà),我猜你沒(méi)弄清楚wp_posts表和wp_postmeta表是一對(duì)多的關(guān)系,你看下這個(gè)SQL語(yǔ)句是否可以?
UPDATE wp_posts p, wp_postmeta pm SET pm.meta_value = p.post_title WHERE pm.post_id = p.ID AND pm.meta_key = "title";
這里最后 pm.meta_key = "title" 的 title 是 meta_value 對(duì)應(yīng)的 meta_key 的值。
自定義域的值都是寫(xiě)入 post_meta 的,你寫(xiě)入 posts 與 wordpress 的開(kāi)發(fā)理念違背
能實(shí)現(xiàn)功能就行,不明白你為什么搞這么復(fù)雜
1、 在comments.php評(píng)論表單中添加自己想要的字段,如:
p
input type="text" name="tel" id="tel" size="22" tabindex="4" /
label for="tel"電話(huà)/label
/p
tabindex 這個(gè)屬性按照從小到大排,為什么要這樣?你可以自己試試….
2、如果評(píng)論表單是使用系統(tǒng)自帶的,那么請(qǐng)用以下方法添加表單字段,如果不是,請(qǐng)略過(guò)
add_filter('comment_form_default_fields','comment_form_add_ewai');
function comment_form_add_ewai($fields) {
$label1 = __( '國(guó)家/地區(qū)' );
$label2 = __( 'Skype賬號(hào)' );
$label3 = __( '電話(huà)' );
$label4 = __( '傳真' );
$label5 = __( '地址' );
$value1 = isset($_POST['guojia']) ? $_POST['guojia'] : false;
$value2 = isset($_POST['skype']) ? $_POST['skype'] : false;
$value3 = isset($_POST['tel']) ? $_POST['tel'] : false;
$value4 = isset($_POST['fax']) ? $_POST['fax'] : false;
$value5 = isset($_POST['address']) ? $_POST['address'] : false;
$fields['guojia'] =HTML
p
label for="guojia"{$label1}/label
input id="guojia" name="guojia" type="text" value="{$value1}" size="30" /
/p
HTML;
return $fields;
}
3、 接收表單字段并寫(xiě)入數(shù)據(jù)庫(kù)
在主題目錄的 functions.php添加以下代碼
add_action('wp_insert_comment','wp_insert_tel',10,2);
function wp_insert_tel($comment_ID,$commmentdata) {
$tel = isset($_POST['tel']) ? $_POST['tel'] : false;
//_tel 是存儲(chǔ)在數(shù)據(jù)庫(kù)里的字段名字,取出數(shù)據(jù)的就會(huì)用到
update_comment_meta($comment_ID,'_tel',$tel);
}
這兩步就可以將數(shù)據(jù)寫(xiě)入數(shù)據(jù)庫(kù)了,不信你試試看
add_action()參數(shù)中的10和2分別表示該函數(shù)執(zhí)行的優(yōu)先級(jí)是10(默認(rèn)值,值越小優(yōu)先級(jí)越高),該函數(shù)接受2個(gè)參數(shù)。
4、在后臺(tái)顯示額外字段
前面兩步只是接收和寫(xiě)入到數(shù)據(jù)庫(kù),那么要怎么在后臺(tái)評(píng)論列表中顯示呢?將以下代碼復(fù)制到主題目錄的functions.php 中:
add_filter( 'manage_edit-comments_columns', 'my_comments_columns' );
add_action( 'manage_comments_custom_column', 'output_my_comments_columns', 10, 2 );
function my_comments_columns( $columns ){
$columns[ '_tel' ] = __( '電話(huà)' ); //電話(huà)是代表列的名字
return $columns;
}
function output_my_comments_columns( $column_name, $comment_id ){
switch( $column_name ) {
case "_tel" :
echo get_comment_meta( $comment_id, '_tel', true );
break;
}
如果要在前臺(tái)的留言列表中調(diào)用,就用以下代碼,_tel就是你在數(shù)據(jù)庫(kù)中存儲(chǔ)的字段名字
?php
$tel = get_comment_meta($comment-comment_ID,'_tel',true);
if( !empty($tel)){
echo "電話(huà)".$tel;
}
?
5、 大功告成,看看后臺(tái)的評(píng)論列表,是不是多了一列電話(huà),那樣的話(huà)就沒(méi)錯(cuò)了。
6、如果要移除某一個(gè)自帶的表單字段,可以使用以下代碼
function tel_filtered($fields){
if(isset($fields['tel']))
unset($fields['tel']);
return $fields;
}
add_filter('comment_form_default_fields', 'tel')