Представляя Срок метаданных В WordPress и как их использовать

WordPress 4.4 введена Термин мета dataкоторый позволяет сохранить мета значения для точки аналогичным образом, чтобы оставлять мета-данные.

Это долгожданный и логичным дополнением к системе WordPress .

Пока должность и комментировать мета системы позволило нам добавить произвольные данные в записях и комментариях.Это может быть использован для добавления рейтинги комментариях, укажите ваше настроение, когда вы пишете пост, приложите цены на должности продукции, и различные другие сведения вы думаете имеет отношение к вашему содержанию.По последней версии WordPress, мета-данные теперь могут быть добавлены к терминов, которые позволяет нам создавать функции, такие как категории по умолчанию эскизов в стандартизированной форме.Этот учебник покажет вам, как вы можете редактировать, обновлять и восстанавливать эти мета-данные для точки .

Под капотом Срок метаданных Link

Логика срок мета данных не является новой, уже используется для сообщений, комментариев и пользователей .

Чтобы включить мета-данные для точки, новый termmetaбыла введена таблица.Это экономит комбинацию из term_idmeta_keyи meta_valueПлюс приращение meta_id.

Мета данных Функции Link

Четыре новые функции были введены для обработки создания, чтения, обновления и удаления (CRUD) операций для термина мета данных:

  • add_term_meta(): Добавляет мета data
  • update_term_meta(): Обновляет существующие мета data
  • delete_term_meta(): Удаляет мета data
  • get_term_meta(): Извлекает мета data

Под капотом, эти функции используют тот же код, что соответствующие функции для пост мета-данных, а также использовать .

Как использовать __33 срок мета-данные |Link

В недавнем проекте, я должен был назначить дополнительные атрибуты неиерархических выражении, что большой шанс испытать новые метаданные имеют .

Проект использовал пользовательский тип записи, чтобы представляют дома.Особенности дома (например, телевидение, диван и т.д.) были условия в пользовательской таксономии.Редактор информации дома хотел перечислить особенности, основанные на группе, которая не должна быть функция сама по себе.Следовательно, я решил добавить эту группу, используя термин мета-данные .

Систематика я был house_feature, Но вы также можете использовать существующий categoryили post_tagтаксономии, если вы хотите использовать данные Термин мета с почтовыми категорий или тэгов .

Во-первых, я создал свой художественный таксономии:

add_action('init', 'register_feature_taxonomy');

function register_feature_taxonomy() {
    $labels = array(
        'name' => _x( 'Features', 'taxonomy general name', 'my_plugin' ),
        'singular_name' => _x('Features', 'taxonomy singular name', 'my_plugin'),
        'search_items' => __('Search Feature', 'my_plugin'),
        'popular_items' => __('Common Features', 'my_plugin'),
        'all_items' => __('All Features', 'my_plugin'),
        'edit_item' => __('Edit Feature', 'my_plugin'),
        'update_item' => __('Update Feature', 'my_plugin'),
        'add_new_item' => __('Add new Feature', 'my_plugin'),
        'new_item_name' => __('New Feature:', 'my_plugin'),
        'add_or_remove_items' => __('Remove Feature', 'my_plugin'),
        'choose_from_most_used' => __('Choose from common Feature', 'my_plugin'),
        'not_found' => __('No Feature found.', 'my_plugin'),
        'menu_name' => __('Features', 'my_plugin'),
    );

    $args = array(
        'hierarchical' => false,
        'labels' => $labels,
        'show_ui' => true,
    );

    register_taxonomy('house_feature', array('houses'), $args);
}

Вы должны изменить housesтип пост в последней строке в одном вы используете, или просто, чтобы postесли вы хотите принять новую классификацию для проведения испытаний перспективе на должностях по умолчанию .

Если вы используете код из этой статьив __0 вашей темы |functions.phpфайл или в плагин, убедитесь, что текст области my_pluginсоответствует текстовый домен вашей темы или плагина.Оператор my_pluginТекст домена будет работать в плагине с my_pluginПуля .

Группы Я поручил дом имеет в управлялись через настройки.Она также может быть простой массив.Ради короткий, но полезный срок введения в мета, я использую следующий глобальный массив, чтобы держать доступные группы:

$feature_groups = array(
    'bedroom' => __('Bedroom', 'my_plugin'),
    'living' => __('Living room', 'my_plugin'),
    'kitchen' => __('Kitchen', 'my_plugin')
);

Продления срока Форма Link

Чтобы назначить метаданные условиям, мы должны расширить формы Термин редактирования.Сложная часть является то, что крючки мы должны теперь строятся динамически .

Добавление метаданных с новым термином Link

Для того, чтобы продлить вид, чтобы добавить термин, мы используем из {$taxonomy}_add_form_fieldsкрюк.Для наших house_featureтаксономии это решает в house_feature_add_form_fields.

add_action( 'house_feature_add_form_fields', 'add_feature_group_field', 10, 2 );
function add_feature_group_field($taxonomy) {
    global $feature_groups;
    ?><div class="form-field term-group">
        <label for="featuret-group"><?php _e('Feature Group', 'my_plugin'); ?></label>
        <select class="postform" id="equipment-group" name="feature-group">
            <option value="-1"><?php _e('none', 'my_plugin'); ?></option><?php foreach ($feature_groups as $_group_key => $_group) : ?>
                <option value="<?php echo $_group_key; ?>" class=""><?php echo $_group; ?></option>
            <?php endforeach; ?>
        </select>
    </div><?php
}

Это добавляет выберите форму прямо между оригинальными поля формы и кнопку отправки .

   create term form with meta data field1
Форма для создания нового термина в пользовательском таксономии теперь должны выглядеть следующим образом.( Просмотр большой version __30 | | 2__7 )

Чтобы сохранить термин мета нам нужно подключить в акции, которая вызывается, когда новый термин в настоящее время сохраняется.На этот раз мы используем created_{$taxonomy}подключить .

add_action( 'created_house_feature', 'save_feature_meta', 10, 2 );

function save_feature_meta( $term_id, $tt_id ){
    if( isset( $_POST['feature-group'] ) && '' !== $_POST['feature-group'] ){
        $group = sanitize_title( $_POST['feature-group'] );
        add_term_meta( $term_id, 'feature-group', $group, true );
    }
}

Мы получаем термин данные из $_POSTМассив отправлено с формой и сохранить его, используя новый add_term_meta()функция.Как add_post_meta(), Она занимает четыре аргумента:

  • $term_id: Идентификатор термина,
  • $meta_key: Мета ключ
  • $meta_value: Значение,
  • $unique: То ли ключ может быть использован только один раз;по умолчанию false.

Я ставлю $uniqueистинно, потому что я хочу каждый особенность дома, должны быть перечислены в только одной группы .

Обновление члена с Link

Даже если они имеют сходные черты, добавив новый термин и обновление уже существующего технически отличается в WordPress.Таким образом, мынужно добавить процедуру слишком .

Мы используем из {$taxonomy}_edit_form_fieldsкрюк, чтобы получить поле для группы в форме редактирования .

add_action( 'house_feature_edit_form_fields', 'edit_feature_group_field', 10, 2 );

function edit_feature_group_field( $term, $taxonomy ){

global $feature_groups;

// get current group ...

Если вы хотите прочитать полностью статью, посетите сайт наших спонсоров

Comments are closed.