$30 off During Our Annual Pro Sale. View Details »

Columnas personalizadas en listado de contenidos del wp-admin

Braulio Aquino
March 28, 2015
96

Columnas personalizadas en listado de contenidos del wp-admin

Braulio Aquino

March 28, 2015
Tweet

Transcript

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

    View Slide

  2. BRAULIO
    AQUINO
    orange612.com
    @braulioaquino

    View Slide

  3. Listado en panel de posts:

    título + autor + categorías + etiquetas

    + comentarios + fecha

    View Slide

  4. Listado en panel de páginas:

    título + autor + comentarios + fecha

    View Slide

  5. Listado en panel de custom post type:

    título + fecha

    View Slide

  6. View Slide

  7. View Slide

  8. View Slide

  9. I

    DEFINIENDO LOS CAMPOS

    View Slide

  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.

    View Slide

  11. function posttype_columns($columns) {

    $new_columns = array(

    'escuela' => 'Escuela',

    'portada' => 'Portada',

    );

    return array_merge(

    $columns,

    $new_columns

    );

    }
    • Campos listados:

    titulo + … + fecha + escuela + portada

    View Slide

  12. II

    COLOCANDO VALORES

    View Slide

  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

    View Slide

  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;


    }


    }

    View Slide

  15. View Slide

  16. III

    HACIÉNDOLOS ORDENABLES

    View Slide

  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.

    View Slide

  18. function posttype_sortable_columns($columns) {

    $columns['escuela'] = 1;

    $columns['portada'] = 0;

    return $columns;

    }
    • Booleanos:

    0 para Falso y 1 para Verdadero.

    View Slide

  19. IV

    OTRAS CONFIGURACIONES

    View Slide

  20. IV - I

    NO COLOCAR LAS COLUMNAS AL
    FINAL DE OTRAS

    View Slide

  21. add_filter(

    'manage_posttype_posts_columns',

    'posttype_columns'

    );


    function posttype_columns($columns) {

    $columns = array(

    'cb' => '',

    'title' => __('Title'),

    'escuela' => 'Escuela',

    'portada' => 'Portada',

    'date' => __('Date'),

    );

    return $columns;

    }

    View Slide

  22. IV - II

    CAMBIAR NOMBRE A COLUMNAS

    View Slide

  23. add_filter(

    'manage_posttype_posts_columns',

    'posttype_columns'

    );


    function posttype_columns($columns) {

    $columns['author'] => 'Escritor';

    $columns['comments'] => 'Opiniones';

    return $columns;

    }

    View Slide

  24. IV - III

    ELIMINAR COLUMNAS

    View Slide

  25. add_filter(

    'manage_posttype_posts_columns',

    'posttype_columns'

    );


    function posttype_columns($columns) {

    unset(

    $columns['author'],

    $columns['comments']

    );

    return $columns;

    }

    View Slide

  26. IV - IV

    AGREGANDO RELACIONADOS CON
    ADVANCES CUSTOM FIELDS

    View Slide

  27. add_filter(

    'manage_posttype_posts_columns',

    'posttype_columns'

    );


    function posttype_columns($columns) {

    $columns = array(

    'cb' => '',

    'title' => __('Title'),

    'escuela' => 'Escuela',

    'date' => __('Date'),

    );

    return $columns;

    }

    View Slide

  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;

    }


    }

    View Slide

  29. IV - V

    AGREGANDO IMÁGENES

    View Slide

  30. add_filter(

    'manage_posttype_posts_columns',

    'posttype_columns'

    );


    function posttype_columns($columns) {

    $columns = array(

    'cb' => '',

    'miniatura' => 'Miniatura',

    'title' => __('Title'),

    'author' => __('Author'),

    'date' => __('Date'),

    );

    return $columns;

    }

    View Slide

  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;

    }

    }

    View Slide

  32. BRAULIO
    AQUINO
    braulioaquino.com
    orange612.com
    @braulioaquino
    [email protected]
    speakerdeck.com/braulioaquino

    View Slide