2012-03-21 18 views
5

Me gustaría agregar una columna a la ventana de administración de tipo de publicación personalizada para mostrar mi taxonomía personalizada.Mostrar la columna de la taxonomía personalizada en la página de administración de tipo de publicación personalizada

Esta solución proporcionada por @SarthakGupta crea la columna para mí, pero se hace eco ni la taxonomía ni el "Ningún conjunto taxonomía" mensaje: Showing custom taxonomy column in custom posts type listings

que he visto soluciones similares publicados en otro lugar, con quejas similares sobre el vacío columna de taxonomía.

¿Qué podría estar causando el problema? ¿Es posible que esta solución no funcione con WordPress 3.3?

Gracias.

Respuesta

6

tuve este problema y encontró que la sustitución de los get_the_terms funciones WP con una consulta personalizada funcionó mejor - tratar (donde custtype es el nombre de su encargo tipo de correos):

// 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 
} 

funciona eso en absoluto?

+0

mj7: Muchas gracias. Esto es genial. Las taxonomías ahora se muestran. Una pregunta, sin embargo: ¿cómo haré que las babosas y las taxonomías se muestren como enlaces? – user705100

+0

Obviamente, depende de lo que quiera vincularlos: a continuación, vinculará cada taxonomía de la lista a la página de edición de esa taxonomía: $ types = $ wpdb-> get_results ("SELECT nombre, term_id FROM $ wpdb-> mensajes LEFT OUTER JOIN $ wpdb-> term_relationships ON ID = object_id IZQUIERDA OUTER JOIN $ wpdb-> terms ON term_taxonomy_id = term_id WHERE ID = {$ id} "); \t \t \t foreach ($ tipos como $ loopId => $ tipo) { \t \t \t \t eco '', '.$type->name.'; \t \t \t} \t \t \t break; – mj7

+0

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

22

De Wordpress 3.5 se puede activar cuando registrarse taxonomía personalizada añadiendo esto:

'show_ui'   => true, 
'show_admin_column' => true, 
+1

¡Tan freaking handy! – Dominic

Cuestiones relacionadas