entradas personalizadas en wordpress - cpt
Post on 09-Apr-2017
24 Views
Preview:
TRANSCRIPT
Custom Post Type:el primer paso hacia la personalización
Jose J. Lazo León
<h1>Algo de mi:</h1>
Autodidacta
Curioso
Inquieto
Colaborador de WordPress Sevilla
Desarrollador en Sngular Team
<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.
¿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>
<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
<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 );
}
<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
<h1>Bola extra</h1><h2>PLUGIN: ACF</h2>
Advanced Custom Fields for WordPress Developershttps://wordpress.org/plugins/advanced-custom-fields/
<h1>Bola extra</h1><h2>PLUGIN: ACF</h2>
Partida gratis “Device Push”
No sé qué quieres poner aquí
<h1>Dudas, preguntas, reflexiones varias</h1>
Siempre nos quedará…GOOGLE
top related