在unctions.php中禁用特定页面的“快速编辑”

时间:2021-12-21 作者:HiChrisBell

我知道如何删除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)中删除操作?

1 个回复
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 对于层次结构。

相关推荐