Columnas personalizadas en listado de contenidos del wp-admin

6ba65e44abea73ee048e9e9384cdf330?s=47 Braulio Aquino
March 28, 2015
79

Columnas personalizadas en listado de contenidos del wp-admin

6ba65e44abea73ee048e9e9384cdf330?s=128

Braulio Aquino

March 28, 2015
Tweet

Transcript

  1. PERSONALIZAR COLUMNAS AL LISTAR CONTENIDO EN EL WP-ADMIN Braulio Aquino

  2. BRAULIO AQUINO orange612.com @braulioaquino

  3. Listado en panel de posts:
 título + autor + categorías

    + etiquetas
 + comentarios + fecha
  4. Listado en panel de páginas:
 título + autor + comentarios

    + fecha
  5. Listado en panel de custom post type:
 título + fecha

  6. None
  7. None
  8. None
  9. I
 DEFINIENDO LOS CAMPOS

  10. add_filter(
 'manage_posttype_posts_columns',
 'posttype_columns'
 ); • manage_posttype_post_columns:
 Hook que identifica los

    campos de los listados.
 • posttype_columns:
 Nombre de la función que se ha de ejecutar.
  11. function posttype_columns($columns) {
 $new_columns = array(
 'escuela' => 'Escuela',
 'portada'

    => 'Portada',
 );
 return array_merge(
 $columns,
 $new_columns
 );
 } • Campos listados:
 titulo + … + fecha + escuela + portada
  12. II
 COLOCANDO VALORES

  13. add_action(
 'manage_posttype_posts_custom_column',
 'posttype_custom_columns',
 10, 2
 ); • manage_posttype_posts_custom_column:
 Hook que

    se ejecuta cuando se carga los campos listados.
 • posttype_custom_columns:
 Nombre de la función que se ha de ejecutar. • 10, 2:
 Prioridad 10 con 2 variables
  14. function posttype_custom_columns($column,$post_id) {
 
 switch ($column) {
 
 case 'portada'

    :
 if (get_post_meta($post_id,'portada',true))
 echo 'Sí';
 else
 echo 'No';
 break;
 
 case 'escuela' :
 echo get_post_meta($post_id,'escuela',true);
 break;
 
 }
 
 }
  15. None
  16. III
 HACIÉNDOLOS ORDENABLES

  17. add_filter(
 'manage_edit-posttype_sortable_columns',
 'posttype_sortable_columns'
 ); • manage_edit-posttype_sortable_columns:
 Hook que identifica los

    campos ordenables en los listados.
 • posttype_sortable_columns:
 Nombre de la función que se ha de ejecutar.
  18. function posttype_sortable_columns($columns) {
 $columns['escuela'] = 1;
 $columns['portada'] = 0;
 return

    $columns;
 } • Booleanos:
 0 para Falso y 1 para Verdadero.
  19. IV
 OTRAS CONFIGURACIONES

  20. IV - I
 NO COLOCAR LAS COLUMNAS AL FINAL DE

    OTRAS
  21. add_filter(
 'manage_posttype_posts_columns',
 'posttype_columns'
 );
 
 function posttype_columns($columns) {
 $columns =

    array(
 'cb' => '<input type="checkbox" />',
 'title' => __('Title'),
 'escuela' => 'Escuela',
 'portada' => 'Portada',
 'date' => __('Date'),
 );
 return $columns;
 }
  22. IV - II
 CAMBIAR NOMBRE A COLUMNAS

  23. add_filter(
 'manage_posttype_posts_columns',
 'posttype_columns'
 );
 
 function posttype_columns($columns) {
 $columns['author'] =>

    'Escritor';
 $columns['comments'] => 'Opiniones';
 return $columns;
 }
  24. IV - III
 ELIMINAR COLUMNAS

  25. add_filter(
 'manage_posttype_posts_columns',
 'posttype_columns'
 );
 
 function posttype_columns($columns) {
 unset(
 $columns['author'],


    $columns['comments']
 );
 return $columns;
 }
  26. IV - IV
 AGREGANDO RELACIONADOS CON ADVANCES CUSTOM FIELDS

  27. add_filter(
 'manage_posttype_posts_columns',
 'posttype_columns'
 );
 
 function posttype_columns($columns) {
 $columns =

    array(
 'cb' => '<input type="checkbox" />',
 'title' => __('Title'),
 'escuela' => 'Escuela',
 'date' => __('Date'),
 );
 return $columns;
 }
  28. add_action(
 'manage_posttype_posts_custom_column',
 'posttype_custom_columns',
 10, 2
 ); 
 
 function posttype_custom_columns($column,$post_id)

    {
 
 switch ($column) {
 case 'escuela' :
 $escuela = get_field('escuela');
 echo $escuela->post_title;
 break;
 }
 
 }
  29. IV - V
 AGREGANDO IMÁGENES

  30. add_filter(
 'manage_posttype_posts_columns',
 'posttype_columns'
 );
 
 function posttype_columns($columns) {
 $columns =

    array(
 'cb' => '<input type="checkbox" />',
 'miniatura' => 'Miniatura',
 'title' => __('Title'),
 'author' => __('Author'),
 'date' => __('Date'),
 );
 return $columns;
 }
  31. add_action(
 'manage_posttype_posts_custom_column',
 'posttype_custom_columns',
 10, 2
 ); 
 
 function posttype_custom_columns($column,$post_id)

    {
 switch ($column) {
 case 'miniatura' :
 if ( has_post_thumbnail( $post_id ) ) {
 echo get_the_post_thumbnail( $post_id );
 }
 break;
 }
 }
  32. BRAULIO AQUINO braulioaquino.com orange612.com @braulioaquino braulioaquino@gmail.com speakerdeck.com/braulioaquino