Como fazer a busca do WordPress retornar somente posts do blog

Por padrão, a pesquisa do WordPress retorna em seus resultados todas as páginas e postagens que contém a expressão solicitada pelo usuário. Em geral este ajuste é o mais adequado para a maioria das vezes, mas há situações que seria desejável exibir apenas as páginas ou os posts do blog nos resultados da busca.

Para isso, basta usar o filtro pre_get_posts por meio de uma pequena função no arquivo functions.php do teu tema ou em um plug-in específico. Vamos ver como fazer.

Mostrar só os posts

Para mostrar só os posts, a função define que o tipo de post (post type) a ser buscado pela consulta principal é “post”.

/* Se não é o painel administrativo, segue */
if (!is_admin()) { 
  function buscar_somente_posts($query) {
    /* Se a consulta é uma busca, então */
    if ($query->is_search) { 
      /* Limita o "post_type" a posts */
      $query->set('post_type', 'post'); 
    }
  return $query;
  }
  /* Adiciona a função ao filtro pre_get_posts */
  add_filter('pre_get_posts','buscar_somente_posts'); 
}

Mostrar só as páginas

O código é o mesmo, só trocamos o post_type para “page”.

/* Se não é o painel administrativo, segue */
if (!is_admin()) { 
  function buscar_somente_paginas($query) {
    /* Se a consulta é uma busca, então */
    if ($query->is_search) { 
      /* Limita o "post_type" a páginas */
      $query->set('post_type', 'page'); 
    }
  return $query;
  }
  /* Adiciona a função ao filtro pre_get_posts */
  add_filter('pre_get_posts','buscar_somente_paginas'); 
}

E outros tipos?

Bem, se tu prestaste atenção, te deste conta que é só trocar o post_type na consulta para filtrar por qualquer tipo personalizado de post que se queira, como por exemplo, “produtos”, “pessoas”, “endereços” e qualquer outro.

Conseguiste fazer o filtro que precisavas? Faz teu comentário e diz como foi tua experiência. Queres que eu escreva um artigo mais completo sobre isso? Deixa tua sugestão!

Jetpack: como disponibilizar as estatísticas para outros usuários além do admin?

Em lojas WooCommerce, é interessante que os gerentes de loja possam consultar esta importante informação. Como fazer?

Longe de ser um concorrente para o Google Analytics, o plug-in Jetpack, da Automattic, é uma boa opção para quem quer acompanhar as estatísticas de seu sítio.

Na verdade, o Jetpack é um plug-in muitíssimo popular e no caso do WooCommerce, é oferecido para ser instalado no pacote, justamente para prover os números de acesso às páginas e aos produtos, dentre outros recursos.

Buenas, já estou considerando que já tens o Jetpack instalado com o usuário WordPress.com devidamente configurado. A partir disso, o plug-in começa a mostrar as estatísticas do painel inicial, em um box como este:

Muito bem. O problema é que esse gráfico, por padrão, só é visualizado pelos administradores. Em lojas WooCommerce, por exemplo, é interessante que os gerentes de loja também possam consultar estes números, pois é uma importante informação gerencial.

Como fazer então?

Bom, esta opção é meio escondida, mas está em Jetpack > Configurações. Vai na aba Tráfego e nesta página, procura pelo item Estatísticas do Site.

Abre a gaita que vai estar fechada clicando na seta à direita e a opção é a última: Permitir que os relatórios de estatísticas sejam visualizados por.

Opções de visualização das estatísticas do Jetpack

No meu caso, eu só preciso que o gerente da loja veja as estatísticas, mas é possível habilitar para que mais pessoas vejam, como editores, autores etc. Basta clicar na função desejada que as configurações são gravadas automaticamente.

Quando o gerente da loja entrar de novo, o box de estatísticas será exibido, assim como para os administradores.

É isso.

Tens alguma outra dica sobre o assunto? Deixa aí nos comentários!

Como ativar o relatório de erros do PHP no MAMP?

