प्रति पृष्ठ संख्या में परिवर्तन पोस्ट


14

वर्डप्रेस सेटिंग्स में => रीडिंग => ब्लॉग पेज ज्यादातर [इनपुट फील्ड] पोस्ट पर दिखाई देते हैं

मैंने इसे फिलहाल 3 पदों पर सेट किया है।

मेरे सूचकांक में, तिथि अभिलेखागार, टैग अभिलेखागार, श्रेणी अभिलेखागार, खोज परिणाम, आदि ... सभी पृष्ठ जो लूप और पेजिंग का उपयोग करते हैं, यह अब प्रति पृष्ठ 3 पोस्ट दिखाता है।

मेरा लक्ष्य विभिन्न पृष्ठों के लिए अलग-अलग संख्या में परिणाम देने में सक्षम होना है। मेरी अनुक्रमणिका पर शायद 3 पोस्ट हों लेकिन खोज परिणामों या अभिलेखागार पर, प्रति पृष्ठ परिणामों की एक अलग संख्या दिखाएं।

कोई जानकारी यह कैसे करनी है?

जवाबों:


23

यह यह करेगा: (अपने विषय के कार्यों में जोड़ें। एफपी)

add_action( 'pre_get_posts',  'set_posts_per_page'  );
function set_posts_per_page( $query ) {

  global $wp_the_query;

  if ( ( ! is_admin() ) && ( $query === $wp_the_query ) && ( $query->is_search() ) ) {
    $query->set( 'posts_per_page', 3 );
  }
  elseif ( ( ! is_admin() ) && ( $query === $wp_the_query ) && ( $query->is_archive() ) ) {
    $query->set( 'posts_per_page', 5 );
  }
  // Etc..

  return $query;
}

की setएक विधि है $query?
— रुटविक गांगुर्ड

@RutwickGangurde हां। वास्तव में, is_search () और is_archive () भी हैं, जो इस महान पोस्ट से gleaned जानकारी के साथ मेरे उत्तर को अपडेट करने के बाद अब थोड़ा और स्पष्ट है: billerickson.net/customize-the-wordpress-quest वह लेख भी नोट करता है कि हम ' WP3.3 में $ wp_query-> is_main_query () विधि होगी, जो कि बहुत अच्छी है।
— डेव रोमसे

ज़बर्दस्त मर्द! महान पोस्ट के लिए बहुत बहुत धन्यवाद। मैं इन विधियों को कभी नहीं जानता था, और मैं मान / सरणी को मूल्यों को बदलने / सेट करने के लिए ड्रिल करता था। मक्खी हैक पर के लिए अच्छा है! आपके लिए +1!
— रुटविक गांगुर्ड

कब से यह आवश्यक नहीं है कि इसे बदल दिया जाए यदि is_admin डैशबोर्ड? ऐसा लगता है कि यह WP में स्क्रीन विकल्पों में "प्रति पृष्ठ आइटम की संख्या" को सिंक नहीं करता है, संभवतः उन पृष्ठों में जिसके परिणामस्वरूप आप उन पेजों पर पेज नहीं कर सकते हैं।
— NoBugs

0

उपरोक्त उत्तर पर सुधार: हुक pre_get_postsसंदर्भ द्वारा प्राप्त होता है, इस प्रकार इसे globalकॉल या कॉल की आवश्यकता नहीं होती है return।

add_action( 'pre_get_posts',  'set_posts_per_page'  );
function set_posts_per_page( $query ) {

  if ( ( ! is_admin() ) && ( $query === $wp_the_query ) && ( $query->is_search() ) ) {
    $query->set( 'posts_per_page', 3 );
  }
  elseif ( ( ! is_admin() ) && ( $query === $wp_the_query ) && ( $query->is_archive() ) ) {
    $query->set( 'posts_per_page', 5 );
  }
  // Etc..

}

आपके कोड के साथ एक समस्या यह भी है कि ग्लोबल $ wp_query का उपयोग करने से मेमोरी अपव्यय का सहारा लिया जा सकता है, लेकिन आप अपरिभाषित विभिन्न $ wp_the_query
— अब्दुलकबीर ओजुलरी

0

$ GLOBALS ['wp_query'] या सिर्फ $ wp_query का उपयोग करना

add_action( 'pre_get_posts',  'set_posts_per_page'  );
function set_posts_per_page( $query ) {

  if ( ( ! is_admin() ) && ( $query === $GLOBALS['wp_query'] ) && ( $query->is_search() ) ) {
    $query->set( 'posts_per_page', 3 );
  }
  elseif ( ( ! is_admin() ) && ( $query === $GLOBALS['wp_the_query'] ) && ( $query->is_archive() ) ) {
    $query->set( 'posts_per_page', 5 );
  }

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