카테고리의 개별 RSS 피드 입력 길이?


9

wp의 카테고리에서 rss2 피드를 검색하는 방법, 즉 /feed카테고리 이름 뒤에 추가하는 방법을 알고 있습니다. 그러나이 작업을 수행 할 때 해당 피드의 모든 항목이 rss에 포함되는 것은 아닙니다. 관리 백엔드에서 피드 제한을 50으로 설정했기 때문입니다.

피드 길이를 프로그래밍 방식으로 각 카테고리 / 피드에 개별적으로 설정할 수 있는지 알고 싶습니다.

피드 크기에 대한 API 설정을 찾을 수 없습니다. 여기에 도움이 필요합니다.

당신의 도움을 주셔서 감사합니다.


Stephen Harris와 CodeMonkey의 대답은 하나의 특정 범주에서 작동하지 않습니까? 그렇지 않으면 두 가지 대답이 모두 효과가 있습니다! 한 카테고리에서만 작동하지 않는 이유는 무엇입니까?
mahatmanich

답변:


8

조건부로 (카테고리에 대한 피드를 제공 할 때)를 사용 하고 50으로 설정할 수 있어야 합니다 . 불행히도이 미확인 trac 티켓이 있습니다.pre_get_postsposts_per_page

유일한 해결 방법 은 SQL 쿼리 post_limitsLIMIT일부를 직접 연결 하고 바꾸는 것 입니다.

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

스티븐, 나는 그것을 조사 할 것입니다. 음, 실제로는 항상 피드의 카테고리에있는 모든 항목을 원합니다. 그리고 블로그 페이지에서만 백엔드에 설정 한 제한을 제한하고 싶습니다. 어떻게해야합니까?
mahatmanich 1

이 경우, return "";대신 "LIMIT $page_start, $per_page"그것을해야한다.
스티븐 해리스

이봐, 코드 좀 설명해 줄래? 그것이 내가 당신이 여기에서 제공하는 것을 원하는지 확실하지 않습니다.
mahatmanich

따라서 카테고리 피드의 경우 모든 게시물 을 반환하려고 하므로 LIMIT쿼리에 참여 하지 않아도 됩니다. 위의 필터를 사용하면 LIMIT부품을 빈 문자열 로 바꿀 수 있으므로 결과 SQL은 모든 게시물을 가져올 수 있습니다.
Stephen Harris

1
예,하지만 플러그인을 만드는 것이 좋습니다 ( candycandy.com/teaches/how-to-create-a-functionality-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;
}

이 기능을 편집하고 카테고리 분류법으로 분류법을 수정하고 많은 카테고리로 슬러그를 편집하기 만하면됩니다 ...


코드를 설명해 주시겠습니까?
mahatmanich

특정 분류가 발견 된 경우 (예 : $ wp_query-> query_vars [ 'custom_taxonomy'] custom_taxonomy) 피드에서 트리거하는 단순 SQL 쿼리 필터 ($ wp_query-> is_feed == true) 및 일부 슬러그 (quickent)에 해당하는 경우 ($ wp_query-> query_vars [ 'custom_taxonomy'] == 'slug'). 이 모든 일이 발생하고 site.com/your-custom-feed-for-category.xml에서 true이면 피드에 제한 결과가 없습니다 ($ SQL 통계를 LIMIT 값으로 나눈 값으로 마지막 LIMIT없이 반환 됨) 운영자 ... 제한 없음 RSS 당 모든 항목)..
올렉 Butuzov

그 코드를 어디서 떨어 뜨릴까요? 내 테마의 functions.php?
mahatmanich

functions.php는 꼭 맞습니다. 전에 슬러그와 맞춤 분류법의 이름을 변경하십시오. 테스트하기 전에 브라우저 캐시를 지우십시오 (RSS는 브라우저에 의해 캐시 된 피드).
올렉 부투 조프

캐시와 함께 해줘서 고마워! 어떤 작품은,하지만 여전히 적어도 하나 개의 카테고리에 나는 ... 작동 다른 사람에, 피드의 모든 게시물을받지 않습니다
mahatmanich
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.