如何将文本添加到特定的“编辑页面”?

时间:2018-12-16 作者:Craig

我有一个特定的页面,我不希望被编辑。因此,我希望在特定的“编辑页面”文件中放置一条“请勿编辑此页面”消息,如下所示:

enter image description here

关于如何实现这一点,或者我可以在WordPress Codex/开发者资源中搜索什么,有什么想法吗?理想情况下,我希望能够创建某种模板文件,但如果不能,我想解决方案将涉及在functions.php 文件

1 个回复
最合适的回答,由SO网友:cjbj 整理而成

要做到这一点,您确实需要在functions.php 你的主题。您可以使用admin_notices 要向此特定页面添加注释,请执行以下操作:

add_action( \'admin_notices\', \'wpse332074_donotedit\' );
function wpse332074_donotedit () {
 $screen = get_current_screen();
 if ($screen->post_type == \'page\') {
   $variable = $_GET[\'post\'];
   if ($variable == id_of_page_as_integer) { 
     $class = \'notice notice-error\';
     $message = __( \'Do not edit this page!\', \'your-text-domain\' );
     echo \'<div class="\' . $class . \'"><p>\' . $message . \'</p></div>\';
     }
   }
 }
然而,这将允许人们忽略消息,仍然编辑页面。如果确实不想编辑页面,可以使用page_row_actions 过滤器:

add_filter( \'page_row_actions\', \'wpse332074_disable_edit\', 10, 2 );
function wpse332074_disable_edit ($actions, $post) {
  if ( $post->ID == id_of_page_as_integer ) {
    unset( $actions[\'edit\'] );
    unset( $actions[\'inline hide-if-no-js\'] );
    unset( $actions[\'trash\'] );
    }
  return $actions;
  }
请注意,对functions.php 主题更新时将丢失。正确的方法是构建一个子主题。

相关推荐

Updating modified templates

我想调整一些。php模板文件在我的WordPress主题中,我知道正确的过程是将相关文件复制到子主题文件夹中并在那里编辑文件,这样我的修改就不会在将来的主题更新中丢失。但这是否意味着我将无法从主题更新中获益,因为我将文件放在了我的子主题文件夹中?这可能不是一件好事,因为主题更新可能添加了一些有用的特性,甚至修复了我最初需要对代码进行调整的问题!这方面的常见解决方案是什么?有人推荐了一款Diff应用程序——这是人们常用的吗?