Como determinar se estamos em Adicionar nova página / post / CPT ou na página de edição / post / CPT no wordpress admin?

14

Isso parece uma coisa simples, mas eu preciso determinar se a tela atual é para Adicionar Novo ou Editar (uma espécie de tag condicional do admin do wordpress). Existe uma função incorporada para isso já, ou ... alguma ideia de como realizar?

    
por Dipesh Kc 24.04.2012 / 07:38

1 resposta

26

aqui é uma função que eu tenho:

/**
 * 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' ) );
}

Uso o uso é simples como qualquer outra tag condicional, poucos exemplos:

verifique se há uma página nova ou editada:

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

verifique se há uma nova página de postagem:

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

verifique a página de edição de postagens:

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

combine isso com um $typenow global para verificar uma página de edição de tipo de postagem específica:

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
}
    
por Bainternet 24.04.2012 / 08:19