Suporte » Plugins » Filtrar posts, paginas e CPTs por autor, através da URL

Visualizando 10 respostas - 1 até 10 (de um total de 10)
  • 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.

    Criador do tópico wemersonrv

    (@wemersonrv)

    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..

    Criador do tópico wemersonrv

    (@wemersonrv)

    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.

    Criador do tópico wemersonrv

    (@wemersonrv)

    Hum… saquei… Valeu!

    Criador do tópico wemersonrv

    (@wemersonrv)

    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í..

    Criador do tópico wemersonrv

    (@wemersonrv)

    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

    Criador do tópico wemersonrv

    (@wemersonrv)

    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' );
Visualizando 10 respostas - 1 até 10 (de um total de 10)
  • O tópico ‘Filtrar posts, paginas e CPTs por autor, através da URL’ está fechado para novas respostas.