कस्टम वर्गीकरण सूची पृष्ठ?


11

मैं एक रेस्तरां साइट पर काम कर रहा हूं, और मेरे पास व्यंजनों के लिए एक कस्टम पोस्ट प्रकार है, जैसे:

$args = array(
    'labels'=> $labels,
    'public'=> true,
    'publicly_queryable'=>true,
    'show_ui'=>true,
    'show_in_nav_menus'=>true,
    'query_var'=>'dish',
    'rewrite'=>true,
    'capability_type'=>'post',
    'hierarchicial'=>false,
    'menu_position'=>5,
    'supports'=>array(
        'title',
        'editor',
        'thumbnail',
        'excerpt',
        'custom-fields',
        'revisions'
    )   
);  

register_post_type('dish', $args);

कस्टम टैक्सोनॉमी में से एक का एक उदाहरण जिसका मैं उपयोग करना चाहता हूं वह यह है:

register_taxonomy('Main Ingredient', array('dish'), array(
    'hierarchical' => true,
    'label' => 'Main Ingredient',
    'singular_label' => 'Main Ingredient',
    'query_var'=>true,
    'rewrite' => true)
);

कस्टम टैक्सोनॉमी एडमिन में ठीक काम कर रहे हैं, और मैं myurl.com/main-ingredient/porkउनमें पोर्क के साथ सभी व्यंजनों की सूची देख सकता हूं।

मैं जो करना चाहता हूं वह myurl.com/main-ingredientसभी विभिन्न मुख्य घटक मूल्यों की एक सूची को हिट करने और प्राप्त करने में सक्षम है ।

मुझे यह संदर्भ मिला , जो कि वास्तव में मैं करने की कोशिश कर रहा हूं।

लेकिन समाधान मेरे लिए काम नहीं कर रहा है - मुझे अभी भी 404 मिल रहा है myurl.com/main-ingredient

यह कैसे करना है पर कोई सुझाव?

जवाबों:


20

आपके कराधान के लिए "इंडेक्स" पृष्ठ प्रदान करने के लिए वर्डप्रेस में कुछ भी अंतर्निहित नहीं है क्योंकि आपके प्रश्न का तात्पर्य है (और मुझे सहमत होना चाहिए, वहाँ होना चाहिए! लेकिन वहाँ नहीं है।)

इसके बजाय आपको इसे हैक करना होगा और ऐसा करने का एक तरीका URL स्लग के साथ "मुख्य घटक" नामक एक पेज बनाना होगा main-ingredientऔर इसे अपने विषय के लिए एक पेज टेम्पलेट असाइन करना होगा जिसे आप "मुख्य घटक सूची" नामक (शायद) बनाएंगे :

स्क्रीनशॉट दिखा रहा है कि वर्डप्रेस में पेज टेम्प्लेट कहाँ सेट करना है
(स्रोत: mikeschinkel.com )

यहाँ एक प्रारंभिक बिंदु है; हो सकता है कि page-main-ingredient-list.php आपके पृष्ठ टेम्पलेट के लिए फ़ाइल नाम का उपयोग करें :

<?php
/*
Template Name: Main Ingredient List
*/
get_header();
$main_ingredients = get_terms('main-ingredient');
foreach($main_ingredients as $main_ingredient) {
  $dishes = new WP_Query(array(
    'post_type' => 'dish',
    'post_per_page'=>-1,
    'taxonomy'=>'main-ingredient',
    'term' => $main_ingredient->slug,
  ));
  $link = get_term_link(intval($main_ingredient->term_id),'main-ingredient');
  echo "<h2><a href=\"{$link}\">{$main_ingredient->name}</a></h2>";
  echo '<ul>';
  while ( $dishes->have_posts() ) {
    $dishes->the_post();
    $link = get_permalink($post->ID);
    $title = get_the_title();
    echo "<li><a href=\"{$link}\">{$title}</a></li>";
  }
  echo '</ul>';
}
get_footer();

और फिर यहाँ मेरी परीक्षा साइट पर कुछ डमी डेटा के साथ पृष्ठ कैसा दिखता है:

वर्डप्रेस साइट के लिए एक टैक्सोनॉमी इंडेक्स पेज का स्क्रीनशॉट


हाय माइक, हाँ मैंने ऐसा किया। यह मदद नहीं करता है।

@ जोश - मैंने आपको अपनी थीम की functions.phpफ़ाइल में यहां पाया गया कोड जोड़ा और फिर http://wp30.dev/main-ingredient/chicken/ ( wp30.devमेरे स्थानीय परीक्षण स्थल पर) गया और यह स्क्रीनशॉट मिला । तो अगर यह काम नहीं कर रहा है तो आपके पास कुछ प्लगइन या कुछ अन्य कोड हैं जो काम नहीं कर रहे हैं।
माइकस्किंकेल

उत्तर माइक के लिए धन्यवाद। यह मेरे लिए काम करता है, लेकिन समस्या मैं हल करने की कोशिश कर रहा हूँ नहीं है। मैं वर्गीकरण के शीर्ष स्तर पर जाकर मुख्य सामग्रियों की एक सूची प्राप्त करने की कोशिश कर रहा हूं। दूसरे शब्दों में, यदि आप अपने URL से "चिकन" को खत्म करते हैं, तो आपको 404 पेज मिलना चाहिए। यही वह समस्या है, जिसमें मैं भाग रहा हूं।

@ जोश - ठीक है, अब मैं देख रहा हूँ। क्षमा करें, मैं आज भी कई सवालों के जवाब दे रहा हूं। FYI करें, वर्डप्रेस में कुछ भी "बिल्ट-इन" तरीका नहीं है जो आप पूछ रहे हैं उसे संभालने के लिए। यह स्वचालित रूप से वहाँ होने के लिए बहुत सारी समझ बनाएगा, लेकिन वर्तमान में यह नहीं है। मैं एक अपडेट लिखूंगा जो एक वर्कअराउंड है।
5

3
@ जोश - "लेकिन मैं कर-दर शब्द के माध्यम से पोस्ट देखने और नेविगेशन की महान अंतर्निहित कार्यक्षमता को खोने से नफरत करता हूं": मुझे कुछ याद नहीं करना चाहिए क्योंकि मैं नहीं देखता कि आप इसके साथ कुछ भी कैसे ढीला करते हैं?
माइकस्किंकेल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.