Back to site

Як стварыць лепшы Мэта Box у WordPress старонку Зьвязаныя праўкі для паведамленні

WordPress з'яўляецца адной з самых магутных платформаў блогаў там. Адзін з яго трываласць здольнасць дазваляюць паведамленні аўтараў, каб прызначыць карыстацкія поля да паведамлення. Гэта адвольнае дадатковую інфармацыю вядомы як мэта-дадзеных і могуць быць дададзеныя з дапамогай акна карыстацкіх палёў пры рэдактара ўтрымання лісты пасады экране. Праблема ў тым, што даданне гэтых мета-дадзеныя зручна гэта не вельмі добрая ідэя для большасці карыстальнікаў, паколькі яны павінны ведаць, якія ключавыя мэта і тып яго значэння. Гэта лепш, калі распрацоўнікі ствараюць мета вокны, якія могуць паказаць, якая інфармацыя неабходная, і даць некаторыя тлумачэнні для карыстальнікаў. У гэтым падручніку, мы ўбачым, як да стварэння лепшага мета акно ў WordPress старонцы рэдагавання паведамлення.


Перш чым пачаць, пераканайцеся, што вы тэма functions.php файл. Увесь наш код будзе ўстаўлены ў гэты файл. І наш вынік будзе так (клікніце для павелічэння):

Як стварыць лепшы Мэта Box у WordPress старонку Зьвязаныя праўкі для паведамленні

Крок 1. Вызначыць мэта акно з усімі неабходнымі палямі


Адкрыць functions.php файл, і пакласці ў яе наступны код:

$prefix = 'dbt_';

$meta_box = array(
    'id' => 'my-meta-box',
    'title' => 'Custom meta box',
    'page' => 'post',
    'context' => 'normal',
    'priority' => 'high',
    'fields' => array(
        array(
            'name' => 'Text box',
            'desc' => 'Enter something here',
            'id' => $prefix. 'text',
            'type' => 'text',
            'std' => 'Default value 1'
        ),
        array(
            'name' => 'Textarea',
            'desc' => 'Enter big text here',
            'id' => $prefix. 'textarea',
            'type' => 'textarea',
            'std' => 'Default value 2'
        ),
        array(
            'name' => 'Select box',
            'id' => $prefix. 'select',
            'type' => 'select',
            'options' => array('Option 1', 'Option 2', 'Option 3')
        ),
        array(
            'name' => 'Radio',
            'id' => $prefix. 'radio',
            'type' => 'radio',
            'options' => array(
                array('name' => 'Name 1', 'value' => 'Value 1'),
                array('name' => 'Name 2', 'value' => 'Value 2')
            )
        ),
        array(
            'name' => 'Checkbox',
            'id' => $prefix. 'checkbox',
            'type' => 'checkbox'
        )
    )
);

Дазвольце мне патлумачыць, код:

У пачатку кода, мы вызначылі нумары:

 Прэфікс $ = 'dbt_; 

Гэты прэфікс будзе дададзены да ўсіх нашых карыстацкіх палёў. Выкарыстаньне прэфікса можа перашкодзіць нам канфлікт з іншымі scritps, што таксама выкарыстоўваць наладжвальныя поля.

Наступная пераменная $meta_box будзе ўтрымліваць усе звесткі аб нашай скрынцы мэта і ўсе прыстасаваныя поля нам трэба. Давайце паглядзім на першыя радкі:

