বিভাগগুলির জন্য স্বতন্ত্র আরএসএস ফিড এন্ট্রি দৈর্ঘ্য?


9

আমি জানি কীভাবে ডাব্লুপিতে কোনও বিভাগ থেকে আরএসএস 2 ফিড ​​পুনরুদ্ধার করতে হবে, /feedবিভাগের নামের পিছনে যুক্ত করে। তবে আমি যখন এটি করি, তখন ফিডের সমস্ত এন্ট্রি আরএসএসের অন্তর্ভুক্ত নয়, কারণ অ্যাডমিন ব্যাকএন্ডে আমি ফিডের সীমাবদ্ধতা 50 হিসাবে নির্ধারণ করেছি।

আমি জানতে চাই যে প্রতিটি বিভাগ / ফিডের জন্য ক্রমবর্ধমানভাবে কোনও ফিডের দৈর্ঘ্য নির্ধারণ করা যেতে পারে।

ফিডগুলির আকারের জন্য আমি কোনও এপিআই সেটিংস খুঁজে পাইনি ... কোনও সহায়তা এখানে স্বাগত।

আপনার সাহায্যের জন্য ধন্যবাদ.


স্টিফেন হ্যারিস এবং কোডমনকি উত্তরগুলি উভয়ই একটি নির্দিষ্ট বিভাগের জন্য কাজ করে না? নাহলে উভয় উত্তরই আমার পক্ষে কাজ করে! কেন এটি এমন হতে পারে যে এটি কেবল একটি বিভাগের জন্য কাজ করে না?
মাহাতমানিচ

উত্তর:


8

আপনি উচিত ব্যবহার করতে পারবেন pre_get_postsএবং সেট posts_per_page(শ্রেণীর জন্য ফিড হচ্ছে দিকে) শর্তসাপেক্ষে 50। দুর্ভাগ্যক্রমে এই অমীমাংসিত ট্র্যাকের টিকিট রয়েছে

একমাত্র কাজটি হ'ল এসকিউএল কোয়েরির অংশটি সরাসরি হুক করা post_limitsএবং প্রতিস্থাপন LIMITকরা।

add_action('post_limits','wpse71759_category_rss_limit',10,2);
function wpse71759_category_rss_limit($limit, $query){

     if( $query->is_feed() && $query->is_category() ){
          $paged =  $query->get('paged') ? (int) $query->get('paged') : 1;
          $per_page = 50;
          $page_start = ($paged-1)*$per_page;

          return "LIMIT $page_start, $per_page";
     }
     return $limit;
}

আরে স্টিফেন আমি এটি খতিয়ে দেখব, আহ্ আমি আসলে সবসময় কোনও ফিডের বিভাগ থেকে সমস্ত এন্ট্রি চাই এবং কেবলমাত্র আমার ব্লগ পৃষ্ঠায় আমি ব্যাকএন্ডে নির্ধারিত সীমাটির সীমাবদ্ধতা চাই, আমি কীভাবে এটি করব?
মাহাতমানিচ

সেক্ষেত্রে, return "";বরং "LIMIT $page_start, $per_page"এটা করতে হবে।
স্টিফেন হ্যারিস

আরে আপনি কি আপনার কোডটি কিছুটা ব্যাখ্যা করতে পারবেন? আপনি এখানে যে অফার দিচ্ছেন তা আমি চাই কিনা তা আমি নিশ্চিত নই।
মহাতমানিচ

সুতরাং বিভাগের ফিডগুলির জন্য আপনি সমস্ত পোস্ট ফিরতে চান - যাতে আপনি আপনার প্রশ্নের কোনও LIMITঅংশ চান না । উপরের ফিল্টারটি আপনাকে LIMITখালি স্ট্রিংয়ের সাহায্যে অংশটি প্রতিস্থাপন করতে দেয় , ফলে ফলাফল প্রাপ্ত এসকিউএল সমস্ত পোস্ট আনবে।
স্টিফেন হ্যারিস

1
হ্যাঁ, তবে আমি এটির বাইরে প্লাগ-ইন করার পরামর্শ দেব ( wpcandy.com/teaches/how-to-create-a-functionality-plugin )
স্টিফেন হ্যারিস

2
add_filter('query', 'sql_query_feed_filter');
function sql_query_feed_filter($sql){
    global $wp_query;

    if ($wp_query->is_feed == true &&  isset($wp_query->query_vars['custom_taxonomy']) &&  in_array($wp_query->query_vars['custom_taxonomy'], array('slug1','slug2')) ){
        if (strpos($sql, 'SELECT SQL_CALC_FOUND_ROWS') !== false){
            list($sql,) = explode('LIMIT', $sql);
        }
    }
    return $sql;
}

আপনাকে কেবলমাত্র এই ফাংশনটি সম্পাদনা করতে হবে এবং আপনার বিভাগের শ্রেণীবিন্যাসের মাধ্যমে ট্যাক্সনোমিকে ফিরিয়ে দিতে হবে এবং আপনার বিভাগে স্লাগ সম্পাদনা করতে হবে ...


আপনি কি আপনার কোড ব্যাখ্যা করতে যত্ন নিতে হবে?
মহাতমানিচ

সাধারণ এসকিউএল ক্যোয়ারী ফিল্টার যা ফিডে ট্রিগার করে ($ wp_query-> is_feed == সত্য) যদি নির্দিষ্ট শ্রেণীবিন্যাস পাওয়া যায় ($ wp_query-> ক্যোয়ারী_ভারস ['কাস্টম_ট্যাক্সনমি'] কাস্টম_ট্যাক্সোনমি উদাহরণস্বরূপ) এবং যদি এটি কিছু স্লাগের সাথে ($ wp_query-> কোয়েরি) হয় ['কাস্টম_ট্যাক্সনমি'] == 'স্লাগ')। যদি এর সবকিছু ঘটে এবং সত্য হয় (কোনও সাইট.com/your-custom-feed-for-category.xML এ) আপনি আপনার ফিডে কোনও সীমাবদ্ধতার ফলাফল পাবেন না (QL এসকিউএল স্ট্যাটমেন্টটি এলিমিটি মান দ্বারা বিভক্ত যার অর্থ এটি শেষ লিমিট ছাড়াই ফিরে এসেছে) অপারেটর ... কোন সীমা আরএসএস প্রতি সমস্ত
ওলেগ Butuzov

আমি এই কোডটি কোথায় ফেলে দেব? আমার থিমের ফাংশন.এফপি?
মহাতমানিচ

فنڪشن.php নিখুঁতভাবে ফিট করে। তবে আগে স্লাগ এবং কাস্টম ট্যাক্সনোমির নাম পরিবর্তন করুন। এবং পরীক্ষার আগে ব্রাউজারের ক্যাশে সাফ করুন (ব্রাউজারের দ্বারা ক্যাশে হওয়া ফিডস)।
ওলেগ বুতুজভ

আরে ধন্যবাদ ক্যাশে নিয়ে মাথা উঁচু করার জন্য! এটি
একধরণের
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.