Mostrare più pagine su una singola pagina in WordPress
Ho il seguente codice (creato gentilmente da alchemyth in risposta a una mia domanda sul forum di WordPress.org qui) che spero di utilizzare per visualizzare molte pagine su una singola pagina:
<?php
$args = array(
'post_type' => 'page',
'post__in' => array( 2, 5, 35, 67 ) //elenco degli ID delle pagine
);
$page_query = new WP_Query( $args );
if( $page_query->have_posts() ) :
echo '<div class="pages-on-page">';
//stampa qui un titolo generale o un'intestazione//
while( $page_query->have_posts() ) : $page_query->the_post();
echo '<div class="page-on-page" id="page_id-' . $post->ID . '">';
//stampa l'output che desideri per ogni pagina//
echo '</div>';
endwhile;
echo '</div>';
else:
//testo opzionale se non vengono trovate pagine//
endif;
wp_reset_postdata();
?>
Essendo nuovo, però, non sono sicuro di dove inserirlo per farlo funzionare! Sarei molto grato se qualcuno potesse aiutarmi con questo.

Dai un'occhiata ai Template di Pagina WordPress;
Puoi creare un file con una struttura che corrisponda al tuo tema attuale e inserire il tuo codice nell'area del contenuto (oppure posizionare un action hook per il tuo contenuto speciale).
Esempio per Twenty Twelve:
/*
Template Name: La Mia Pagina Personalizzata
*/
get_header(); ?>
<div id="primary" class="site-content">
<div id="content" role="main">
<?php
$args = array(
'post_type' => 'page',
'post__in' => array( 2, 5, 35, 67 ) //elenco di ID di pagine
);
$page_query = new WP_Query( $args );
if( $page_query->have_posts() ) :
echo '<div class="pages-on-page">';
//stampa qui un titolo generale o un header//
while( $page_query->have_posts() ) : $page_query->the_post();
echo '<div class="page-on-page" id="page_id-' . $post->ID . '">';
//stampa l'output desiderato per ogni pagina//
echo '</div>';
endwhile;
echo '</div>';
else:
//testo opzionale se non vengono trovate pagine//
endif;
wp_reset_postdata();
?>
</div><!-- #content -->
</div><!-- #primary -->
****Non dimenticare di iniziare il file con <?php
Salva questo codice come file PHP con un nome qualsiasi il_tuo_template_personalizzato.php
e inseriscilo nella cartella del tuo child theme. Poi aggiungi una nuova pagina e assegna il template di pagina come La Mia Pagina Personalizzata
come visto sopra nel codice.
Questo dovrebbe almeno aiutarti a iniziare per vedere il tuo codice visibile sul frontend del sito.

Ho inserito il codice in una pagina utilizzando un plugin php usando 'default template' e 'no parent' - ma non funziona - cosa sto sbagliando?

Per prima cosa avrei bisogno di sapere di quale plugin stai parlando. Ma prima di questo, hai guardato il link al Codex di Wordpress che ho fornito nella mia risposta?

Il plugin è qui. E sì, l'ho guardato, ma devo confessare che gran parte del contenuto mi risulta difficile da capire - continuerò a provare!

Qual è il tema che stai utilizzando? Potrei aiutarti a iniziare con un template di esempio.

Sto usando twentytwelve - ho comunque creato un child theme, dato che l'ho già modificato un po'.

Grazie mille - tuttavia, non ho l'opzione per creare una pagina personalizzata nella modalità di modifica della pagina. - Solo "modello predefinito", "modello pagina iniziale", "modello pagina completa" e "su".

Hai accesso FTP al tuo sito? Puoi trascinare e rilasciare un file nella cartella

Basta aggiornare la pagina dove modifichi un articolo nell'area di amministrazione di WordPress. Ora dovrebbe apparire nel menu a tendina dei template di pagina

Purtroppo non funziona - mi dispiace, questa situazione deve essere davvero frustrante per te - evidentemente mi sfugge qualcosa di molto ovvio!

Devo semplicemente copiare il codice qui sopra e aggiungere < ? php all'inizio, è corretto?

Ho provato ad aggiungerlo nella cartella public_html (cartella radice) e a chiamarlo direttamente nella barra degli indirizzi - solo pagina bianca :(

Devo +1 per il tuo aiuto - scusa se non sono riuscito a farlo funzionare! :/

Devi aggiungere il codice per l'output //stampa qualsiasi output desideri per pagina//

Questo funziona per me con WP Twenty Twelve, non dimenticare di cambiare gli ID delle pagine
<?php
/*
Template Name: Pagina Personalizzata
*/
get_header();
$args = array(
'posts_per_page' => get_option('posts_per_page'), // il valore predefinito viene preso dalle impostazioni, ma puoi usare anche un valore personalizzato
'paged' => $current_page // pagina corrente
);
query_posts(
array( 'post_type'=>'page', 'post__in' => array( 6891, 9400 ) ) //cambia gli ID delle pagine
); ?>
<div id="primary" class="site-content">
<div id="content" role="main">
<?php
while ( have_posts() ) :
the_post();
?>
<?php if ( has_post_thumbnail() ) : ?>
<div class="entry-page-image">
<?php the_post_thumbnail(); ?>
</div><!-- .entry-page-image -->
<?php endif; ?>
<?php get_template_part( 'content', 'page' ); ?>
<?php endwhile; // fine del loop. ?>
</div><!-- #content -->
</div><!-- #primary -->
<?php get_sidebar(); ?>
<?php get_footer(); ?>

Ciao! Grazie per il tuo contributo e benvenuto su WordPress.StackExchange! Alcune cose da considerare per una possibile [modifica] alla tua risposta, che potrebbero portare più voti positivi e quindi sbloccare più possibilità per te su questo sito: Per favore tieni presente che non tutti possono leggere caratteri cirillici. Aiuta anche spiegare perché il tuo snippet di codice aiuterà l'OP a risolvere il suo problema. Spero che sia d'aiuto! Buona giornata!
