La comunidad de WordPress está llena de entusiasmo con el lanzamiento de WordPress 3.0. Actualmente en Beta 2 ahora, WordPress 3.0 tendrá muchas características nuevas e interesantes, como un nuevo tema predeterminado y una mejor administración de menús. Posiblemente, la más emocionante de estas características son los tipos de publicación personalizados. En este tutorial, hablaremos sobre la creación y el uso de tipos de publicaciones personalizados para crear un tema sólido como una roca..
Bueno, de acuerdo con el Codex de WordPress:
"Tipo de publicación se refiere a los diversos datos estructurados que se mantienen en la tabla de publicaciones de WordPress. Los tipos de publicaciones personalizadas permiten a los usuarios crear y administrar fácilmente elementos tales como carteras, proyectos, bibliotecas de video, podcasts, citas, chats y cualquier cosa que sea un usuario o desarrollador Poder imaginar."
Esencialmente, nos permite a los desarrolladores crear nuevos tipos de publicaciones similares a las publicaciones y los tipos de páginas, que aparecen en la navegación principal en el administrador de WordPress. Hay varias ventajas a esto; más notablemente, ya no necesitamos complementos para crear tipos especiales, podemos crear un tema que dependa menos de campos personalizados (como los conocemos), y hacen que la administración del sitio sea más fácil para clientes y usuarios no técnicos. En lugar de decirles que creen una "publicación" y asegurarse de completar todo tipo de campos personalizados, por ejemplo, música, simplemente podemos decirles que hagan clic en "Música" para agregar una nueva publicación de música..
En este tutorial vamos a:
Todo esto se hará desde el archivo functions.php de nuestro tema. Estoy modificando el tema por defecto 3.0, TwentyTen.
Lo primero que haremos es decirle a WordPress que queremos registrar un nuevo tipo personalizado. Aquí está el código:
add_action ('init', 'product_register'); function product_register () $ args = array ('label' => __ ('Products'), 'singular_label' => __ ('Product'), 'public' => true, 'show_ui' => true, 'capacity_type '=>' post ',' hierarchical '=> false,' rewrite '=> true,' support '=> array (' title ',' editor ',' thumbnail ')); register_post_type ('producto', $ args);
La primera línea es un enlace para decirle a WordPress que queremos llamar a la función product_register ()
durante la inicialización. Es en esa función que registramos el nuevo tipo de publicación..
La función register_post_type ()
acepta dos argumentos: el nombre que queremos dar a nuestro tipo de publicación y una lista de los argumentos utilizados para crear ese tipo de publicación, que colocamos en una matriz llamada $ args
. Puede leer exactamente cuáles son todos los argumentos aquí, pero quiero señalar los importantes.
Vamos a agregar nuestras propias entradas personalizadas para nuestro nuevo tipo. Ya que ahora podemos crear nuevos tipos de publicaciones, podemos hacer que los campos personalizados sean más ágiles para los usuarios que pueden no estar tan familiarizados con WordPress como nosotros. Vale la pena señalar aquí que esta funcionalidad ha estado disponible desde la versión 2.5 y hasta este momento, ha sido utilizada principalmente por los desarrolladores de complementos. Aquí vamos a añadir un campo de precio..
CARNÉ DE IDENTIDAD); $ precio = $ personalizado ["precio"] [0]; ?> ID, "precio", $ _POST ["precio"]); ?>
Una vez más, el primer par de líneas son enlaces para indicar a WordPress cuándo queremos usar ciertas funciones. La primera línea dice que cuando se inicializa el panel de administración, llame a la función que escribimos, admin_init ()
. Esta función le dice a WordPress que agregue un área llamada "Opciones de producto" a cualquier publicación de tipo 'producto', y que use la función meta_opciones ()
Para imprimir los campos del formulario. Puedes leer más sobre add_meta_box aquí. meta_opciones ()
luego obtendrá cualquier valor personalizado preexistente e imprimirá el campo de formulario. La segunda línea de acción indica que cuando se guarda una publicación, llame a nuestra función save_price ()
, que utiliza update_post_meta ()
para agregar o actualizar un campo personalizado llamado 'precio'.
Nuestro último paso para crear un tipo completamente personalizado es dar nombres únicos a su categoría y editar etiquetas de columna. Primero, el nombre de la categoría personalizada, o 'taxonomía'.
register_taxonomy ("catalog", array ("product"), array ("hierarchical" => true, "label" => "Catalogs", "singular_label" => "Catalog", "rewrite" => true));
La función que utilizamos es register_taxonomy ()
, que puedes encontrar en el codex aquí; Ha estado disponible desde 2.8. Esencialmente dice que queremos crear un nuevo tipo de categoría llamado 'catálogo' que asociaremos con el tipo 'producto'. El último argumento es una serie de información similar a la que vimos register_post_type ()
función. Cuando todo esté dicho y hecho, el término "Catálogo" aparecerá debajo de nuestro menú Productos en el administrador de WordPress y se comportará como lo hacen las categorías de publicaciones..
A continuación, queremos crear un conjunto personalizado de columnas para nuestro tipo de producto.
add_filter ("manage_edit-product_columns", "prod_edit_columns"); add_action ("manage_posts_custom_column", "prod_custom_columns"); función prod_edit_columns ($ columnas) $ columnas = matriz ("cb" => ""," title "=>" Título del producto "," description "=>" Descripción "," price "=>" Price "," catalog "=>" Catalog ",); return $ columns; function prod_custom_columns ($ column) global $ post; switch ($ column) case "description": the_excerpt (); break; case "price": $ custom = get_post_custom (); echo $ custom ["price"] [0]; break; caso "catalog": echo get_the_term_list ($ post-> ID, 'catalog', ", ',',"); break;
Las primeras dos líneas son enlaces para decirle a WordPress que queremos columnas personalizadas para el tipo de "producto". La primera línea dice que al imprimir columnas para el tipo de producto, use las definidas en la función prod_edit_columns ()
.
En prod_edit_columns ()
, tenemos una matriz clave-valor donde las claves se utilizan para hacer referencia a cierta información de publicación, que definimos en la segunda función, prod_custom_columns ()
. Los valores en esa matriz son los encabezados de columna. Usted podría notar que prod_edit_columns ()
enumera cinco columnas, pero solo describimos información de visualización para tres en prod_custom_columns ()
. 'cb' y 'título' son parte de un conjunto de teclas predeterminadas para las que WordPress ya tiene asociaciones. WordPress no sabe qué son los otros tres, por lo que depende de nosotros definirlos.
No está mal, ¿verdad? Y ahora estamos finalmente en la parte divertida: la plantilla del tema. Para hacer una plantilla de tema para un tipo de publicación personalizada, simplemente nombramos la plantilla como única-
CARNÉ DE IDENTIDAD); $ precio = "$". $ custom ["price"] [0]; ?>>- =$price?>
He añadido este código al tema Twentyten en WordPress 3.0 Beta, ya que es el único tema que admite la nueva funcionalidad, es decir, el sistema de menús. Copié la plantilla single.php, le cambié el nombre a single-product.php y reemplacé todo en la división de 'contenido' con el código anterior. Para probar mi código, fui a Temas-> Menús y agregué nuestro nuevo tipo a la navegación de mi sitio. Luego, hice clic en nuestro tipo de publicación personalizada.
Terminando
Como dije anteriormente, WordPress 3.0 todavía está en versión beta (puede obtenerlo aquí); así que todavía hay algunos errores que resolver y algunas cosas pueden cambiar en la versión final. Lo mejor que puedes hacer es entrar y jugar con algunas de las nuevas funciones para familiarizarte con las actualizaciones / cambios. Por lo que he visto hasta ahora, las cosas se ven bastante bien.!