Loading…

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

Like this presentation? Why not share!

WordPress como CMS - WordCamp Chile 2010

on

  • 2,010 views

Mi presentación en WordCamp Chile 2010

Mi presentación en WordCamp Chile 2010

Statistics

Views

Total Views
2,010
Views on SlideShare
2,006
Embed Views
4

Actions

Likes
1
Downloads
15
Comments
0

3 Embeds 4

https://www.linkedin.com 2
http://www.linkedin.com 1
http://www.linkedin-ei2.com 1

Accessibility

Categories

Upload Details

Uploaded via as Apple Keynote

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />

WordPress como CMS - WordCamp Chile 2010 WordPress como CMS - WordCamp Chile 2010 Presentation Transcript

  • WordPress como CMS. Álex Acuña Viera http://alex.acunaviera.com http://multinet.cl @kyuumeitai http://lunamedia.cl
  • ¿Qué se puede hacer en WordPress 3?
  • (casi) todo.
  • Recursos Páginas Custom Post Types Custom Meta Values Custom Taxonomies Plugins PHP
  • Let’s Rock!
  • Sitio de Ejemplo http://wordcamp.acunaviera.com/ Owsom store Nosotros Productos Novedades Contáctenos (página) (Página) (Página) (Página + Plugin) Producto Novedad (Custom Post (single) Type)
  • Jerarquía WP • keyword: “wordpress hierarchy”
  • Archivos y templates • page.php • front-page.php • functions.php • page-productos.php • page-novedades.php • index.php, style.css, single.php, etcétera.
  • Registrar Custom Post Type • functions.php: • Definimos las etiquetas (labels) • Definimos las opciones • Registramos CPT
  • add_action('init', 'custom_init'); function custom_init() { $lproducto = array( 'name' => _x('Productos', 'post type general name'), 'singular_name' => _x('Producto', 'post type singular name'), 'add_new' => _x('Agregar nuevo', 'producto'), 'add_new_item' => __('Agregar nuevo producto'), 'edit_item' => __('Editar producto'), 'new_item' => __('Nuevo producto'), 'view_item' => __('Ver producto'), 'search_items' => __('Buscar productos'), 'not_found' => __('No se encontraron productos'), 'not_found_in_trash' => __('No se encontraron productos en la papelera'), ); $argproducto = array( 'labels' => $lproducto, 'public' => true, 'publicly_queryable' => true, 'show_ui' => true, 'query_var' => true, 'rewrite' => true, 'capability_type' => 'page', 'hierarchical' => false, 'menu_position' => null, 'supports' => array('title','editor','custom-fields','thumbnail','excerpt','page-attributes') ); register_post_type('producto', $argproducto); } ##termina custom_init()##
  • Loops • page-productos.php: • Cambiamos el query natural con query_posts() con CPT producto. • Loop • page-novedades.php: • Cambiamos el query natural con query_posts() con post_type=post. • Loop
  • query_posts('post_type=producto'); while ( have_posts() ) : the_post(); ?> <div id="post-<?php the_ID(); ?>" <?php post_class(array('loop','clearfix')); ?>> <div class="entry-image grid_8 alpha"> <?php getimage('ultimos'); ?> </div><!-- .entry-image --> <div class="entry-content grid_10 omega"> <h2 class="page-title"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></ h2> <?php the_content(); ?> <a href="<?php the_permalink() ?>" class="button">Ver más</a> </div><!-- .entry-content --> <hr /> </div><!-- #post-<?php the_ID(); ?> --> <?php endwhile; wp_reset_query(); ##Importantísimo!!##
  • ¡Probémoslo! • Admin (http://localhost/wp-admin/) • Productos (menú lateral) • Ingresamos un producto. • Entradas (menú lateral) • Ingresamos una entrada.
  • Le faltó sal...
  • “Ofertas”: Custom Taxonomy • functions.php: • Se añade una función a init (cuando WP inicia pero aún no carga el template) • Se define esta función y se registra la taxonomía con register_taxonomy() • Se hace una función para que se llamen las cajas en el admin.
  • /*Declaración de taxonomías*/ add_action('init', 'create_my_taxonomies', 0 ); function create_my_taxonomies() { register_taxonomy( 'status', array('producto'), array( 'hierarchical' => true, 'label' => 'Status', 'query_var' => true, 'rewrite' => false ) ); /*Cajas para taxonomías*/ add_action( 'admin_menu', 'my_page_taxonomy_meta_boxes' ); function my_page_taxonomy_meta_boxes() { foreach ( get_object_taxonomies( 'page' ) as $tax_name ) { if ( !is_taxonomy_hierarchical( $tax_name ) ) { $tax = get_taxonomy( $tax_name ); add_meta_box( "tagsdiv-{$tax_name}", $tax->label, 'post_tags_meta_box', 'page', 'side', 'core' ); } } } }
  • ¡Ahora sí!
  • Recomendaciones y Riesgos - Permalinks - Plugins - PHP (aprenda y haga sus propias funciones) - ¡Modular! - Google es su amigo :)
  • ¿Dudas? alex@lunamedia.cl aacuna@multinet.cl @kyuumeitai (twitter)
  • Gracias ;)