Molto probabilmente molti di voi dopo l’avvento dei Custom Post Type si saranno trovati di fronte a questo problema con i temi di WordPress e con i loop dei nuovi tipi di post e la paginazione.
La soluzione è più semplice di quanto si creda.
L’errore tipico è quello di omettere il parametro ‘paged’, ma l’errore più subdolo è quello di utilizzare la variabile ‘$loop’ quindi vediamo qui di seguito questo piccolo errore che spesso può portarci a perdere la testa per cercare di comprenderlo.
<?php $paged = get_query_var('paged') ? get_query_var('paged') : 1; $loop = new WP_Query(array('post_type' => 'Post-Type_Name', 'paged' => $paged, 'post_per_page' => 10) ); while ($loop->have_posts()) : $loop->the_post(); ?>
per far si che tutto funzioni basterà cambiare il nome alla variabile ‘$loop’ come segue:
<?php $paged = get_query_var('paged') ? get_query_var('paged') : 1; $wp_query = new WP_Query(array('post_type' => 'Post-Type_Name', 'paged' => $paged, 'post_per_page' => 10) ); while ($wp_query->have_posts()) : $wp_query->the_post(); ?>
E il gioco è fatto.
Ovviamente ricordatevi di aggiungere anche la parte relativa alla navigazione ossia:
<?php if(function_exists('wp_pagenavi')) { wp_pagenavi(); } else { ?> <p class="pagination"><?php next_posts_link('« Precedenti') ?> <?php previous_posts_link('Successive »') ?></p> <?php } ?>
Come diceva mio nonno…
non ci sono cose facili o difficili, ma solo cose che si sanno o non si sanno (#saggezza)
Ciao mi chiamo Luigi ho usato Custom Content Type manager per la
realizzazione di una grossa fiera ho realizzato un Custom type chiamato
“Espositori” dove ho creato i dettagli dell’espositore come:
Tipologia
Categoria
N° Stand
Inserimento foto
etc…
Ho necessita di far visualizzare in modo corretto in una pagina
personalizzata tutti gli espositori di un certa tipologia esempio:
Motorizzazioni
n° stand Nome Espositore (con link che porti alla mia scheda precedentemente creata con Custom Content Type manager)
n° stand Nome Espositore (con link che porti alla mia scheda precedentemente creata con Custom Content Type manager)
n° stand Nome Espositore (con link che porti alla mia scheda precedentemente creata con Custom Content Type manager)
Fiori
n° stand Nome Espositore (con link che porti alla mia scheda precedentemente creata con Custom Content Type manager)
n° stand Nome Espositore (con link che porti alla mia scheda precedentemente creata con Custom Content Type manager)
n° stand Nome Espositore (con link che porti alla mia scheda precedentemente creata con Custom Content Type manager)
etc…..
in più se è possibile chreare a inzio pagina un search per Tipologia – Nome – Categoria
come posso settare queste cose con WP_Query ?
AIUTAMI!!!! Ti Ringrazio anticipatamente ciao Luigi
Ciao, puoi provare ad utilizzare questa query:
$tax_args=array(array(‘field’=>’slug’,
‘terms’=>’slug_categoria’,
‘taxonomy’=>’nome della_categoria’));
$args = array(
‘post_type’ => ‘nome_del_custom_post_type’,
‘tax_query’=>$tax_args
)
);
// The Query
$the_query = new WP_Query( $args );
In $tax_args puoi omettere field e terms se non t’interessa una particolare sottocategoria..
Ciao Andrea Grazie per la risposta premetto che non sono molto ratico di php attualmente il mio codice è questo:
$args = array(‘post_type’ => ‘espositori’, ‘orderby’ => ‘meta_value’, ‘meta_key’ => ‘tipologie’);
$loop = new WP_Query( $args );
/*LOOP*/
while ( $loop->have_posts() ) : $loop->the_post();
echo ”;
print_custom_field(‘tipologie’);
echo”;
echo”;
echo”;
print_custom_field(‘stand’);
the_title(‘ ‘,’‘);
echo”;
echo”;
endwhile;
/*END LOOP*/
non riesco nemmeno a fare il link che porta alle schede ho messo ????
non so se il codice si visualizzarà bene.
CIAO E GRAZIE
Ciao grazie mille era da ieri notte che ci sbattevo la testa. Adesso ho finalmente paginato ma appena clicco sul link /page/2 mi va ad una pagina di errore.
Cosa sbaglio questa volta?.
PS la query è quella suggerita da te.
Ciao Lillo,
hai abilitato la riscrittura degli url?