2026年5月20日

2026年5月20日

WordPressのプッシュ通知プラグインを設定する方法

はじめに

Web Pushプッシュ通知はブラウザ経由でユーザーに通知を送れる仕組みです。WordPressではOneSignal・PushEngageなどのプラグインを使って新着記事の自動通知や手動配信ができます。

症状・原因

  • WordPressサイトに新着通知をプッシュで送りたい
  • OneSignalをWordPressに設定したい
  • プッシュ通知の購読者数を増やしたい
  • 自動投稿通知とカスタム通知を使い分けたい

解決手順

ステップ1:OneSignalプラグインをインストールする

# OneSignal プラグインをインストール
wp plugin install onesignal-free-web-push-notifications --activate

# 確認
wp plugin list --search=onesignal --format=table

ステップ2:OneSignalアカウントとアプリを設定する

1. https://onesignal.com でアカウント作成
2.「New App/Website」→ アプリ名を入力
3. プラットフォーム選択:「Web Push」
4. Web Push設定:
   → サイトURL: https://example.com
   → サイト名: サイト名
   → デフォルトアイコンURL: https://example.com/icon.png
   → 許可リクエストのタイミング: ページ読み込み時(または遅延)

5. App ID と REST API Key を取得
WordPress管理画面 → OneSignal Push Notifications → 設定:
→「App ID」: OneSignalのApp IDを貼り付け
→「REST API Key」: REST API Keyを貼り付け
→「自動通知を送信」: ON(新規投稿公開時に自動送信)
→「変更を保存」

ステップ3:通知の表示設定をカスタマイズする

OneSignal → 設定 → Prompt Setup:
→ Native Browser Prompt(ブラウザ標準許可ダイアログ):
  → トリガー: ページ訪問3秒後
  ○ Slide Prompt(スライドアップUI):
  → タイトル: 「新着情報をお届けします」
  → メッセージ: 「最新記事をいち早くチェック!」

→ HTTPS サービスワーカー設定:
  → OneSignalSDKWorker.js を / に配置(自動)
  → manifest.json に通知設定を追加(自動)

ステップ4:手動でプッシュ通知を送信する

OneSignal ダッシュボード → Messages → Push:
→「New Push」
→ 配信対象: All Subscribers(全購読者)
→ タイトル: 「重要なお知らせ」
→ メッセージ: 「サイトが新機能をリリースしました」
→ URL: https://example.com/news/
→「Send Message」

セグメント配信(購読者絞り込み):
→ Segment を事前作成:
  → 条件: Country is JP(日本のみ)
  → 条件: Session Count > 3(3回以上訪問)
→ メッセージ作成時に Segment を選択

ステップ5:PHPでプッシュ通知をプログラム送信する

// OneSignal REST APIでプッシュ通知を送信
function myplugin_send_push_notification(
    string $title,
    string $message,
    string $url = ''
): bool {
    $app_id  = get_option('onesignal_app_id', '');
    $api_key = get_option('onesignal_rest_api_key', '');

    if (!$app_id || !$api_key) {
        return false;
    }

    $response = wp_remote_post('https://onesignal.com/api/v1/notifications', [
        'headers' => [
            'Content-Type'  => 'application/json',
            'Authorization' => 'Basic ' . $api_key,
        ],
        'body' => wp_json_encode([
            'app_id'            => $app_id,
            'included_segments' => ['All'],
            'headings'          => ['en' => $title, 'ja' => $title],
            'contents'          => ['en' => $message, 'ja' => $message],
            'url'               => $url ?: home_url('/'),
        ]),
    ]);

    return !is_wp_error($response)
        && wp_remote_retrieve_response_code($response) === 200;
}

// 投稿公開時に通知
add_action('publish_post', function(int $post_id): void {
    $post = get_post($post_id);
    myplugin_send_push_notification(
        '新着記事: ' . get_the_title($post_id),
        wp_trim_words($post->post_content, 20),
        get_permalink($post_id)
    );
});

ステップ6:購読者数をWP-CLIで確認する

# OneSignal設定を確認
wp option get onesignal_app_id
wp option get onesignal_rest_api_key

# OneSignal APIで購読者数を取得(curlで確認)
curl -H "Authorization: Basic {REST_API_KEY}" \
  "https://onesignal.com/api/v1/apps/{APP_ID}" | python -m json.tool | grep players

# プッシュ通知プラグインのオプション一覧
wp option list --search="onesignal*" --format=table

注意事項

  • プッシュ通知のHTTPSは必須です。HTTPサイトでは動作しません
  • サービスワーカー(OneSignalSDKWorker.js)がサイトルートに配置される必要があります。サブディレクトリインストールの場合は追加設定が必要です
  • 通知の頻度が高いと購読解除率が上がります。週1〜2回程度が目安です

まとめ

WordPressのプッシュ通知はOneSignalプラグインでApp IDを設定するだけで動作します。新規投稿時の自動通知と、REST APIを使ったプログラムからの手動配信を組み合わせて効果的な通知運用ができます。

お気軽にご相談ください

お見積りへ お問い合わせへ