Una entrada – para definirla de una manera general – es un contenedor donde se almacena el contenido que se consulta – título, texto, archivos – de una instalación de wordpress.
Existen cinco tipos de entradas en wordpress.
Tipo |
Descripción |
Entrada |
Es un tipo de publicación que se muestra en orden de creación de manera inversa, es decir, se muestra primero la entrada más reciente siguiendo las anteriores hasta llegar a la primer entrada que se creó -. |
Página |
Una página tiene una estructura similar a una entrada pero no se visualiza dentro del flujo de las entradas. |
Archivos Adjuntos |
Esta tipo de entrada contiene información acerca de los archivos que se adjuntaron con wordpress. |
Revisiones |
Se utiliza para tener borradores y / o revisiones de las entradas. |
Menús de navegación |
Estas entradas tienen información acerca de un elemento de los de menús de navegación. |
La diferencia entre ellas son las características que cada una tiene habilitadas.
Registrar un tipo de entrada
Se puede registrar un tipo de entrada en un tema – en el archivo functions.php – o en un plugin.
Prefiero utilizar un plugin para poder utilizar o cambiar de tema sin preocuparme de perder el contenido.
Etiquetas
Primero vamos a definir las etiquetas que se van a mostrar en la interfaz de wordpress.
Aunque se pueden configurar las etiquetas al momento de registrar la entrada, vamos a utilizar un arreglo para almacenar los valores.
Si no defines etiquetas para tu entrada, wordpress va a utilizar las etiquetas que utiliza para administrar las entradas del blog.
Etiquetas |
Descripción |
name |
Nombre (en plural) del tipo de entrada. |
singular_name |
Nombre (en singular) del tipo de entrada. |
add_new * |
Menú para agregar una entrada. |
add_new_item |
Encabezado para mostrar una forma singular de la entrada. |
edit |
Menú para editar entradas. |
edit_item |
Encabezado que se muestra al editar una entrada. |
view |
Texto que se muestra en un vínculo a esa entrada. |
view_item |
Texto que se visualiza junto al permalink en la ventana de edición de la entrada. |
search_items |
Contenido del botón de la caja de búsqueda en la pantalla de edición. |
not_found |
Texto que se va a muestra cuando no se encuentran entradas utilizando la búsqueda en la sección de administración. |
not_found_in_trash |
Texto que se muestra si no existen entradas en la basura. |
* Generalmente el valor de add_new se va a quedar sin asignar y add_new_item va a ser:
Agregar nuevo {nombre en singular de la entrada}
$etiquetas = array(
'name' => __( 'Incrustar' ),
'singular_name' => __( 'Incrustar' ),
'add_new' => __( 'Nueva incrustación' ),
'add_new_item' => __( 'Agregar Incrustación' ),
'edit_item' => __( 'Editar Incrustación' ),
'new_item' => __( 'Nueva Incrustación' ),
'view_item' => __( 'Ver Incrustaciones' ),
'search_items' => __( 'Buscar incrustaciones' ),
'not_found' => __('No se encontraron incrustaciones'),
'not_found_in_trash' => __('No se encontraron incrustaciones en la basura'),
'menu_name' => __("Incrustar")
);
Opciones
Las opciones se utilizan para definir las características que va a tener el tipo de entrada que generemos.
Opción |
Descripción |
parent |
Útil cuando el tipo de entrada es jerárquica. |
public |
Define si el tipo de publicación va a estar disponible para los autores / lectores. Los valores pueden ser true o false true: Al utilizar true los valores de exclude_from_search, publicly_queryable, show_in_nav_menus, y show_ui también van a ser verdaderos. false: Al utilizar false los valores de publicly_queryable, show_in_nav_menus, y show_ui van a ser falsos.
Es posible asignar directamente el valor para las opciones: |
menu_position |
Define la posición donde se muestra el menú – en la barra lateral de administración – de la entrada.
5 – debajo de Entradas |
hierarchical |
Esta opción permite definir si el tipo de entrada se va a administrar jerárquicamente – como página -. |
capability_type |
Se define el tipo de rol que el usuario de wordpress debe tener para poder utilizar la entrada. |
supports |
Aquí se pueden definir qué características va a tener el tipo de publicación.
Las características que se pueden definir son: |
title |
Título de la entrada. |
editor |
El editor visual que se utiliza para redactar el contenido de las entradas. |
excerpt |
La caja del resumen de la entrada. |
author |
Aunque se almacena el autor al momento de la creación, las entradas que no tienen este parámetro no permiten actualizar el autor cuando se editan. |
thumbnail |
Habilita la característica de imagen representativa de la entrada. |
trackbacks |
Determina si los trackbacks y pings están habilitados para este tipo de entradas. |
custom_fields |
Habilita la caja de campos personalizados para el tipo de entrada. |
comments |
Habilita los comentarios cuando se muestre este tipo de entrada. |
revisions |
Habilita el panel de revisiones. |
page_attributes |
Habilita la caja de de atributos de la página. |
can_export |
Define si se puede exportar este tipo de entradas. |
rewrite |
Permite definir el slug que se utiliza en las entradas. |
$parametros = array(
'labels' => $etiquetas,
'public' => true,
'publicly_queryable' => true,
'show_ui' => true,
'show_in_menu' => true,
'query_var' => true,
'menu_position' => 25,
'hierarchical' => false,
'capability_type' => 'post',
'supports' => array('title', 'author', 'revisions'),
'can_export' => true,
'has_archive' => true,
'rewrite' => array('slug' => 'incrustacion', 'with_front' => true)
);
Plantillas para visualizar estas entradas
El archivo para tipo de publicaciones personalizadas va a utilizar el archivo archive.php – y la página donde se muestra una publicación individual va a utilizar single.php *
Si queremos que se distingan de otro contenido que utiliza las mismas plantillas podemos especificar con guión y el nombre del tipo de entrada.
Ej: Si tenemos una entrada que se llame “foo” las siguientes plantillas se utilizarían para visualizar ese tipo de entradas:
archive-foo.php single-foo.php
* Si no existen estos archivos wordpress va a utilizar el archivo index.php.
Habilitar en el flujo de las entradas
Al momento de registrar la entrada no va a entrar en el flujo del blog.
La única manera para visualizar el contenido es con el URL.
Para que se incluyan nuestras entradas en el flujo general podemos crear un hook en el cual definamos los tipos de entradas que van a estar disponibles.
Ejemplo
Tipo de publicación que permita guardar URLS y que se muestre el contenido dentro de un iframe.
<?php
/*
Plugin Name: incrustar
Plugin URI: blog.eamexicano.com
Description: Permite incrustar un url externa como parte del contenido del blog
Version: 0.1.0
Author: @eamexicano
Author URI: www.eamexicano.com
License: MIT
*/
function crear_publicacion_personalizada() {
$etiquetas = array(
'name' => __( 'Incrustar' ),
'singular_name' => __( 'Incrustar' ),
'add_new' => __( 'Nueva incrustación' ),
'add_new_item' => __( 'Agregar Incrustación' ),
'edit_item' => __( 'Editar Incrustación' ),
'new_item' => __( 'Nueva Incrustación' ),
'view_item' => __( 'Ver Incrustaciones' ),
'search_items' => __( 'Buscar incrustaciones' ),
'not_found' => __('No se encontraron incrustaciones'),
'not_found_in_trash' => __('No se encontraron incrustaciones en la basura'),
'menu_name' => __("Incrustar")
);
$parametros = array(
'labels' => $etiquetas,
'public' => true,
'publicly_queryable' => true,
'show_ui' => true,
'show_in_menu' => true,
'query_var' => true,
'menu_position' => 25,
'hierarchical' => false,
'capability_type' => 'post',
'supports' => array('title', 'author', 'revisions'),
'can_export' => true,
'has_archive' => true,
'rewrite' => array('slug' => 'incrustacion', 'with_front' => true)
);
register_post_type('incrustacion', $parametros);
}
add_action('init', 'crear_publicacion_personalizada');
add_action( 'pre_get_posts', 'mostrar_incrustaciones_en_la_pagina_principal' );
function mostrar_incrustaciones_en_la_pagina_principal( $query ) {
if ( is_home() && $query->is_main_query()) {
$query->set( 'post_type', array( 'post', 'incrustacion') );
}
return $query;
}
?>
Uso
Para utilizar hay que pasar el archivo.php a la carpeta de plugins – wp-content/plugins
Ir a la sección de plugins y activar el plugin.
Utilizar la entrada personalizada como las entradas o páginas que vienen con wordpress
Además de pasar los archivos archive-incrustacion.php, single-incrustacion.php a la carpeta del tema que se está utilizando.
Puedes descargar el repositorio del proyecto de github o bitbucket.