¿Estás buscando una forma de añadir tipos de entradas de WordPress al widget ‘De un vistazo’ del panel de control? Aunque probablemente exista un plugin para ello, hemos creado un rápido fragmento de código que puedes utilizar para añadir tipos de entrada de WordPress al widget ‘De un vistazo’ del salpicadero.
El panel de control de WordPress incluye un práctico widget que muestra de un vistazo una breve información sobre su sitio web – de forma bastante creativa, se titula “De un vistazo”. Por defecto, te muestra el número de entradas, páginas y comentarios de tu sitio, permitiéndote hacer clic para editar cada una de esas secciones si tienes los permisos adecuados.
Al crear un plugin con un tipo de entrada personalizado, a menudo es una buena idea añadir tu tipo de entrada al widget, ya que hace que las cosas sean más accesibles y, en general, más fáciles de usar para todos. Usando el siguiente fragmento puedes añadir cualquier tipo de entrada personalizada a este widget. Todo lo que necesitas hacer es reemplazar el array $post_types
con un array de los tipos de post que quieres añadir al widget. Verás que el fragmento incluye una comprobación de seguridad para que sólo los usuarios con permiso para editar cada tipo de entrada puedan hacer clic y hacerlo.
Una vez que hayas añadido los tipos de entrada al widget, tendrán un icono circular junto a ellos de forma predeterminada. Pero puedes sustituirlo fácilmente por cualquiera de los dashicons disponibles en MP6 y WordPress 3.8+. Todo lo que necesitas es un simple CSS. El CSS proporcionado aquí sustituirá el círculo por el mismo icono que utiliza el tipo de entrada Entradas. Puedes reemplazar el atributo de contenido con uno de los iconos de este conjunto – sólo tienes que seleccionar el icono y copiar el CSS correspondiente desde el enlace proporcionado.
Instrucciones:
Todo lo que tienes que hacer es añadir este código al archivo functions.php de tu tema o en un plugin específico del sitio:
add_filter( 'dashboard_glance_items', 'custom_glance_items', 10, 1 ); function custom_glance_items( $items = array() ) { $post_types = array( 'post_type_1', 'post_type_2' ); foreach( $post_types as $type ) { if( ! post_type_exists( $type ) ) continue; $num_posts = wp_count_posts( $type ); if( $num_posts ) { $published = intval( $num_posts->publish ); $post_type = get_post_type_object( $type ); $text = _n( '%s ' . $post_type->labels->singular_name, '%s ' . $post_type->labels->name, $published, 'your_textdomain' ); $text = sprintf( $text, number_format_i18n( $published ) ); if ( current_user_can( $post_type->cap->edit_posts ) ) { $items[] = sprintf( '<a class="%1$s-count" href="edit.php?post_type=%1$s">%2$s</a>', $type, $text ) . "n"; } else { $items[] = sprintf( '<span class="%1$s-count">%2$s</span>', $type, $text ) . "n"; } } } return $items; }
Añade el siguiente código a tu archivo CSS.
#dashboard_right_now a.post_type-count:before, #dashboard_right_now span.post_type-count:before { content: "f109"; }
Nota: Si es la primera vez que añade fragmentos de código en WordPress, consulte nuestra guía sobre cómo copiar / pegar correctamente fragmentos de código en WordPress, para no romper accidentalmente su sitio.
Si te ha gustado este fragmento de código, por favor considere revisar nuestros otros artículos en el sitio como: 10 mejores plugins de tabla de WordPress para organizar datos y cómo crear un formulario emergente en WordPress.
the icon no work…
the icon no work…
the icon no work…
the icon no work…
the icon no work…
the icon no work…
the icon no work…
the icon no work…
the icon no work…
the icon no work…
the icon no work…
the icon no work…
the icon no work…
the icon no work…
the icon no work…
the icon no work…
the icon no work…
the icon no work…
the icon no work…
the icon no work…
the icon no work…
the icon no work…
the icon no work…
the icon no work…
Excellent snippet 🙂
One suggestion for improvement. You can
make the text displayed in the ‘at a glance’ widget link to the page
where the custom post types are displayed; just like normal posts or
pages.
Simply change (first occurence):
$items[] = sprintf( ‘%2$s’, $type, $text ) . “n”;
To this:
$items[] = sprintf( ‘%2$s’, $type, ‘<a href=”‘ . admin_url() . ‘edit.php?post_type=’ . $type . ‘”>’ . $text . ‘‘ ) . “n”;
It will even work within the foreach loop; still allowing you to define the custom post types in the first variable of the function.
Thanks man!!
I think you forgot to close your tag…