国产高潮流白浆喷水视频A片 ,欧美丰满熟妇bbbbbb百度,美女视频黄A片免费观看软件,麻豆国产精品无码人妻无码

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

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

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

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

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

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

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

參數(shù)

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

實例

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

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

隱藏的自定義字段

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

function product_price_meta_box($post) {
    // 創(chuàng)建臨時隱藏表單,為了安全
    wp_nonce_field( 'product_price_meta_box', 'product_price_meta_box_nonce' );
    // 獲取之前存儲的值
    $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)品價格">
    ? ?<span>價格</span>
    <?php
}

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

這時候表單還不能用,因為提交文章之后并沒有保存這個 Meta Box 的內(nèi)容,下面是驗證保存內(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注冊完成,就可以開始添加參數(shù)了:

調(diào)用代碼

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

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

通過manage_$post_type_posts_custom_column實現(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)品價格';
    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)知識常見問題總結(jié)
MORE
服務(wù)電話:
0533-2765967

微信 13280692153