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
110
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
270
Herramientas y recursos para editores
braulioaquino
0
260
Custom post types, fields & taxonomies
braulioaquino
0
140
De Blogger a WordPress
braulioaquino
0
55
Wordpress y el contenido externo
braulioaquino
0
160
Generando un API en JSON con WordPress
braulioaquino
0
410
Featured
See All Featured
Designing for humans not robots
tammielis
250
25k
jQuery: Nuts, Bolts and Bling
dougneiner
61
7.6k
Imperfection Machines: The Place of Print at Facebook
scottboms
266
13k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
10
810
The Power of CSS Pseudo Elements
geoffreycrofte
73
5.4k
Making the Leap to Tech Lead
cromwellryan
133
9k
How STYLIGHT went responsive
nonsquared
96
5.2k
RailsConf 2023
tenderlove
29
940
VelocityConf: Rendering Performance Case Studies
addyosmani
326
24k
Producing Creativity
orderedlist
PRO
342
39k
Fontdeck: Realign not Redesign
paulrobertlloyd
82
5.3k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
2
290
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