2012-03-21 17 views
5

मैं अपनी कस्टम वर्गीकरण प्रदर्शित करने के लिए अपने कस्टम पोस्ट प्रकार व्यवस्थापक विंडो में एक कॉलम जोड़ना चाहता हूं।कस्टम पोस्ट प्रकार पर कस्टम वर्गीकरण के लिए कॉलम प्रदर्शित करना व्यवस्थापक पृष्ठ

@SarthakGupta द्वारा प्रदान की यह समाधान मेरे लिए स्तंभ बनाता है लेकिन न तो है और न ही वर्गीकरण "नहीं वर्गीकरण सेट" संदेश गूँज: Showing custom taxonomy column in custom posts type listings

मैंने देखा है समान समाधान कहीं और तैनात खाली बारे में इसी तरह की शिकायतों के साथ, वर्गीकरण कॉलम।

समस्या का कारण क्या हो सकता है? क्या यह संभव है कि यह समाधान वर्डप्रेस 3.3 के साथ काम न करे?

धन्यवाद।

उत्तर

6

मैं इस मुद्दे था और पाया कि एक कस्टम क्वेरी के साथ WP कार्यों get_the_terms की जगह काम बेहतर - कोशिश (जहां custtype अपने कस्टम पोस्ट प्रकार का नाम है):

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

बिल्कुल कि काम करता है?

+0

mj7: धन्यवाद इतना। यह भी खूब रही। टैक्सोनोमी अब प्रदर्शित होते हैं। एक सवाल, हालांकि: मैं स्लग और टैक्सोनोमी को लिंक के रूप में कैसे प्रदर्शित करूं? – user705100

+0

स्पष्ट रूप से यह निर्भर करता है कि आप उन्हें किस लिंक से जोड़ना चाहते हैं - नीचे दी गई प्रत्येक वर्गीकरण को सूची में उस वर्गीकरण के लिए संपादन पृष्ठ पर लिंक किया जाएगा: $ प्रकार = $ wpdb-> get_results ("चयन का नाम, $ wpdb से term_id-> पोस्ट बाएं बाहरी जॉइन $ wpdb-> आईडी पर term_relationships = object_id बाएं बाहरी जॉइन $ wpdb-> शब्द term_taxonomy_id = term_id पर शब्द आईडी = {$ id} "); गूंज \t \t \t foreach ($ loopId => $ प्रकार के रूप में $ प्रकार) { \t \t \t \t ''.$type->name.','; \t \t \t} \t \t \t ब्रेक; – mj7

+0

मैं ईमानदारी से यह नहीं कह सकता कि आपको आवश्यक पृष्ठ का सही स्थान क्या है - पता लगाने का सबसे अच्छा तरीका लक्ष्य पृष्ठ के लिंक की प्रतिलिपि बनाना है - इसे टाइप के चारों ओर एक टैग में पेस्ट करें और फिर $ type- > term_id चर। नोट - आपको यह सुनिश्चित करने की ज़रूरत है कि आप टर्म_आईडी फ़ील्ड को SQL SELECT कथन में जोड़ें जैसा ऊपर – mj7

22

Wordpress 3.5 से आप जब आप इस जोड़कर कस्टम वर्गीकरण पंजीकरण के सक्षम कर सकते हैं:

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

तो मजाकिया आसान! – Dominic

संबंधित मुद्दे