WordPressでカスタムフィールドを使った記事のスコアリング 一定割合ランダム表示でε-greedy方策
WordPressで記事にスコアを付けて、そのスコアに基づいて記事を並び替えて表示する機能を実装する方法を解説します。この実装では、SCFプラグインを使用してカスタムフィールドを追加し、ショートコードで任意の場所に表示で […]
更新日:2025/01/27
WordPressで記事にスコアを付けて、そのスコアに基づいて記事を並び替えて表示する機能を実装する方法を解説します。この実装では、SCFプラグインを使用してカスタムフィールドを追加し、ショートコードで任意の場所に表示できるようにします。
SCFプラグインで以下の設定を行います:
function score_ordered_posts_shortcode($atts) {
$atts = shortcode_atts(array(
'posts_per_page' => 5,
'order' => 'DESC',
), $atts);
$args = array(
'post_type' => 'post',
'posts_per_page' => $atts['posts_per_page'],
'meta_key' => 'post_score',
'orderby' => 'meta_value_num',
'order' => $atts['order']
);
$query = new WP_Query($args);
ob_start();
if ($query->have_posts()) :
echo '<div class="score-posts-list">';
while ($query->have_posts()) : $query->the_post();
$score = SCF::get('post_score');
?>
<article class="score-post-item">
<h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3>
<div class="score-value">スコア: <?php echo esc_html($score); ?></div>
</article>
<?php
endwhile;
echo '</div>';
endif;
wp_reset_postdata();
return ob_get_clean();
}
add_shortcode('score_posts', 'score_ordered_posts_shortcode');
WordPressで記事にスコアを付けて、そのスコアに基づいて記事を並び替えて表示する機能を実装する方法を解説します。この実装では、SCFプラグインを使用してカスタムフィールドを追加し、ショートコードで任意の場所に表示で […]
主な設定手順 メインアカウント id_rsa サブアカウント id_rsa_private .ssh/config 設定 Host github.com → id_rsa Host github.private → id […]
Next.jsの開発環境でHTTPSを使用する方法について、実践的な知見を交えて解説します。Next.js 13.5から導入された新機能により、ローカル開発環境でのHTTPS設定が大幅に簡素化されました。 背景 従来、N […]
1. 新規フォルダ作成とリネーム 2. 名前の変更 3. ディレクトリ間の移動 4. 新しいウィンドウで開く 5. エクスプローラーの起動 6. 更新・再表示 7. プロパティの表示 8. アドレスバーへのフォーカス 9 […]
Roo-Clineとは VSCodeの開発効率を飛躍的に向上させる新しいAIコーディング支援プラグインです。 Roo-Clineは、Clineの機能を継承しながら、より多くのAPIプロバイダー対応と使いやすさの向上に焦点 […]
SnowMonkeyサイト制作案件の全貌 SnowMonkeyのウェブ制作の仕事はクライアントがウェブ制作会社ではなく、エンドクライアント(ウェブ制作とは関係ない事業者)が対象となる場合が多いです。 そのためコーディング […]
1. 形態素解析の基礎知識 形態素解析とは、テキストを言語学的に意味を持つ最小単位(形態素)に分解し、それぞれの品詞や活用形などの文法情報を判定する自然言語処理の基礎技術です。 私は今日公園で本を読みました 私 代名詞 […]
はじめに WordPressで人気記事を表示する際に欠かせないプラグイン「WordPress Popular Posts」。このプラグインは非常に柔軟で、様々なカスタマイズが可能です。今回は、実務でよく使用するカスタマイ […]
どういうタイミングで文字化けするか? ブラウザでのファイル読み込み時に文字化けしてしまいます メモ帳でしたら自動判定で正常に表示されます メモ帳での読み込み .bas (Shift-JIS) 自動判定 正常表示 ブラウザ […]
WordPressテーマを制作・納品する際、お問い合わせフォームの実装は重要なポイントとなります。今回は、環境に依存せずContact Form 7を確実に動作させるための実装方法をご紹介します。 なぜContact F […]
記事や固定ページ内で以下のようにショートコードを使用します:
(注意)*は不要です、実際にブログ記事にショートコードで関数が呼び出されてしまうので、*挿入しました
[*score_posts*]
示件数とソート順を指定:
[*score_posts posts_per_page="3" order="DESC"*]
WordPressで記事のスコアを一括管理するために、CSVファイルからのインポート機能を実装する方法を解説します。この機能により、大量の記事のスコアを効率的に更新できます。
function import_post_scores() {
add_management_page(
'スコアインポート',
'スコアインポート',
'manage_options',
'score-import',
'render_score_import_page'
);
}
add_action('admin_menu', 'import_post_scores');
function render_score_import_page() {
?>
<div class="wrap">
<h1>スコアの一括インポート</h1>
<form method="post" enctype="multipart/form-data">
<?php wp_nonce_field('score_import_action', 'score_import_nonce'); ?>
<input type="file" name="score_csv" accept=".csv" required>
<input type="submit" name="submit_score_import"
class="button button-primary" value="インポート実行">
</form>
</div>
<?php
}
function process_score_import($file) {
if (($handle = fopen($file, 'r')) !== FALSE) {
// ヘッダーをスキップ
fgetcsv($handle);
$results = [
'updated' => 0,
'errors' => []
];
while (($data = fgetcsv($handle)) !== FALSE) {
$post_id = intval($data[0]);
$score = intval($data[1]);
if (validate_import_data($post_id, $score)) {
SCF::update_post_meta($post_id, 'post_score', $score);
$results['updated']++;
} else {
$results['errors'][] = "Invalid data: ID={$post_id}, Score={$score}";
}
}
fclose($handle);
return $results;
}
return false;
}
function validate_import_data($post_id, $score) {
return (
$post_id > 0 &&
post_exists($post_id) &&
is_numeric($score) &&
$score >= 0 &&
$score <= 100
);
}
post_id,score
123,85
456,92
789,78
// page-results.phpのWP_Queryの結果を処理する部分に以下のコードを追加
if ($results_query->have_posts()) {
$posts = $results_query->posts;
$total_posts = count($posts);
// ε値を設定 (30%をランダム表示にする場合は0.3)
$epsilon = 0.3;
// ランダムに選ぶ投稿の数を計算
$random_count = ceil($total_posts * $epsilon);
$score_count = $total_posts - $random_count;
// スコアでソートする投稿とランダムに表示する投稿を分ける
$sorted_posts = array_slice($posts, 0, $score_count);
$random_posts = array_slice($posts, $score_count);
// ランダムな投稿をシャッフル
shuffle($random_posts);
// 結果を結合
$results_query->posts = array_merge($sorted_posts, $random_posts);
$results_query->post_count = count($results_query->posts);
}
検索
カテゴリー
【WordPress】カスタムフィールド作成の仕方「ACF」Advanced Custom Fieldsの使用法
更新日:2024/06/10
298 view
mixhostでのWordPress利用について
更新日:2024/04/02
295 view
scrollHint
更新日:2024/03/13
249 view
LOLIPOPでWordPressインストール(サブディレクトリにインストールしたWordPressをドメイン直下で表示)
更新日:2024/06/13
235 view
XML Sitemap Generator for Google不具合のダウングレード対応、代替プラグイン
更新日:2024/06/13
234 view
Sass導入方法
更新日:2024/03/13
206 view
【SnowMonkey】納品までのフローまとめ
更新日:2025/02/15
163 view
【Snow Monkey】Googleサーチコンソール登録
更新日:2024/05/28
157 view
ワードプレスでフォントを変えたいとき、プラグインを使えば初心者でも簡単
更新日:2025/02/16
144 view
【Googleサーチコンソール】検索画面で表示させたくない「Googleのインデックス削除」
更新日:2024/06/07
129 view
【ショートコード】編集画面で任意の場所にHTMLファイルを挿入
更新日:2024/01/26
122 view
tailwindcss使い方
更新日:2024/03/13
119 view
キーワード検索で上位表示させる方法【SEO】
更新日:2023/10/28
119 view
Recline: GitHub Copilotで動作するClaude 3.5 Sonnet搭載の開発支援ツール
更新日:2025/01/20
107 view
WordPressプラグイン「All-in-One WP Migration」のトラブル
更新日:2022/03/31
83 view
ワードプレスセキュリティー対策まとめ【2025年】「site guard wordpress」「BackWPup バージョン5でUI変更!?」
更新日:2025/02/25
74 view
「THE THOR」を半年使ってみて、レビュー【メリット・デメリット】
更新日:2025/02/16
45 view
SSHを使用してGitHubのリポジトリをクローン、複数の接続元で公開鍵をディレクトリで区別する方法
更新日:2025/01/13
44 view
VSCodeで開発効率を劇的に向上させる!Roo-Clineプラグイン完全ガイド【Gemini API】
更新日:2025/02/08
41 view
「JSONスキーマ」と「Few-shot Learning」で実現する次世代生成AIソフトウェア開発の可能性
更新日:2025/02/12
40 view
THE THOR(ザ・トール)でグーグルアドセンスを使う
更新日:2025/02/16
39 view
WordPressの無料画像素材のおすすめダウンロードサイト!
更新日:2022/02/22
35 view
リファクタリング【VSCode Javasctipt Python】
更新日:2025/02/06
34 view
形態素解析とは?初心者でもわかるツールの使い方と実践例
更新日:2025/02/08
33 view
【Next.js AWS】音声文字起こし&要約、分析アプリケーション(S3)(Transcribe)(Amazon Bedrock)
更新日:2025/02/13
28 view
VSCodeプラグイン「 Pretter – Code formatter」「PHP Intelephense 」
更新日:2025/01/06
26 view
【WordPress】SVGを投稿記事のサムネイルに!自作プラグイン(未実装🤷♂️)「nonce(ナンス)トークン」wp_postmetaテーブルを利用
更新日:2025/02/16
23 view
【CSS JavaScript サンプルコード】アコーディオン 続きを読む(Read more)Toggle 折りたたみコンテンツ
更新日:2025/02/05
23 view
Googleアドセンスとは?〜前編〜
更新日:2025/02/16
22 view
【WordPressプラグイン】人気記事 管理 WordPress Popular Posts 実践的なカスタマイズ
更新日:2025/02/15
22 view
WordPressでカスタムフィールドを使った記事のスコアリング 一定割合ランダム表示でε-greedy方策
更新日:2025/02/24
19 view
【WordPress】プラグイン不使用でカスタムタクソノミーを設定、絞り込み検索について
更新日:2025/01/26
18 view
スマートフォンファーストのWeb開発実践ガイド
更新日:2025/01/23
16 view
「Amazon Bedrock+ Amazon Kendra」で作る社内検索
更新日:2025/01/22
14 view
AWSのOCRサービス完全ガイド:Textract、Rekognition、Comprehendの使い分け
更新日:2025/02/09
14 view