2012-03-21 13 views
5

Chciałbym dodać kolumnę do mojego niestandardowego okna administracyjnego typu wpisu, aby wyświetlić moją niestandardową taksonomię.Wyświetlanie kolumny dla niestandardowej taksonomii na niestandardowej stronie typu wpisu administracyjnego

Rozwiązanie dostarczone przez @SarthakGupta tworzy kolumnę dla mnie, ale echa ani taksonomii ani komunikat „Nie ustalono taksonomia”: Showing custom taxonomy column in custom posts type listings

widziałem podobne rozwiązania pisał gdzie indziej, z podobnych skarg o pusty kolumna taksonomiczna.

Co może być przyczyną problemu? Czy to możliwe, że to rozwiązanie nie działa z WordPress 3.3?

Dzięki.

Odpowiedz

6

miałem ten problem i okazało się, że zastąpienie funkcji WP get_the_terms z kwerendy niestandardowej pracował lepiej - spróbuj (gdzie custtype jest nazwą niestandardowego typu postu):

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

to działa na wszystkich?

+0

mj7: Dziękuję bardzo. To jest świetne. Taksonomie są teraz wyświetlane. Jedno pytanie: w jaki sposób sprawić, by ślimaki i taksonomie były wyświetlane jako linki? – user705100

+0

Oczywiście zależy to od tego, do czego mają je Państwo podłączyć - poniżej każda kategoria taksonomiczna będzie powiązana na stronie edycji dla tej taksonomii: $ types = $ wpdb-> get_results ("WYBIERZ nazwę, wyrażenie_zdalne od $ wpdb-> posts LEFT OUTER DOŁĄCZ $ wpdb-> term_relationships ON ID = object_id LEFT OUTER JOIN $ wpdb-> terms ON term_taxonomy_id = term_id WHERE ID = {$ id} "); \t \t \t foreach ($ Wykonania $ loopId => $ rodzaju) { \t \t \t \t ECHO '.$type->name.', "; \t \t \t} \t \t \t Przerwa; – mj7

+0

Nie mogę uczciwie powiedzieć, jaka jest właściwa lokalizacja do strony, której potrzebujesz - najlepszym sposobem, aby się przekonać, jest skopiowanie linku strony docelowej - wklej ją do znacznika wokół typu, a następnie wstaw typ $ - > zmienna term_id. Uwaga: musisz upewnić się, że dodajesz pole term_id do instrukcji SQL SELECT, jak w powyższym przykładzie. – mj7

22

z WordPress 3.5 można włączyć go podczas rejestracji niestandardowe taksonomii, dodając w ten sposób:

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

Tak cholernie przydatny! – Dominic

Powiązane problemy