'WP-PostViews'플러그인에서 태그를 인기순(보기 수순)으로 표시하는 방법
8915 단어 HTMLPHPWordPressWP-PostViews
최근 개발한 웹 미디어로 태그를 인기순으로 늘어놓을 수 있는 요망이 있었습니다. (아래와 같은 사람.)
열람수라면 「WP-PostViews」라고 생각해 사용한 것은 좋지만, 거기로부터 정보가 적었기 때문에 스스로 집계했습니다.
누군가 같은 일로 곤란한 사람을 위해 된다고 생각해, 「WP-PostViews」플러그인으로 태그를 인기순(열람수순)에 표시하는 방법을 정리합니다.
결론
우선 결론부터.
WordPress에서 'WP-PostViews' 플러그인을 활성화하고 다음 코드로 태그를 인기순으로 나란히 표시할 수 있습니다.
(여기서는 소개를 위해 HTML과 혼합해서 쓰고 있습니다만, 실제로는 각각의 환경에 맞추어 function.php에 정리해 메소드화해야 할 것입니다.)
<div class="tags_wrap">
<?php
$tags = array();
$posts = get_posts(array(
'post_type' => 'post',
'post_status' => 'publish',
'meta_key' => 'views',
'posts_per_page' => -1
));
foreach($posts as $post) {
$posttags = get_the_tags();
if ( $posttags ){
foreach ( $posttags as $tag ) {
$tag_name = $tag->name;
$view_count = (int) get_post_meta($post->ID, 'views', true);
if ( $tags["$tag_name"] ) {
$tags["$tag_name"] += $view_count ;
} else {
$tags += array( $tag_name => $view_count);
}
}
}
}
arsort($tags);
?>
<?php
foreach ( $tags as $key => $value ) :
$tag = get_term_by('name', $key, 'post_tag');
?>
<a class="tags_link" href="<?php echo get_tag_link($tag->term_id); ?>">#<?php echo $tag->name; ?></a>
<?php endforeach;?>
</div>
코드 해설
이번 코드에서는
$tags
라는 변수에 'タグ名'=>ビュー数
라는 형태로 연상 배열을 만들고 있습니다.아래와 같은 이미지로 뷰수가 큰 순서로 늘어놓고, 순서대로 값을 꺼내 가면 인기순으로 태그를 표시할 수 있다고 하는 것입니다.
$tags = array('tag_name1'=>1000, 'tag_name2'=>500, 'tag_name3'=>100);
작성은 이하의 순서로 실시하고 있습니다.
①연상 배열을 만들 준비
②연상 배열의 작성
③ 데이터 출력
그럼 차례로 해설해 갑니다.
(연상 배열에 대해 잘 모르는 경우 【참고 기사】[PHP] 배열·연상 배열의 초기화, 결합, 추가을 미리 읽으십시오.)
①연상 배열의 작성 준비 // $tags로서 빈 배열을 정의 $tags = array(); // $posts로 모든 게시물 데이터 가져오기 $posts = get_posts(array( 'post_type' => 'post', 'post_status' => 'publish', 'meta_key' => 'views', // (WP-PostViews의 브라우징 데이터 검색) 'posts_per_page' => -1 )); 우선, 연관 배열의 준비로서 빈 배열을 정의해 둡니다.이 때投稿 데이터도 함께 취득합니다.今回はすべての投稿データを取得していますが、必要に応じて条件はカスタマイズしてください。 ②연상 배열의 작성 foreach($posts as $post) { $posttags = get_the_tags(); if ( $posttags ){ foreach ( $posttags as $tag ) { // 태그 이름을 $tag_name으로 정의 $tag_name = $tag->name; // 뷰 수를 $view_count로 정의 $view_count = (int) get_post_meta($post->ID, 'views', true); if ( $tags["$tag_name"] ) { // $tag_name이 연관 배열에 존재하는 경우 $view_count를 더하기 $tags["$tag_name"] += $view_count ; } else { // 연관 배열에 array( $tag_name => $view_count) 넣기 $tags += array( $tag_name => $view_count); } } } } // 뷰 수순으로 정렬 arsort($tags); ①에서 취득한 $posts 에 대해, $posttags 로서 태그를 각각 정의합니다.이후는 각 태그를 개별적으로 처리해 array( $tag_name => $view_count) 로서 배열을 성형.성형할 수 있으면 $tags 흐름입니다.여기서 주의하는 것은, 「연상 배열내에 같은 이름의 태그는 넣을 수 없다」라고 하는 것입니다.즉, array('tag_name1'=>1000, 'tag_name1'=>500, 'tag_name2'=>100 )라는 배열은 만들 수 없습니다.따라서, array('tag_name1'=>1500, 'tag_name2'=>100) 와 같이 더해져 가지 않으면, 각 태그의 뷰수를 집계할 수 없게 되므로 주의해 주세요. ③ 데이터 출력 <?php foreach ( $tags as $key => $value ) : $tag = get_term_by('name', $key, 'post_tag'); ?> <a class="tags_link" href="<?php echo get_tag_link($tag->term_id); ?>">#<?php echo $tag->name; ?></a> <?php endforeach;?> 마지막으로 ②에서 작성한 연상 배열을 출력하여 완성입니다. 열람수 랭킹에서 자주(잘) 사용되는 플러그인입니다만, 열람수의 데이터를 이용해 집계하면 다양한 응용이 가능합니다. 이번에는 태그를 인기순으로 나란히 표시했지만 하여 플러그인의 응용의 폭을 넓혀 주시면 감사하겠습니다. 끝까지 읽어 주셔서 감사합니다!
Reference
이 문제에 관하여('WP-PostViews'플러그인에서 태그를 인기순(보기 수순)으로 표시하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kagayama_b/items/789af16fa56bc0054066텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)