WordPress — Добавление пользовательского поля на экран публикации

#wordpress

#wordpress

Вопрос:

Мне было интересно, возможно ли добавить небольшое поле, например, поле «выдержка», ко всем сообщениям в WordPress, чтобы я мог вводить URL.

Приветствия,

Ответ №1:

Вы можете использовать функцию add_meta_box. Вам также понадобится функция обратного вызова, которая выводит HTML-форму на экран публикации, и функция сохранения.

Вот простой пример, который добавляет мета-поле URL в нижнюю правую часть экрана публикации.

 add_action( 'add_meta_boxes', 'c3m_sponsor_meta' );
        function c3m_sponsor_meta() {
                add_meta_box( 'c3m_meta', 'Sponsor URL Metabox', 'c3m_sponsor_url_meta', 'post', 'side', 'high' );
                }

            function c3m_sponsor_url_meta( $post ) {
                $c3m_sponsor_url = get_post_meta( $post->ID, '_c3m_sponsor_url', true);
                echo 'Please enter the sponsors website link below';
                ?>
                <input type="text" name="c3m_sponsor_url" value="<?php echo esc_attr( $c3m_sponsor_url ); ?>" />
                <?php
        }

add_action( 'save_post', 'c3m_save_project_meta' );
        function c3m_save_project_meta( $post_ID ) {
            global $post;
            if( $post->post_type == "post" ) {
            if (isset( $_POST ) ) {
                update_post_meta( $post_ID, '_c3m_sponsor_url', strip_tags( $_POST['c3m_sponsor_url'] ) );
            }
        }
        }
  

Редактировать: Исправлена ошибка пространства имен в коде выше.

Комментарии:

1. @Chris_O — Это именно то, что мне нужно… Единственная проблема заключается в том, что оно не сохраняет значение, которое я ввожу в поле

2. @Chris_O — Ооо, убери этот последний комментарий, я только что прочитал комментарий над кодом, хахаха, большое спасибо 🙂

3. @BigJobbies Я обновляю приведенный выше код до того, который я использовал для URL-адресов.