Как вы оформляете страницу параметров для плагина с помощью API параметров WordPress?

#wordpress #wordpress-plugin-creation #wordpress-admin

#wordpress #wordpress-создание плагинов #wordpress-администратор

Вопрос:

Я пишу свой первый плагин для WordPress. Я создал страницу параметров с несколькими опциями, используя функции wordpress options API add_settings_section() и add_settings_field() .

Пока все работает нормально, но все поля на странице настроек находятся в одном столбце. Я хотел бы сделать страницу параметров немного «приятнее», но я не могу найти API для этого.

Как мне, например, упорядочить разделы настроек и поле настроек в двух столбцах, используя <div> или html <table> ? API wordpress, похоже, создает собственную структуру таблиц.

Спасибо!

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

1. Вам не нужен API для стилизации… Просто добавьте таблицу стилей на страницу администратора и разберитесь с ней таким образом.

2. Я знаю, как создать таблицу стилей, но API wordpress помещает все поля параметров в таблицу с одним столбцом. Как мне разорвать эту схему?

Ответ №1:

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

В моей реализации я удалил do_settings_sections('my_page'); и вместо этого использовал необработанный HTML.

 <form action="options.php" method="post">
<?php
settings_errors();
settings_fields('my_page_settings');
// do_settings_sections('my_page');
?>

<table class="form-table">

    <tr>
        <th scope="row">Update Mode</th>
        <td><?php $this->my_page_render_update_mode_field() ?></td>
    </tr>
    <tr>
        <th scope="row">Update</th>
        <td style="padding-top:0px !important;">
            <table class="form-table">
                <tr>
                    <td style="padding-top:0px !important;"><?php $this->my_page_render_page_items_field() ?></td>
                    <td style="padding-top:0px !important;"><?php $this->my_page_render_post_field() ?></td>
                    <td style="padding-top:0px !important;"><?php $this->my_page_render_product_items_field() ?></td>
                </tr>

            </table>
        </td>

    </tr>
</table>
<input type="submit" style="margin-bottom:10px !important;" name="submit" class="button button-primary button-md" value="<?php esc_attr_e('Save'); ?>" />