$meta_box = array(
    'id' => 'my-meta-box-1',
    'title' => 'Custom meta box',
    'page' => 'post',
    'context' => 'normal',
    'priority' => 'high',

Гэтыя атрыбуты мета бокса:

  • ID: проста ID мета акно, кожны мета скрынка мае унікальны ідэнтыфікатар
  • Назва: назву мета акне
  • старонка: тып Стварыць экран, на якім паказаць мета акно ("паведамленне", "старонка", або "спасылку") (для WP 3.0, гл. заўвагу ніжэй)
  • кантэкст: частку старонкі, дзе мэта акна павінен быць паказаны ("нармальны", "Дадаткова" ці (з 2,7) "збоку")
  • прыярытэт: прыярытэт ва ўмовах, калі скрынкі павінны паказаць ("высокі" або "нізкі")

Для WordPress 3.0: Калі вы карыстаецеся карыстацкі тып пост у WordPress 3,0 (напрыклад, вы стварылі новы тып паведамлення 'album' ), вы можаце змяніць 'page' атрыбут 'album', каб паказаць мета акно рэдагавання экране 'album' толькі.

Ніжэй пералічаны дадатковыя поля. Кожны карыстацкі поле мае наступныя атрыбуты:

  • Назва: імя наладжвальнага поля, яно будзе паказана карыстальніку.
  • Апісанне: Кароткі выклад таго, што гэта такое, каб карыстальнік.
  • ID: ідэнтыфікатар палі, прэфікс $prefix. Ён будзе выкарыстоўвацца для захоўвання карыстацкіх значэння поля
  • Тып: тып ўваходу - выберыце, тэкст, тэкставае поле, радыё або сцяжок
  • варыянты: выкарыстоўваецца для аб'явы масіва варыянтаў некаторы тып ўводу (выбару, радыё)
  • STD: значэнне па змоўчванні прыстасаваныя поля.

Крок 2. Дадаць мэта ў акне Змяніць старонку


Каб дадаць мэта ў акне рэдагавання старонкі, мы крук, каб admin_menu дзеянняў, як у наступны код:

add_action('admin_menu', 'mytheme_add_box');

// Add meta box
function mytheme_add_box() {
    global $meta_box;
    
    add_meta_box($meta_box['id'], $meta_box['title'], 'mytheme_show_box', $meta_box['page'], $meta_box['context'], $meta_box['priority']);
}

Функцыя выкарыстоўваецца для дадання мэта ў акне рэдагавання старонкі add_meta_box. Гэтая функцыя мае 6 параметраў:

 add_meta_box ($ ID, $ Title, $ зваротнага выкліку, $ старонцы, $ кантэксце, $ прыярытэт); 

Кожны параметр мае той жа сэнс, як мета бокса атрыбут (Я патлумачыў гэта раней), за выключэннем $callback параметр. $callback параметр імя функцыі зваротнага выкліку, выкарыстоўваецца для адлюстравання HTML-кода карыстацкіх палёў. У нашай сітуацыі гэтая функцыя mytheme_show_box.

Крок 3. Паказаць мета акне


Мы павінны рэалізаваць функцыю зваротнага выкліку mytheme_show_box паказаць HTML код ўсіх наладжвальных палёў. Функцыі выглядае наступным чынам:

// Callback function to show fields in meta box
function mytheme_show_box() {
    global $meta_box, $post;
    
    // Use nonce for verification
    echo '<input type="hidden" name="mytheme_meta_box_nonce" value="', wp_create_nonce(basename(__FILE__)), '" />';
    
    echo '<table class="form-table">';

    foreach ($meta_box['fields'] as $field) {
        // get current post meta data
        $meta = get_post_meta($post->ID, $field['id'], true);
        
        echo '<tr>',
                '<th style="width:20%"><label for="', $field['id'], '">', $field['name'], '</label></th>',
                '<td>';
        switch ($field['type']) {
            case 'text':
                echo '<input type="text" name="', $field['id'], '" id="', $field['id'], '" value="', $meta ? $meta : $field['std'], '" size="30" style="width:97%" />', '<br />', $field['desc'];
                break;
            case 'textarea':
                echo '<textarea name="', $field['id'], '" id="', $field['id'], '" cols="60" rows="4" style="width:97%">', $meta ? $meta : $field['std'], '</textarea>', '<br />', $field['desc'];
                break;
            case 'select':
                echo '<select name="', $field['id'], '" id="', $field['id'], '">';
                foreach ($field['options'] as $option) {
                    echo '<option', $meta == $option ? ' selected="selected"' : '', '>', $option, '</option>';
                }
                echo '</select>';
                break;
            case 'radio':
                foreach ($field['options'] as $option) {
                    echo '<input type="radio" name="', $field['id'], '" value="', $option['value'], '"', $meta == $option['value'] ? ' checked="checked"' : '', ' />', $option['name'];
                }
                break;
            case 'checkbox':
                echo '<input type="checkbox" name="', $field['id'], '" id="', $field['id'], '"', $meta ? ' checked="checked"' : '', ' />';
                break;
        }
        echo     '<td>',
            '</tr>';
    }
    
    echo '</table>';
}

Гэта вялікая функцыя, ці не праўда? Але гэта не вельмі цяжка зразумець.

У першыя ж функцыі, мы ствараем схаванае поле для захоўвання дадзены час лік. Гэта патрабуецца, каб пераканацца ў гэтым прыйшлі з экрана нашых і пры наяўнасці адпаведнай санкцыі:

 Рэха "<input type="hidden" name="mytheme_meta_box_nonce" value="', wp_create_nonce(basename(__FILE__)),'" />"; 

А потым мы паказваем усе карыстацкія поля ў табліцы. Выкарыстаньне цыкла Еогеасп PHP, кожнае поле адлюстроўваюцца ў залежнасці ад яго тыпу. Перад адлюстраваннем значэнне карыстацкага поля для выбару, радыё-і тыпаў сцяжок ўваход, нам неабходна праверыць, "спас" кошту (калі яна ўжо існуе) і ў параўнанні з значэннямі па змаўчанні. Гэта робіцца з дапамогай радкі кода:

 / / Атрымаць бягучыя дадзеныя мета паведамленне
$ Мэта = get_post_meta ($ пост-> ID, $ ["ID"] поля, праўда); 

HTML код кожнага карыстацкія поля толькі поля ўводу з некаторымі атрыбутамі, як ID, імя, значэнне і г.д.

Пасля гэтага не будзе зроблена, мы атрымаем мета акне на старонцы рэдагавання, як гэта (націсніце для павелічэння):

Як стварыць лепшы Мэта Box у WordPress старонку Зьвязаныя праўкі для паведамленні

Крок 4. Захаваць мета-дадзеныя, калі паведамленне рэдагуецца


Для захавання дадзеных карыстацкіх палёў, мы павінны падключыць да save_post дзеянні:

add_action('save_post', 'mytheme_save_data');

// Save data from meta box
function mytheme_save_data($post_id) {
    global $meta_box;
    
    // verify nonce
    if (!wp_verify_nonce($_POST['mytheme_meta_box_nonce'], basename(__FILE__))) {
        return $post_id;
    }

    // check autosave
    if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
        return $post_id;
    }

    // check permissions
    if ('page' == $_POST['post_type']) {
        if (!current_user_can('edit_page', $post_id)) {
            return $post_id;
        }
    } elseif (!current_user_can('edit_post', $post_id)) {
        return $post_id;
    }
    
    foreach ($meta_box['fields'] as $field) {
        $old = get_post_meta($post_id, $field['id'], true);
        $new = $_POST[$field['id']];
        
        if ($new && $new != $old) {
            update_post_meta($post_id, $field['id'], $new);
        } elseif ('' == $new && $old) {
            delete_post_meta($post_id, $field['id'], $old);
        }
    }
}

