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?

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, √© importante 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.

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
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”.

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.