Parte do meu trabalho é criar sites Wordpress. Normalmente, trabalho no meu laptop até ter algo bom o suficiente para ser carregado no servidor de teste em que o cliente o revisa.
Eu crio um VirtualHost para cada novo projeto, por isso estou sempre trabalhando com uma instalação do Wordpress em um domínio que se parece http://local.example.com/
, mas quando o site é carregado no servidor de teste (não controlado por mim), o domínio pode acabar sendo algo parecido http://testserver.com/arbitrary/path/example/
.
O problema é que, se eu adicionar um link personalizado a um menu que aponte para, por exemplo, /events/
funcionaria bem localmente criando um link para http://local.example.com/events/
, mas no servidor de teste, o link apontará para http://testserver/events/
, o que obviamente não está certo.
O que eu quero é fornecer ao link personalizado um URL que funcione tanto no meu ambiente local quanto no servidor de teste.
Eu já manuseio o problema de alterar as opções home
e siteurl
Wordpress:
- alterando essas configurações no banco de dados local
- criando um despejo do banco de dados
- atualizar o banco de dados no servidor
- restaurando as opções locais.
Não quero usar URLs completos para os links personalizados e ter que substituí-los pelo URL do servidor sempre que precisar atualizar o banco de dados do servidor.
Para links dentro do conteúdo da postagem, existe um plug-in que resolve o problema de adição de dois códigos de acesso: http://wordpress.org/extend/plugins/url-shortcodes/ , mas não consegui encontrar algo semelhante para Links personalizados .
Respostas:
Eu também estava procurando uma solução para isso e achei uma simples.
É isso que você precisa colocar no campo URL:
Funciona muito bem!
Atenciosamente Chris
fonte
Você pode usar o
nav_menu_link_attributes
filtro para inspecionar e modificar o atributo href para cada item de menu antes que ele seja produzido.Neste exemplo, procuramos por qualquer atributo href que comece com
/
ae, e precede o URL do site de teste nesse caso:Você pode criar um plugin simples com esse código e ativá-lo apenas no servidor de teste ou criar algum tipo de sinalizador que aplique condicionalmente esse filtro quando o ambiente do site de teste estiver presente.
fonte
O uso da
<base href=" ">
tag na meta head fornecerá um URL base para todas as âncoras relativas na página.Referência:
https://www.w3.org/TR/html4/struct/links.html
12.4 Informações do caminho: o elemento BASE
Links personalizados relativos no wordpress:
se você quiser que o URL do site seja o URL base de todas as âncoras, adicione-o ao theme / header.php dentro de
<head>
:<base href="<?php echo site_url(); ?>/">
Eu sei que poderia estar atrasado para você, mas poderia ajudar outra pessoa.
fonte
ehepperle.com/sites/in-progress/some-wp-site-root/
menos que você defina explicitamente a raiz do site. A velocidade de desenvolvimento da Web não é visivelmente melhorada usando abase
tag, pois quando você migra para outro site, você terá que redefinir o que é base. No entanto, posso ver o valor na redução do comprimento dos valores href.Em um URL personalizado na configuração do menu, é possível usar links relativos ao [blogurl]. O segredo é iniciar o URL relativo com um único
/
. Quando um único / inicia o URL personalizado, o sistema não precede o típicohttp://
e, em seguida, o URLUR do blog atual será gerado no URL de destino no momento da execução.EXEMPLO
Se você quiser acessar sua página inicial, basta colocar
/
como o URL personalizadoSe você quiser ir para a página de índice na pasta
bbforums
, coloque/bbforums
como o URL personalizado.Isso permite que você mova um site para um domínio de teste sem precisar codificar o novo blogURL em todos os links personalizados para os menus.
Por exemplo:
se meu blog for
http://example.com
e quero testá-lo em um subdomínio,http://test.example.com
o site poderá ser movido entre teste e produção sem problemas de menu usando a convenção relativa de URL mencionada acima. Testei com êxito essa abordagem usando o plug-in XCloner para mover o site.fonte
Primeiro você precisa instalar este plugin para códigos de acesso de URL.
Adicione este código ao seu
functions.php
arquivo no seu tema:Então você deve chamar a
wp_nav_menu
função nos arquivos de modelos:É isso aí. Em seguida, vá para a seção do menu back-end.
Por exemplo, se eu quiser atribuir o URL da página a um link personalizado, adicionarei-o assim:
Agora você pode ir para o front-end e verificar se o código curto funciona.
fonte