it-swarm-pt.tech

Como usar div -ids no url para pular para um post específico ... O trailer é o culpado?

Alguns links no meu site levam o usuário a um post específicoin em uma página de categoria.

Em sites não-WP, isso é facilmente conseguido incluindo #example-div-id na url assim:

http://www.example.com#example-div-id

Mas em um ambiente WP, esse URL não está funcionando:

http://www.example.com/?cat=15#post-170

Isso (incorretamente) salta a janela do navegador para o final da página.

Mas isso funciona... removendo manualmente a barra após o carregamento da página e recarregando a página. A janela do navegador pula para o div apropriado, ou postar.

http://www.example.com?cat=15#post-170.

Alguém sabe por que isso é? Ou como obter WP para eliminar a barra final? É seguro eliminar a barra final?

Atualizar

Eu tentei usar a solução do EAMann abaixo, implementando lindos permalinks para facilitar o salto de âncora. Os resultados alcançados quebram completamente meu pedido de postagem e exclusão de categorias filho. Minha navegação é baseada em categoria. Eu não uso páginas, mas uso nomes de categoria na navegação. Cada "página" é realmente um arquivo de categorias que mostra as postagens da categoria. O que eu li sobre permalinks começando com% category% me leva a evitar permalinks todos juntos. Eu certamente não quero começar o permalink com o ano ou postar id também. Não faz sentido no meu site.

http://www.example.com/category/my-category parece mais profissional e "normal" do que http://www.example.com/2009/my-category quando a ilusão pretendida é que os nomes das categorias são realmente páginas neste site de negócios.

Então, eu apreciaria quaisquer outras explicações por que o salto de âncora não está funcionando.

Atualização 2

(em resposta ao comentário de EAMann diretamente no OP) Meu site é um site de negócios que, na maior parte, exibe conteúdo estático. Algumas áreas têm trabalhado em portifólio e há uma seção de blog. O site usa uma navegação baseada em categorias. Todo o conteúdo do site é escrito como posts. Cada postagem é associada a uma categoria que determina onde a postagem é exibida. O menu de navegação do site é criado com wp_list_categories(). Clicar em uma categoria abre um arquivo de categoria que apresenta todas as postagens da categoria.

Atualmente estou usando a estrutura de permalink padrão.
http://www.example.com/?cat=15 mostra uma página de categoria.

Atualização 3

Após mais investigação, parece que o plugin do jQuery "innerfade" que estou usando para exibir uma apresentação de slides no topo da página é o culpado. Não tem nada a ver com a barra final. Desculpe ir pelo caminho errado.

Se eu comentar o php que inclui o arquivo js do plugin, e o salto de âncora funciona muito bem. Eu suponho que alguma manipulação de javascript do conteúdo da página está estragando o salto. Eu trabalhei em torno do problema usando $(window).scrollTo();.

Eu aprecio o tempo de todos.

1
kevtrout

Como afirmei em atualizações para minha pergunta ... outros javascript trabalhando na página conflitam com o salto de âncora. Eu implementeimorejs para contornar o conflito. A URL quase parece a mesma de antes, mas com um nome de parâmetro inserido antes do símbolo da libra,

http://www.example.com/?cat=15&hi=#post-170

mas eu uso o 'plugin' do jQuery-Howto para obter os parâmetros do url

$.extend({
    getUrlVars: function(){
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');

    for(var i = 0; i < hashes.length; i++)
    {
        hash = hashes[i].split('=');
        vars.Push(hash[0]);
        vars[hash[0]] = hash[1];
    }

    return vars;
},
getUrlVar: function(name){
            return $.getUrlVars()[name];
        }
});

Eu recupero o número do post atribuído ao parâmetro "oi" url e rola para 20px acima do post com o mesmo id.

 //'hi' var used to jump to anchor          
    var hi = $.getUrlVar('hi');

    if  ( hi ) {
        //scroll to link or search results if url var 'hi' is present
        $(window).scrollTop($(hi).position().top-20); 

o código do plugin jquery e meu código personalizado acima vão no meu arquivo javascript que está incluído no header.php

0
kevtrout

Primeiro, eu recomendo usar " pretty permalinks " sobre a estrutura de string de consulta padrão. Isso eliminará a maioria dos seus problemas do getgo. Ele transformará seus URLs http://www.example.com/?cat=15#post-170 em http://www.example.com/category/category-slug/#post-170 e o navegador se moverá corretamente para a posição da postagem na página.

Dito isto ... Sim, você pode remover a barra final. O truque é adicionar uma regra ao seu arquivo .htaccess:

#remove trailing slashes
RewriteCond %{HTTP_Host} ^(www.)?yourdomain\.com$ [NC]
RewriteRule ^(.+)/$ http://%{HTTP_Host}/$1 [R=301,L]

(Isto é retirado de um tutorial do Drupal que faz a mesma coisa ...)

2
EAMann