WordPress 3.0 में नेविगेशन मेनू में पोस्ट के एक संग्रह को जोड़ना


10

हाय सब, मैं वर्डप्रेस 3.0 और दो (2) नई विशेषताओं, कस्टम पोस्ट प्रकार और मेनू संपादक के साथ खेल रहा हूं ।

मैंने एक नया पोस्ट प्रकार बनाकर शुरू किया है जिसे " products" कहा जाता है , जैसा कि आपने अनुमान लगाया है, यह सूची उत्पाद है।

मैं बोग मानक टेम्पलेट का उपयोग कर रहा हूं और शीर्ष नौसेना को बदलने के लिए एक नया मेनू बना रहा हूं। जहां तक ​​मैं देख सकता हूं कि मैं केवल कुछ "उत्पादों" को इसमें जोड़ सकता हूं, मैं उत्पादों का "संग्रह" नहीं जोड़ सकता । मैं जो करने की कोशिश कर रहा हूं वह सभी उत्पादों को सूचीबद्ध करने वाले पृष्ठ पर जाने के लिए मेनू में एक लिंक जोड़ रहा है।

कोई आईडिया कि इसे कैसे किया जाए?

जवाबों:


12

@ जैसा कि आप इस टीआरसी टिकट द्वारा देख सकते हैं: कस्टम पोस्ट प्रकारों के लिए अनुक्रमणिका पृष्ठ होना चाहिए ताकि जाहिर तौर पर वर्डप्रेस कोर में आवश्यकता को संबोधित नहीं किया जा सके।

@ जॉन पी बलोच और @ क्रिस_ओ दोनों आपको अच्छे विकल्प देते हैं; मैं आपको एक 3 देने जा रहा हूं।

एक "उत्पाद" पृष्ठ

पहले अपने कस्टम पोस्ट प्रकार के लिए एक पृष्ठ बनाएं और इसे "उत्पाद" कहें । वह इसे निम्नलिखित URL देगा:

http: //example.php/products/

एक "उत्पाद सूची" शोर्ट

अगला एक शोर्टकोड बनाएं जिसे आप अपने "उत्पाद" पृष्ठ में एम्बेड कर सकते हैं । अपने उदाहरण में मैंने इसे बुलाया [product-list]। यहां इसका उपयोग करने पर कैसा दिखेगा इसका स्क्रीनशॉट दिया गया है:

एक उत्पाद का पृष्ठ जो वर्डप्रेस में उत्पादों की सूची प्रदर्शित करने के लिए एक शोर्ट-कोड का उपयोग करता है
(स्रोत: mikeschinkel.com )

ध्यान दें कि इस तरह का एक शोर्ट बहुत सारी वैकल्पिक कार्यक्षमता को जोड़ने और कई अलग-अलग पोस्ट प्रकारों के लिए काम करने के लिए इसे सक्षम करने के लिए एक महान उम्मीदवार होगा, लेकिन स्पष्टता के हित में मैंने हर चीज को बहुत हार्डकोड किया। आप निश्चित रूप से इसे अपने स्वयं के शोर्ट के लिए शुरुआती बिंदु के रूप में उपयोग कर सकते हैं:

<?php
add_shortcode('product-list', 'my_product_list');
function my_product_list($args) {
  $save_post = $GLOBALS['post'];  // Save state so you can restore later
  $post_type = 'product';
  $template_file = get_stylesheet_directory() . "/post-{$post_type}.php";
  if (!file_exists($template_file)) {
    return "<p>Missing template [$template_file].</p>";
  } else {
    global $post;
    $q = new WP_Query("showposts=10&post_type={$post_type}&orderby=title&order=ASC");
    $rows = array();
    $rows[] = '<div class="post-list ' . $post_type . '-post-list">';
    global $post_list_data;
    $post_list_data = array();
    $post_list_data['post_count'] = $post_count = count($q->posts);
    foreach ($q->posts as $post) {
      $q->the_post();
      ob_start();
      include($template_file);
      $rows[] = ob_get_clean();
    }
    $rows[] = '</div>';
    $GLOBALS['post'] = $save_post;
    return implode("\n",$rows);
  }
}

एक post-product.phpथीम टेम्पलेट फ़ाइल

