我知道如何删除WordPress页面列表中所有页面的快速编辑和/或其他页面操作。现在,我需要更具体remove certain actions from specific pages.
我可以使用CSS隐藏特定页面的操作,但更愿意完全删除源代码。
以下代码将删除快速编辑、编辑和beaver builder页面操作。它不是唯一的,在其他响应中多次引用:
add_filter( \'page_row_actions\', \'remove_page_row_actions\', 10, 1 );
function remove_page_row_actions( $actions ) {
if( get_post_type() == \'page\' ) {
unset( $actions[\'inline hide-if-no-js\'] );
unset( $actions[\'edit\'] );
unset( $actions[\'fl-builder\'] );
}
return $actions;
}
我想扩展if语句以包括特定的页面(或post id),但是我在尝试调用/引用post\\u id时没有任何成功。
是否可以从特定的post id(例如222)中删除操作?
SO网友:Max Yudin
要引用post ID,需要post对象本身。
<?php
// Increase the number of arguments passed.
add_filter( \'page_row_actions\', \'remove_page_row_actions\', 10, 2 ); // 2, not 1
// pass $post object as second argument.
function remove_page_row_actions( $actions, $post ) {
$post_types_affected = array(\'page\');
$post_ids_affected = array( 111, 222 );
if ( in_array( $post->post_type, $post_types_affected )
&& in_array( $post->ID, $post_ids_affected ) ) {
unset( $actions[\'inline hide-if-no-js\'] );
unset( $actions[\'edit\'] );
unset( $actions[\'fl-builder\'] );
}
return $actions;
}
别忘了
page_row_actions
过滤器适用于非分级职位类型。使用
post_row_actions
对于层次结构。