Suporte » Temas » Chamar páginas por um campo personalizado

  • Resolvido Ramires

    (@ramiressilva)


    Olá!

    Antes de tudo, sou novo por aqui, então perdoe-me se já houver alguma postagem com a mesma dúvida.

    Já sei que as páginas não têm uma taxonomia em comum – como os posts podem ser chamados por categoria, tag etc – então tenho que chamar cada página em específico ou chamar todas, podendo chamar por data, campo personalizado etc.

    Preciso listar páginas que possuem um determinado campo personalizado, mas como farei isso? Meu PHP é básico.

    Esse tópico me auxiliou, mas não sanou minha dúvida. Alguém pode complementar essa resposta?

    Desde já grato.

Visualizando 4 respostas - 1 até 4 (de um total de 4)
  • Oi,

    Para criar um campo personalizado utilize este plugin https://wordpress.org/plugins/advanced-custom-fields/

    Para recuperar os campos:
    http://www.advancedcustomfields.com/resources/get_field/

    $args = array(
    	'meta_key'   => 'color',
    	'meta_value' => 'blue'
    );
    $query = new WP_Query( $args );

    hudsonghetti, criar campos personalizados não é o problema, mas sim listar determinadas páginas que possuem um determinado valor de um campo personalizado, assim como listar os outros campos personalizados da mesma página.

    Por exemplo, criarei um campo personalizado chamado “Nível” onde poderá inserir os valores “Fundamental”, “Médio” ou “Superior”. Depois preciso listar todas as páginas que tem o valor desse campo igual a “Médio”e exibir os outros campos dela como “Turno”, “Professor”, “Mensalidade”, etc.

    O plugin funciona bem, mas minha dúvida é de como chamar essas páginas através de um filtro. Seu código não funcionou.

    <?php
    	$args = array(
    				'posts_per_page' => 3,
    				'meta_query' => array(
    			array(
    				'key' => 'Nivel',
    				'value' => 'Medio'
    		)
    	)
    );
    
    	$query = new WP_Query( $args );?>
        	<ul>
    	<?php while ( $query-> have_posts()) : $query->the_post();?>
    		<li>
    			<a href="<?php the_permalink(); ?>" title="<?php esc_attr( the_title() ); ?>"><?php the_title(); ?></a>
    
    		</li>
    
    	<?php endwhile; ?>
     		</ul>

    Obrigado! O seu código está certo hudsonghetti, mas só funcionou após eu acrescentar outro parâmetro. Como estou trabalhando com páginas, e não com posts, precisei especificar isso.

    <?php
    'post_type' => 'page'
    ?>

    O código completo ficou assim:

    <?php
    	$args = array(
                                    'post_type' => 'page',
    				'posts_per_page' => 3,
    				'meta_query' => array(
    			array(
    				'key' => 'Nivel',
    				'value' => 'Medio'
    		)
    	)
    );
    
    	$query = new WP_Query( $args );?>
    
    <ul>
    	<?php while ( $query-> have_posts()) : $query->the_post();?>
    
    <li>
    			<a>" title="<?php esc_attr( the_title() ); ?>"><?php the_title(); ?></a>
    
    </li>
    	<?php endwhile; ?>
     		</ul>
Visualizando 4 respostas - 1 até 4 (de um total de 4)
  • O tópico ‘Chamar páginas por um campo personalizado’ está fechado para novas respostas.