У пачатку функцыі мы правяраем дадзенае час, каб пераканацца, што дадзеныя прыходзяць з рэдагаваць паведамленне з належнага дазволу.

І потым, мы правяраем аўтазахаваная функцыю. Мы не хочам, каб захоўваць дадзеныя аўтаматычна праз функцыю аўтазахавання. Мы хочам захаваць дадзеныя толькі пры выкарыстанні націснуў на кнопку "Захаваць" (або публікацыі). Калі вы сапраўды жадаеце захаваць дадзеныя праз функцыю аўтазахавання, вы можаце выдаліць гэтыя радкі (не хвалюйцеся, яны не ўплываюць на астатняй код).

// check autosave
if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
 return $post_id;
}

Апошняя праверка з'яўляецца карыстальнікам магчымасці. Мы проста праверыць, калі карыстальнік можа рэдагаваць пост або старонку.

Пасля ўсіх праверак, мы выкарыстоўваем цыкл па кожнаму элементу хадзіць праз кожныя наладжвальных палёў. Калі прыстасаваныя поля не ў базе дадзеных або яна змянілася, мы абнаўляем яго (Заўвага: update_post_meta таксама дадае паведамленні мета калі мэта няма ў базе дадзеных). Калі прыстасаваныя поля пусты, мы выдалім яго з базы дадзеных.

