programing

Word press - 모든 투고를 나열합니다(reposition_pagination 포함).

telecom 2023. 3. 16. 21:08
반응형

Word press - 모든 투고를 나열합니다(reposition_pagination 포함).

현재 작업하고 있는 Wordpress 사이트에서는 카테고리별로 투고가 일람표시가 되어 있습니다만, 모든 투고가 일람표시가 되어 있는 페이지(페이지 번호부여, 1페이지당 10개 표시)를 참조하고 있습니다.이걸 어떻게 달성해야 할까요?

감사해요.

다음 루프가 포함된 새 페이지 템플릿을 만들 수 있습니다.

<?php 
$paged = get_query_var('paged')? get_query_var('paged') : 1;
$args = [
    'post_type' => 'post',
    'posts_per_page' => 10, 
    'paged' => $paged,
];
$wp_query = new WP_Query($args);

while ( have_posts() ) : the_post(); ?>
    <h2><?php the_title() ?></h2>
<?php endwhile; ?>

<!-- then the pagination links -->
<?php next_posts_link( '&larr; Older posts', $wp_query ->max_num_pages); ?>
<?php previous_posts_link( 'Newer posts &rarr;' ); ?>

구글 검색하시는 분들께는...사이트의 첫 페이지를 정적 페이지로 대체했는데도 게시물 목록을 다른 링크에 표시하려면 다음 작업을 수행해야 합니다.

  1. 빈 페이지를 만듭니다(그리고 원하는 URL/슬래그를 지정합니다).
  2. [설정(Settings)]> [읽기(Reading)]에서 이 새 페이지를 [투고(Posts)]페이지로 선택합니다.

메뉴에서 이 페이지의 링크를 클릭하면 최근 투고가 모두 나열됩니다(코드 조작 불필요).

@Gavins 답변에 기반한 좀 더 화려한 솔루션

<?php
/*
Template Name: List-all-chronological
*/

function trimStringIfTooLong($s) {
    $maxLength = 60;
    
    if (strlen($s) > $maxLength) {
        echo substr($s, 0, $maxLength - 5) . ' ...';
    } else {
        echo $s;
    }
}

?>

<ul>
<?php
$query = array( 'posts_per_page' => -1, 'order' => 'ASC' );
$wp_query = new WP_Query($query);

if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<li>
    <a href="<?php the_permalink() ?>" title="Link to <?php the_title_attribute() ?>">
        <?php the_time( 'Y-m-d' ) ?> 
        <?php trimStringIfTooLong(get_the_title()); ?>
    </a>
</li>
<?php endwhile; else: ?>
<p><?php _e('Sorry, no posts published so far.'); ?></p>
<?php endif; ?>
</ul>

언급URL : https://stackoverflow.com/questions/4794622/wordpress-list-all-posts-with-proper-pagination

반응형