.htaccessでPHPのファイルアップロードサイズの上限値を変更
2022.02.5
PHPを使用して画像(動画・PDF等)をアップロードするフォームを作成した際に、ファイル…

ページのアクセス数はgoogleアナリティクスでも確認は出来るのですが、ワードプレスの管理画面からも簡易的に人気記事を確認できたり、ページに閲覧数を表示して、より興味を示してもらえるようにと閲覧数(総合値)を取得できるようにした方法をメモ
// 閲覧数を取得
function get_post_views($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";
}
return $count;
}
// 閲覧数をカウント
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);
}
}
// REST APIやボットによるリクエストを無視
function is_real_user(){
return !(is_admin() || wp_doing_ajax() || strpos($_SERVER['HTTP_USER_AGENT'], 'bot') !== false);
}
// 閲覧数を投稿閲覧時にカウント(singleページ)
function count_post_views(){
if(is_single() && is_real_user()){
global $post;
set_post_views($post->ID);
}
}
add_action('wp_head', 'count_post_views');
// カラムの追加
function add_views_column($columns) {
$columns['post_views'] = '閲覧数';
return $columns;
}
add_filter('manage_posts_columns', 'add_views_column');
// カラムに表示する内容
function display_views_column($column_name, $post_id) {
if($column_name === 'post_views'){
echo get_post_views($post_id);
}
}
add_action('manage_posts_custom_column', 'display_views_column', 10, 2);
// 閲覧数カラムをソート対象に追加
function post_views_sortable_column($columns) {
$columns['post_views'] = 'post_views';
return $columns;
}
add_filter('manage_edit-post_sortable_columns', 'post_views_sortable_column');
// ソート実行のためのクエリ調整
function post_views_orderby($query) {
if (!is_admin()) return;
$orderby = $query->get('orderby');
if ('post_views' == $orderby) {
$query->set('meta_key', 'post_views_count');
$query->set('orderby', 'meta_value_num');
}
}
add_action('pre_get_posts', 'post_views_orderby');
<p><?php echo get_post_views(get_the_ID()); ?> 回閲覧されました</p>
閲覧数を登録するメタキーに「post_views_count」を作成。
今回は投稿ページを対象とするため「single.php」にアクセスがあった際にカウント処理が動くようになっています。他のページ(カスタム投稿「○○」等)に使用する際はカウント処理「count_post_views」と各管理画面側の項目をそれぞれ変更します。
// 閲覧数を投稿閲覧時にカウント
function count_post_views(){
if ( is_singular(['post','○○']) && is_real_front_user() ) {
set_post_views( get_queried_object_id() );
}
}
add_action('wp_head', 'count_post_views');
// カラムの追加
function add_views_column($columns) {
$columns['post_views'] = '閲覧数';
return $columns;
}
add_filter('manage_posts_columns', 'add_views_column');
add_filter('manage_○○_posts_columns', 'add_views_column');
// カラムに表示する内容
function display_views_column($column_name, $post_id) {
if($column_name === 'post_views'){
echo get_post_views($post_id);
}
}
add_action('manage_posts_custom_column', 'display_views_column', 10, 2);
add_action('manage_○○_posts_custom_column', 'show_views_column', 10, 2);
// 閲覧数カラムをソート対象に追加
function post_views_sortable_column($columns) {
$columns['post_views'] = 'post_views';
return $columns;
}
add_filter('manage_edit-post_sortable_columns', 'post_views_sortable_column');
add_filter('manage_edit-○○_sortable_columns', 'post_views_sortable_column');
// ソート実行のためのクエリ調整
function post_views_orderby($query) {
if (!is_admin() || !$query->is_main_query()) return;
if ($query->get('orderby') === 'post_views') {
$query->set('meta_key', 'post_views_count');
$query->set('orderby', 'meta_value_num');
}
}
add_action('pre_get_posts', 'post_views_orderby');

2022.02.5
PHPを使用して画像(動画・PDF等)をアップロードするフォームを作成した際に、ファイル…

2020.10.3
テキストエリア等で入力した文字の中にURLを含んでいた場合に、自動で認識してリンクタグを…

2024.03.30
外部ファイル(CSVファイル等)を読み込んでサイト内に表示する際に、保存時の文字コードが…

2020.12.5
メールフォームからメールを送信する際に、画像(ファイル)を添付できるようにしてほしいとの…

2023.12.2
ワードプレスの投稿のカテゴリー機能を、目的ごとに使い分けたいというご要望があった際に、カ…

2020.08.1
動画ファイルをCMS化して保存するときに、多くの場合はファイルパスをデータベース(MyS…

2022.09.24
パソコンやスマートフォンの戻るボタンを使って画面を戻す(ブラウザバックする)時があります…

2022.02.19
画像データ等をサーバーにアップロードする際、一点づつアップロードしても良いけれど、ファイ…

2019.12.29
メールフォーム等での入力値チェック(バリデーション)。PHPの「preg_match」(…

2020.08.15
フォームの入力値やURLのパラメータ等、文字列や数値を受け取る際に正規表現を利用してバリ…