Un utente ha chiesto informazioni su Developing with WordPress di Wordpress

Richiesta di lavoro personalizzata, come aggiungere una pagina numerica

Un utente ha chiesto 👇

Ciao
Ho un’area in ACF dove posso scegliere tra diverse categorie di lavoro. In base a questa opzione, WP aggiunge tutti i post di questa categoria a una pagina. Ora voglio aggiungere una pagina numerica ma non riesco ancora a trovare una soluzione, ho provato diversi metodi dai tutorial online. Qualcuno potrebbe darmi un suggerimento su come ottenere questo risultato? Ecco il codice mentre aggiungo post:


<?php elseif ($section['content_type'] == 'News'):?>
    <?php
    $args = array(
        'post_type' => 'post',
        'post_status' => 'publish',
        'category_name' => 'news',
        'posts_per_page' => 5,
    );
    $arr_posts = new WP_Query($args);
    if ($arr_posts->have_posts()):
        while ($arr_posts->have_posts()):
            $arr_posts->the_post()
	?>
        <div class="col-xs-12 no-padding entry">
            <article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
                <div class="col-xs-12 col-sm-4 col-md-4 col-lg-4 no-padding">
                    <?php
						if (has_post_thumbnail()):
							the_post_thumbnail('medium', array(
								'class' => 'img-responsive news-img'
							));
						endif;
					?>
                </div>
                <div class="col-xs-12 col-sm-8 col-md-8 col-lg-8">
                    <header class="entry-header">
                        <p class="entry-date">
                            <?php echo get_the_date('d.m.Y'); ?>
                        </p>
                        <h1 class="entry-title">
							<a href="<?php the_permalink(); ?>"><?phpthe_title(); ?></a>
						</h1>
                    </header>
                    <div class="entry-content">
                        <?phpthe_excerpt(); ?>
                    </div>
                </div>
            </article>
        </div>
        <?php endwhile ?>
	<?php endif; ?>

(@jcastaneda)

TEMA DEL CAFFÈ DELLA SCIMMIA

2 anni fa

Ciao,

Hai visto l’utilizzo della funzione the_posts_navigation() https://developer.wordpress.org/reference/functions/the_posts_navigation/

(@bcworkz)

2 anni fa

Penso che avresti problemi con the_posts_navigation () perché dipende dalla query principale per ottenere i parametri. Poiché stai eseguendo un problema personalizzato, ti consiglio di usarlo paginate_links(). Assicurati di fornire un argomento “completo” accurato, l’impostazione predefinita per questo non sarà corretto.
https://developer.wordpress.org/reference/functions/paginate_links/

Lanciatore di thread

(@nenosw)

2 anni fa

Grazie per l’input, ma ancora non riesco a farlo funzionare. Sono riuscito ad aggiungere la pagina, ma non funziona correttamente. Mostra gli stessi post su ogni pagina, sempre i 2 più recenti (o qualunque numero io metta come post per pagina). Anche la navigazione difettosa, non riesco a fare clic sulla pagina 1, pagina 2, ecc.
Che cosa sto facendo di sbagliato?


<?php
	$paged = get_query_var('paged') ? get_query_var('paged') : 1;
	$args = array(
		'post_type' => 'post',
		'post_status' => 'publish',
		'category_name' => 'news',
		'posts_per_page' => 2,
		'paged' => $paged,
	);
	$arr_posts = new WP_Query( $args );
	if ($arr_posts->have_posts()) :
		while ($arr_posts->have_posts()) : $arr_posts->the_post()
?>
		<div class="col-xs-12 no-padding entry">
			<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
					<div class="col-xs-12 col-sm-4 col-md-4 col-lg-4 no-padding">
						<?php
							if ( has_post_thumbnail() ) :
								the_post_thumbnail('medium', array( 'class' => 'img-responsive news-img' ));
							endif;
						?>
					</div>
					<div class="col-xs-12 col-sm-8 col-md-8 col-lg-8">
						<header class="entry-header">
							<p class="entry-date">
							<?php echo get_the_date( 'd.m.Y' ); ?>
							</p>
							<h1 class="entry-title">
								<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
							</h1>
						</header>
						<div class="entry-content">
							<?php the_excerpt(); ?>
						</div>
					</div>
			</article>
		</div>
		<?php endwhile ?>
		
		<?php
		$total_pages = $arr_posts->max_num_pages;
		if ($total_pages > 1){

			$current_page = max(1, get_query_var('paged'));

			echo paginate_links(array(
				'base' => get_pagenum_link(1) . '%_%',
				'format' => '/page/%#%',
				'current' => $current_page,
				'total' => $total_pages,
				'prev_text'    => __('« prev'),
				'next_text'    => __('next »'),
				'add_args'  => array()
			));
		}
			?>    
		<?php else :?>
		<h3><?php _e('404 Error: Not Found', ''); ?></h3>
		
		
		
	<?php endif; wp_reset_postdata();?>

(@bcworkz)

2 anni fa

Presumo che il tuo codice sia su un modello di pagina di qualche tipo. Ho inserito il tuo codice in un modello di pagina sul mio sito. Ho appena cambiato il nome della categoria. Tutto ha funzionato bene. Ogni numero di pagina cliccato nella sequenza del numero di pagina ha prodotto le pagine previste con i post più vecchi. Next / Prev ha funzionato come previsto.

Se sei a pagina 1, il link 1 di solito non è cliccabile. Nessun punto, sei già sulla pagina. La pagina 2 porta al collegamento successivo »Quando è su 2, i 2 numeri non possono essere cliccati e quello successivo» pagina 3 continua.

Dal momento che il tuo codice funziona per me, non sono sicuro di cosa c’è che non va nel tuo sito. Prova a svuotare la cache del browser, potrebbe contenere dati obsoleti. Altrimenti, qualche altro codice sembra interferire con le query in modo che i risultati corretti non portino ai risultati attesi.

Was this helpful?

0 / 0

Lascia un commento 0

Your email address will not be published. Required fields are marked *