अगला आपको एक थीम टेम्प्लेट फ़ाइल बनाने की आवश्यकता होगी जो केवल एक उत्पाद प्रदर्शित करती है। वह फ़ंक्शन जो शोर्टकोड को कार्यान्वित करता है, टेम्पलेट फ़ाइल को नाम देता है post-product.phpऔर यहाँ एक अच्छा प्रारंभिक बिंदु है:

<?php
/**
 * post-product.php - File to display only one product within a list of products.
 */
?>
<div id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
  <h2 class="entry-title"><?php the_title(); ?></h2>
  <div class="entry-content">
    <?php the_content(); ?>
  </div>
</div>

मेनू विकल्प जोड़ें

अंतिम आप मेनू विकल्प जोड़ना चाहते हैं। यह बहुत ही सरल है जैसा कि आप इस स्क्रीनशॉट से देख सकते हैं (निम्नलिखित माना जाता है कि आपने वर्डप्रेस 3.0 मेनू से पहले कुछ भी नहीं किया है और आप एक ऐसे विषय का उपयोग कर रहे हैं जो वर्डप्रेस 3.0 मेनू जैसे कि ट्वेंटी टेन का समर्थन करता है):

  1. व्यवस्थापक मेनू में मेनू विकल्प का चयन करें।
  2. एक नया मेनू जोड़ने के लिए " + " पर क्लिक करें ।
  3. अपने मेनू नाम में टाइप करें, जो भी आपको पसंद है।
  4. क्लिक करें "मेनू बनाएँ" बटन (स्क्रीन शॉट शो "मेनू सहेजें" लेकिन यह हो जाएगा "मेनू बनाएँ" को जोड़ते समय।)
  5. अपने "प्राथमिक नेविगेशन" के रूप में अपने नए मेनू का चयन करें ।
  6. अपना "उत्पाद " पृष्ठ चुनें।
  7. "मेनू में जोड़ें" पर क्लिक करें
  8. "मेनू सहेजें" पर क्लिक करें

एक WordPress साइट के लिए एक उत्पाद पृष्ठ मेनू विकल्प जोड़ना
(स्रोत: mikeschinkel.com )

अंत में, आउटपुट

और यहाँ एक मूल उत्पाद सूची क्या दिख सकती है:

वर्डप्रेस में एक कस्टम पोस्ट प्रकार का उपयोग करके उत्पादों की सूची
(स्रोत: mikeschinkel.com )


सवाल यह है कि उत्पादों के मेनू प्रविष्टि को कैसे संशोधित किया जाए ताकि यह सभी उत्पादों के साथ एक सबमेनू प्रदान करे।
हेक्रे

@harke अपडेट किया गया।
माइकस्किंकल

अच्छा है कि एक अनुरोध नहीं था :)। मैं बस सोच रहा था कि ड्रॉप-डाउन स्वचालित रूप से कैसे बनता है और मुझे लगता है कि अभी भी इसका फायदा नहीं हुआ है। लेकिन जैसा कि लिखा गया है, यह कोई अनुरोध नहीं है
हैकर

नमस्ते, मुझे इससे समस्या है और आशा है कि आप मदद कर सकते हैं। समस्या है current-menu-itemवर्ग पर लागू नहीं होती है उत्पादों 'li
Reigel

मिसिंग इमेज। : /
FUXIA

4

यह मूल रूप से वर्डप्रेस द्वारा समर्थित नहीं है। हालाँकि, आप इसे अपने functions.php फ़ाइल में जोड़ सकते हैं और यह काम करेगा:

function give_me_a_list_of_products(){
  add_rewrite_rule( 'products/?$', 'index.php?post_type=products', 'top' );
}

add_action( 'init', 'give_me_a_list_of_products' );

यह आपको उत्पादों की सूची के रूप में example.com/products/ देगा। वहां से, आप बस अपने मेनू में एक कस्टम लिंक जोड़ते हैं।

हालाँकि, यदि आप फ़ीड के साथ सच्चा संग्रह (महीने, वर्ष, आदि) चाहते हैं, तो आपको अधिक विस्तृत कोड की आवश्यकता है। यदि आपके 'उत्पाद' एक गैर-श्रेणीबद्ध पोस्ट प्रकार हैं (लगता है जैसे उन्हें होना चाहिए), तो आप मेरे प्लगइन का उपयोग कर सकते हैं:

