Ocultar la descripción del término en la página de edición para una taxonomía específica

17 feb 2016, 10:31:53
Vistas: 15.3K
Votos: 6

He escrito descripciones largas para una taxonomía de categoría personalizada. No quiero eliminarlas, solo ocultarlas en la página de administración:

/wp-admin/term.php?taxonomy=custom_category

Podría usar CSS para ocultar la clase "column-description", pero no sé cómo aplicarlo solo a esta taxonomía.

0
Todas las respuestas a la pregunta 4
2
10

Podrías dirigirte al formulario de edición para la taxonomía post_tag, mediante el hook post_tag_edit_form:

/**
 * Ocultar la descripción del término en el formulario de edición de post_tag
 */
add_action( "post_tag_edit_form", function( $tag, $taxonomy )
{ 
    ?><style>.term-description-wrap{display:none;}</style><?php
}, 10, 2 );

Aquí también puedes dirigirte a una etiqueta individual.

Si necesitas algo similar para otras taxonomías, puedes usar el hook {taxonomy_slug}_edit_form.

Actualización

Parece que la pregunta era sobre las tablas de listado, no el formulario de edición.

Investigué las tablas de listado en WordPress y encontré una manera de eliminar la columna de descripción de la tabla de términos en edit-tags.php

/**
 * Eliminar la columna 'description' de la tabla en 'edit-tags.php'
 * pero solo para la taxonomía 'post_tag'
 */
add_filter('manage_edit-post_tag_columns', function ( $columns ) 
{
    if( isset( $columns['description'] ) )
        unset( $columns['description'] );   

    return $columns;
} );

Si deseas hacer lo mismo para otras taxonomías, usa el filtro manage_edit-{taxonomy_slug}_columns.

17 feb 2016 11:03:38
Comentarios

gracias por la respuesta. No era exactamente lo que quería, pero me dio la idea de lo que necesitaba hacer. Quería ocultar la columna de la lista de categorías. Es decir, cuando haces clic en el tipo de publicación y luego el menú desplegable muestra "categorías", quería ocultar la descripción en esta página. Usé el hook _add_form_fields en su lugar y apliqué la regla CSS ahí

user1889580 user1889580
17 feb 2016 14:41:30

Actualicé la respuesta con una forma de eliminar la columna 'description' de la tabla de términos. Espero haber entendido correctamente ahora, si es así, por favor corrige mis ediciones anteriores a tu pregunta ;-) @DanHastings

birgire birgire
17 feb 2016 16:02:24
3

La forma más limpia de hacerlo, eliminando el campo de descripción tanto en la pantalla de edición como en la de añadir:

function hide_description_row() {
    echo "<style> .term-description-wrap { display:none; } </style>";
}

add_action( "{taxonomy_slug}_edit_form", 'hide_description_row');
add_action( "{taxonomy_slug}_add_form", 'hide_description_row');

Por supuesto, necesitas reemplazar {taxonomy_slug} con el slug de tu taxonomía.

13 jul 2018 13:10:44
Comentarios

Debería marcarse como la respuesta aceptada.

Luca Reghellin Luca Reghellin
11 oct 2019 17:24:40

Esta es una buena respuesta para ocultar el campo de edición de descripción, pero la mayoría de los casos de uso probablemente incluirán ocultar también la columna usando el filtro manage_edit-{taxonomy_slug}_columns.

phip phip
30 ago 2022 03:54:32

Según lo veo, esto resultará en HTML inválido debido a las etiquetas de estilo fuera del <head>. Mira mi solución propuesta.

Merc Merc
8 jun 2023 16:04:20
0

Si también necesitas ocultar el campo de descripción en el formulario de añadir, utiliza este código:

/**
 * Oculta la descripción del término en el formulario de edición
 */
add_action( '{taxonomy_slug}_add_form', function( $taxonomy )
{
    ?><style>.term-description-wrap{display:none;}</style><?php
}, 10, 2 );
6 jun 2017 17:03:52
0

Yo propondría otra solución.


function add_custom_taxonomy_css()
{
  wp_enqueue_style(
    "custom-taxonomy",
    get_stylesheet_directory_uri() . "/custom-taxonomy.css"
  );
}

add_action("exhibitions_edit_form", "add_custom_taxonomy_css");
add_action("exhibitions_add_form", "add_custom_taxonomy_css");

y el archivo custom-taxonomy.css

/*
 * Ocultar la descripción de la taxonomía
 */

.term-description-wrap {
  display: none;
}

Esto tiene, en contraste con la otra solución, la ventaja de que seguimos obteniendo HTML válido, porque no tenemos etiquetas <style> sueltas dentro de nuestro <body>.

8 jun 2023 16:05:29