Custom Post Types a WordPress

Un aspecte important a WordPress són els Custom Post Types, una característica que es va incloure a partir de la versió 3.0 de WordPress. A WordPress hi podem trobar varis tipus de posts natius, els posts normals, una pàgina estàtica, els arxius adjunts (imatges i altres) i les barres de navegació. Cada una d’aquestes coses té un tipus de post concret a la taula wp_posts.

Des de la tercera versió es poden definir Custom posts propis, fet que vol dir que tenim moltes possibilitats per tal de crear qualsevol cosa que se’ns passi pel cap. Per a crear aquest tipus de posts hem d’utilitzar la funció register_post_type, que descriuré a continuació, creant un Custom Post Type anomenat Work:

add_action('init', 'maria_work_register');
 
function maria_work_register() {
 
   $labels = array( 
        'name' => __( 'Works', 'custom-theme' ),
        'singular_name' => __( 'Work', 'custom-theme' ),
        'add_new' => __( 'Add New', 'custom-theme' ),
        'add_new_item' => __( 'Add New Work', 'custom-theme' ),
        'edit_item' => __( 'Edit Work', 'custom-theme' ),
        'new_item' => __( 'New Work', 'custom-theme' ),
        'view_item' => __( 'View Work', 'custom-theme' ),
        'search_items' => _x( 'Search Works', 'custom-theme' ),
        'not_found' => _x( 'No works found', 'custom-theme' ),
        'not_found_in_trash' => _x( 'No works found in Trash', 'custom-theme' ),
        'parent_item_colon' => _x( 'Parent Work:', 'custom-theme' ),
        'menu_name' => __( 'Works', 'custom-theme' ),
    );

    $args = array( 
        'labels' => $labels,
        'hierarchical' => false,
        
        'supports' => array( 'title', 'editor', 'thumbnail' ),
        'taxonomies' => array( 'skills','post_tag'),
        'public' => true,
        'show_ui' => true,
        'show_in_menu' => true,
        'show_in_nav_menus' => true,
        'publicly_queryable' => true,
        'exclude_from_search' => false,
        'has_archive' => true,
        'query_var' => true,
        'can_export' => true,
        'rewrite' => true,
        'capability_type' => 'post'
    );

 
    register_post_type( 'trabajos' , $args );
}

Aquesta funció rep primerament el nom del custom post i, en segon lloc, un array amb els diferents arguments per tal de crear-lo. Aquest array conté camps com els següents:

  • labels: Un altre array amb els diferents textos que es mostraran en el panell d’administració per a gestionar el nostre custom com a post type.
  • public: Defineix si aquest custom post és d’accés públic o d’ús intern.
  • rewrite: Defineix si s’utilitzaran rewrites per a generar permalinks amb aquest tipus de dades.
  • capability_type: Defineix la forma en la que s’accedirà a ell internament.
  • hierarchical: Permet que s’associïn uns a altres com a pares i fills, false és que no, comportant-se com a un post. Si diem true, es comportarà com un a pàgines, podent així asignar un pare.
  • menu_position: Definim la posició que tindrà aquest custom post del menú d’administració de WordPress.
  • supports: Un array amb diferents camps que volem que aquest custom post tingui en el panell de creació i d’edició, en aquest cas decidim que volem que tingui títol, imatge predeterminada i el camp d’edició del post.

Agreguem el codi al nostre fitxer functions.php i al guardar i refrescar ja tindrem disponible el nostre custom post.

Leave a Reply

Your email address will not be published. Required fields are marked *