WordPressでカスタムフィールドを使った記事のスコアリングシステムの実装
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 […]
HTML、CSS、JSを使って「もっと読む」のUIのサンプルコードを紹介! サンプルコード Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam […]
はじめに プログラムを開発していると、最初は動けばOKと思って書いたコードが、後々見づらくなったり、修正がしにくくなったりすることがあります。そうしたときに役立つのがリファクタリングです。 本記事では、VSCodeを使用 […]
どういうタイミングで文字化けするか? ブラウザでのファイル読み込み時に文字化けしてしまいます メモ帳でしたら自動判定で正常に表示されます メモ帳での読み込み .bas (Shift-JIS) 自動判定 正常表示 ブラウザ […]
Roo-Clineとは VSCodeの開発効率を飛躍的に向上させる新しいAIコーディング支援プラグインです。 Roo-Clineは、Clineの機能を継承しながら、より多くのAPIプロバイダー対応と使いやすさの向上に焦点 […]
1. 形態素解析の基礎知識 形態素解析とは、テキストを言語学的に意味を持つ最小単位(形態素)に分解し、それぞれの品詞や活用形などの文法情報を判定する自然言語処理の基礎技術です。 私は今日公園で本を読みました 私 代名詞 […]
はじめに Google Docsを使ってWordPress記事を作成する方法を解説します。プラグインの紹介から、効率的なワークフローまで、順を追って説明していきます。 なぜGoogle Docsを使うのか? 転記の基本手 […]
Windowsを使用していると、突然「このショートカットは、リンク先のファイルが変更または移動されているので、正しく機能しません」というエラーメッセージに遭遇することがあります。この記事では、この一般的な問題の原因と解決 […]
こんにちは!今回は、WordPressでタクソノミーの親子関係を確認するための様々な方法について、詳しく解説していきます。管理画面以外にも複数の方法があり、用途に応じて使い分けることで効率的な運用が可能です。 WordP […]
記事や固定ページ内で以下のようにショートコードを使用します:
(注意)*は不要です、実際にブログ記事にショートコードで関数が呼び出されてしまうので、*挿入しました
[*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
検索
カテゴリー