プラグインを使わずに人気記事ランキングを作りたい
-
wordpressを使用してブログを作成しています。
プラグインを使用せずにランキング機能を作成したいのですが、うまくいきません。
以下入力したコードですが、single.phpに入力した部分のどこかが引っかかっているようで、記事をクリックすると「このサイトで重大なエラーが発生しました。WordPress のトラブルシューティングについてはこちらをご覧ください。」と表示されてしまいます。
single.phpのコードを消すと、当然ランキングは表示されませんが、エラーは表示されなくなります。お分かりの方がいらっしゃいましたら、お知恵をおかしください。
●functions.php
// 記事のPVを取得
function getPostViews($postID) {
$count_key = ‘post_views_count’;
$count = get_post_meta($postID, $count_key, true);
if ($count==”) {
delete_post_meta($postID, $count_key);
add_post_meta($postID, $count_key, ‘0’);
return “0 View”;
}
return $count.’ Views’;
}// 記事のPVをカウントする
function setPostViews($postID) {
$count_key = ‘post_views_count’;
$count = get_post_meta($postID, $count_key, true);
if ($count==”) {
$count = 0;
delete_post_meta($postID, $count_key);
add_post_meta($postID, $count_key, ‘0’);
} else {
$count++;
update_post_meta($postID, $count_key, $count);
}
}
remove_action( ‘wp_head’, ‘adjacent_posts_rel_link_wp_head’, 10, 0);●Single.php
<?php
if (!is_user_logged_in() && !is_robots()) {
setPostViews(get_the_ID());
}
?><?php get_sidebar(); ?>
<?php get_footer(); ?>●wp_popular_post.php
<div class=”wpp_parent”>
<h2 class=”widget-title”>人気記事</h2>
<?php
$args = array(
‘post_type’ => ‘post’,
‘post_status’ => ‘publish’,
‘meta_key’ => ‘post_views_count’,
‘orderby’ => ‘meta_value_num’,
‘posts_per_page’ => 10,
‘order’=>’DESC’,
);
$the_view_query = new WP_Query( $args );
if ($the_view_query->have_posts()):
while($the_view_query->have_posts()): $the_view_query->the_post();
?><!– サムネと記事をボックスで囲む –>
<div class=”wpp_box”><!– サムネイルを表示 –>
<div class=”wpp_thumb”>
“>
<?php
if ( has_post_thumbnail() ) {
the_post_thumbnail( array( 128, 72 ),’post-thumbnail’);
}else {
echo ‘‘;
}
?>
</div><!– wpp_thumb END –><!– タイトルを表示 –>
<div class=”wpp_title”>
<p>
” title=”<?php the_title(); ?>”>
<?php
if(mb_strlen($post->post_title, ‘UTF-8’)>20){ // 文字数制限
$title= mb_substr($post->post_title, 0, 20, ‘UTF-8′);
echo $title.’…’;
}else{
echo $post->post_title;
}
?>
</p><!– スマホやタブレットではアクセス数を非表示 –>
<?php if ( !is_mobile() ) : ?>
<p class=”wpp_pv”><?php echo getPostViews($post->ID); ?></p>
<?php endif; ?></div><!– wpp_title END –>
</div><!– wpp_box END –>
<?php endwhile; ?>
<?php endif; ?>
<?php wp_reset_postdata(); ?>
</div><!– wpp_parent END –>●sidebar.php
<?php get_template_part( “wp_popular_post” ); ?>
- トピック「プラグインを使わずに人気記事ランキングを作りたい」には新たに返信することはできません。