Вопрос или проблема
Как я могу настроить вывод таблиц записей в 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 объяснил вам, почему в своем ответе.
Обходной путь:
- Удалите стандартную ссылку на редактирование из административного меню, используя
remove_menu_page
/remove_submenu_page
- Добавьте свой собственный элемент меню, который будет включать пользовательский файл
- Для этого пользовательского файла скопируйте большую часть из ядра и просто отредактируйте то, что хотите.
Ответ или решение
Для того чтобы настроить вывод таблицы записей в разделе 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. Создание Своей Страницы Администрации
Если вам нужно больше контроля над выводом, хороший подход – создать свою страницу администрирования:
- Уберите стандартную страницу редактирования, используя
remove_menu_page()
. - Создайте свою страницу, используя
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.