Utilizando o operador de módulo no loop

Na maior parte das linguagens de programação existe um operador específico, por vezes esquecido pelos programadores, para operações de módulo. Seu símbolo, na maioria das linguagens, é a % (o que pode causar alguma confusão para os novatos). O PHP não foge à regra e também possui este operador de módulo, sendo o seu símbolo também a %.

Função do operador %

Para que serve o operador de módulo? Ele pode ser utilizado com duas variáveis numéricas para se obter o resto da divisão de um número pelo outro. Por exemplo:

<?php
$a = 4;
$b = 3;
$c = $a % $b;  //O resto da divisão de $a (4) por $b (3) é igual a 1, sendo este o valor atribuído à $c
?>

Desta forma, sabemos que o número 4 não é divisível por 3, pois seu módulo 1. Caso na variável $b o valor armazenado fosse 2, o módulo de $a por $b seria igual a 0, pois 4 é um número divisível por 2. Veja que sua operação é simples, o que as vezes fica complicado para alguns programadores, principalmente os que estão iniciando, é as potencias utilização desta operação. Vamos a primeira aplicação desta operação nos loops do WordPress.

Definindo se um post é par ou ímpar no loop

Ao desenvolver um site com o WordPress, você pode se deparar com a necessidade de realizar alguma tarefa, inserir um determinado conteúdo, ou mesmo atribuir uma classe css em um elemento alternadamente no loop. O loop é um processo iterativo, que se processa “n” vezes, de acordo com o especificado em seus parâmetros. Por padrão ele não fornece um contador das iterações, sendo necessário criarmos uma variável para isso. A seguir um exemplo de loop com um contador que é exibido.

<?php
$contador = 1; //Iniciado em um para exibir um na primeira iteração

if ( have_posts() ) {
    while ( have_posts() ) {
        the_post();
        echo $contador; //Exibe o número da iteração do loop para cada post
        $contador += 1; //Incrementa o contador para a próxima iteração do loop
    }   
}
?>

Supondo que haja 10 posts a serem exibidos, neste loop será exibido na tela os valores de 1 a 10, para cada iteração do loop. Com o contador implementado, como podemos saber se o post a ser exibido é um post par, ou um post ímpar? Pelos fundamentos da matemática, sabemos que todos números inteiros pares (exceto  0 0) são divisíveis por 2. Assim, basta verificarmos o módulo, ou seja, o resto da divisão por 2, para verificarmos se a iteração em questão é par ou ímpar, acrescentando um condicional em nosso loop. Caso o resto da divisão seja 0, ou seja, não exista resto, o número é divisível por 2 e é par.

<?php
$contador = 1; //Iniciado em um para exibir um na primeira iteração

if ( have_posts() ) {
    while ( have_posts() ) {
        the_post();

        if( $contador % 2 == 0){
            echo "Este é um post par!";
            //insira o seu código para quando o post for par
        } else {
            echo "Este é um post ímpar!";
            //insira o seu código para quando o post for ímpar        
        }

        echo $contador; //Exibe o número da iteração do loop para cada post
        $contador += 1; //Incrementa o contador para a próxima iteração do loop
    }   
}
?>

É importante iniciar o contador com 1, pois caso inicie-o com 0, na primeira iteração ele será considerado par, o que quebraria a lógica. Vamos para uma segunda possível aplicação, perceba que as possibilidades são diversas, se você irá inserir um conteúdo personalizado (imagem, texto), se irá inserir uma tag html ou uma classe css, isso depende de suas necessidades, o foco aqui é mostrar como aplicar isso para que então você consiga fazer seu código conforme o que for preciso.

Definindo se um post é múltiplo de um número “n”

Basicamente o que realizamos anteriormente foi a verificação se o número armazenado na variável $contador era múltiplo de 2, significando que se tratava de um número par em caso de seu módulo resultar em 0. Para verificarmos se um número é múltiplo de qualquer número, basta realizarmos a operação de módulo com o número em questão. Então, por exemplo, em um layout de 3 colunas, em que se deseja atribuir uma classe específica em todo terceiro post do loop, verificaríamos se a variável contador para aquele post é múltiplo de 3, utilizando a operação de módulo.

<?php
$contador = 1; //Iniciado em um para exibir um na primeira iteração

if ( have_posts() ) {
    while ( have_posts() ) {
        the_post();

        if( $contador % 3 == 0){
            echo "Este é um post múltiplo de 3!";
            //insira o seu código para quando o post for múltiplo de 3
        } else {
            echo "Este NÃO é múltiplo de 3!";
            //insira o seu código para quando o post não for múltiplo de 3       
        }

        echo $contador; //Exibe o número da iteração do loop para cada post
        $contador += 1; //Incrementa o contador para a próxima iteração do loop
    }   
}
?>

