Com o lançamento do WordPress 3.0 veio a capacidade de adicionar “Custom Post Types” aos seus temas WordPress, que é uma ferramenta muito valiosa e que usei em muitos temas WordPress que criei. Até agora, os tipos de postagem personalizada se tornaram extremamente populares e usados
Abaixo, listei alguns dos problemas mais comuns que as pessoas têm com os Tipos de postagem personalizados e por que eles podem estar recebendo esses erros. Espero que ajudem pelo menos algumas pessoas por aí.
1. Verifique suas configurações de link permanente
Esta é provavelmente uma das razões mais comuns pelas quais as pessoas estão recebendo erros 404 em seus tipos de postagem personalizados e eu já lidei com isso muitas vezes. Eu vi muitas correções por aí, como liberar as regras de reescrita (o que eu não recomendo), mas pessoalmente tive mais sorte com a seguinte correção simples:
Solução:
- Defina sua estrutura de permalink personalizada (como %postname%)
- Clique em Salvar
- Veja se suas páginas de postagem personalizadas únicas retornam páginas de erro 404
- Se o fizerem, volte e altere os links permanentes de volta para o padrão e salve
- Agora tente definir o permalink personalizado novamente e salve
Ir e voltar normalmente ajudou a corrigir meus erros e tive muito sucesso com esse método.
Agora, em alguns servidores, se suas permissões não estiverem definidas corretamente, isso pode não funcionar e talvez você precise atualizar seu arquivo .htaccess manualmente. Para fazer isso, você terá que fazer login no seu site via FTP ou SFTP e navegar no diretório raiz do WordPress (mesmo local onde o arquivo wp-config.php e a pasta wp-content estão localizados). Aqui você deve encontrar um arquivo chamado .htaccess que você pode modificar (se você não o vir, certifique-se de que seu programa FTP tenha a opção de exibir arquivos ocultos habilitados e se simplesmente não houver um, crie um). Agora, verifique se o arquivo contém o código principal do WordPress, conforme mencionado nos documentos do WordPress , que se parece com isso:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Importante : Se você estiver modificando um arquivo .htaccess existente, certifique-se de fazer o backup do arquivo em seu computador primeiro, caso você estrague alguma coisa.
2. Verifique se há conflitos de slug (tendo uma página com o mesmo slug que seu tipo de postagem)
Outra coisa que pode causar um erro 404 é que você tem uma página principal para exibir sua postagem de tipo de postagem e tem o mesmo slug que seu slug singular de tipo de postagem real. Por exemplo, se você tem um tipo de post chamado “portfólio” e também tem uma página principal “Portfólio”, ambas com o slug “portfólio” (em outras palavras, para acessar um post de portfólio, vá para site.com/portfolio/sample- post) isso cria um conflito causando erros 404 em suas postagens de tipo de postagem singular. É por isso que você geralmente descobre que o tipo de postagem de portfólio usa o slug “projetos” ou “portfolio-item” para o slug singular.
Solução:
- Você pode alterar o nome da página para que seja diferente do tipo de postagem personalizada
- Você pode alterar seu slug de tipo de postagem personalizado, alterando o parâmetro de reescrita ao registrar seu tipo de postagem personalizado
3. Regras de reescrita de liberação automática (para desenvolvedores)
Outra causa de erros 404 é sempre que um novo tipo de postagem é registrado, você precisa “limpar” suas regras de reescrita no WordPress. Isso pode ser feito acessando Configurações > Permalinks e clicando no botão salvar (mencionado na primeira seção deste post).
Se você estiver trabalhando em um tema ou plug-in personalizado com tipos de postagem registrados, considere liberar automaticamente as regras de reescrita para seu usuário final quando ele ativar seu tema ou plug-in para evitar erros 404. Abaixo está um exemplo do código que você pode usar:
// Code for themes
add_action( ‘after_switch_theme’, ‘flush_rewrite_rules’ );
// Code for plugins
register_deactivation_hook( __FILE__, ‘flush_rewrite_rules’ );
register_activation_hook( __FILE__, ‘myplugin_flush_rewrites’ );
function myplugin_flush_rewrites() {
// call your CPT registration function here (it should also be hooked into ‘init’)
myplugin_custom_post_types_registration();
flush_rewrite_rules();
}
Tem outro erro ou solução?
Se você estiver tendo outro erro ou tiver uma solução melhor do que a minha, comente abaixo e me avise. Isso não apenas me ajudará, mas provavelmente ajudará outras pessoas que procuram uma solução para seus problemas. Obrigado!