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
260
Un mejor WordPress para tus clientes
braulioaquino
1
380
WordPress: Action & Filter Hooks
braulioaquino
1
280
Herramientas y recursos para editores
braulioaquino
0
290
Custom post types, fields & taxonomies
braulioaquino
0
160
De Blogger a WordPress
braulioaquino
0
62
Wordpress y el contenido externo
braulioaquino
0
170
Generando un API en JSON con WordPress
braulioaquino
0
420
Featured
See All Featured
Rails Girls Zürich Keynote
gr2m
94
13k
The Language of Interfaces
destraynor
158
25k
The Straight Up "How To Draw Better" Workshop
denniskardys
233
140k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.3k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.8k
Measuring & Analyzing Core Web Vitals
bluesmoon
7
430
Site-Speed That Sticks
csswizardry
6
560
Automating Front-end Workflow
addyosmani
1370
200k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
30
2.4k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
45
9.5k
Reflections from 52 weeks, 52 projects
jeffersonlam
349
20k
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