Caso no loop existam 9 posts a serem exibidos, nas iterações dos posts 3, 6 e 9, o código executado será o do bloco if, desta forma podendo se tratar diferentemente estes posts. O operador de módulo pode ser utilizado igualmente para definir se é um múltiplo de qualquer outro número, 4, 5, 12, 123, etc.

Utilize o % e descubra suas possibilidades

Basicamente vimos que utilizando o módulo podemos verificar se um número é múltiplo de outro, com o auxílio de uma variável contador no loop. Podemos então especificar a ordem do post a ser exibido e modificar sua regra de exibição com um condicional (if). A partir disso, suas necessidades e criatividades irão te auxiliar na utilização deste operador na criação de seus próximos loops.

Incrementando mais um na variável contador, na verificação do if, por exemplo, faz com que verifiquemos se o post em questão é o anterior ao múltiplo a ser verificado. Da mesma forma, subtraindo um na variável contador, na verificação do if, estamos verificando se o post atual é o imediatamente posterior ao múltiplo verificado.

<?php
$contador = 1; //Iniciado em um para exibir um na primeira iteração

if ( have_posts() ) {
    while ( have_posts() ) {
        the_post();

        if ( ($contador+1) % 5 == 0) {
            echo "Este é um post imediatamente anterior a um múltiplo de 5!";
        }

        if ( ($contador-1) % 3 == 0) {
            echo "Este é um post imediatamente posterior a um múltiplo de 5!";       
        }

        echo $contador; //Exibe o número da iteração do loop para cada post
        $contador += 1; //Incrementa o contador para a próxima iteração do loop
    }   
}
?>

Espero que tenha ajudado àqueles que buscam melhorar o seu tratamento do loop, e para aqueles que buscam como definir regras específicas para cada post, de “n” em “n” iterações do loop. Compartilhem suas utilizações do operador de módulo nos loops do WordPress.

Posts Similares

  • Otimizando seu blog WordPress para os buscadores

    Os buscadores atualmente dispõe de meios para encontrar e classificar quase tudo que há na rede, mas se você contar apenas com isso, vai aproveitar bem pouco desse enorme tráfego gerado a partir de buscas dos internautas. Mas o que se pode fazer para melhorar a colocação de seu blog nas buscas? Bem, há algumas…

  • 3 ferramentas eficientes para migração de banco de dados no WordPress

    Um dos desafios da migração de um site WordPress é localizar e substituir uma URL no banco de dados e as atualizar para o novo endereço do site. São ainda mais links para atualizar em uma instalação multisite, e você pode estar trabalhando com um banco de dados maior do que um blog convencional. Hoje…

  • Como utilizar os Campos Personalizados em seu tema

    Provavelmente você já viu no Adicionar novo post ou página o formulário Campos personalizados. Com os campos personálizados você pode adicionar qualquer campo e posteriormente inserir em seu tema. Para inserir em seu temas algum campo, utilize a seguinte tag: <?php $values = get_post_custom_values(”campo“); echo $values[0]; ?> Altere campo pelo nome que você escolheu para…

  • O que é e como utilizar o WP CLI

    O WP CLI é uma interface de linha de comando que permite que os usuários gerenciem seus sites WordPress a partir do prompt de comando. Escrito em PHP e sob licença MIT, você pode o utilizar para uma série de tarefas: Upgrades podem ser realizados, backups podem ser gerados, novos posts podem ser publicados e…

  • Categorias X Tags: Melhores Práticas de SEO para a ordenação de conteúdo no WordPress

    Confuso sobre a diferença (ou semelhanças) entre as categorias e tags do WordPress? Você não está sozinho. Claro que você quer organizar o conteúdo de seu site da maneira mais eficaz possível para os seus leitores e visitantes serem capazes de encontrar facilmente o que estão procurando. Mas você também quer ter a certeza de…

  • Fazendo backup de seus posts via ferramentas WordPress

    Por algumas vezes percebi que o WordPress mostra-se inconsistente quando fazemos algumas alterações, principalmente se estas alterações interferem no Banco de Dados. Como alguns serviços de hospedagem não permitem fazer o backup do banco de dados MySQL, ou não permitem a importação do backup, é aconselhável de tempos em tempos fazermos backup’s de nossas postagens,…

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *