Links para a próxima e anterior entrada dentro da mesma categoria


Quando você está visualizando uma entrada em um site criado com o WordPress, Os tópicos geralmente incluem links para navegar até as entradas anteriores e posteriores, o que é uma ótima maneira de manter seus leitores visitando seu conteúdo.

Há algum problema?

Porém, esses links servem apenas, por padrão, o critério cronológicoentão link para as entradas anteriores e seguintes por data de publicação, não leva em consideração nenhum outro critério de coerência de conteúdo.

Dito isto, O que faria sentido para esses links serem restritos às entradas anteriores e seguintes na mesma categoria?

Dessa forma, o leitor sempre teria algo para ler relacionado ao conteúdo que ele escolheu inicialmente.

A solução

Se isso é um problema para você, ou você só quer melhorar a relação semântica entre os conteúdos que você liga, A solução é modificar as funções geradas por esses links de navegação, que serão:

  1. Ou use previous_post_link e next_post_link
  2. Ou use get_the_post_navigation
  3. Ou você também pode usar get_adyacent_post

Dependendo do seu tema, um dos métodos anteriores será usado para os links, mas com qualquer um deles você pode aplicar o atributo in_same_termPara que o link para as entradas anteriores e posteriores está restrito à taxonomia da entrada atual.

Altere-o se o tema usar previous_post_link e next_post_link

Desta forma, se você quiser aplicá-lo a funções previous_post_link o next_post_link Isso seria feito assim:

Neste exemplo, o link para a entrada anterior (% link) terá o título da entrada (% title), e estará na mesma taxonomia (TRUE).

A estrutura de os argumentos que você pode usar seria isso:

No caso da função next_post_link isso é feito exatamente da mesma maneira. Os argumentos seriam os mesmos, estes:

Se o tema usa get_the_post_navigation

Neste caso, devemos substituir a função do tema atual para algo assim:

function get_the_post_navigation ($ args = array ()) 

Como fazer isso com get_adyacent_post

Se o seu tema usa a função get_adyacent_post, você teria que modificar a função incluída no seu tema para algo semelhante ao seguinte código:


 
 	
 	<a href = "ID); ?> ">ID); ?>
 

 
 	
 	<a href = "ID); ?> ">ID); ?>
 

O padrão que é usado para incluir os atributos é:

Seja qual for o método usado pelo seu assunto, você tem a documentação completa sobre cada função nos links que eu coloquei na primeira vez que os citei no artigo.

Não pode ser feito de forma diferente?

Isso é uma festa! E no WordPress sempre há várias maneiras de fazer tudo, é a glória de ter todo o código aberto e livre.

Outra maneira é substitua a função que gera os links para as entradas anteriores e seguintes em seu tema com um novo.

Para fazer isso, copie o modelo single.php do seu tema para o tema filho e adicione o seguinte:

ID; // ID da entrada atual
$ cat = get_the_category ();
$ current_cat_id = $ cat[0]-> cat_ID; // ID da categoria atual

$ args = array (
    'category' => $ current_cat_id,
    'orderby' => 'post_date',
    'order' => 'DESC'
);
$ posts = get_posts ($ args);
// obtém os IDs das entradas recuperadas com get_posts
$ ids = array ();
foreach ($ posts como $ thepost) 
    $ ids[] = $ thepost-> ID;

// recebemos e mostramos a próxima e anterior entrada na mesma categoria
$ thisindex = array_search ($ post_id, $ ids);
$ previd = isset ($ ids[ $thisindex - 1 ] ) $ ids[ $thisindex - 1 ] : 0;
$ nextid = isset ($ ids[ $thisindex + 1 ] ) $ ids[ $thisindex + 1 ] : 0;

if ($ previd) 
    ?> <a rel = "prev" href = ""> Anterior<a rel = "next" href = ""> Próximo<? php

Então, se você quiser, você pode adicionar alguns CSS à folha de estilo do tema filho, mais do que tudo, para criar os links mais elegantes:

a.previous-post, a.next-post 
    cor: #fff;
    cor de fundo: # 4498e7;
    texto-alinhar: centro;
    altura: 34px;
    Altura da linha: 34px;
    tamanho da fonte: 14px;
    borda: 1px sólido;
    preenchimento: 0 20px;
    margem inferior: 30px;
    text-transform: maiúscula;
    raio de fronteira: 4 px;
    font-weight: negrito;


a.previous-post: hover, a.próximo-post: hover 
    cor: # 4498e7;
    background-color: #fff;


a.previous-post 
    flutuar: esquerda! importante;


a.next-post 
    flutuar: certo! importante;

E não há plugins para isso?

Bem, sim, existem alguns.

Tanto quanto eu sei, estes são dois plug-ins que permitem alterar o comportamento padrão dos links para as entradas anterior e seguinte, de modo que estejam na mesma categoria:

  • Ambrosite Próximo / Anterior Post Link Plus
  • WP Post Nav

Você verá que eles não foram atualizados por algum tempo, mas eles devem funcionar igualmente.

A entrada Links para a próxima e anterior entrada dentro da mesma categoria foi publicada pela primeira vez por Fernando Tellado na Ajuda do WordPress. Não copie conteúdo, não diga nada de bom sobre você para seus leitores.

Sites imperdíveis:

Social Gaming – O futuro das mídias sociais

Marketing Digital Não é Fácil

Escape() de JavaScript em c# – um c# equivalente para o escape ()-Funktion

Como criar um Site ou blog a partir do zero

Como Salvar+ De 15 Horas por Semana em Minha Vida Pessoal

Nós não podemos viver como vizinhos ricos, então meu marido quer me mentir

Menos escolha garante mais clientes? Como usar a psicologia no seu site!

 Como a Internet mudou a indústria de varejo?

Começa em 2018 com esses cursos de design, marketing e desenvolvimento web para freelancers