Как создать собственную мета-таблицу в WordPress? - PullRequest
0 голосов
/ 20 сентября 2019

У меня есть пользовательский мета-блок с несколькими полями, и он работает нормально.Теперь я хочу сохранить эти мета-данные в пользовательскую таблицу.Так как я могу это сделать?

Я исследовал Google и Youtube, но не получил именно то, что ищу.

Если кто-нибудь может предоставить мне пошаговое руководство или учебные ссылки, это будет очень полезно.

Ответы [ 2 ]

0 голосов
/ 20 сентября 2019

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

Суть в том, что вы можете использовать свой Custom Meta Box для отображения полей формы, а затем обрабатывать эти поля формы с помощью собственной пользовательской функции на хуке save_post.

Допустим, вы зарегистрировали пользовательский мета-блок с <input name="my_custom_table_field" /> в нем.Вместо использования update_post_meta() на хуках save_post можно написать функцию, которая управляет данными с помощью метода $wpdb->update.Примерно так вы могли бы начать:

add_action( 'save_post', 'save_my_custom_data' );
function save_my_custom_data( $post_id ){
    global $wpdb;

    if( isset( $_POST['my_custom_table_field'] ){
        $result = $wpdb->update(
            'my_custom_table',
            array(
                'post_id' => $post_id,
                'my_custom_table_field' => $_POST['my_custom_table_field'],
            ),
            array(
                'post_id' => $post_id
            ),
            array(
                '%d',
                '%s'
            ),
            array (
                '%d'
            )
        );
    });
}

Вы, конечно, захотите убедиться, что обрабатываете данные должным образом, прежде чем сохранить их.И снова, я не уверен, , почему вам понадобится настраиваемая таблица "meta", но я не могу сказать, что вы не должны (особенно в зависимости от вашего конкретного варианта использования) - но что-то вродевышеприведенное поможет вам начать.

Подводя итог:

  • Отображение вашего пользовательского мета-поля с функциями метабокса WP
  • Обработка ловушки save_post для ваших пользовательских полейотдельно
  • Выполните санитарную обработку, обрезку или иным образом убедитесь, что сохраняемые данные должны храниться в соответствии с рекомендациями для типа поля
  • . Для обновления используйте глобальный класс $wpdb.it.

Также отметим, что этот ответ не входит в СОЗДАНИЕ таблицы базы данных - потому что это зависит от вашего механизма хранения, конкретных потребностей в индексировании и т. д. Но в целом вы должны иметь возможность искатьдля «создания таблицы базы данных на [любом языке хранения]», чтобы получить пошаговое руководство по созданию таблицы, - затем используйте схему выше для хранения данных в ней.

0 голосов
/ 20 сентября 2019

Это официальный путеводитель по Wordpress: https://developer.wordpress.org/plugins/metadata/custom-meta-boxes/

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