워드프레스에 위젯 숏코드로 포스트 목록을 랜덤하게 출력하기

동영상

워드프레스에서 기본적으로 위젯을 통해 최신 글로는 출력이 가능하지만 간혹 포스트 목록을 랜덤하게 출력하는 방법에 대해 문의하시곤 합니다. 종종 화려한 비주얼로 랜덤 포스트를 띄우는 워드프레스 테마들의 옵션도 존재하나 대부분의 테마들은 최신 글을 출력하는 기능들이 많고 위젯으로 사용할 수 없는 경우가 많죠.

이번 포스트에서는 랜덤 포스트를 출력하는 방법에 대해 소개합니다.

위젯으로도 출력이 가능하고 숏코드를 사용하면 페이지나 포스트에서도 사용이 가능합니다.

플러그인으로 랜덤 포스트 출력하기

Advanced Random Posts Widget 플러그인

 

첫 번째는 플러그인으로 랜덤 포스트를 출력하는 방법입니다. Advanced Random Posts Widget 플러그인인데 위젯으로 사용하면 위 스크린샷처럼 위젯 메뉴에서 다양한 옵션을 선택할 수 있고 숏코드를 기본적으로 탑재하기 때문에 페이지나 포스트에서 숏코드 관련 프로그램 없이 랜덤 포스트를 출력할 수 있습니다.

 

기본 숏코드 : [arpw]
랜덤 포스트 10개 표시 : [arpw limit="10"]

썸네일 표시 및 썸네일 크기 설정 : [arpw thumbnail="true" thumbnail_size="arpw-thumbnail"]

카테고리 ID로 랜덤 포스트 표시 : [arpw thumbnail="true" cat="10"]

 

위 숏코드는 예시이고 숏코드에 대한 다양한 인수는 이곳에서 확인하시기 바랍니다.

 

플러그인 없이 랜덤 포스트 출력하기

플러그인 없이 랜덤 포스트를 사용할 수도 있습니다. 이번 포스트에서는 두 가지를 제시하도록 할 텐데요. 첫 번째는 functions.php 파일에 랜덤 포스트를 직접 추가하여 숏코드로 삽입하는 방법, 두 번째는 워드프레스가 기본적으로 가지고 있는 최신 글 위젯을 랜덤 포스트로 변경하는 방법에 대해 소개하도록 하겠습니다.

랜덤 포스트 추가하기

랜덤 포스트를 추가하기 위해 테마 폴더에서 functions.php 파일을 불러와주세요. 관리자 페이지에서 외모 – 테마 편집기로 진입하셔서 수정해주셔도 됩니다.

functions.php 파일 맨 아랫부분에 아래 함수를 복사하여 붙여 넣어주세요.

 

function wpb_rand_posts() { 

$args = array(
'post_type' => 'post',
'orderby' => 'rand',
'posts_per_page' => 5, // 랜덤으로 포스트를 출력할 개수
);

$the_query = new WP_Query( $args );

if ( $the_query->have_posts() ) {

$string .= '<ul class="random-post">';
while ( $the_query->have_posts() ) {
$the_query->the_post();
$string .= '<li class="random-post"><a href="'. get_permalink() .'">'. get_the_title() .'</a></li>';
}
$string .= '</ul>';
/* Restore original Post Data */
wp_reset_postdata();
} else {

$string .= 'no posts found';
}

return $string; 
} 

add_shortcode('wpb-random-posts','wpb_rand_posts');
add_filter('widget_text', 'do_shortcode');

 

이제 불러올 페이지나 글에서 [wpb-random-post]라고 입력한 후 저장해주시면 랜덤 포스트가 출력됩니다. 랜덤으로 포스트를 출력할 개수는 위 함수에서 posts_per_page의 수치를 수정해주시고 위 함수를 그대로 적용한다면 랜덤 포스트 5개가 출력됩니다.

 

 

만약 위 함수를 사용하여 위젯으로 불러오고자 할 경우 외모 – 위젯으로 진입한 후 사용하고자 하는 위젯 영역에 텍스트를 불러오고 그 안에 [wpb-random-post]라고 입력시켜주시면 됩니다.

기존 최신 글 위젯을 랜덤 포스트로 변경하기

 

워드프레스 위젯에는 기본적으로 최신 글(최근 글)이라고 하는 위젯이 포함되어 있습니다. 만약 사용하지 않는 위젯이라면 이 위젯을 단순하게 변경하여 랜덤 포스트로 재활용할 수 있습니다.

마찬가지로 테마 폴더의 functions.php 파일을 수정하여 맨 하단에 아래의 함수를 입력해주세요.

 

add_filter('widget_posts_args','modify_widget');

function modify_widget() {
    $random = array( 'orderby' => 'rand' );
    return $random;
}

 

이제 최근 글 위젯을 사용할 때 최근 글 위젯의 옵션을 그대로 상속받지만 출력 시에 랜덤하게 포스트가 출력됩니다.

이 게시글은 0개 답변과 1명 참여가 있으며 마지막으로  아이콘 포스트에 의해 11 월 전에 업데이트 됐습니다.

1 글 보임 - 1 에서 1 까지 (총 1 중에서)
1 글 보임 - 1 에서 1 까지 (총 1 중에서)

답변은 후 가능합니다. 회원가입을 진행해보세요!

error: 작업 속도가 너무 빠릅니다.