প্রতি পৃষ্ঠায় গণনা পোস্ট করুন


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?
রটউইক গাঙ্গুরদে

নিবন্ধন করুন বস্তুত, is_search () এবং is_archive () খুব যা এখন এই মহান পোস্টের থেকে উত্পন্ন তথ্য সহ আমার উত্তর আপডেট করার পর একটু বেশি স্পষ্ট হয়: billerickson.net/customize-the-wordpress-query যে নিবন্ধটি নোট যে আমরা ' lP এর WP3.3 এ $ wp_query-> is_main_query () পদ্ধতি থাকবে, যা দুর্দান্ত।
ডেভ রোমি

অসাধারণ মানুষ! মহান পোস্টের জন্য অনেক ধন্যবাদ। আমি এই পদ্ধতিগুলি কখনই জানতাম না এবং মানগুলি পরিবর্তন / সেট করতে আমি অবজেক্ট / অ্যারেটি ড্রিল করতাম। ফ্লাই হ্যাকের জন্য ভাল! আপনার জন্য +1!
রটউইক গাঙ্গুরদে

যেহেতু কখনই এটি_ডমিন ড্যাশবোর্ডটি পরিবর্তন করা দরকার ছিল না? দেখে মনে হচ্ছে এটি ডাব্লুপি-র স্ক্রিন অপশনে "প্রতি পৃষ্ঠায় আইটেমের সংখ্যা:" সিঙ্ক করে না সম্ভবত ফলস্বরূপ যে পৃষ্ঠাগুলিতে আপনি পৃষ্ঠা পৃষ্ঠাতে পারছেন না তার ফলস্বরূপ।
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_t__ Query বলতে পারবেন না
আব্দুলকবীর ওজুলারী

0

$ গ্লোবালস ['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;
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.