炭火Blog
HOME
ブログの運営

プラグインなしでブロックウィジェットに人気記事を追加する

※このページにはプロモーションが含まれています。

Table of Contents

プラグインを使わずにウィジェット人気記事を作ります。

当初はsidebar.phpに直接コードを書いていましたが、表示場所を自由に変えられるようにウィジェットを使って表示させるようにしました。

人気記事ウィジェットの作り方

functions.phpに下のコードを貼り付けます。

<?php
//記事のアクセス数を計測する
function set_post_views($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);
}
}
//ウィジェットの追加
class PopularPost extends WP_Widget{
function __construct(){
parent::__construct(
'popular_post_widgets',
__('人気記事', 'textdomain'),
array( 'description' => __( 'popular_post_widgets', 'textdomain' ), )
);
}
public function widget( $args, $instance ) {
$_args = array( 
'posts_per_page' => 5, 
'meta_key' => 'post_views_count', 
'orderby' => 'meta_value_num', 
'order' => 'DESC'  
);
global $post;
$posts = get_posts( $_args );
echo $args['before_widget'];
?>
<ol>  
<?php foreach( $posts as $post ) : setup_postdata( $post ); ?>   
<li><a href="<?php the_permalink(); ?>" >
<?php echo get_the_post_thumbnail($post->ID, 'thumbnail'); ?>
<?php the_title( ); ?>
</a></li> 
<?php endforeach;
wp_reset_postdata(); ?>
</ol>
<?php
echo $args['after_widget'];
}
}
function load_widget() {
register_widget( 'PopularPost' );
}
add_action( 'widgets_init', 'load_widget', 10 );

ウィジェットの中に人気記事が表示されるようになるので、これをサイドバーに追加します。

single.phpの</main>の直前に下のコードを追加します。

<?php if( !is_user_logged_in() && !is_robots() ) { set_post_views( get_the_ID() ); } ?>

if(!is_user_logged_in())ログインしている人以外、!is_robots()ボット以外がアクセスした場合にアクセス数をカウントします。

Amazon セールとイベント

冬の味覚ポイント高還元カニ特集 【期間限定】ダブルポイント祭り

設定箇所について

ウィジェットにはタイトルをつけたり、掲載数などの設定項目がありますが、設定項目の表示するために記述が増えると動作が遅くなるので、今回は設定項目はありません。

表示の変更は直接コードを書き換えて行います。

‘posts_per_page’ => 5,の数字を変えると何番目まで表示するかを変えられます。

ブロックエディタの見出しでタイトルを作り、人気記事ウィジェットとグループ化すると、タイトル付きのウィジェットになります。

<?php echo get_the_post_thumbnail($post->ID, ‘thumbnail’); ?>の行を削除すると画像は表示されません。

すべてのpost_views_countを同じ文字列に変更するとカウント数はリセットされます。

最後までお読みくださり、誠にありがとうございます。

WordPressオリジナルテーマ制作入門
amazon.co.jp
【Amazon.co.jp限定】1冊ですべて身につくWordPress入門講座(DL特典:【100ページ超の大特典!】フルサイト編集に“対応していない”テーマのカスタマイズ方法)
amazon.co.jp

週間アクセスランキング

このブログを書いている人

管理者 ほんだ

数多くあるブログの中で、このページをお読みくださりありがとうございます。このブログは、炭火で美味しいものを作ることを中心に、日々の趣味についてを文章にすることで、WordPressを使ってのWebページ作成を忘れないようにしています。熱帯魚の世話や野菜の栽培、Linuxについて興味のあることを、つたない文章で綴っています。兵庫県在住です。