Калі паведамленне рэдагуецца або апублікаваныя, мы можам праверыць, ключы і значэння наладжвальных палёў, як на наступным малюнку (націсніце, каб павялічыць):

Як стварыць лепшы Мэта Box у WordPress старонку Зьвязаныя праўкі для паведамленні

Як вы можаце бачыць, што працуе!

Заключэнне


Выкарыстаньне карыстацкіх акно мета гэта выдатны спосаб зрабіць наладжвальныя поля больш дружалюбным для карыстальнікаў. Гэта дапамагае нам многае, каб дадаць дадатковую інфармацыю да паведамлення. Я спадзяюся, што гэта кіраўніцтва дапаможа вам лягчэй рэалізаваць карыстацкі акно мэта ў WordPress. Я зрабіў файл з усімі неабходнымі код, які можна ўключыць у файл functions.php. Усё, што трэба змяніць (у адпаведнасці з вашымі патрабаваннямі) толькі прэфікс і дэкларацыі мета акно ў самай верхняй частцы кода.

Спампаваць версію 1.0.

Спампаваць апошнюю версію старонцы праекту
Popular Links WordPress з'яўляецца адной з самых магутных платформаў блогаў там. Адзін з яго трываласць здольнасць дазваляюць паведамленні аўтараў, каб прызначыць карыстацкія поля да паведамлення. Гэта адвольнае дадатковую інфармацыю вядомы як мэта-дадзеных і могуць быць дададзеныя з дапамогай акна карыстацкіх палёў пры рэдактара ўтрымання лісты пасады экране. Праблема ў тым, што даданне гэтых мета-дадзеныя зручна гэта не вельмі добрая ідэя для большасці карыстальнікаў, паколькі яны павінны ведаць, якія ключавыя мэта і тып яго значэння. Гэта лепш, калі распрацоўнікі ствараюць мета вокны, якія могуць паказаць, якая інфармацыя неабходная, і даць некаторыя тлумачэнні для карыстальнікаў. У гэтым падручніку, мы ўбачым, як да стварэння лепшага мета акно ў WordPress старонцы рэдагавання паведамлення.


Перш чым пачаць, пераканайцеся, што вы тэма functions.php файл. Увесь наш код будзе ўстаўлены ў гэты файл. І наш вынік будзе так (клікніце для павелічэння):

Як стварыць лепшы Мэта Box у WordPress старонку Зьвязаныя праўкі для паведамленні

Крок 1. Вызначыць мэта акно з усімі неабходнымі палямі


Адкрыць functions.php файл, і пакласці ў яе наступны код:

$prefix = 'dbt_';

