The page_row_actions WordPress PHP filter modifies the array of row action links on the Pages list table. It is evaluated only for hierarchical post types.
Usage
add_filter('page_row_actions', 'your_custom_function', 10, 2); function your_custom_function($actions, $post) { // your custom code here return $actions; }
Parameters
$actions
(string[]): An array of row action links. Defaults are ‘Edit’, ‘Quick Edit’, ‘Restore’, ‘Trash’, ‘Delete Permanently’, ‘Preview’, and ‘View’.$post
(WP_Post): The post object.
More information
See WordPress Developer Resources: page_row_actions
Examples
Add a custom action link
Add a custom action link to the Pages list table row actions.
add_filter('page_row_actions', 'add_custom_action_link', 10, 2); function add_custom_action_link($actions, $post) { $actions['custom_action'] = '<a href="https://example.com/?page_id=' . $post->ID . '">Custom Action</a>'; return $actions; }
Remove the Quick Edit link
Remove the ‘Quick Edit’ action link from the Pages list table row actions.
add_filter('page_row_actions', 'remove_quick_edit_link', 10, 2); function remove_quick_edit_link($actions, $post) { unset($actions['inline hide-if-no-js']); return $actions; }
Rearrange action links
Rearrange the action links in the Pages list table row actions.
add_filter('page_row_actions', 'rearrange_action_links', 10, 2); function rearrange_action_links($actions, $post) { $new_actions = array(); $new_actions['edit'] = $actions['edit']; $new_actions['view'] = $actions['view']; $new_actions['trash'] = $actions['trash']; return $new_actions; }
Remove the Trash link for specific pages
Remove the ‘Trash’ action link from the Pages list table row actions for specific pages.
add_filter('page_row_actions', 'remove_trash_link_for_specific_pages', 10, 2); function remove_trash_link_for_specific_pages($actions, $post) { if ($post->ID == 42) { unset($actions['trash']); } return $actions; }
Add a custom action link based on post status
Add a custom action link to the Pages list table row actions based on the post status.
add_filter('page_row_actions', 'add_custom_action_link_based_on_status', 10, 2); function add_custom_action_link_based_on_status($actions, $post) { if ($post->post_status == 'draft') { $actions['custom_action'] = '<a href="https://example.com/?draft_page_id=' . $post->ID . '">Custom Draft Action</a>'; } return $actions; }