Настройте класс WP_Posts_List_Table

Вопрос или проблема

Как я могу настроить вывод таблиц записей в wp-admin/edit.php? Какие опции доступны для редактирования display_tablenav('top') и display_tablenav('bottom') перед выводом в классе WP_Posts_List_Table?

Я хотел бы вставить свой блок между таблицей, где отображаются записи, и фильтрами, например: <h3>Заголовок</h3>. Не важно, что. В Кодексе написано:

Доступ к этому классу помечен как приватный. Это означает, что он не предназначен для использования разработчиками плагинов и тем, а только другими функциями и классами ядра.

Может быть, есть какой-то способ, который не изменяет ядро.

Всякий раз, когда вы находите apply_filters() или do_action в файловой структуре ядра, у вас будет входная точка.

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

Как я могу настроить вывод таблиц записей в wp-admin/edit.php?

Вы не можете. @brasofilo объяснил вам, почему в своем ответе.

Обходной путь:

  1. Удалите стандартную ссылку на редактирование из административного меню, используя remove_menu_page / remove_submenu_page
  2. Добавьте свой собственный элемент меню, который будет включать пользовательский файл
  3. Для этого пользовательского файла скопируйте большую часть из ядра и просто отредактируйте то, что хотите.

Ответ или решение

Для того чтобы настроить вывод таблицы записей в разделе wp-admin/edit.php в WordPress, необходимо учитывать, что стандартный класс WP_Posts_List_Table имеет доступ, ограниченный только основным ядром, что осложняет его использование сторонними разработчиками плагинов и тем. Тем не менее, вы можете использовать некоторые обходные пути и хуки, предоставляемые системой, чтобы добиться желаемого результата в настройке интерфейса.

Изменение Таблицы Записей в WordPress

1. Использование Хуков (Hooks)

WordPress предоставляет множество хуков, которые вы можете использовать для изменения вывода на страницах административной панели. Хуки могут быть как действиями (do_action), так и фильтрами (apply_filters). Важно найти подходящие хуки для редактирования:

  • admin_footer-edit.php: Хук, который срабатывает внизу страницы редактирования записей. Вы можете использовать его, чтобы добавить свой элемент HTML между таблицей записей и навигационными фильтрами.

Пример кода:

add_action('admin_footer-edit.php', 'custom_admin_footer_message');

function custom_admin_footer_message() {
    echo '<h3>Ваш заголовок</h3>';
}

Этот код добавит заголовок на страницу редактирования записей, сразу под таблицей записей.

2. Кастомизация Навигации Таблицы

Для изменения навигационных строк в WP_Posts_List_Table вы можете использовать хуки, которые позволяют вставлять свой контент в навигацию:

  • manage_posts_columns: Хук, позволяющий модифицировать столбцы в таблице записей.
  • manage_edit-post_sortable_columns: Хук для сортируемых столбцов.

Для добавления элемента между стандартным выводом и навигацией можно переопределить функцию display_tablenav() с использованием метода, подобного следующему:

add_action('pre_get_posts', 'customize_posts_table');

function customize_posts_table($query) {
    if (!is_admin()) {
        return;
    }
    add_action('post_table_top', 'add_custom_message');
    add_action('post_table_bottom', 'add_custom_message');
}

function add_custom_message() {
    echo '<h3>Ваш заголовок</h3>';
}

Обратите внимание, что для успешного выполнения необходимо убедиться, что ваша функция добавляется к правильному хуку.

3. Создание Своей Страницы Администрации

Если вам нужно больше контроля над выводом, хороший подход – создать свою страницу администрирования:

  1. Уберите стандартную страницу редактирования, используя remove_menu_page().
  2. Создайте свою страницу, используя add_menu_page(), и укажите свою собственную функцию для вывода содержимого.

Пример кода:

add_action('admin_menu', 'custom_admin_menu');

function custom_admin_menu() {
    remove_menu_page('edit.php'); // Убираем стандартный пункт меню
    add_menu_page('Мои записи', 'Мои записи', 'manage_options', 'custom-posts', 'custom_posts_page');
}

function custom_posts_page() {
    // Здесь вы можете использовать собственный WP_List_Table или выводить ваш контент
    echo '<h3>Ваш заголовок</h3>';
    // В данном месте выводите свою таблицу или настраивайте вывод
}

Заключение

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

Оцените материал
Добавить комментарий

Капча загружается...