$meta_box = array(
    'id' => 'my-meta-box',
    'title' => 'Custom meta box',
    'page' => 'post',
    'context' => 'normal',
    'priority' => 'high',
    'fields' => array(
        array(
            'name' => 'Text box',
            'desc' => 'Enter something here',
            'id' => $prefix. 'text',
            'type' => 'text',
            'std' => 'Default value 1'
        ),
        array(
            'name' => 'Textarea',
            'desc' => 'Enter big text here',
            'id' => $prefix. 'textarea',
            'type' => 'textarea',
            'std' => 'Default value 2'
        ),
        array(
            'name' => 'Select box',
            'id' => $prefix. 'select',
            'type' => 'select',
            'options' => array('Option 1', 'Option 2', 'Option 3')
        ),
        array(
            'name' => 'Radio',
            'id' => $prefix. 'radio',
            'type' => 'radio',
            'options' => array(
                array('name' => 'Name 1', 'value' => 'Value 1'),
                array('name' => 'Name 2', 'value' => 'Value 2')
            )
        ),
        array(
            'name' => 'Checkbox',
            'id' => $prefix. 'checkbox',
            'type' => 'checkbox'
        )
    )
);

Дазвольце мне патлумачыць, код:

У пачатку кода, мы вызначылі нумары:

 Прэфікс $ = 'dbt_; 

Гэты прэфікс будзе дададзены да ўсіх нашых карыстацкіх палёў. Выкарыстаньне прэфікса можа перашкодзіць нам канфлікт з іншымі scritps, што таксама выкарыстоўваць наладжвальныя поля.

Наступная пераменная $meta_box будзе ўтрымліваць усе звесткі аб нашай скрынцы мэта і ўсе прыстасаваныя поля нам трэба. Давайце паглядзім на першыя радкі:

