问题描述

这似乎很简单,但是我需要确定当前屏幕是添加新的还是编辑的 (一种 wordpress 管理条件标签) 。有没有一个内置的功能已经,或… 任何想法如何完成?

最佳解决方案

这是我有一个功能:

/**
 * is_edit_page
 * function to check if the current page is a post edit page
 *
 * @author Ohad Raz <admin@bainternet.info>
 *
 * @param  string  $new_edit what page to check for accepts new - new post page ,edit - edit post page, null for either
 * @return boolean
 */
function is_edit_page($new_edit = null){
    global $pagenow;
    //make sure we are on the backend
    if (!is_admin()) return false;


    if($new_edit == "edit")
        return in_array( $pagenow, array( 'post.php',  ) );
    elseif($new_edit == "new") //check for new post page
        return in_array( $pagenow, array( 'post-new.php' ) );
    else //check for either new or edit
        return in_array( $pagenow, array( 'post.php', 'post-new.php' ) );
}

使用的用法很简单,就像任何其他条件标签一样,几个例子:

检查新的或编辑页面:

if (is_edit_page()){
   //yes its an edit/new post page
}

检查新帖子页面:

if (is_edit_page('new')){
   //yes its an new post page
}

检查编辑帖子页:

if (is_edit_page('edit')){
   //yes its an new post page
}

将其与 $typenow 全局相结合,以检查特定的帖子类型编辑页面:

global $typenow;
if (is_edit_page('edit') && "Post_Type_Name" == $typenow){
   //yes its an edit page  of a custom post type named Post_Type_Name
}

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。