Eu sou fã do Mac e uso o MAMP não só para desenvolver sítios WordPress, mas também outros projetos em PHP. Durante este trabalho, é muito útil ver os erros direto na tela, sem ter que lançar mão de outros recursos.

No entanto, por padrão, essa opção é desativada no MAMP. No MAMP versão PRO, é bem fácil trocar, é só ir nas configurações, em Error Handling (Manuseio dos Erros) e na seção “To” marque a opção “Display”.

Ajustes para a visualização de erros no MAMP PRO

Se tu usas a versão básica como eu, é um pouco mais chato, mas não é tão complicado, como vemos abaixo:

1. Abra a pasta do MAMP, que está em /Applications/MAMP/. Dentro dela, teremos a pasta de “configurações” (/conf/) com as diversas versões do PHP que estão instaladas em tua máquina.

2. Escolhe a versão que estás usando. No meu caso, eu estou usando a versão PHP 7.3, então o caminho completo da pasta é esse: /Applications/MAMP/conf/php7.3.8. Abre o documento php.ini que está dentro dela.

3. Procura a linha onde se está o parâmetro display_errors e muda de “Off” para “On”.

4. Se precisares mudar os tipos de erros o que tu queres que sejam exibidos, usa o parâmetro error_reporting para isso. Eu recomendo que tu deixes a opção E_ALL que é justamente todos os erros.

5. Para o servidor Apache e reinicia novamente para que os ajustes feitos tomem efeito.

FEITO! Agora quando executares um script PHP, serão exibidos os níveis de erros: errors, warnings e notices.

Como resolver o erro “Falha ao atualizar. A resposta não é um JSON válido.” no WordPress

Então tu estás reinstalando um sítio WordPress ou então foste atualizar uma página qualquer e pá! Vem este erro exótico “A resposta não é um JSON válido” ou pouco explicativo: “Falha ao atualizar”. O que fazer?

Então tu estás reinstalando um sítio WordPress ou então foste atualizar uma página qualquer e pá! Vem este erro exótico “A resposta não é um JSON válido” ou pouco explicativo: “Falha ao atualizar”.

Sim, os informatas não são muito pródigos nas mensagens de erro, principalmente porque tendem a fazê-las para si, não para os usuários. Mas isso é uma outra questão. Voltemos ao erro.

Confesso que eu não descobri a origem certa do erro, mas pode ter a ver com estas situações:

Motivo 1: Arquivo .htaccess com problemas

É o motivo mais exótico, mas curiosamente, o mais comum. As regras estão erradas por algum motivo (erro de plug-in, padrão diferente da tua hospedagem etc.) e é preciso voltar ao básico.

Para isso, a solução é simples: vai na opção Configurações > Links permanentes e escolhe uma opção diferente da que está no momento (sugiro justamente o ajuste “Padrão”). Vai na página em questão e atualiza novamente.

Deu? Volta no ajuste dos Links Permanentes e escolhe a opção adequada para teu blog e pronto!

Não deu? Segue o próximo motivo.

Motivo 2: Incompatibilidades de plug-ins

Ah, o velho e bom problema de sempre. Plug-ins malucos (ou não) que destroem tua instalação WP por não fazerem o mínimo, que é se comportar educadamente dentro das melhores práticas.

Muito bem, para resolver isso já é sabido: desativa todos os plug-ins que não forem necessários e tenta atualizar a página novamente.

Deu? Parabéns, o mundo é belo!

Não deu? Tenta desativar TODOS os plug-ins.

Não deu? Segue o próximo motivo.

Motivo 3. Incompatibilidade de temas

O criador do tema botou umas funções malucas dentro do functions.php e tu acabaste de atualizar o WordPress. E daí danou-se.

Neste caso, o negócio é trocar o tema por um tema padrão, como o TwentyTwenty (https://br.wordpress.org/themes/twentytwenty/) e tentar de novo.

Deu? Atualiza ou troca de tema.

Não deu? Escreve aí embaixo tua triste situação, que a gente tenta encontrar a solução juntos.