国产美女裸身网站免费观看视频,最新精品国自产拍福利,影音先锋av色噜噜影院,亚洲成av人无码影片

專業(yè)WORDPRESS主題設(shè)計(jì)制作

add_meta_box()函數(shù)(add_months函數(shù))

發(fā)布于: 2022-08-19

add_meta_box()函數(shù)是被用來(lái)在文章編輯等頁(yè)面添加一個(gè)設(shè)置的區(qū)域的函數(shù)。

創(chuàng)建的文章類型默認(rèn)的僅有標(biāo)題、作者、分類、標(biāo)簽、日期和評(píng)論,這些也許對(duì)博客已經(jīng)足夠使用了,但是對(duì)于產(chǎn)品類型的文章來(lái)說(shuō),不僅僅需要標(biāo)題和正文,還需要單獨(dú)設(shè)置一些其它的參數(shù),如產(chǎn)品價(jià)格、產(chǎn)品型號(hào)、規(guī)格大小等,那么就需要給文章類型添加Meta Box,通俗點(diǎn)理解就是自定義字段表單,下面就來(lái)以實(shí)例講解下這個(gè)函數(shù)的用法。

語(yǔ)法結(jié)構(gòu)

<?php add_meta_box(
    $id, 
    $title, 
    $callback, 
    $post_type, 
    $context, 
    $priority, 
    $callback_args
); 
?>

參數(shù)

$id(字符串)(必需)字段id,唯一
$title(字符串)(必需)標(biāo)題名稱,顯示在文章編輯頁(yè)面
$callback(回調(diào))(必需)回調(diào)函數(shù)
$post_type(字符串)(必需)文章類型
$context(字符串)(可選)顯示位置,文章編輯頁(yè)面包括’normal’, ‘side’, and ‘advanced’的形式,Menus meta boxes僅用’side’的形式
$priority(字符串)(可選)優(yōu)先級(jí),默認(rèn)值: ‘default’
$callback_args(數(shù)組)(可選)傳遞到 callback 函數(shù)的參數(shù)。callback 函數(shù)將接收 $post 對(duì)象和其他由這個(gè)變量傳遞的任何參數(shù)。

實(shí)例

add_action( 'add_meta_boxes', 'product_price' );
function product_price() {
    add_meta_box(
        'product_price',
        '產(chǎn)品價(jià)格',
        'product_price_meta_box',
        'store',
        'side',
        'low'
    );
}

創(chuàng)建回調(diào)函數(shù)product_price_meta_box
配置參數(shù)里面指定了回調(diào)函數(shù)product_price_meta_box,需要在這個(gè)函數(shù)里面創(chuàng)建表單,

隱藏的自定義字段

插件/主題開發(fā)人員如果需要用自定義字段來(lái)保存插件或模板相關(guān)參數(shù),會(huì)發(fā)現(xiàn)WordPress不會(huì)在頁(yè)面/文章編輯頁(yè)的自定義字段列表上顯示以”_”(下劃線)開始的關(guān)鍵字。這樣就可以在自定義參數(shù)中將下劃線作為第一個(gè)字符,這些設(shè)置將按自定義字段被保留,但卻不會(huì)在管理者用戶界面的自定義字段中顯示出來(lái)。

function product_price_meta_box($post) {
    // 創(chuàng)建臨時(shí)隱藏表單,為了安全
    wp_nonce_field( 'product_price_meta_box', 'product_price_meta_box_nonce' );
    // 獲取之前存儲(chǔ)的值
    $value = get_post_meta( $post->ID, '_product_price', true );
    ?>
    <label for="product_price"></label>
    ? ?<input style="width:180px" type="text" id="product_price" name="product_price" value="<?php echo esc_attr( $value ); ?>" placeholder="輸入產(chǎn)品價(jià)格">
    ? ?<span>價(jià)格</span>
    <?php
}

提示:添加上面代碼后,新建文章時(shí),在右則就可以看到一個(gè)產(chǎn)品價(jià)格的輸入框。

這時(shí)候表單還不能用,因?yàn)樘峤晃恼轮蟛]有保存這個(gè) Meta Box 的內(nèi)容,下面是驗(yàn)證保存內(nèi)容的代碼:

add_meta_box()函數(shù)
add_action( 'save_post', 'product_price_save_meta_box' );
function product_price_save_meta_box($post_id){
    if ( ! isset( $_POST['product_price_meta_box_nonce'] ) ) {
        return;
    }
    if ( ! wp_verify_nonce( $_POST['product_price_meta_box_nonce'], 'product_price_meta_box' ) ) {
        return;
    }
    if ( ! current_user_can( 'edit_post', $post_id ) ) {
        return;
    }
    if ( ! isset( $_POST['product_price'] ) ) {
        return;
    }
    $product_price = sanitize_text_field( $_POST['product_price'] );
    update_post_meta( $post_id, '_product_price', $product_price );
}

把上面的代碼按順序添加到主題的functions.php文件,至此,Meta Box注冊(cè)完成,就可以開始添加參數(shù)了:

調(diào)用代碼

<?php 
if(get_post_meta($post->ID,'_product_price',true)){
    echo get_post_meta($post->ID,'_product_price',true);
}
?>

把META BOX添加把后臺(tái)所有產(chǎn)品列表字段中顯示

通過manage_$post_type_posts_custom_column實(shí)現(xiàn),代碼如下

add_filter('manage_store_posts_columns', 'add_new_product_columns');
function add_new_product_columns($columns) {
    $columns['id'] = 'ID';
    $columns['product_price'] = '產(chǎn)品價(jià)格';
    return $columns;
}

add_action('manage_store_posts_custom_column', 'manage_posts_columns', 10, 2);
function manage_posts_columns($column,$id) {
    global $post;
    switch ($column) {
        case 'id':
            echo $id;
            break;
        case 'product_price':
            echo get_post_meta( $post->ID, '_product_price', true );
            break;
    }
}
WP技術(shù)資料 wordpress模板制作、wordpress主題開發(fā)相關(guān)知識(shí)常見問題總結(jié)
MORE
服務(wù)電話:
0533-2765967

微信 13280692153