$meta_box = array(
    'id' => 'my-meta-box-1',
    'title' => 'Custom meta box',
    'page' => 'post',
    'context' => 'normal',
    'priority' => 'high',

Гэтыя атрыбуты мета бокса:

  • ID: проста ID мета акно, кожны мета скрынка мае унікальны ідэнтыфікатар
  • Назва: назву мета акне
  • старонка: тып Стварыць экран, на якім паказаць мета акно ("паведамленне", "старонка", або "спасылку") (для WP 3.0, гл. заўвагу ніжэй)
  • кантэкст: частку старонкі, дзе мэта акна павінен быць паказаны ("нармальны", "Дадаткова" ці (з 2,7) "збоку")
  • прыярытэт: прыярытэт ва ўмовах, калі скрынкі павінны паказаць ("высокі" або "нізкі")

Для WordPress 3.0: Калі вы карыстаецеся карыстацкі тып пост у WordPress 3,0 (напрыклад, вы стварылі новы тып паведамлення 'album' ), вы можаце змяніць 'page' атрыбут 'album', каб паказаць мета акно рэдагавання экране 'album' толькі.

Ніжэй пералічаны дадатковыя поля. Кожны карыстацкі поле мае наступныя атрыбуты:

  • Назва: імя наладжвальнага поля, яно будзе паказана карыстальніку.
  • Апісанне: Кароткі выклад таго, што гэта такое, каб карыстальнік.
  • ID: ідэнтыфікатар палі, прэфікс $prefix. Ён будзе выкарыстоўвацца для захоўвання карыстацкіх значэння поля
  • Тып: тып ўваходу - выберыце, тэкст, тэкставае поле, радыё або сцяжок
  • варыянты: выкарыстоўваецца для аб'явы масіва варыянтаў некаторы тып ўводу (выбару, радыё)
  • STD: значэнне па змоўчванні прыстасаваныя поля.

Крок 2. Дадаць мэта ў акне Змяніць старонку


Каб дадаць мэта ў акне рэдагавання старонкі, мы крук, каб admin_menu дзеянняў, як у наступны код:

add_action('admin_menu', 'mytheme_add_box');

// Add meta box
function mytheme_add_box() {
    global $meta_box;
    
    add_meta_box($meta_box['id'], $meta_box['title'], 'mytheme_show_box', $meta_box['page'], $meta_box['context'], $meta_box['priority']);
}

Функцыя выкарыстоўваецца для дадання мэта ў акне рэдагавання старонкі add_meta_box. Гэтая функцыя мае 6 параметраў:

 add_meta_box ($ ID, $ Title, $ зваротнага выкліку, $ старонцы, $ кантэксце, $ прыярытэт); 

Кожны параметр мае той жа сэнс, як мета бокса атрыбут (Я патлумачыў гэта раней), за выключэннем $callback параметр. $callback параметр імя функцыі зваротнага выкліку, выкарыстоўваецца для адлюстравання HTML-кода карыстацкіх палёў. У нашай сітуацыі гэтая функцыя mytheme_show_box.

Крок 3. Паказаць мета акне


Мы павінны рэалізаваць функцыю зваротнага выкліку mytheme_show_box паказаць HTML код ўсіх наладжвальных палёў. Функцыі выглядае наступным чынам:

// Callback function to show fields in meta box
function mytheme_show_box() {
    global $meta_box, $post;
    
    // Use nonce for verification
    echo '<input type="hidden" name="mytheme_meta_box_nonce" value="', wp_create_nonce(basename(__FILE__)), '" />';
    
    echo '<table class="form-table">';

    foreach ($meta_box['fields'] as $field) {
        // get current post meta data
        $meta = get_post_meta($post->ID, $field['id'], true);
        
        echo '<tr>',
                '<th style="width:20%"><label for="', $field['id'], '">', $field['name'], '</label></th>',
                '<td>';
        switch ($field['type']) {
            case 'text':
                echo '<input type="text" name="', $field['id'], '" id="', $field['id'], '" value="', $meta ? $meta : $field['std'], '" size="30" style="width:97%" />', '<br />', $field['desc'];
                break;
            case 'textarea':
                echo '<textarea name="', $field['id'], '" id="', $field['id'], '" cols="60" rows="4" style="width:97%">', $meta ? $meta : $field['std'], '</textarea>', '<br />', $field['desc'];
                break;
            case 'select':
                echo '<select name="', $field['id'], '" id="', $field['id'], '">';
                foreach ($field['options'] as $option) {
                    echo '<option', $meta == $option ? ' selected="selected"' : '', '>', $option, '</option>';
                }
                echo '</select>';
                break;
            case 'radio':
                foreach ($field['options'] as $option) {
                    echo '<input type="radio" name="', $field['id'], '" value="', $option['value'], '"', $meta == $option['value'] ? ' checked="checked"' : '', ' />', $option['name'];
                }
                break;
            case 'checkbox':
                echo '<input type="checkbox" name="', $field['id'], '" id="', $field['id'], '"', $meta ? ' checked="checked"' : '', ' />';
                break;
        }
        echo     '<td>',
            '</tr>';
    }
    
    echo '</table>';
}

Гэта вялікая функцыя, ці не праўда? Але гэта не вельмі цяжка зразумець.

У першыя ж функцыі, мы ствараем схаванае поле для захоўвання дадзены час лік. Гэта патрабуецца, каб пераканацца ў гэтым прыйшлі з экрана нашых і пры наяўнасці адпаведнай санкцыі:

 Рэха "<input type="hidden" name="mytheme_meta_box_nonce" value="', wp_create_nonce(basename(__FILE__)),'" />"; 

А потым мы паказваем усе карыстацкія поля ў табліцы. Выкарыстаньне цыкла Еогеасп PHP, кожнае поле адлюстроўваюцца ў залежнасці ад яго тыпу. Перад адлюстраваннем значэнне карыстацкага поля для выбару, радыё-і тыпаў сцяжок ўваход, нам неабходна праверыць, "спас" кошту (калі яна ўжо існуе) і ў параўнанні з значэннямі па змаўчанні. Гэта робіцца з дапамогай радкі кода:

 / / Атрымаць бягучыя дадзеныя мета паведамленне
$ Мэта = get_post_meta ($ пост-> ID, $ ["ID"] поля, праўда); 

HTML код кожнага карыстацкія поля толькі поля ўводу з некаторымі атрыбутамі, як ID, імя, значэнне і г.д.

Пасля гэтага не будзе зроблена, мы атрымаем мета акне на старонцы рэдагавання, як гэта (націсніце для павелічэння):

Як стварыць лепшы Мэта Box у WordPress старонку Зьвязаныя праўкі для паведамленні

Крок 4. Захаваць мета-дадзеныя, калі паведамленне рэдагуецца


Для захавання дадзеных карыстацкіх палёў, мы павінны падключыць да save_post дзеянні:

add_action('save_post', 'mytheme_save_data');

// Save data from meta box
function mytheme_save_data($post_id) {
    global $meta_box;
    
    // verify nonce
    if (!wp_verify_nonce($_POST['mytheme_meta_box_nonce'], basename(__FILE__))) {
        return $post_id;
    }

    // check autosave
    if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
        return $post_id;
    }

    // check permissions
    if ('page' == $_POST['post_type']) {
        if (!current_user_can('edit_page', $post_id)) {
            return $post_id;
        }
    } elseif (!current_user_can('edit_post', $post_id)) {
        return $post_id;
    }
    
    foreach ($meta_box['fields'] as $field) {
        $old = get_post_meta($post_id, $field['id'], true);
        $new = $_POST[$field['id']];
        
        if ($new && $new != $old) {
            update_post_meta($post_id, $field['id'], $new);
        } elseif ('' == $new && $old) {
            delete_post_meta($post_id, $field['id'], $old);
        }
    }
}

