Existe alguma maneira de adicionar a .html
extensão a tipos de postagem personalizados sem plug-in ?
Para postagens que posso usar /%postname.html
nas configurações do link permanente
Para páginas que posso usar:
add_action('init', 'change_page_permalink', -1);
function change_page_permalink() {
global $wp_rewrite;
if ( strstr($wp_rewrite->get_page_permastruct(), '.html') != '.html' )
$wp_rewrite->page_structure = $wp_rewrite->page_structure . '.html';
}
Para tipos de postagem personalizados ???
Existe algum código semelhante ao acima que me permita alterar ou adicionar o .html
URL personalizado do tipo de postagem?
custom-post-types
permalinks
url-rewriting
urls
user983248
fonte
fonte
function post-type_permalink
vai lançar um erro. Se você não receber esse erro, terá algo dolorosamente errado com suas configurações de depuração. Também refaça sua pergunta com as intenções corretas nas linhas. Obrigado./$postname.html
para as postagens, como posso usar o mesmo para os tipos de postagens personalizadas.-
não funciona em nomes de função ...Respostas:
Isso parece funcionar:
Crie as regras de reescrita como
post-type/post-name.html
. Você pode usar matrizes para criar as regras para apenas um conjunto de tipos de postagem, em vez de fazê-lo para todos eles.Formate a nova estrutura de link permanente para esses tipos de postagem.
E pare de redirecionar os URLs canônicos para remover a barra final. Isso pode exigir mais trabalho, pois você provavelmente desejará manter o redirecionamento na maioria dos casos.
Como outros disseram por aqui, depois de fazer o acima, você precisará executar as regras, e isso é possível visitando a
options-permalink.php
página de administração emDashboard -> Settings -> Permalinks
.fonte
wpse_59024_
(ID da pergunta) para evitar conflitos de cópia / pasta;). . . E tem o benefício extra de saber a qual resposta esse código pertence à nossa biblioteca de trechos. . . . . +1 Spot on!post_type_link
filtroVocê pode adicionar uma regra de reescrita para isso que substitua os links permanentes incorporados, por exemplo, para um tipo de postagem personalizado "produto" ...
(Não esqueça de liberar suas regras, salvando novamente os links permanentes ou usando
flush_rules
da maneira @toscho notes acima).Ressalvas
the_permalink()
usariam isso, então você pode precisar adicionar um filtro parapost_link
capturar esses links. Você também pode adicionar aoredirect_canonical
filtro para redirecionar os links permanentes padrão, para que / product / foo e / product / foo / redirecionem para /product/foo.html.fonte
Se você preferir um plugin do WordPress para lidar com o trabalho, confira Permalinks personalizados de tipo de postagem no repositório de plugins do WordPress. Testado no WordPress 3.4.1 e funciona perfeitamente.
Após ativar o plug-in, basta navegar para Painel -> Configurações -> Links permanentes. Você pode adicionar regravações específicas para cada tipo de postagem personalizada registrada.
fonte
flush_rules()
deve ser chamado na desativação / ativação apenas porque é muito lento. Você pode verificar$GLOBALS['wp_rewrite']->rules
se as regras já são conhecidas.