Como Paginar uma lista de tags
1 responda
- votos
-
- 2011-07-05
Vocêpoderiapaginar suapágina simplesmente adicionando
/página/n para ofinal do URL,onde
n
é onúmero depágina desejado. Criar seus linkspróximos/anteriores será um casomanualembora. Onúmero dapágina seráentão acessível viaget_query_var ('paginado')
. Em seguida,use onúmeroget_terms
Para selecionar 40 de cada vez,use o argumentooffset
,que será onúmero da suapágina -1 * Númeroporpágina,para selecionar a atual "página" dostermos:$página=(get_query_var ('paginado'))?get_query_var ('Paged'): 1; $ Taxonomy='Post_Tag'; $ deslocamento=($página-1) * 40; $ args=array ('número'=> 40,'deslocamento'=> $ deslocamento); $tax_terms=get_terms ($taxonomia,$ args);
Quanto a visualizartudo,talvez acrescentar umget vover ao URL,
Showall=True
e,em seguida,verifiqueisset ($ _GET ['Showall'])
e alterar onúmeroparabuscarem conformidade.editar
Aquiestá ummodelo rápido quefizparamostrar umexemplo. Testi-loem umapáginaem umainstalação deteste combastantepermalinks,apáginafoi 'Sobre',então os links depaginaçãoforam:
http://localhost/Sobre/página/2/ http://localhost/sobre/? showall=true
Se as suaspermalinks são diferentes,vocêterá queeditar a seção Paginationpara refletir sua configuração.
& lt;?php get_header (); //semostrartudoestiver definido if (isset ($ _ obter ['showall'])): $ args=array ('hide_empty'=> 0); outro: //show showpaginado $página=(get_query_var ('paginado'))?get_query_var ('Paged'): 1; //número detagsparamostrarporpágina $per_page=40; $ deslocamento=($página-1) * $per_page; $ args=array ('número'=> $per_page,'deslocamento'=> $ deslocamento,'hide_empty'=> 0); fim se; $ Taxonomy='Post_Tag'; $tax_terms=get_terms ($taxonomia,$ args); echo '& lt; ul >'; foreach ($tax_terms como $tax_term) { echo '& lt; li >' . '& lt; a href="'. ESC_ATTR (get_term_link ($tax_term,$taxonomia)). '"title="'. sprintf (__ (__ (__ (__ (" Vertodas aspostagensem% s "),$tax_term- >nome). '"'. '>' . $tax_term- >nome. '& lt;/a > & lt;/li >'; } echo '& lt;/ul >'; //paginação. //se showallnãoestiver definido if (!isset ($ _ obter ['showall'])): $ Total_Terms=wp_count_terms ('post_tag'); $páginas=CEIL ($ Total_Terms/$ Per_page); //se houvermais de umapágina if ($páginase gt; 1): echo '& lt; ul >'; para ($ Pagecount=1; $ Pagecount & Lt;=$páginas; $ Pagecount ++): echo '& lt; li >e lt; a href="'.get_permalink (). 'Página/'pagecount '.'/" > '$ Pagecount'. $ Pagecount. '& lt;/a >'; finalpara; echo '& lt;/ul >'; //linkparamostrartudo echo '& lt; a href="'.get_permalink (). '? Showall=true" >mostrartudo & lt;/a >'; fim se; outro: //Showall é definido,mostre linkpara voltar aomodo de Pagagem echo '& lt; a href="'.get_permalink ()." > Mostrarpaginadoe lt;/a > '; fim se; 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(); ?>
-
Obrigadopela resposta.Eunão consigofazerissofuncionar.Ondee comoexatamenteeu vou usar seu código?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
-
Eu aindaestoutentandofazerissofuncionar,mas sem sorte. Ondee comoexatamenteeu vou usar seu código?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 - Veja a respostaeditada.@t-p - see the edited answer.
- 0
- 2011-07-23
- Milo
-
excelente!Obras!Porfavor,ajude-me comisto:notopo da lista detags,háessaetiqueta chamada "Exemplo".Eunãotenhoideia de ondeela vem.Eunãotenhotag "exemplo"e comotal quando cliconele,recebo "nãoencontrado".Comopossome livrar da lista?Obrigadopelo seutempoe ajuda.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
-
Em vez disso,escrevendo opróprio códigoparapaginação,tente usar o Paginate_Links,https://codex.wordpress.org/function_reference/paginate_linksInstead writing own code for pagination, try using paginate_links, https://codex.wordpress.org/Function_Reference/paginate_links
- 0
- 2019-02-07
- dipak_pusti
Eutenho umapágina queexibe uma lista detodas astags domeublog.Iuseeste código quefuncionabem:
Pergunta: Comopossopaginareste LIDT (digamos 40porpágina).Qual seria o códigopara acompanharisso,depreferência com uma opçãopara "vertodas astags".
obrigado.