É possível redefinir / alterar a lesma do tipo de postagem personalizado existente de um plug-in (sem simplesmente editar o plug-in)?
Ou seja, se o Plugin X cria um tipo de postagem personalizado com o slug / uncookedtoast /, é possível adicionar um filtro ao functions.php (ou algo semelhante) que altera o slug para / bread /?
custom-post-types
functions
slug
Edbury
fonte
fonte
Respostas:
Sim, isso é possível, mas se o plug-in estiver criando um tipo de postagem personalizado usando o
rewrite => array('slug' => 'post_type')
parâmetro, não é provável que você consiga substituir a lesma.Sempre que tipos de postagem personalizados são criados, as regras de reescrita de URL são gravadas no banco de dados. Dependendo de qual ação aciona a criação do tipo de postagem personalizado (como a ação init ), o WordPress liberará as regras de reescrita e restaurará as lesmas do tipo de postagem personalizada, independentemente das alterações que você tentar fazer.
Dito isso, você pode fornecer slugs personalizados para os tipos de postagem personalizados. O exemplo a seguir supõe que você tenha um tipo de postagem personalizada
movies
e que esteja tentando alterar a/movies/
lesma para/films/
.Para concluir, aqui está a função básica usada para definir o
movies
tipo de postagem personalizada. O plug-in que você está referenciando deve fazer algo assim:Você pode modificar a tabela de opções, fornecendo suas próprias regras personalizadas com base no tipo de postagem existente.
Basicamente, faremos isso:
Veja como você pode fazer isso:
Agora, você terá duas maneiras de acessar seus filmes:
/movies/Back-To-The-Future
/films/Back-To-The-Future
Observe que eu não recomendo conectar
add_custom_rewrite_rule
ainit
ação à ação, pois ela será acionada com muita frequência. Este é apenas um exemplo. Um lugar melhor para aplicar a função seria na ativação do tema, na ativação do plug-in, talvez na ação save_post, etc. Dependendo do que você precisa fazer, talvez seja necessário acioná-la apenas uma ou poucas vezes.Nesse ponto, convém atualizar os permalinks para o tipo de postagem personalizada para usar a '
/movies/
lesma ' . Por exemplo, se você navegar para/films/
, verá uma lista de todos os seus filmes, mas passar o mouse sobre o título revelará que a/movies/
lesma ainda está sendo usada.Para ir um passo adiante, tecnicamente, você pode instalar um redirecionamento 301 para capturar todos os links
/movies/
e redirecioná-/films/
los para as contrapartes deles , mas tudo depende do que você está tentando fazer.fonte
$post
aadd_custom_rewrite_rule()
função, mas está lançando erros no WP Admin dizendo 'Tentando obter propriedade de não-objeto'. Como posso obter $ post para obter o valor meta?Este código funcionou bem para o meu tema filho. Necessário alterar a lesma "program" para "place".
fonte
$args['has_archive'] = false
e isso funcionou.