Suporte » Outros assuntos » Linkagem Amigável p/ Page

  • Resolvido Gustavo Spindola

    (@gustavospindola)


    Olá pessoal, boa tarde.

    Agradeço quem puder contribuir.

    Gostaria de um link feito “na mão” dentro de um botão, que leve o usuário para uma página do tipo PAGE, pois tenho que colocar as páginas dentro de pastas e tenho que passar o caminho delas. Achei essa forma de se fazer na internet, "<a href="index?p=4">Página de exemplo</a>", mas a URL não está amigável para o Google.

    Ou seja,
    Tenho este link <a href="index?p=4"> preciso que ele fique assim <a href="localhost/quem-somos/"> carregando a página quem somos do tipo page(page-quem-somos.php).

    Um abraço.

Visualizando 8 respostas - 1 até 8 (de um total de 8)
  • Moderador Felipe Elia

    (@felipeelia)

    Pelo que entendi você está procurando a função home_url().

    No seu caso ficaria

    <a href="<?php echo esc_url( home_url( 'quem-somos' ) ); ?>">Página de exemplo</a>

    É isso? Se for não esquece de marcar seu tópico como resolvido 🙂

    Criador do tópico Gustavo Spindola

    (@gustavospindola)

    Funcionou OK com a page-quem-somos na raiz. Teria como colocar esta page dentro de um diretório <quem-somos>?

    Moderador Felipe Elia

    (@felipeelia)

    Desculpa @gustavospindola, não sei se entendi muito bem. O endereço da página é definido na tela de edição da própria página, sendo quem-somos o que a gente chama de slug da página. O seu wordpress está utilizando o arquivo page-quem-somos porque ele segue a estrutura page-{slug}.php, como você pode ver na documentação. Por colocar esta page dentro de um diretório você quer dizer que seus usuários devem acessar http://dominio.com/quem-somos/ e não http://dominio.com/quem-somos?

    Se for isso você pode inserir este código no seu htaccess:

    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_URI} !(.*)/$
    RewriteRule ^(.*)$ http://dominio.com/$1/ [QSA,L,R=301]

    Não testei, mas tirei daqui.

    Criador do tópico Gustavo Spindola

    (@gustavospindola)

    Obrigado pela atenção e desculpe o incomodo, sou iniciante em programação para WordPress.
    A forma que me passou não funcionou ou eu não soube fazer da forma correta…
    Eu estou tentando linkar a minha front-page.php que está na raiz do site com uma pagina que está dentro de um diretório, pois meu site está ficando muito grande e deixar as páginas soltas na raiz está deixando desorganizado, gostaria de estrutura-lo em pastas.

    Como abaixo:
    |
    V

    diretório(Site)
    |
    |
    |___diretório(quem-somos)
    | |___page-quem-somos.php(ou uma página interna qualquer)
    |
    |
    |__front-page.php

    Você acha que essas páginas internas deveriam ser do tipo page mesmo?

    Desculpe novamente, não sei quase nada de WordPress 🙁
    Obrigado pela atenção

    Moderador Felipe Elia

    (@felipeelia)

    Eu que peço desculpas, @gustavospindola, mas aos poucos a gente vai se entendendo.

    O cenário que você está descrevendo parece muito pouco com uma instalação do WordPress 🙁 Na verdade o diretório que você descreve é o seu tema, certo? Em uma instalação padrão do wordpress a raíz do site deve ter as pastas wp-include, wp-admin e wp-content. É o seu caso, certo?

    A administração do conteúdo deve ser feita através do painel do wordpress. Indo do lado esquerdo no link “Páginas” deveriam estar suas páginas, elas estão lá?

    No diretório do seu tema (tipicamente em wp-content/themes/nome-do-seu-tema) estarão os arquivos responsáveis pela exibição dessas páginas (e dos outros conteúdos), seguindo a hierarquia dos templates. Não é preciso um arquivo para cada página, o ideal aliás é manter o mínimo de arquivos possível.

    Sugiro que você baixe uns temas prontos para ter uma ideia da estrutura geral, pode ser que clareie um pouco o entendimento 🙂

    Criador do tópico Gustavo Spindola

    (@gustavospindola)

    Boa tarde Felipe!

    A estrutura basicamente seria essa

    site
     |
     |____|outras pastas do WordPress|
     |
     |____|wp-content|
               |
               |___|themes|
                      |
                      |___|pasta-do-meu-tema|
                                   |___(front-page.php)
                                   |
                                   |___|quem-somos|
                                   |        |___(page-quem-somos.php)
                                   |
                                   |___|guia-de-cidades|
                                                |___(page-cidade-01)
                                                |___(page-cidade-02)

    Preciso das páginas dentro de diretórios por motivos de organização, pois o site terá centenas de páginas e cada uma delas com um conteúdo diferente, e talvez até feito direto no html, por isso acho que não posso criar as páginas pelo painel do WordPress 🙁

    Por exemplo: Na pasta cidades, eu terei várias cidades, todas diferentes, por isso gostaria de organiza-las em um diretorio especifico de cidades. Isso também ocorrerá em varios ouros seguimentos. Apenas separar por categorias para mim não seria viável, pois o site está ficando enorme e deixar todas as paginas misturadas e soltas no diretorio do tamplate dificultaria a manutenção do site.

    Moderador Felipe Elia

    (@felipeelia)

    Puxa @gustavospindola, sou obrigado a te dizer que você está seguindo um caminho completamente diferente ao que é proposto pela ideia tanto do WordPress quanto de CMS em geral: o ideal é que esse conteúdo esteja todo no painel, afinal se é pro conteúdo estar direto no HTML não tem razão de usar o wordpress, concorda? Recomendo muito que você reveja essa estrutura, espero que consiga isso em tempo hábil de entregar seu projeto.

    Se você decidir insistir nesse cenário, um facilitador pode ser a função get_template_part, que funciona como um “include” do wordpress. Você teria alguns arquivos na raiz servindo de “casca” e o “miolo” seria renderizado pela get_template_part(). Algo como o código abaixo dentro da sua page.php

    global $post;
    get_template_part('guia-de-cidades/cidades', $post->post_name);

    pegaria o conteúdo do arquivo guia-de-cidades/cidades-slug_do_conteudo.php, mas repetindo, essa solução não é nem de longe a ideal 🙁 O ideal seria você criar um template-cidades.php com tudo o que há de comum entre as páginas de cidade e chamar, por exemplo, a função the_content() para exibir o conteúdo cadastrado no painel.

    Criador do tópico Gustavo Spindola

    (@gustavospindola)

    Felipe, obrigado pela ajuda, pela paciência e pela atenção. Vou conversar com meu chefe e ver o que vai ser resolvido

    Muito obrigado, abraços!

Visualizando 8 respostas - 1 até 8 (de um total de 8)
  • O tópico ‘Linkagem Amigável p/ Page’ está fechado para novas respostas.