¿Cómo determinar si estamos en Agregar nueva página / publicación / CPT o en editar página / publicación / CPT en wordpress admin?

14

Esto parece algo simple, pero necesito una manera de determinar si la pantalla actual es para Agregar nuevo o Editar (una especie de etiqueta condicional de administrador de wordpress). ¿Ya hay una función incorporada para esto, o ... alguna idea de cómo lograrlo?

    
pregunta Dipesh Kc 24.04.2012 - 07:38

1 respuesta

26

Aquí hay una función que tengo:

/**
 * is_edit_page 
 * function to check if the current page is a post edit page
 * 
 * @author Ohad Raz <[email protected]>
 * 
 * @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 el uso es simple como cualquier otra etiqueta condicional, algunos ejemplos:

comprobar si hay una página nueva o editar:

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

comprueba si hay una nueva página de publicación:

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

verifica la página de publicación de publicación:

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

combina esto con un $typenow global para buscar una página de edición de tipo de publicación 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
}
    
respondido por el Bainternet 24.04.2012 - 08:19

Lea otras preguntas en las etiquetas