当post类型为post或page时执行代码
否,仅当职位类型为page (因为\'page\' == $screen->id).
因为if 语句实际上检查当前管理屏幕是否是用于编辑或创建页面的屏幕(post类型为page), URL如下所示:(请注意,在编辑帖子/页面/CPT时,帖子类型在URL中不可见)
http://example.com/wp-admin/post.php?post=2&action=edit
<在此类屏幕上&mdash<编辑或创建帖子/页面/CPT,
$screen->id 相当于
$screen->post_type 这是post类型(slug)。
和$screen->base 是post 它是当前URL中文件名的基本名称&mdash;base name是不带扩展名的文件名&mdash;所以如果文件名是post.php, 基本名称为post. 但是,当创建帖子/页面/CPT时,文件名实际上是post-new.php, 但仍然是$screen->base 是post (而不是post-new) 因为WordPress剥离了-new 部分
此外,您可以通过检查屏幕的动作来区分编辑和创建;i、 e.是否$screen->action 是edit 或add (例如。\'edit\' == $screen->action 检查操作是否正在编辑)。

我需要添加另一个自定义帖子类型(
player) 因为
if 陈述
只需更改:
\'page\' == $screen->id
收件人:
in_array( $screen->id, array( \'post\', \'page\', \'player\' ) )
或完整代码:
if ( $screen && // 1. we\'ve got a valid screen
\'post\' == $screen->base && // 2. the screen base is either post.php or post-new.php
// and 3. the post type is one of the array values.
in_array( $screen->id, array( \'post\', \'page\', \'player\' ) )
) {
// your code here
}
我希望这有帮助,您可以查看
get_current_screen()\'s函数参考
here. :)