http://www.wordpress.org/extend/plugins/custom-post-permalinks/

यह आपको अपने पेरालिंक्स को अनुकूलित करने के लिए अतिरिक्त क्षेत्र देता है (जैसे आप ब्लॉग पोस्ट के साथ कर सकते हैं), और आपको श्रेणी, लेखक, महीने, वर्ष, पोस्ट प्रकार, आदि के आधार पर पर्मलिंक को अनुकूलित करने की क्षमता प्रदान करेगा।


यहाँ कुछ महान जानकारी के लिए धन्यवाद। मैं उसी चीज की तलाश में हूं, लेकिन यद्यपि मैं जो कुछ लिख रहा हूं उसके साथ सब कुछ ठीक चल रहा है क्योंकि जब मैं मेनू में कस्टम लिंक जोड़ता हूं तो सार्वजनिक वेबसाइट को उस पृष्ठ पर एक आगंतुक का संकेत देते हुए सीएसएस को बदलना नहीं लगता है। क्या आप कृपया मुझे बता सकते हैं कि यह कैसे किया जाता है इसलिए मैं "उत्पाद" संग्रह के भीतर "चालू" स्थिति में मेनू आइटम दिखा सकता हूं?
NetConstructor.com

0
जहां तक ​​मैं देख सकता हूं कि मैं केवल कुछ "उत्पादों" को इसमें जोड़ सकता हूं, मैं उत्पादों का "संग्रह" नहीं जोड़ सकता। मैं जो करने की कोशिश कर रहा हूं वह सभी उत्पादों को सूचीबद्ध करने वाले पृष्ठ पर जाने के लिए मेनू में एक लिंक जोड़ रहा है। कोई आईडिया कि इसे कैसे किया जाए?

आपको "उत्पादों" पोस्ट प्रकार के लिए एक वर्गीकरण को असाइन करने की आवश्यकता होगी फिर अपने कस्टम मेनू में से एक में वर्गीकरण शब्द जोड़ें, जो तब उपयोग किए गए वर्गीकरण के तहत उपयोगकर्ता को सभी उत्पादों के संग्रह पृष्ठ पर ले जाएगा।

उदाहरण मेरे पास एक कस्टम पोस्ट प्रकार है जिसे "जॉब्स" कहा जाता है, जिसमें "पोजीशन" लेबल वाली स्थिति होती है। वैकल्पिक शब्द

अगर मुझे "करंट ओपनिंग" टैक्सोनॉमी शब्द के साथ सभी नौकरियां चाहिए थीं तो मैं इसे चुनकर मेनू में जोड़ दूंगा। वैकल्पिक शब्द

यदि आपको संग्रह पृष्ठ पर अपने सभी "उत्पादों" पोस्ट प्रकारों की आवश्यकता है, तो आप उन सभी के लिए एक माता-पिता को वर्गीकरण प्रदान कर सकते हैं ताकि वे सभी संग्रह पृष्ठ पर सूचीबद्ध हो सकें।


@ क्रिस_ओ : यह एक तरीका है, लेकिन एकमात्र तरीका नहीं है और उपयोगकर्ता द्वारा वर्गीकरण को बनाए रखने के लिए उचित मात्रा में प्रयास की आवश्यकता होती है। JMTCW वैसे भी।
माइकस्किंकेल

समझ में आता है। उम्मीद है कि कस्टम पोस्ट टाइप इंडेक्स पेज कोर में संबोधित किया जाएगा।
क्रिस_ओ

0

मुझे लगता है, कस्टम संग्रह टाइप पोस्ट आर्काइव के माध्यम से बनाना और इस संग्रह में संग्रहीत पदों को स्थानांतरित करना बेहतर उपाय है। इसके अलावा इस नए post_type के पोस्टमेट के लिए वर्तमान पोस्ट_टाइप को पूर्ववत करें। मैंने इसके लिए एक प्लगइन लिखा है और वर्तमान में आप इसे देख सकते हैं, बिना स्टाइलशीट, चित्र और भाषा फ़ाइल के, gist.github / 978690 पर

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.