Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Columnas personalizadas en listado de contenido...
Search
Braulio Aquino
March 28, 2015
1
100
Columnas personalizadas en listado de contenidos del wp-admin
Braulio Aquino
March 28, 2015
Tweet
Share
More Decks by Braulio Aquino
See All by Braulio Aquino
¿Cómo comenzar a realizar trabajos con WordPress?
braulioaquino
0
1.8k
Automatización en WordPress: Hooks & Cron
braulioaquino
2
250
Un mejor WordPress para tus clientes
braulioaquino
1
350
WordPress: Action & Filter Hooks
braulioaquino
1
250
Herramientas y recursos para editores
braulioaquino
0
250
Custom post types, fields & taxonomies
braulioaquino
0
140
De Blogger a WordPress
braulioaquino
0
51
Wordpress y el contenido externo
braulioaquino
0
160
Generando un API en JSON con WordPress
braulioaquino
0
410
Featured
See All Featured
The Invisible Side of Design
smashingmag
297
50k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.2k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.6k
Facilitating Awesome Meetings
lara
49
6k
Art, The Web, and Tiny UX
lynnandtonic
296
20k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
31
2.6k
A designer walks into a library…
pauljervisheath
202
24k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
664
120k
The Mythical Team-Month
searls
218
43k
Clear Off the Table
cherdarchuk
91
320k
Agile that works and the tools we love
rasmusluckow
327
21k
The Pragmatic Product Professional
lauravandoore
31
6.2k
Transcript
PERSONALIZAR COLUMNAS AL LISTAR CONTENIDO EN EL WP-ADMIN Braulio Aquino
BRAULIO AQUINO orange612.com @braulioaquino
Listado en panel de posts: título + autor + categorías
+ etiquetas + comentarios + fecha
Listado en panel de páginas: título + autor + comentarios
+ fecha
Listado en panel de custom post type: título + fecha
None
None
None
I DEFINIENDO LOS CAMPOS
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.
function posttype_columns($columns) { $new_columns = array( 'escuela' => 'Escuela', 'portada'
=> 'Portada', ); return array_merge( $columns, $new_columns ); } • Campos listados: titulo + … + fecha + escuela + portada
II COLOCANDO VALORES
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
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; } }
None
III HACIÉNDOLOS ORDENABLES
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.
function posttype_sortable_columns($columns) { $columns['escuela'] = 1; $columns['portada'] = 0; return
$columns; } • Booleanos: 0 para Falso y 1 para Verdadero.
IV OTRAS CONFIGURACIONES
IV - I NO COLOCAR LAS COLUMNAS AL FINAL DE
OTRAS
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; }
IV - II CAMBIAR NOMBRE A COLUMNAS
add_filter( 'manage_posttype_posts_columns', 'posttype_columns' ); function posttype_columns($columns) { $columns['author'] =>
'Escritor'; $columns['comments'] => 'Opiniones'; return $columns; }
IV - III ELIMINAR COLUMNAS
add_filter( 'manage_posttype_posts_columns', 'posttype_columns' ); function posttype_columns($columns) { unset( $columns['author'],
$columns['comments'] ); return $columns; }
IV - IV AGREGANDO RELACIONADOS CON ADVANCES CUSTOM FIELDS
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; }
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; } }
IV - V AGREGANDO IMÁGENES
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; }
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; } }
BRAULIO AQUINO braulioaquino.com orange612.com @braulioaquino
[email protected]
speakerdeck.com/braulioaquino