IU de taxonomía jerárquica

11

No me gusta la forma en que se muestran las taxonomías en el administrador de Wordpress y me preguntaba si alguien sabía cuál era la mejor manera de conectarlo y cambiarlo. Actualmente, si selecciono algunos términos dentro de mi publicación, los términos seleccionados van al principio de la lista y la jerarquía se rompe, lo que hace que sea visualmente confuso para el usuario.

Por favor, vea estas imágenes para tener una idea de lo que estoy hablando

Quiero mostrar las taxonomías exactamente como se muestran inicialmente con solo los términos correctos marcados. ¿Hay alguna forma de hacerlo sin tener que editar el núcleo de Wordpress directamente? No puedo ver ningún gancho para mi uso.

¡Gracias por cualquier ayuda que puedas dar!

Helen

    
pregunta FlimFlam 05.09.2012 - 18:42

2 respuestas

7

Hay un complemento por Scribu llamado Árbol de lista de verificación de la categoría que deshabilita esta" característica ".

    
respondido por el Emzo 11.09.2012 - 20:57
2

Retroceso

Primero verifiquemos dónde sucede esto realmente:

El cuadro de meta se agrega en las pantallas post.php y post-new.php .

# inside ~/wp-admin/edit-form-advanced.php
// TAGS:
if ( !is_taxonomy_hierarchical($tax_name) )
    add_meta_box('tagsdiv-' . $tax_name, $label, 'post_tags_meta_box', null, 'side', 'core', array( 'taxonomy' => $tax_name ));
// CATEGORIES:
else
    add_meta_box($tax_name . 'div', $label, 'post_categories_meta_box', null, 'side', 'core', array( 'taxonomy' => $tax_name ));

Luego, movemos un archivo más profundo hacia el núcleo para llegar a la definición / devolución de llamada de la meta caja

// inside ~/wp-admin/meta-boxes.php
function post_categories_meta_box( $post, $box )

La pestaña categorychecklist es la que contiene la lista. Dentro de div , tenemos una función llamada wp_popular_terms_checklist($taxonomy); .

# inside ~/wp-admin/includes/template.php
<li id="<?php echo $id; ?>" class="popular-category">
<label class="selectit">
<input id="in-<?php echo $id; ?>" type="checkbox" <?php echo $checked; ?> value="<?php echo (int) $term->term_id; ?>" <?php echo $disabled ?>/>
    <?php echo esc_html( apply_filters( 'the_category', $term->name ) ); ?>
</label>
</li>

»Conclusión:

Esto significa que no tenemos una oportunidad real de interceptar esto en el nivel del servidor sin problemas con los filtros / ganchos de WP y PHP.

Haciendo algo como ...

add_filter( 'wp_get_object_terms', '__return_empty_array', 20, 4 );

... simplemente deshabilitaría las casillas marcadas por completo.

se actualizará si obtengo más información y (quizás una solución)

    
respondido por el kaiser 05.09.2012 - 22:09

Lea otras preguntas en las etiquetas