Acho totalmente desnecessária sua ideia de pegar via URL, sendo que consultar o banco e pegar oque você precisa utilizando estrutura lógica na busca é muito mais simples e rápido, mas se quer fazer desta forma estude sobre o EXPLODE do php a url da página atual você pode pegar via $_SERVER.
Cara… valeu… é que não encontrei como fazer isso usando as opções do wordpress então planejo fazer um plugin pra isso e só me ocorreu essa idéia, até porque esses dados serão acessados direto nos Menus… por exemplo: Menu->Projetos->Vereador ou Menu->Requerimentos->Vereador… e assim vai. [b]Se tiver uma outra sugestão de como fazer, eu agradeço![/b].
Essa questão de usar o explode pra pegar os dados da url tá de boa eu entendo como fazer, o meu problema é mais em relação ao que fazer depois de extrair os dados da URL…
Abaixo um fragmento de código para ilustrar…
// http://dominio/contentbyauthor/projetos/user99
$url = explode("/", $_SERVER['REQUEST_URI'] );
print_r($url);
/*
Array
(
[0] =>
[1] => contentbyauthor
[2] => projetos
[3] => user99
)
*/
if( $url[1] == 'contentbyauthor' ){
// TODO: Consultar e exibir conforme os dados
}
Mas em que local eu coloco o código ? No próprio plugin ou tem algum local que deve ser acessado primeiro pra carregar o plugin ?
Você só quer pegar o tipo da postagem? e o nome do autor? é só isto??
get_the_category($id); //Pega categoria
the_author_login(); //Pega o login do autor
Ai pra comparar é só utilizar if e else, poderia tentar te ajudar mais a fundo, mais eu não sei ao certo oque este seu filtro pretende fazer, você quer listar todos os posts de cada autor? detalhe oque você quer fazer..
Mas eu já detalhei…
Quero filtrar todos os posts de um autor… mas quero filtrar também o tipo de post… Se é um post, uma página ou se é um custom post.
É uma página de vereadores, onde vários vereadores fazem publicação… Então cada página acessada é dividida por post/pagina/custompost e autor…
Exemplo de menu:
Notícias – Tipo: POST –> Exibe os posts somente do vereador
– Vereador 1
– Vereador 2
– Vereador N
Projetos – Tipo: Custom Post Type –> Espaço para os vereadores publicarem seus projetos
– Vereador 1
– Vereador 2
– Vereador N
Requerimentos – Tipo: Custom Post Type –> Espaço para os vereadores publicarem os requerimentos apresentados
– Vereador 1
– Vereador 2
– Vereador N
Por isso preciso fazer o filtro por Tipo de Post e pelo autor… Detalhe, não uso categorias, crio custom posts para cada assunto pra facilitar o acesso dos vereadores…
As funções do wordpress para pegar dados de postagens eu conheço, sei usar tranquilamente…
O que não sei é onde colocar as coisas… quando o plugin que quero fazer vai ser chamado… e tal…
Pode chamar em um include, diretamente na página onde vai utilizar.
Olha só… Mudei de estratégia e não vou mexer com plugin e sim alterar direto no archives.php do tema.
A idéia é que sempre que chamo: http://dominio/POST-TYPE carrega sem filtros: Exemplo: http://dominio/projetos ou http://dominio/requerimentos
Agora, se eu quizer aplicar um filtro, então passo o filtro na url: http://dominio/POST-TYPE/author/login
Porém tudo que passo na URL depois do tipo do post (projetos por exemplo), causa erro 404… onde eu consigo interceptar isso antes pra gerar os filtros ? OU então uma luz sobre outra forma de fazer esse filtro!
Isso aqui é um exemplo né? “http://dominio/POST-TYPE/author/login” pois isso não existe mesmo rs..
Manda o código que você tentou fazer aí..
Em POST-TYPE eu apenas ilustrei como é a estrutura… já http://dominio/projetos é um exemplo de como ficaria, onde projetos é um tipo de Custom Post Type criado.
Quanto ao código… aí que tá… não precisa de nada feito pois nem chega a carregar os archives…. http :// dominio/projetos/author/user99 já cai direto na página 404… eu nem cheguei a fazer nada no código
Tá na mão:
function lnk_author_filter( $query ) {
if( $query->is_main_query() && !is_admin() ):
if( stripos($_SERVER['REQUEST_URI'], "?") !== false ):
if( isset($_GET['filtrar']) ):
global $wpdb;
$a = $wpdb->get_row("SELECT * FROM {$wpdb->users} WHERE user_login = '{$_GET['filtrar']}'");
if($a != null):
$query->set( 'post_author', $a->ID );
endif;
endif;
endif;
endif;
}
add_action( 'pre_get_posts', 'lnk_author_filter' );