태그 목록에 페이지를 매기는 방법
1 대답
- 투표
-
- 2011-07-05
URL 끝에
/page/n
을 추가하여 페이지를 매길 수 있습니다. 여기서n
은 원하는 페이지 번호입니다. 다음/이전 링크를 만드는 것은 수동 작업입니다. 그러면get_query_var ( 'paged')
를 통해 페이지 번호에 액세스 할 수 있습니다. 그런 다음get_terms
에number
인수를 사용합니다. 한 번에 40 개를 선택하려면 페이지 번호 -1 * 페이지 당 번호가 될offset
인수를 사용하여 용어의 현재 "페이지"를 선택합니다.$page=(get_query_var ( 'paged'))?get_query_var ( 'paged') : 1; $taxonomy='post_tag'; $ offset=($page-1) * 40; $ args=array ( 'number'=> 40,'offset'=> $ offset); $tax_terms=get_terms ($taxonomy,$ args);
모두를 보려면 URL에 GET var를 추가 한 다음
? showall=true
를 추가 한 다음isset ($ _GET [ 'showall'])
을 확인하고 변경합니다. 가져올 수 있습니다.수정
예제를 보여주기 위해 만든 간단한 템플릿입니다. 예쁜 영구 링크가있는 테스트 설치 페이지에서 테스트했는데 페이지가 '정보'였으므로 페이지 매김 링크는 다음과 같습니다.
<사전> <코드> http ://localhost/about/page/2/ http ://localhost/about/? showall=true퍼머 링크가 다른 경우 설정을 반영하도록 페이지 매기기 섹션을 수정해야합니다.
& lt;?php get_header (); //모두 표시가 설정된 경우 if (isset ($ _ GET [ 'showall'])) : $ args=array ( 'hide_empty'=> 0); 그밖에: //그렇지 않으면 페이징 표시 $page=(get_query_var ( 'paged'))?get_query_var ( 'paged') : 1; //페이지 당 표시 할 태그 수 페이지 당 $ 40; $ offset=($page-1) * $per_page; $ args=array ( 'number'=> $per_page,'offset'=> $ offset,'hide_empty'=> 0); endif; $taxonomy='post_tag'; $tax_terms=get_terms ($taxonomy,$ args); echo '& lt; ul >'; foreach ($tax_terms를 $tax_term으로) { 에코 '& lt; li >' . '& lt; a href="'.esc_attr (get_term_link ($tax_term,$taxonomy)). '"title="'. sprintf (__ ("% s의 모든 게시물보기 "),$tax_term- >name). ' "'. '>' . $tax_term- > 이름. '& lt;/a > & lt;/li >'; } 에코 '& lt;/ul >'; //페이지 매김 //showall이 설정되지 않은 경우 if (!isset ($ _ GET [ 'showall'])) : $total_terms=wp_count_terms ( 'post_tag'); $pages=ceil ($total_terms/$per_page); //페이지가 두 개 이상인 경우 if ($ 페이지 > 1) : echo '& lt; ul >'; ($pagecount=1; $pagecount & lt;=$pages; $pagecount ++) : echo '& lt; li > & lt; a href="'.get_permalink (). 'page/'.$pagecount.'/"> '. $pagecount.'& lt;/a > & lt;/li > '; endfor; 에코 '& lt;/ul >'; //모두 표시하는 링크 echo '& lt; a href="'.get_permalink (). '? showall=true"> 모두보기 & lt;/a >'; endif; 그밖에: //showall이 설정되었습니다. 페이지 모드로 돌아 가기위한 링크 표시 echo '& lt; a href="'.get_permalink (). '"> 페이지 된 항목 표시 & lt;/a >'; endif; get_footer (); ? >
you could paginate your page by simply adding
/page/n
to the end of the URL, wheren
is the desired page number. creating your next/prev links will be a manual affair though. the page number will then be accessible viaget_query_var('paged')
. then use thenumber
argument forget_terms
to select 40 at a time, use theoffset
argument, which will be your page number -1 * number per page, to select the current "page" of terms:$page = ( get_query_var('paged') ) ? get_query_var( 'paged' ) : 1; $taxonomy = 'post_tag'; $offset = ( $page-1 ) * 40; $args = array( 'number' => 40, 'offset' => $offset ); $tax_terms = get_terms( $taxonomy, $args );
as for viewing all, maybe append a GET var to the URL,
?showall=true
, then checkisset( $_GET['showall'] )
and change the number to fetch accordingly.EDIT
here's a quick template I made to show an example. I tested it on a page on a test install with pretty permalinks, the page was 'about', so the pagination links were:
http://localhost/about/page/2/ http://localhost/about/?showall=true
if your permalinks are different, you'll have to edit the pagination section to reflect your setup.
<?php get_header(); // if show all is set if( isset($_GET['showall']) ): $args = array( 'hide_empty' => 0 ); else: // else show paged $page = ( get_query_var('paged') ) ? get_query_var( 'paged' ) : 1; // number of tags to show per-page $per_page = 40; $offset = ( $page-1 ) * $per_page; $args = array( 'number' => $per_page, 'offset' => $offset, 'hide_empty' => 0 ); endif; $taxonomy = 'post_tag'; $tax_terms = get_terms( $taxonomy, $args ); echo '<ul>'; foreach ($tax_terms as $tax_term) { echo '<li>' . '<a href="' . esc_attr(get_term_link($tax_term, $taxonomy)) . '" title="' . sprintf( __( "View all posts in %s" ), $tax_term->name ) . '" ' . '>' . $tax_term->name.'</a></li>'; } echo '</ul>'; // pagination // if showall isn't set if( !isset($_GET['showall']) ): $total_terms = wp_count_terms( 'post_tag' ); $pages = ceil($total_terms/$per_page); // if there's more than one page if( $pages > 1 ): echo '<ul>'; for ($pagecount=1; $pagecount <= $pages; $pagecount++): echo '<li><a href="'.get_permalink().'page/'.$pagecount.'/">'.$pagecount.'</a></li>'; endfor; echo '</ul>'; // link to show all echo '<a href="'.get_permalink().'?showall=true">show all</a>'; endif; else: // showall is set, show link to get back to paged mode echo '<a href="'.get_permalink().'">show paged</a>'; endif; get_footer(); ?>
-
답장을 보내 주셔서 감사합니다.나는 그것을 작동시킬 수 없습니다.귀하의 코드를 어디에 어떻게 정확히 사용해야합니까?thanks for the reply. I can't seem to make it work. Where and how exactly I am to use your code?
- 0
- 2011-07-06
- Tara
-
나는 여전히 그것을 작동 시키려고 노력하지만 운이 없다. 귀하의 코드를 어디에 어떻게 정확히 사용해야합니까?I still trying make it work but no luck. Where and how exactly I am to use your code?
- 0
- 2011-07-23
- Tara
-
@t-p-편집 된 답변을 참조하십시오.@t-p - see the edited answer.
- 0
- 2011-07-23
- Milo
-
우수한!작동합니다!저를 도와주세요 : 태그 목록 상단에 "예제"라는 태그가 있습니다.나는 그것이 어디서 오는지 전혀 모른다."예제"태그가 없어서 클릭하면 "찾을 수 없음"이 표시됩니다.목록에서 제거하려면 어떻게해야합니까?시간과 도움에 감사드립니다.excellent! It workss! Please help me with this: on top of the tag list, there is this tag named "Example". I have no idea where its coming from. I don't have "Example" tag and as such when I click on it I get "not found". How to can I get rid of it from the list? thanks for your time and help.
- 0
- 2011-07-23
- Tara
-
페이지 매김을위한 자체 코드를 작성하는 대신paginate_links,https://codex.wordpress.org/Function_Reference/paginate_links를 사용해보십시오.Instead writing own code for pagination, try using paginate_links, https://codex.wordpress.org/Function_Reference/paginate_links
- 0
- 2019-02-07
- dipak_pusti
블로그의 모든 태그 목록을 표시하는 페이지가 있습니다.잘 작동하는이 코드를 사용합니다.
질문 :이 뚜껑에 페이지를 매기려면 어떻게해야하나요 (페이지 당 40 개).코드는 "모든 태그보기"옵션과 함께이를 보완 할 수 있습니다.
감사합니다.