当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. :)