entradas personalizadas en wordpress - cpt

11
Custom Post Type: el primer paso hacia la personalización Jose J. Lazo León

Upload: jose-j-lazo-leon

Post on 09-Apr-2017

22 views

Category:

Internet


0 download

TRANSCRIPT

Page 1: Entradas Personalizadas en WordPress - CPT

Custom Post Type:el primer paso hacia la personalización

Jose J. Lazo León

Page 2: Entradas Personalizadas en WordPress - CPT

<h1>Algo de mi:</h1>

Autodidacta

Curioso

Inquieto

Colaborador de WordPress Sevilla

Desarrollador en Sngular Team

Page 3: Entradas Personalizadas en WordPress - CPT

<h1>¿Qué son los Custom Post Type?</h1>

Un poco de Historia…

1. WordPress surge con “Posts”

2. Se añadió la opción de crear “páginas” (un tipo de post):no tienen fecha, ni categorías ni etiquetas

3. WordPress 3.5: incorpora la opción de crear los "Custom Post Types": ¡Personalización al poder!

¡Os dije que poca, que en internet está todo!

Cada día los usamos:● Post● Page● Attachment● WooCommerce● Product● Shop_order

Los Custom Post Types son tipos de entrada personalizados que puedes agregar a tu WordPress ajustándose así a las necesidades del proyecto.

Unidos a los campos personalizados son una herramienta muy potente.

Page 4: Entradas Personalizadas en WordPress - CPT

¿Qué vamos a hacer?

1. Crearemos un tipo de entrada personalizada y la registraremos para que nuestro WordPress la interprete.

2. Le añadiremos un campo personalizado para ver el funcionamiento del plugin ACF (Awesome Custom Fields).

3. Crearemos un archivo para listar nuestros CPTs.

4. Crearemos un archivo para mostrar cada CPT individualmente.

<h1>Practicar para aprender</h1>

Page 5: Entradas Personalizadas en WordPress - CPT

<h1>Seguimos practicando</h1><span>es la única forma de aprender</span>

¿De qué se compone nuestro CPT?

● Título

● Contenido

● Fecha de Publicación

● PDF descargable(usaremos el plugin ACF o campos personalizados)

● Trabajo:○ Taxonomía tipo categoría

Page 6: Entradas Personalizadas en WordPress - CPT

<h1>Codeando</h1><?php register_post_type('cpt_name’, $args); ?>// Register Custom Post Type

add_action( 'init', 'job_offer', 0 );function job_offer() {

$labels = array('name' => _x( 'Ofertas de

trabajo', 'Post Type General Name', 'theme_name' ),'singular_name' => _x( 'Oferta de

trabajo', 'Post Type Singular Name', 'theme_name' ),'menu_name' => __( 'Oferta de

trabajo', 'theme_name' ),'name_admin_bar' => __( 'Oferta

trabajo', 'theme_name' ),'parent_item_colon' => __( 'Parent

Item:', 'theme_name' ),'all_items' => __( 'Todas las

Ofertas', 'theme_name' ),'add_new_item' => __( 'Añadir

Oferta', 'theme_name' ),'add_new' => __( 'Añadir

nueva', 'theme_name' ),'new_item' => __( 'Nueva

Oferta', 'theme_name' ),'edit_item' => __( 'Editar

Oferta', 'theme_name' ),'update_item' => __( 'Actualizar

Oferta', 'theme_name' ),'view_item' => __( 'Ver Oferta',

'theme_name' ),'search_items' => __( 'Buscar

Oferta', 'theme_name' ),'not_found' => __( 'No hay

nada', 'theme_name' ),'not_found_in_trash' => __( 'Papelera

vacía', 'theme_name' ),);

$args = array('label' => __( 'job_offer',

'theme_name' ),'description' => __( 'Entradas

para las Ofertas de trabajo', 'theme_name' ),'labels' => $labels,'supports' => array( 'title',

'editor', 'excerpt', 'thumbnail', 'custom-fields', 'page-attributes', 'post-formats' ),

'taxonomies' => array( 'category', 'post_tag' ),

'hierarchical' => false,'public' => true,'show_ui' => true,'show_in_menu' => true,'menu_position' => 5,'menu_icon' => 'dashicons-

awards','show_in_admin_bar' => true,'show_in_nav_menus' => true,'can_export' => true,'has_archive' => true,'exclude_from_search' => false,'publicly_queryable' => true,'capability_type' => 'post',

);register_post_type( 'job_offer', $args );

}

Page 7: Entradas Personalizadas en WordPress - CPT

<h1>Codeando</h1><?php register_taxonomy( $taxonomy, $object_type, $args ); ?>// Register Taxonomyif ( ! function_exists( 'task_taxonomy' ) ) {

function task_taxonomy() {$labels = array('name' => _x( 'Trabajos',

'Taxonomy General Name', 'theme_name' ),'singular_name' => _x( 'Trabajo', 'Taxonomy Singular

Name', 'theme_name' ),'menu_name' => __( 'Trabajo', 'theme_name' ),'all_items' => __( 'Todos los Trabajos',

'theme_name' ),'parent_item' => __( 'Trabajo padre', 'theme_name' ),'parent_item_colon'=> __( 'Trabajo padre:', 'theme_name' ),'new_item_name' => __( 'Nuevo trabajo', 'theme_name' ),'add_new_item' => __( 'Añadir nuevo

trabajo','theme_name' ),'edit_item' => __( 'Editar trabajo', 'theme_name' ),'update_item' => __( 'Actualizar trabajo',

'theme_name' ),'view_item' => __( 'Ver trabajo', 'theme_name' ),'separate_items_with_commas'=> __( 'Separar con comas',

'theme_name' ),'add_or_remove_items' => __( 'Añadir o eliminar trabajo',

'theme_name' ),'choose_from_most_used'=> __('Elegir entre los más

comunes','theme_name'),'popular_items' => __( 'Trabajos populares',

'theme_name' ),

'search_items' => __( 'Buscar trabajo', 'theme_name' ),'not_terms' => __( 'Sin trabajos', 'theme_name' ),'items_list' => __( 'Lista de trabajos',

'theme_name' ),'items_list_navigation'=> __( 'Sin trabajos',

'theme_name' ),'not_terms' => __( 'Sin trabajos', 'theme_name' ),););

$args = array('labels' => $labels,'hierarchical' => true,'public' => true,'show_ui' => true,'show_in_rest' => true,'show_admin_columns' => true,'show_in_nav_menus' => true,'show_tagcloud' => false,

);register_taxonomy( 'task', array( 'job_offer' ), $args );

}

add_action( 'init', 'task_taxonomy', 0 );

} // end if function_exists

Page 8: Entradas Personalizadas en WordPress - CPT

<h1>Bola extra</h1><h2>PLUGIN: ACF</h2>

Advanced Custom Fields for WordPress Developershttps://wordpress.org/plugins/advanced-custom-fields/

Page 9: Entradas Personalizadas en WordPress - CPT

<h1>Bola extra</h1><h2>PLUGIN: ACF</h2>

Page 10: Entradas Personalizadas en WordPress - CPT

Partida gratis “Device Push”

No sé qué quieres poner aquí

Page 11: Entradas Personalizadas en WordPress - CPT

<h1>Dudas, preguntas, reflexiones varias</h1>

Siempre nos quedará…GOOGLE