ひろばニュース|2026/05/08~2026/05/14号

みかん

今週のニュースです!新着などのお知らせだよ!

みかんの新着おんがく紹介①|フリーBGM『五月雨撃ち』

ループ:◎
用途:Youtube動画向け、Shorts・Tiktok向け、ゲーム・アプリ向け
時間:1分12秒
BPM:188
キー:Bm
ジャンル:みらい
楽器:リリースカットピアノ

フリーBGM:五月雨撃ち
フリーBGM|ループ対応、用途:Shorts・Tiktok向け、ゲーム・アプリ向け、時間:1分12秒、BPM:188、キー:Bm、ジャンル:みらい、楽器:リリースカットピアノ|リリースカットピアノをハイテンポに弾幕みたいに鳴らしてみました!バトルやカオスな動画展開のシーンにぴったり!
みかん

今週はリリースカットピアノが大暴れ(?)なバトルっぽい曲を投稿しました!カオスなシーンとかにもぴったりです!

みかんの新着おんがく紹介②|今週の15秒&30秒BGMはこちら!
15秒フリーBGM:消失
15秒フリーBGM|ループ対応、用途:Shorts・Tiktok向け、ゲーム・アプリ向け、時間:0分15秒、BPM:63、キー:-、ジャンル:おしゃれ、楽器:ピアノ|15秒BGM第45弾!ゲームやTRPGでの『消失』をイメージした3つのメロディーを用意しました!『哀しみ』や『警戒』などで、この3つを使い分けてみてください!
30秒フリーBGM:ナイトインパルス
30秒フリーBGM|ループ対応、用途:Youtube動画向け、Shorts・Tiktok向け、ゲーム・アプリ、向け時間:0分30秒、BPM:143、キー:Gm、ジャンル:あかるい、みらい、楽器:シンセサイザー、ギター|30秒BGM第17弾!デジタルっぽいクールなバトル向けBGMです!戦闘シーンやゲーム実況にぴったり!
みかん

今週も合計5曲以上の15秒&30秒BGMを追加しました!他にもあるからぜひ見てみてね♪

いろはの新着セットリスト|『メディア』×『システム48』
フリーBGM:メディア
フリーBGM|ループ対応、用途:Youtube動画向け、ゲーム・アプリ向け、時間:1分30秒、BPM:127、キー:B、ジャンル:おしゃれ、みらい、楽器:シンセサイザー|朝や夕方のニュース番組、商品の紹介動画などにぴったりのフリーBGMです!実はメロディー部分も音の空間上で真ん中に隙間を空ける加工をして話し声が遮られにくい工夫もしました!
フリー効果音:システム48
フリー効果音|ジャンル:システム、ゲーム・システム系効果音、第48弾!おしゃれな汎用っぽい効果音です!実はゲームのジングルにも合うかも?
いろは

今週のセットリスト案のテーマは『メディア』です。以前も紹介した『システム48』では、こういったシンセサイザー音源にも合わせられますわ。

ことはの新着ソースコード|『おんがく素材数カウント』機能
/**
 * カテゴリ別のmp3ファイル合計数を取得する(重複排除・プレイヤー除外対応)
 */

function get_mp3_count_by_category($category_slug) {
    $args = array(
        'category_name'  => $category_slug,
        'posts_per_page' => -1,
        'post_status'    => 'publish',
    );
    $posts = get_posts($args);
    
    $total_mp3_count = 0;

    foreach ($posts as $p) {
        $content = $p->post_content;

        // 1. まず記事内の「wp-block-audio」プレイヤー部分を一時的に除外する
        // これにより、標準プレイヤーのsrcはカウント対象から外れます
        $content_filtered = preg_replace('/<figure class="wp-block-audio">.*?<\/figure>/is', '', $content);

        // 2. 残ったテキスト(DLボタン、JS、昔のaudioタグ)からmp3のURLをすべて抽出
        // 引用符(" または ')で囲まれた .mp3 で終わるURLを探します
        $pattern = '/["\'](https?:\/\/[^"\']+\.mp3)["\']/i';
        
        if (preg_match_all($pattern, $content_filtered, $matches)) {
            // $matches[1] に抽出されたURLの配列が入る
            // 3. 同じ記事内でURLが重複している場合は1つにまとめる
            $unique_urls = array_unique($matches[1]);
            
            // カウントを加算
            $total_mp3_count += count($unique_urls);
        }
    }

    return $total_mp3_count;
}

/**
 * 表示用のショートコード [mp3_total_count slug="15s_bgm"]
 */
add_shortcode('mp3_total_count', function($atts) {
    $a = shortcode_atts(array('slug' => 'bgm'), $atts);
    return number_format(get_mp3_count_by_category($a['slug']));
});

/**
 * 全合計用のショートコード [mp3_total_count_all]
 */
add_shortcode('mp3_total_count_all', function() {
    $slugs = array('15s_bgm', '30s_bgm', 'bgm', 'se');
    $all_total = 0;
    foreach ($slugs as $slug) {
        $all_total += get_mp3_count_by_category($slug);
    }
    return number_format($all_total);
});
ことは

今週は『おんがく素材』ページにて、素材(mp3)ファイルの総数を数えるプログラムを実装しました。バックエンドのPHPのコードでは以下の3つにこだわったのでぜひ一読ください。

1.「中身」を数える。記事のHTMLからmp3のURLだけを直接抽出。表面上のデザインと、純粋な「素材としての数」を切り離して管理している。
2.「重複」を排除。 同じ素材が何度登場しようと、数式で一意(独自)のデータへと変換。数千の記事に散らばるリンクから、水増しのない数値だけを一括で算出。
3.サーバーを介さず「その場」で集計。 データベース(DB)を汚さず、ショートコードを読み込んだ瞬間にメモリ上でカウントを再構築。常に最新の素材数を、リアルタイムな保存用数値として発行。

タイトルとURLをコピーしました