Mostrar columna para taxonomía personalizada en la página de administración de tipo de publicación personalizada

3 minutos de lectura

avatar de usuario
usuario705100

Me gustaría agregar una columna a mi ventana de administración de tipo de publicación personalizada para mostrar mi taxonomía personalizada.

Esta solución provista por @SarthakGupta crea la columna para mí, pero no refleja ni la taxonomía ni el mensaje “No se ha establecido una taxonomía”: Mostrar la columna de taxonomía personalizada en las listas de tipos de publicaciones personalizadas

He visto soluciones similares publicadas en otros lugares, con quejas similares sobre la columna de taxonomía vacía.

¿Cuál podría ser la causa del problema? ¿Es posible que esta solución no funcione con WordPress 3.3?

Gracias.

Desde WordPress 3.5 puede habilitarlo cuando registre una taxonomía personalizada agregando esto:

'show_ui'           => true,
'show_admin_column' => true,

Tuve este problema y descubrí que reemplazar las funciones de WP get_the_terms con una consulta personalizada funcionó mejor: intente (donde custtype es el nombre de su tipo de publicación personalizada):

// custom columns
add_filter("manage_edit-custtype_columns", "custtype_columns");
add_action("manage_posts_custom_column", "custtype_custom_columns",10,2);

function custtype_columns($columns){
    $columns = array(
        "cb" => "<input type=\"checkbox\" />",
        "title" => "Title",
        "slug" => "URL Slug",
        "custtype-type" => "Custom Taxonomy"
    );
    return $columns;
}

function custtype_custom_columns($column,$id) {
    global $wpdb;
        switch ($column) {
        case 'custtype-type':
            $types = $wpdb->get_results("SELECT name FROM $wpdb->posts LEFT OUTER JOIN $wpdb->term_relationships ON ID = object_id LEFT OUTER JOIN $wpdb->terms ON term_taxonomy_id = term_id WHERE ID = {$id}");
            foreach($types as $loopId => $type) {
                echo $type->name.', ';
            }
            break;
        case 'slug':
            $text = basename(get_post_permalink($id));
            echo $text;
            break;
        default:
            break;
        } // end switch
}

¿Eso funciona en absoluto?

  • mj7: Muchas gracias. Esto es genial. Ahora se muestran las taxonomías. Sin embargo, una pregunta: ¿Cómo haría que las babosas y las taxonomías se muestren como enlaces?

    – usuario705100

    21 de marzo de 2012 a las 20:21


  • Obviamente, depende de a qué desee vincularlos: lo siguiente vincularía cada taxonomía en la lista a la página de edición de esa taxonomía: ÚNETE $wpdb->term_relationships ON ID = object_id LEFT OUTER JOIN $wpdb->terms ON term_taxonomy_id = term_id WHERE ID = {$id}”); foreach($tipos como $loopId => $tipo) { echo ‘

    – mj7

    21 de marzo de 2012 a las 20:26


  • Honestamente, no puedo decir cuál es la ubicación correcta de la página que necesita; la mejor manera de averiguarlo es copiar el enlace de la página de destino; péguelo en la etiqueta alrededor del tipo y luego inserte $type-> variable term_id. Nota: debe asegurarse de agregar el campo term_id a la instrucción SQL SELECT como en el ejemplo anterior

    – mj7

    21 de marzo de 2012 a las 21:05


  • Corregido el error del enlace (mi mal). ¡Los enlaces están funcionando! Ahora, si no ha perdido completamente la paciencia con el tema, ¿cómo hacer que el enlace muestre las entradas para esa taxonomía (similar a seleccionar la categoría en la página principal de administración de Publicaciones), en lugar de regresar a la pantalla de edición de la taxonomía?

    – usuario705100

    21 de marzo de 2012 a las 21:32


  • ¿Ha sido útil esta solución?

    Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
    Privacidad