depi
  • 0
Новичок

Панель управления похожа на метабоксы в моем плагине – как сохранить их положение и открытое/закрытое состояние?

  • 0

Я пытаюсь имитировать пользовательский интерфейс метабоксов приборной панели в моем плагине WP — маленькие метабоксы. Я уже стилизовал их, а также работает функция перетаскивания, поскольку я загрузил следующий скрипт и стиль:

wp_enqueue_style('dashboard');
wp_enqueue_script('dashboard');

Однако я также хотел бы сохранить свою пользовательскую позицию «почтовых ящиков» (заказ), а также состояние открытия/закрытия.

Любые идеи, как это может быть достигнуто?

Спасибо.

ОБНОВЛЕНИЕ: это структура моего почтового ящика:

<div class="wrap">
    <h2><?php echo get_admin_page_title(); ?></h2>
    <div class="postbox-container" style="width: 100%">
        <div class="metabox-holder">
            <div class="meta-box-sortables">
                <div class="postbox" id="first">
                    <div class="handlediv" title="Click to toggle"><br /></div>
                    <h3 class="hndle"><span><?php echo get_admin_page_title(); ?></span></h3>
                    <div class="inside">
                        <p>first</p>
                    </div>
                </div>
                <div class="postbox" id="second">
                    <div class="handlediv" title="Click to toggle"><br /></div>
                    <h3 class="hndle"><span><?php echo get_admin_page_title(); ?></span></h3>
                    <div class="inside">
                        <p>second</p>
                    </div>
                </div>

            </div>
        </div>
    </div>

    <form style="display:none" method="get" action="">
        <?php wp_nonce_field('closedpostboxes', 'closedpostboxesnonce', false ); ?>
        <?php wp_nonce_field('meta-box-order', 'meta-box-order-nonce', false ); ?>
    </form>
</div>
Share
  1. При заказе или закрытии метабоксов для этих действий требуются одноразовые номера, добавьте в свой код следующее и посмотрите, решит ли это проблему.

    <?php wp_nonce_field('closedpostboxes', 'closedpostboxesnonce', false ); ?>
    <?php wp_nonce_field('meta-box-order', 'meta-box-order-nonce', false ); ?>
    

    Дополнительный:

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

    Если что-то по-прежнему не работает, просмотрите исходный код на проблемных страницах и убедитесь, что файлы JS выводятся в правильном порядке (еще проще, сравните включения JS на вашей странице с основной страницей WordPress, которая использует метабоксы, убедитесь, ваш JS включает (очереди) в том же порядке).

    • 0
  2. Вероятно, это не сработает, если вы напишете HTML вручную.

    Лучше использовать do_metaboxes() .

    Я все понял в моем классе scbBoxesPage :

    http://plugins.trac.wordpress.org/browser/scb-framework/trunk/scb/BoxesPage.php?rev=339808

    Пример использования в плагине Front-end Editor :

    http://plugins.trac.wordpress.org/browser/front-end-editor/trunk/admin.php?rev=362968

    Вероятно, мне следует написать правильный пример плагина, который использует все эти классы.

    • 0

Оставить ответ

You must login to add an answer.