post_row_actions
Позволяет удалить/добавить ссылки, которые выводятся под заголовком записи в таблице записей в админ-панели (например: Изменить, Свойства, Удалить, Перейти).
Фильтр работает только для не иерархических типов постов, например у записей. Т.е. у страниц он работать не будет. Для иерархических типов записей, вроде page, есть аналогичный фильтр: page_row_actions.
Использование
add_filter( 'post_row_actions', 'wp_kama_post_row_actions_filter', 10, 2 ); /** * Function for `post_row_actions` filter-hook. * * @param string[] $actions An array of row action links. * @param WP_Post $post The post object. * * @return string[] */ function wp_kama_post_row_actions_filter( $actions, $post ){ // filter... return $actions; }
- $actions(массив)
Массив со ссылками. По умолчанию это 'Изменить', 'Свойства', 'Удалить', 'Перейти'.
По умолчанию массив
$actions
выглядит так:Array ( [edit] => <a href="http://wp-test.ru/wp-admin/post.php?post=173&action=edit" aria-label="Редактировать «Моя запись»">Изменить</a> [inline hide-if-no-js] => <a href="#" class="editinline" aria-label="Изменить свойства «Моя запись»">Свойства</a> [trash] => <a href="http://wp-test.ru/wp-admin/post.php?post=173&action=trash&_wpnonce=79bbce2a2f" class="submitdelete" aria-label="Переместить «Моя запись» в корзину">Удалить</a> [view] => <a href="http://wp-test.ru/%d0%bc%d0%be%d1%8f-%d0%b7%d0%b0%d0%bf%d0%b8%d1%81%d1%8c/" rel="bookmark" aria-label="Посмотреть «Моя запись»">Перейти</a> )
- $post(WP_Post)
- Объект текущего поста.
Примеры
#1 Добавим ссылку на страницу с комментариями к записи
add_filter( 'post_row_actions', 'post_actions_add_comments_link', 10, 2 ); function post_actions_add_comments_link( $actions, $post ) { if ( $post->comment_count ) { $url = esc_url( add_query_arg( array( 'p' => $post->ID, 'comment_status' => 'approved' ), admin_url( 'edit-comments.php' ) ) ); $actions['comments'] = sprintf( '<a href="%s">Комментарии</a>', $url ); } return $actions; }
Список изменений
С версии 2.8.0 | Введена. |
Где вызывается хук
wp-admin/includes/class-wp-posts-list-table.php 1595
$actions = apply_filters( 'post_row_actions', $actions, $post );