У пачатку функцыі мы правяраем дадзенае час, каб пераканацца, што дадзеныя прыходзяць з рэдагаваць паведамленне з належнага дазволу.

І потым, мы правяраем аўтазахаваная функцыю. Мы не хочам, каб захоўваць дадзеныя аўтаматычна праз функцыю аўтазахавання. Мы хочам захаваць дадзеныя толькі пры выкарыстанні націснуў на кнопку "Захаваць" (або публікацыі). Калі вы сапраўды жадаеце захаваць дадзеныя праз функцыю аўтазахавання, вы можаце выдаліць гэтыя радкі (не хвалюйцеся, яны не ўплываюць на астатняй код).

// check autosave
if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
 return $post_id;
}

Апошняя праверка з'яўляецца карыстальнікам магчымасці. Мы проста праверыць, калі карыстальнік можа рэдагаваць пост або старонку.

Пасля ўсіх праверак, мы выкарыстоўваем цыкл па кожнаму элементу хадзіць праз кожныя наладжвальных палёў. Калі прыстасаваныя поля не ў базе дадзеных або яна змянілася, мы абнаўляем яго (Заўвага: update_post_meta таксама дадае паведамленні мета калі мэта няма ў базе дадзеных). Калі прыстасаваныя поля пусты, мы выдалім яго з базы дадзеных.

Калі паведамленне рэдагуецца або апублікаваныя, мы можам праверыць, ключы і значэння наладжвальных палёў, як на наступным малюнку (націсніце, каб павялічыць):

Як стварыць лепшы Мэта Box у WordPress старонку Зьвязаныя праўкі для паведамленні

Як вы можаце бачыць, што працуе!

Заключэнне


Выкарыстаньне карыстацкіх акно мета гэта выдатны спосаб зрабіць наладжвальныя поля больш дружалюбным для карыстальнікаў. Гэта дапамагае нам многае, каб дадаць дадатковую інфармацыю да паведамлення. Я спадзяюся, што гэта кіраўніцтва дапаможа вам лягчэй рэалізаваць карыстацкі акно мэта ў WordPress. Я зрабіў файл з усімі неабходнымі код, які можна ўключыць у файл functions.php. Усё, што трэба змяніць (у адпаведнасці з вашымі патрабаваннямі) толькі прэфікс і дэкларацыі мета акно ў самай верхняй частцы кода.

Спампаваць версію 1.0.

Спампаваць апошнюю версію старонцы праекту
Published (Last edited): Apr 16 , source: http://www.deluxeblogtips.com/2010/04/how-to-create-meta-box-wordpress-post.html