Reescritas e dicas de URL personalizado do WordPress

WordPress tem seu próprio suporte de reescrita de URL para desenvolvimento personalizado. Antes de iniciar o código, seria bom visitar a página do códice aqui. Embora haja muitas coisas para saber e levará tempo para entender todo o processo, estou descrevendo aqui um cenário comum para reescrever uma URL.

htaccess pode ser usado para reescrever URL’s e bons conhecimentos técnicos necessários para fazer isso no servidor, neste ponto podemos usar wp rewrite para preencher nossa necessidade sem editar o arquivo htaccess do site.

Aqui vai as coisas: suponha que temos uma página para listagem de notícias como http://example.com/news e adicionamos um campo personalizado no back-end para escolher um repórter de notícias. Agora queremos uma página onde as notícias sejam listadas pelo repórter. também precisamos de um URL amigável de SEO como este: http://example.com/news/reporter . Neste caso, se pudermos obter o slug do repórter da URL como index.php? Pagename = catalog & reporter = john ‘, podemos obter o slug do repórter e usá-lo para outras consultas.

Normalmente, todas as regras de reescrita são mapeadas para um manipulador de arquivos (quase sempre index.php), não para outro URL.

add_filter('rewrite_rules_array','wp_insertMyRewriteRules');
add_filter
('query_vars','wp_insertMyRewriteQueryVars');

// Adding a new rule
function wp_insertMyRewriteRules($rules)
{
$newrules
= array();
$newrules
['news/(.*)/?'] = 'index.php?pagename=news&reporter=$matches[1]';
return $newrules + $rules;
}

// Adding the 'reporter' var so that WP recognizes it
function wp_insertMyRewriteQueryVars($vars)
{
array_push
($vars, 'reporter');
return $vars;
}

Isso mapearia notícias / qualquer coisa para a página ‘notícias’ do WordPress e passaria a consulta var ‘repórter’. Você poderia criar um modelo de página para ‘notícias’ e, em seguida, obter o valor de ‘repórter’ usando get query var (‘repórter’).

No exemplo acima, primeiro escrevemos as regras e adicionamos a função, depois adicionamos a função para obtê-la pela consulta var.

Dicas:

1. Avoid using query vars like id - use something more unique (like 'reporter') to avoid clashes with WordPress.
2. Don't flush rules on every init! It's bad practice, and will write to .htaccess and call database updates on every page load!
3. WordPress will always flush permalinks whenever you update a post or your permalink structure (simply update your permalinks when you make changes to your code).

Estará de volta em breve com outro problema WP 🙂

* Postagem original aqui no meu blog pessoal: http://saifthegreen.com/wordpress-custom-url-rewrites-and-tips/