2016-09-27 8 views
6

मैं CPT UI के साथ एक पोस्ट प्रकार बनाया है का उपयोग करके कस्टम पोस्ट प्रकार दिखा रहे हैं:सभी पोस्ट और एक ही श्रेणी

add_action('init', 'cptui_register_my_cpts_matratze'); 
function cptui_register_my_cpts_matratze() { 
    $labels = array(
     "name" => __('Matratzen', ''), 
     "singular_name" => __('Matratze', ''), 
     ); 

    $args = array(
     "label" => __('Matratzen', ''), 
     "labels" => $labels, 
     "description" => "", 
     "public" => true, 
     "publicly_queryable" => true, 
     "show_ui" => true, 
     "show_in_rest" => false, 
     "rest_base" => "", 
     "has_archive" => true, 
     "show_in_menu" => true, 
       "exclude_from_search" => false, 
     "capability_type" => "post", 
     "map_meta_cap" => true, 
     "hierarchical" => false, 
     "rewrite" => array("slug" => "matratze", "with_front" => true), 
     "query_var" => true, 

     "supports" => array("title", "editor", "thumbnail", "excerpt", "trackbacks", "custom-fields", "comments", "revisions", "author", "page-attributes", "post-formats"),  
     "taxonomies" => array("category", "post_tag"), 
      ); 
    register_post_type("matratze", $args); 

// End of cptui_register_my_cpts_matratze() 
} 

हालांकि, जब मैं अपने दृश्यपटल में एक लिंक से अधिक श्रेणियों का उपयोग करना चाहते हैं, मैं कोई पोस्ट नहीं

Category

पोस्ट पर है और श्रेणी DaMi है:

Post

मेरी CPT UI Post Type को गलत तरीके से कॉन्फ़िगर किया गया है

उदाहरण के लिए, जब आप पर मैं कुछ भी नहीं वापस पाने के लिए क्लिक करें? कोई सुझाव क्या मैं गलत कर रहा हूँ?

+0

सुनिश्चित नहीं है लेकिन $ args में 'menu_position' => 1 जोड़ें। https://codex.wordpress.org/Function_Reference/register_post_type –

+0

@DevDanidhariya मैंने अभी अपना जवाब स्पष्ट किया है! यह बैकएंड मेनू के बारे में नहीं है, लेकिन फ्रंटेंड डिस्प्ले! वैसे भी Thx !! – mrquad

+0

@mrquad: क्या आप अपना 'register_taxonomy' कोड भी साझा कर सकते हैं। –

उत्तर

3

here

से अधिक नज़र डिफ़ॉल्ट अपने WordPress साइट श्रेणी पृष्ठों पर केवल, डिफ़ॉल्ट 'पोस्ट' पोस्ट प्रकार प्रदर्शित करेगा, ताकि आप अपने सीपीटी जोड़ने के लिए पहले Wordpress pre_get_posts फ़िल्टर लगाकर पदों क्वेरी की जरूरत तक।

add_filter('pre_get_posts', 'query_post_type'); 
function query_post_type($query) { 
    if(is_category()) { 
    $post_type = get_query_var('post_type'); 
    if($post_type) 
     $post_type = $post_type; 
    else 
     $post_type = array('nav_menu_item', 'post', 'matratze'); // don't forget nav_menu_item to allow menus to work! 
    $query->set('post_type',$post_type); 
    return $query; 
    } 
} 
+2

इस लिंक में 404 के मामले में, आपके उत्तर में यह दिखाने के लिए सबसे अच्छा है कि लेख क्या बताता है – Spartacus

2

आप अपने कस्टम पोस्ट प्रकार के लिए Wordpress मानक श्रेणी का उपयोग करते हैं, डिफ़ॉल्ट रूप से Wordpress श्रेणी संग्रह पृष्ठ पर अपने कस्टम पोस्ट प्रकार पदों दिखाई नहीं देंगे:

यहाँ कोड गयी। तो आपको अपना कस्टम पोस्ट प्रकार शामिल करने के लिए श्रेणी संग्रह पृष्ठ क्वेरी को संशोधित करना होगा।

कृपया function.php फ़ाइल में निम्न कोड शामिल करें। निम्नलिखित कोड में अपना कस्टम पोस्ट प्रकार नाम बदलने के लिए मत भूलना।

function add_custom_post_types_to_tax($query) { 
    if(is_category() || is_tag() && 
     empty($query->query_vars['suppress_filters'])) { 

     // Include your custom post type 
     $post_types = array('post', 'your_custom_type'); 

     $query->set('post_type', $post_types); 
     return $query; 
    } 
} 

add_filter('pre_get_posts', 'add_custom_post_types_to_tax'); 

आशा है कि यह आपकी मदद करेगा।

1

इस के लिए,

function query_post_type($query) { 
    if(is_category()) { 
     $post_type = get_query_var('post_type'); 
     // post type get here 
     if($post_type){ 
       // no more code here for by default 
     }   
     else{ 
      $post_types = array('post', 'your_custom_type'); 
      // custom type   
     } 
     $query->set('post_type',$post_type); 
     return $query; 
    } 
} 
add_filter('pre_get_posts', 'query_post_type'); 

मैं इस समारोह का उपयोग करें लगता है और यह काम हो जाएगा। इसके लिए कोई और मुद्दा टिप्पणी।

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