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
120
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
270
Un mejor WordPress para tus clientes
braulioaquino
1
400
WordPress: Action & Filter Hooks
braulioaquino
1
290
Herramientas y recursos para editores
braulioaquino
0
300
Custom post types, fields & taxonomies
braulioaquino
0
170
De Blogger a WordPress
braulioaquino
0
66
Wordpress y el contenido externo
braulioaquino
0
170
Generando un API en JSON con WordPress
braulioaquino
0
420
Featured
See All Featured
KATA
mclloyd
32
14k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
33
2.4k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.4k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.6k
Why You Should Never Use an ORM
jnunemaker
PRO
59
9.5k
Java REST API Framework Comparison - PWX 2021
mraible
33
8.8k
Automating Front-end Workflow
addyosmani
1370
200k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
9
810
YesSQL, Process and Tooling at Scale
rocio
173
14k
A designer walks into a library…
pauljervisheath
207
24k
The Cost Of JavaScript in 2023
addyosmani
53
8.9k
Faster Mobile Websites
deanohume
309
31k
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