posts_per_page 제한 없음
-
-
나는 한동안 인터넷 검색을했고 WP 코덱스를 검색했지만이 간단한 질문에 대한 직접적인 답을 찾을 수 없습니다.나는 내 질문이 예제 코드와 함께 명확하게 표현되어 있고 내 시도가 무엇인지 (논쟁에 대한 높은 가치를 설정)이라고 믿습니다.저는 WP 전문가가 아니기 때문에 질문을하기 위해 여기에 왔습니다.사소 해 보이는 질문에 대한 답변을 제공하는 것도 이러한 Stack Exchange 커뮤니티를 성장시키는 데 도움이됩니다.저는 개인적으로 엉터리 포럼에 대한 링크가 아니라 검색 결과에 Stack Overflow 링크를 보는 것을 좋아합니다.I've been Googling for awhile and searching the WP codex, but I just can't find a direct answer to this simple question. I believe my question is worded clearly with example code, and what my attempt was (setting a high value for the argument). I'm not a WP expert, so thats why I came here to ask the question. Even providing answers to questions that seem trivial to you are helpful in growing these Stack Exchange communities. I personally love seeing a Stack Overflow link in my search results, as opposed to a link to a crappy forum.
- 6
- 2011-12-11
- Banjer
-
또한 답변 주셔서 감사합니다.댓글이 아닌 답변으로 게시 해 주시면 받아 들일 수 있습니다.Also, thanks for the answer. You should post it as an answer and not a comment, so I can accept it.
- 0
- 2011-12-11
- Banjer
-
나는 귀하의 요점을 알고 있으며 질문을 * 작성 *하는 귀하의 노력에 감사드립니다.또한 비전문가 질문이이 커뮤니티에서 가치가 있음을 입증 할 수 있다는 데 동의합니다.반면에 그러한 질문이 너무 많으면 일부 전문가가 여기에 참여하지 못할 수 있습니다.내가 생각하기에 그것은 일종의 균형에 관한 것입니다.어쨌든 나는 큰 유권자이므로 다음 질문을 기대하고 있습니다 :) WPSE에서 즐거운 시간을 보내십시오.I've got your point and I do appreciate your effort in *writing* the question. I also agree that non-expert questions can prove themselves valuable in this community. On the other hand too many of such questions can discourage some experts from getting involved here. It's all about some kind of balance I guess. Anyway I'm a big up-voter so I'm looking forward to your next questions :) Have a great time here on WPSE.
- 0
- 2011-12-11
- Michal Mau
-
추신 : 'post_type'대신 'type'을 바꾸고 싶을 수도 있습니다 (또는이 줄을 모두 제거).누군가 가이 작은 실수를 복사하여 붙여 넣는 것을 방지하기 위해 Rutwick의 대답과 귀하의 질문을 모두 편집 할 것입니다.PS: you also want to replace `type` for `post_type` (or remove this line altogether). I will edit both the Rutwick's answer and your question to prevent somebody from copy-pasting this little mistake.
- 0
- 2011-12-11
- Michal Mau
-
@Maugly 정정 담당자에게 감사드립니다 ...posts_per_page에 집중하여 오타를 복사했습니다!;)@Maugly Thanks for the correction man... just focused on posts_per_page hence copied the typo! ;)
- 0
- 2011-12-11
- Rutwick Gangurde
-
6 대답
- 투표
-
- 2011-12-11
-1이 답입니다!
posts_per_page
여기 를 찾아보세요.$args = array( 'post_type' => 'post', 'cat' => '22,47,67', 'orderby' => 'name', 'order' => 'ASC', 'hide_empty' => 1, 'depth' => 1, 'posts_per_page' => -1 );
중요 경고 : 이로 인해 사이트를 다운시킬 수있는 매우 큰 쿼리가 발생할 수 있습니다.데이터베이스가 처리 할 수 있다고 확신하는 경우에만이 작업을 수행하십시오.공개 테마 나 플러그인이 아닙니다.
-1 is your answer! Look for
posts_per_page
here.$args = array( 'post_type' => 'post', 'cat' => '22,47,67', 'orderby' => 'name', 'order' => 'ASC', 'hide_empty' => 1, 'depth' => 1, 'posts_per_page' => -1 );
Important caveat: This can result in a very huge query that can bring the site down. Do this only if you are sure your database can handle it. Not in public themes or plugins.
-
중요한 경고 : 이로 인해 사이트를 다운시킬 수있는 매우 큰 쿼리가 발생할 수 있습니다.데이터베이스가 처리 할 수 있다고 ** 확실한 ** 경우에만이 작업을 수행하십시오.공개 테마 또는 플러그인이 아닙니다.Important caveat: This can result in a very huge query that can bring the site down. Do this only if you are **sure** your database can handle it. Not in public themes or plugins.
- 7
- 2016-08-11
- fuxia
-
@toscho 답변에 대한 업데이트로 댓글을 추가합니다.@toscho Adding your comment as an update to the answer.
- 0
- 2016-11-23
- Rutwick Gangurde
-
당신은 내 생명을 구합니다 !!you save my life!!
- 0
- 2019-10-11
- Darlan Dieterich
-
@DarlanDieterich 기꺼이 도와 드릴 수 있습니다!:)@DarlanDieterich Glad I could help! :)
- 0
- 2019-10-14
- Rutwick Gangurde
-
- 2011-12-12
또는
WP_Query
(이것이query_posts
는 기본적으로 동일한 작업을 수행하는nopaging
인수를 사용합니다.$args = array( 'nopaging' => true // Your other args, etc.. );
정확히 똑같이 할 것이지만 나중에 돌아보아야하고 무엇을했는지 기억이 나지 않는다면 개인적으로 그 매개 변수로 무엇을 의도하고 있었는지 더 분명해질 것이라고 생각합니다.args 배열 내부.
하지만 언급했듯이 둘 다 실제로 동일한 결과를 얻을 수 있습니다.
두 가지 이상의 접근 방식이 있어도 다 치지 않습니다. 알고있는 것을 공유하는 것이 항상 좋습니다. 이미 충분한 접근 방식을 가지고 있음에도 불구하고 그것이 제 답변의 이유라고 말하면 충분합니다 ..;)
Or alternatively you can pass
WP_Query
(which is whatquery_posts
uses) thenopaging
argument, which basically does the same thing..$args = array( 'nopaging' => true // Your other args, etc.. );
It will do exactly the same, but if you have to look back at it later and can't remember what you were doing, i personally feel it will be more clear to you, what it is you were intending with that parameter inside the args array.
As i mentioned however, they'll both actually achieve the same.
Can't hurt to have more than one approach, and it's always nice to share what you know, suffice to say that's the reason for my answer, despite you already having a sufficient one.. ;)
-
- 2014-02-23
자녀 테마 기능 파일에서 :
add_action( 'pre_get_posts', 'wpsites_no_limit_posts' ); function wpsites_no_limit_posts( $query ) { if( $query->is_main_query() && !is_admin() && is_home() ) { $query->set( 'posts_per_page', '-1' ); $query->set( 'order', 'ASC' ); $query->set( 'post_type', 'post' ); $query->set( 'cat', '22,47,67' ); $query->set( 'orderby', 'name' ); $query->set( 'order', 'ASC' ); $query->set( 'hide_empty', '1' ); $query->set( 'depth', '1' ); } }
From your child themes functions file:
add_action( 'pre_get_posts', 'wpsites_no_limit_posts' ); function wpsites_no_limit_posts( $query ) { if( $query->is_main_query() && !is_admin() && is_home() ) { $query->set( 'posts_per_page', '-1' ); $query->set( 'order', 'ASC' ); $query->set( 'post_type', 'post' ); $query->set( 'cat', '22,47,67' ); $query->set( 'orderby', 'name' ); $query->set( 'order', 'ASC' ); $query->set( 'hide_empty', '1' ); $query->set( 'depth', '1' ); } }
-
- 2019-10-17
리카르도를 약간 수정하여 사용 :
static $paged; $post_ids = []; do { $paged++; $defaults = [ 'fields' => 'ids', // Only return the ID field to make this query faster. 'post_type' => 'post', 'posts_per_page' => 100, 'no_found_rows' => false, // We need pagination & the count for all posts found. 'paged' => $paged, 'update_post_term_cache' => false, 'update_post_meta_cache' => false, ]; $query = new WP_Query($defaults); if ($query->have_posts()) { foreach ($query->posts as $id) { $post_ids[] = $id; } } } while ($query->max_num_pages > $paged); return $post_ids;
이렇게하면 ID 행에 대해서만 쿼리하고 용어 및 메타 캐시 업데이트를 방지하여 쿼리 시간이 크게 늘어납니다.
Using Ricardo's with some modification:
static $paged; $post_ids = []; do { $paged++; $defaults = [ 'fields' => 'ids', // Only return the ID field to make this query faster. 'post_type' => 'post', 'posts_per_page' => 100, 'no_found_rows' => false, // We need pagination & the count for all posts found. 'paged' => $paged, 'update_post_term_cache' => false, 'update_post_meta_cache' => false, ]; $query = new WP_Query($defaults); if ($query->have_posts()) { foreach ($query->posts as $id) { $post_ids[] = $id; } } } while ($query->max_num_pages > $paged); return $post_ids;
This will dramatically increase the query time by only querying against the ID row and avoiding updating term and meta cache.
-
좋은!공유해 주셔서 감사합니다.Nice! thanks for sharing.
- 0
- 2019-10-18
- Ricardo Canelas
-
- 2016-08-11
문제에 대한 정답은
'posts_per_page' => -1
왜냐하면-1
은 다른 사용자가 대답하는 것처럼 페이지 당 무제한 게시물을 반환하기 때문입니다.이 Q/A에 부가 기능을 추가하고 싶습니다.
WordPress Administration Panel의 읽기 설정에서 페이지 당 게시물 수를 가져 오려면
get_option()
함수를 호출하고posts_per_page
를문자열입니다.$args = array( 'post_type' => 'post', 'cat' => '22,47,67', 'orderby' => 'name', 'order' => 'ASC', 'hide_empty' => 1, 'depth' => 1, 'posts_per_page' => get_option('posts_per_page') );
이 답변이 도움이 되었으면합니다.행복한 코딩 Stackexchange 사용자
The right answer for your issue is
'posts_per_page' => -1
because-1
will return unlimited posts per page As the others users answer.I just want to add an add-on to this Q/A,
If you want to get the number of posts per page from the reading setting on WordPress Administration Panel you have to call the
get_option()
function and passposts_per_page
as a string to it.$args = array( 'post_type' => 'post', 'cat' => '22,47,67', 'orderby' => 'name', 'order' => 'ASC', 'hide_empty' => 1, 'depth' => 1, 'posts_per_page' => get_option('posts_per_page') );
I hope this answer will help someone as it help me. Happy Coding Stackexchange Users
-
그것은 실제로 좋은 추가입니다!That's actually a nice addition!
- 0
- 2017-12-29
- Herbert Van-Vliet
-
- 2017-02-22
또는 ..
function getAll($arg, $posts_per_page = 50) { $data = array(); $page = 1; do{ $arg['paged'] = $page; $arg['posts_per_page'] = $posts_per_page; $query = new WP_Query($arg); foreach ($query->posts as $post){ $data[] = $post; } $page++; }while(count($query->posts) === $posts_per_page); return $data; }
Or..
function getAll($arg, $posts_per_page = 50) { $data = array(); $page = 1; do{ $arg['paged'] = $page; $arg['posts_per_page'] = $posts_per_page; $query = new WP_Query($arg); foreach ($query->posts as $post){ $data[] = $post; } $page++; }while(count($query->posts) === $posts_per_page); return $data; }
-
코드를 설명하는 컨텍스트를 추가하고 질문을 해결하기위한 아이디어를 추가해야합니다.You should add context to explain your code, your idea to solve the question.
- 2
- 2017-02-22
- bueltge
query_posts
가있는 모든 게시물을 반환하고 싶습니다.posts_per_page
를 매우 높은 숫자로 설정하려고했지만query_posts
가 놀랍고 게시물을 반환하지 않습니다.제한없이 게시물을 조회하는 올바른 방법은 무엇입니까?