Você está procurando uma maneira de limpar os permalinks uma vez por hora? Embora provavelmente exista um plugin para isso, criamos um pequeno trecho de código que você pode usar para limpar os permalinks uma vez por hora com um cron job no WordPress.
Para confirmar que os permalinks estão sendo limpos, basta adicionar um comentário logo antes de # END WordPress no arquivo .htaccess. Assim que os permalinks forem limpos, o comentário desaparecerá.
Instruções:
Tudo o que você precisa fazer é adicionar este código ao arquivo functions.php do seu tema ou a um plugin específico do site:
// Flush permalinks every hour
add_action('my_hourly_event', 'do_this_hourly');
function my_activation() {
if ( !wp_next_scheduled( 'my_hourly_event' ) ) {
wp_schedule_event(time(), 'hourly', 'my_hourly_event');
}
}
add_action('wp', 'my_activation');
function do_this_hourly() {
global $wp_rewrite;
$wp_rewrite->flush_rules();
}
Observação: Se esta é a sua primeira vez adicionando snippets de código no WordPress, consulte nosso guia sobre como adicionar snippets de código corretamente no WordPress, para não quebrar acidentalmente seu site.
Se você gostou deste trecho de código, considere conferir nossos outros artigos no site, como: 15 melhores plugins de marketing de conteúdo e como criar um formulário de doação do WordPress.
Você pode usar o WP Cli se sua hospedagem suportar isso com uma tarefa cron:
`/path/to/wp rewrite flush –path=/path/to/website/files/`
Para aqueles que precisam limpar os permalinks apenas uma vez por dia, aqui está um trecho de código que você pode usar:
// Limpa os permalinks uma vez por dia
add_action(‘my_daily_event’, ‘do_this_daily’);
function my_activation() { if (!wp_next_scheduled(‘my_daily_event’)) { wp_schedule_event(strtotime(‘midnight’), ‘daily’, ‘my_daily_event’); } }
add_action(‘wp’, ‘my_activation’);
function do_this_daily() { flush_rewrite_rules(); }
Olá,
Isso é realmente útil, obrigado.
Eu só queria entender isso.
Quando você usa o hook chamado ‘wp’, que eu acredito que não existe, isso significa que a função ‘my_activation’ deve ser executada quando?
Estou tentando entender em que ponto essa função será chamada.
Adicionei seu trecho de código ao meu arquivo functions.php e também adicionei um comentário ao meu arquivo .htaccess da seguinte forma:
# TESTE para limpeza periódica das regras de reescrita
# FIM WordPress
No entanto, meu comentário de teste não desaparece, e estou me perguntando se este trecho de código funciona. Estou perdendo alguma coisa?
É possível que o arquivo não esteja sendo sobrescrito pelo trecho. Você pode querer entrar em contato com o host sobre isso.
Valeu, cara!
Mas, e se eu quiser fazer isso a cada 10 minutos?
Obrigado por esta explicação! Eu estava procurando uma maneira de corrigir um problema no meu site. Porque, quase uma vez por dia os permalinks estão quebrados, e eu tenho que salvá-los novamente para fazê-los funcionar. Você já teve esse problema? você sabe o que pode estar causando isso?
Obrigado novamente, e vou testar esta solução no meu site.
Infelizmente, você pode querer que um desenvolvedor investigue isso.