Como adiciono uma regra de redirecionamento ao Wordpress?

4

Neste momento, posso gerar dinamicamente js e css, com base nas minhas opções de tema

Para fazer isso eu configurei uma consulta var, que se presente redireciona para um arquivo php, que então se carrega como um arquivo javascript. Depois disso, ele pega o jqpostID e pega qualquer opção que eu precisar para gerar meu js.

Eu basicamente tenho que incluir um link de script que faça referência a uma parte do local do meu html enlace

Gostaria de torná-lo mais legível e menos aparente que esteja sendo gerado dinamicamente. talvez assim ...

enlace

eu suponho que isso seria ainda melhor ... enlace

Eu acho que tenho que ligar para o mecanismo de reescrita do wordpress de alguma forma. E adicione uma nova regra. Qualquer ajuda, ou referências a outros artigos, seria ótimo, ou algum código de exemplo seria incrível.

    
por Wok 07.04.2011 / 21:21

1 resposta

6

adicionar essas funções deve funcionar.

Primeiras coisas primeiro, adicione esta linha a functions.php enquanto estiver trabalhando nisso:

add_action('init', 'flush_rewrite_rules');

O que esse código fará é liberar constantemente as regras de reescrita, o que torna mais fácil testar enquanto você está trabalhando nele, em vez de precisar redefini-las manualmente após cada pequena alteração feita nas regras de reconfiguração. CERTIFIQUE-SE de remover isso quando estiver pronto e satisfeito de que tudo está funcionando.

Em seguida, essa função criará as regras de regravação desejadas.

function custom_add_rewrite_rules( $wp_rewrite ) {
    $new_rules = array( 
        'dynamic/js/(\d+).js' => 'index.php?dynamic=js&jqpostid=' . $wp_rewrite->preg_index(1),
        'dynamic/css/(\d+).css' => 'index.php?dynamic=css&csspostid=' . $wp_rewrite->preg_index(1)
    );
    $wp_rewrite->rules = $new_rules + $wp_rewrite->rules;
}
add_action('generate_rewrite_rules', 'custom_add_rewrite_rules');

Eu dei uma olhada no que talvez a regra CSS seria, bem, você pode ter que ajustá-lo para as suas necessidades, eu só imaginei que seria formatado de forma semelhante ao que você descreveu para o javascript. Isso pode causar algum comportamento estranho ao tentar reescrever a URL em uma extensão de arquivo, e pode não funcionar de todo. Nesse caso, basta remover o .js e .css do final da primeira parte das entradas da matriz associativa.

function custom_add_rewrite_rules( $wp_rewrite ) {
    $new_rules = array( 
        'dynamic/js/(\d+)' => 'index.php?dynamic=js&jqpostid=' . $wp_rewrite->preg_index(1),
        'dynamic/css/(\d+)' => 'index.php?dynamic=css&csspostid=' . $wp_rewrite->preg_index(1)
    );
    $wp_rewrite->rules = $new_rules + $wp_rewrite->rules;
}
add_action('generate_rewrite_rules', 'custom_add_rewrite_rules');

Basicamente tudo o que isso faz é configurar o URL para procurar e a string que é executada em seu lugar. A primeira parte da entrada da matriz tem uma expressão regular que procura somente números, a parte entre parênteses. (isso pode ser ajustado para procurar um número específico de dígitos, se necessário) A correspondência da qual é passada para a segunda parte da entrada da matriz como o que será retornado na string.

Espero que isso ajude você, sinta-se à vontade para entrar em contato comigo se tiver algum problema.

    
por Drew Gourley 07.04.2011 / 22:56