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

  • Criando o arquivo .htaccess em seu Windows

    Dando aulas de WordPress no Instituto Infnet e mexendo aqui no meu computador, senti a necessidade de criar um arquivo .htaccess em meu servidor local. Se você reparar bem, o Windows por padrão não permite a criação de arquivos no formato .nomedoarquivo, já que sua estrutura de arquivos segue o formato nome.extensão (e isso é…

  • Como remover o Editor do menu ‘Aparência’

    O painel do WordPress contém um item no menu que permite que você edite qualquer tema WordPress instalado em Aparência > Editor. No entanto, há momentos em que você não pode querer alguém bisbilhotando e alterando as coisa por lá e limitar tal poder de edição apenas a quem tenha a senha de FTP, já…

  • Temas filho para conteúdo temático

    O que você faz quando um cliente pede para você incluir alterações no site referente a uma data específica (natal, páscoa, dia do índio, etc)? Você altera os arquivos do seu tema, inclui novas imagens, modifica o CSS, talvez alguns javascripts. Leva horas para fazer a alteração que vai ficar apenas 1 dia no ar…

  • Diferença entre WordPress.org e WordPress.com

    Toda vez que dou uma palestra em algum canto do Brasil falando sobre WordPress e os benefícios de se usar esta fantástica ferramenta de gerenciamento de conteúdo para gerenciar seu site/blog, busco deixar clara a diferença entre os dois modelos disponíveis para o uso do WordPress: WordPress.org e WordPress.com. Sobre o WordPress.org Quando ministro tais…

  • Atalhos no WordPress

    Esta dica pode ajudar a facilitar muito a vida de quem precisa inserir grande número de informações dentro de um post escrevendo poucas linhas

  • Elimine ou altere o "\author\" da página de autores no WordPress

    Por padrão o WordPress cria uma URL para cada autor, seguindo a estrutura /author/nome-do-usuario. Alguns podem querer modificar esta palavra author, pois se pensarmos em sites em português a expressão não se encaixa muito bem. Teremos também aqueles que, de acordo com o projeto desenvolvido, poderão querer apagar esta palavra e deixar o site mostrando…

Deixe um comentário

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