Chiều dài mục nhập rss cá nhân cho các loại?


9

Tôi biết cách truy xuất nguồn cấp dữ liệu rss2 từ một danh mục trong wp, cụ thể là thêm /feedđằng sau tên danh mục. Tuy nhiên, khi tôi làm điều này, không phải tất cả các mục từ nguồn cấp dữ liệu đó đều được bao gồm trong rss, điều này là do tôi đặt giới hạn nguồn cấp là 50 tại phần phụ trợ quản trị viên.

Tôi muốn biết liệu độ dài của nguồn cấp dữ liệu có thể được đặt theo cách riêng cho từng danh mục / nguồn cấp dữ liệu theo chương trình hay không.

Tôi không thể tìm thấy bất kỳ cài đặt api nào cho kích thước của nguồn cấp dữ liệu ... mọi trợ giúp đều được chào đón ở đây.

Cảm ơn bạn đã giúp đỡ.


Stephen Harris và CodeMonkey cả hai câu trả lời không hoạt động cho một danh mục cụ thể? Nếu không cả hai câu trả lời làm việc cho tôi! Tại sao nó chỉ không hoạt động cho một loại?
mahatmanich

Câu trả lời:


8

Bạn sẽ có thể sử dụng pre_get_postsvà đặt thành posts_per_page50 điều kiện (khi được cung cấp cho các danh mục). Thật không may là vé trac chưa được giải quyết này .

Cách giải quyết duy nhất là liên kết trực tiếp post_limitsvà thay thế LIMITmột phần của truy vấn SQL.

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;
}

Này Stephen Tôi sẽ xem xét điều đó, thực ra tôi luôn muốn tất cả các mục từ một danh mục trong nguồn cấp dữ liệu và chỉ trên trang blog của tôi, tôi muốn hạn chế giới hạn mà tôi đặt trong phần phụ trợ, tôi sẽ làm thế nào?
mahatmanich

Trong trường hợp đó, return "";thay vì "LIMIT $page_start, $per_page"nên làm điều đó.
Stephen Harris

Hey bạn có thể giải thích mã của bạn một chút? Tôi không chắc chắn nếu đó là những gì tôi muốn những gì bạn đang cung cấp ở đây.
mahatmanich

Vì vậy, đối với nguồn cấp dữ liệu danh mục bạn muốn trả lại tất cả các bài đăng - vì vậy bạn không muốn một LIMITphần cho truy vấn của mình. Bộ lọc ở trên, cho phép bạn thay thế LIMITmột phần bằng một chuỗi trống, để sql kết quả sẽ tìm nạp tất cả các bài viết.
Stephen Harris

1
Có, nhưng tôi khuyên bạn nên tạo một trình cắm thêm từ nó ( wpcandy.com/teaches/how-to-create-a-feftality-plugin )
Stephen Harris

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;
}

tất cả những gì bạn cần làm chỉ là chỉnh sửa chức năng này và đánh giá lại phân loại theo phân loại danh mục của bạn và chỉnh sửa sên thành nhiều danh mục của bạn ...


Bạn có quan tâm để giải thích mã của bạn?
mahatmanich

Bộ lọc truy vấn SQL đơn giản kích hoạt trên nguồn cấp dữ liệu (ví dụ $ wp_query-> is_feed == true) nếu tìm thấy phân loại cụ thể (ví dụ $ wp_query-> query_vars ['custom_taxonomy'] custom_taxonomy) ['custom_taxonomy'] == 'sên'). nếu tất cả mọi thứ xảy ra và đúng (trên trang web.com / your-custom-feed-for-c Category.xml), bạn sẽ không nhận được kết quả giới hạn nào trong nguồn cấp dữ liệu của mình (thống kê $ SQL chia cho giá trị LIMIT có nghĩa là nó được trả về mà không có GIỚI HẠN cuối cùng toán tử ... không giới hạn. tất cả các mục trên mỗi rss.)
Oleg Butuzov

Tôi sẽ bỏ mã đó ở đâu? Hàm.php của chủ đề của tôi?
mahatmanich

Hàm.php hoàn toàn phù hợp. nhưng thay đổi sên và tên của phân loại tùy chỉnh trước đây. và xóa bộ nhớ cache của trình duyệt trước khi kiểm tra (RSS Cung cấp cho bộ nhớ cache của trình duyệt).
Oleg Butuzov

Hey cảm ơn cho những người đứng đầu với bộ nhớ cache! Đó là loại công việc, nhưng vẫn còn ít nhất một danh mục tôi sẽ không nhận được tất cả các bài đăng trong nguồn cấp dữ liệu, trên các mục khác nó hoạt động ...
mahatmanich
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.