Utilizamos los estados en WordPress para describir la naturaleza de una publicación. WordPress cuenta con varios estados por defecto con los cuales podemos representar la situación de nuestros posts. En este tutorial veremos el significado de los distintos estados que WordPress te ofrece y también veremos cómo crear un estado personalizado. Si lo que quieres es crear un custom post type personalizado, te recomiendo que pulses en este enlace.
Existen muchos plugins para WordPress que te permiten crear estados personalizados. Por ejemplo, el plugin Edit Flow te ayuda a hacer precisamente esto, entre otras muchas opciones. Y claro, esto es lo peor. Este tipo de plugins cuentan con muchas características, para nosotros innecesarias, cuando lo único que queremos hacer es crear estados personalizados. Entonces, ¿qué podemos hacer cuando queremos crear estados personalizados y no queremos instalar este tipo de plugins? Pues crearlos nosotros mismos.
Para ello editaremos el fichero functions.php de nuestro tema. Es un proceso muy sencillo pero, si te da pavor editar ficheros de tu tema o no lo has hecho nunca, te recomendamos que instales el plugin que te hemos comentado antes. En este ejemplo, vamos a crear un estado personalizado al cual llamaremos «En proceso» y que nos servirá para identificar a aquellos posts que están en proceso de redacción y que aún no han sido finalizados. Pero antes de empezar con todo esto, vamos a ver los estados que vienen en WordPress por defecto.
Estos son los estados que vienen en WordPress por defecto y su significado.
Estos estados de publicación son más que suficientes para administrar el proceso de edición y poder cambiar de un estado a otro. Si deseas crear tus propios estados con nombres significativos, continúa leyendo.
Como he comentado antes, en este artículo y para ilustrar el crear un nuevo estado personalizado, vamos a crear un estado al que llamaremos «En proceso». El código que puedes ver más abajo, define un poco las opciones básicas para los estados. Invocaremos esta función utilizando al action hook. Como puedes ver, definimos el nombre del estado y controlamos los distintos parámetros para la visibilidad del mismo.
// Crear nuevo estado function crear_nuevo_estado(){ register_post_status( 'In Writing', array( 'label' => _x( 'En proceso', 'post' ), 'public' => true, 'exclude_from_search' => false, 'show_in_admin_all_list' => true, 'show_in_admin_status_list' => true, 'label_count' => _n_noop( 'En proceso <span class="count">(%s)</span>', 'En proceso <span class="count">(%s)</span>' ), ) ); } add_action( 'init', 'crear_nuevo_estado' );
Ojo, una vez creemos el nuevo estado, este no se mostrará como disponible en el selector de estados de la página de edición de posts. Para ello tendremos que añadir el siguiente script también en el fichero functions.php de nuestro tema.
// Mostrar nuestro nuevo estado en el desplegable del backoffice function mostrar_estado_desplegable(){ global $post; $complete = ''; $label = ''; if($post->post_type == 'post'){ if($post->post_status == 'en-proceso'){ $selected = 'selected'; } echo '<script> $(document).ready(function(){ $("select#post_status").append("<option value=\"en-proceso\" '.$selected.'>En proceso</option>"); $(".misc-pub-section label").append("<span id=\"post-status-display\">En proceso</span>"); }); </script> '; } } add_action('admin_footer', 'mostrar_estado_desplegable');
Y hasta aquí nuestro artículo sobre cómo crear un estado personalizado en WordPress. Espero que te haya gustado y, si te ha resultado útil, no dudes en compartirlo en redes sociales. ¡Nos leemos!
