WB Polls

投票を作成し、訪問者や会員に 1 回だけ投票してもらい、サイトのどこにでもリアルタイムの結果を表示します。

プラグイン

WB Polls

投票を作成し、訪問者や会員に 1 回だけ投票してもらい、サイトのどこにでもリアルタイムの結果を表示します。

  • カテゴリー: polls
  • ステータス: 利用可能
  • バージョン: 0.5.0
  • 価格: 不明
  • 提供元: 公式プラグインレジストリ
  • 導入方法: レジストリのサンドボックスプラグイン
  • 確認日: 2026-10-21

説明

WB Polls を使うと、サイトの所有者が質問を投げかけ、任意の EmDash ページにリアルタイムの結果を表示できます。

主な機能

  • 2 つから 10 個の選択肢で投票を作成。単一選択も複数選択も可能です。
  • 準備ができたら開始し、投票を止めたいときに終了するか、終了時刻を設定できます。
  • 誰が投票できるかを選べます。誰でも、またはサインイン済みの会員のみ。
  • 結果を表示するタイミングを選べます。常に、投票後、または投票終了後。
  • 匿名の集計か、サイトの所有者が見られる記名の結果かを選べます。
  • 投票を 1 つのページ、コンテンツタイプのすべてのエントリー、またはサイト全体に関連付けられます。開発者は ID を指定して特定の投票を配置することもできます。
  • 投票を、票のない新しい下書きとして複製できます。

全体の仕組み

プラグインはエンジンです。ストレージ、投票ルート、管理画面を担当します。EmDash のプラグインはページを追加できないため、表示される投票はサイトキットとして提供され、一度コピーするだけで使えます。インストールを参照してください。

誰でも投票できる設定で、かつホストが訪問者のアドレスを EmDash に渡している場合(Cloudflare、または trustedProxyHeaders)、ゲストは投票できます。会員はサインイン済みのアカウントとして投票します。投票の作成と管理ができるのはあなただけです。

インストール

インストールの前に

1. サイトにはサンドボックスランナーが必要です。 レジストリのプラグインはサンドボックスで動作します。サイトにそれがない間は、Admin、Plugins に “No plugins configured” と表示され、メニューに Registry も表示されません。

  • Node: サイトで npm install @emdash-cms/sandbox-workerd workerd を実行し、astro.config.mjs の emdash() の中に sandboxRunner: "@emdash-cms/sandbox-workerd/sandbox", を追加します。
  • Cloudflare: import from "@emdash-cms/cloudflare"; と sandboxRunner: sandbox(), を追加します。Workers Paid プラン、LOADER という名前の worker_loaders バインディング(Wrangler の設定でコメントを解除)、そして storage: r2(...) としての R2 バケットが必要です。そうでないと、インストールは “Storage error while installing plugin” で止まります。その後 npm run deploy を実行します。

開発サーバーを停止して、もう一度起動します。管理メニューに Registry が表示されるようになります。

2. プラグインはエンジンです。訪問者向けのページはサイトキットから提供されます。 レジストリのプラグインは、サイトにページを追加できません。キットをコピーするまでは、そのアドレス(たとえば /account/votes)にアクセスするとサイトの 404 ページが表示されます。これは想定どおりです。下のキットのコピーは、コマンド 1 つで済みます。

EmDash 1.3.1 の blog テンプレートで、Node と Cloudflare Workers の両方(レジストリからのインストール)で動作を確認しています。

インストール手順

  1. Admin、Registry で WB Polls を検索し、Install して、権限を承認します。

  2. サイトのルートフォルダーで次を実行します。

    kit="$(mktemp -d)" &&
      git clone --depth 1 \
        --branch v0.5.0 \
        https://github.com/wbcomdesigns/emdash-polls \
        "$kit/emdash-polls" &&
      "$kit/emdash-polls/scripts/add-to-site.sh" .
  3. 出力された行を貼り付けます。開発サーバーを再起動します。

  4. 出力されたメニューリンクを Admin、Menus に追加します。

  5. 管理画面で Polls を開きます。

更新後は、新しいタグで手順 2 をもう一度実行します。

ガイド:https://github.com/wbcomdesigns/emdash-polls/blob/v0.5.0/docs/website/getting-started/install.md

よくある質問

プラグインを更新したら、投票できなくなりました。 サイトキットをもう一度コピーしてください。レジストリからのインストールは /polls/ ではなく ID で応答します。現在のキットはその ID を見つけられます。

投票を作成したのに、ページに表示されないのはなぜですか? 作成した直後は下書きです。一覧から投票を開いてください。次に、それをページ、コンテンツタイプ、またはサイト全体に関連付け、そのテンプレートに投票スロットを置きます。

ゲストは投票できますか? はい。Who can vote を Anyone に設定し、ホストが訪問者のアドレスを EmDash に渡している場合です。Cloudflare 上か、プロキシ自身が書き込んで置き換えるヘッダーを trustedProxyHeaders に設定した場合(nginx の背後なら x-real-ip。追記される X-Forwarded-For は決して使わないでください)が該当します。そうでない場合、ゲストにはサインインが求められ、Polls 画面にもその旨が表示されます。訪問者 1 人につき 1 票です。サインイン済みの会員は本人として投票します。

ブラウザーのコンソールに出る 401 は問題ですか? いいえ。ゲストは、会員の投票チェックにより投票ごとに 1 回、My votes でも 1 回 401 を受け取ります。これは、投票が訪問者のサインイン状態を判断する仕組みで、その後ゲスト向けの表示になります。

投票者の名前は誰に見えますか? あなただけで、記名の投票に限られます。ゲストは匿名のままです。匿名の投票では名前は保存されません。

ダークモードで動作しますか? はい。キットは訪問者のシステム設定に従います。

記事の途中に投票を置けますか? レジストリからのインストールではできません。コンテンツの上か下に関連付けるか、テンプレートに “ を配置してください。本文中のブロックには信頼されたインストールが必要です。その方法は任意で、レジストリ版の製品には影響しません。

有料版はありますか? いいえ。ここにあるものはすべて無料です。

なぜコンテンツの読み取りを求めるのですか? 下書きに関連付けた投票を、そのページを公開するまで非表示に保つためです。WB Polls が確認するのはページが公開済みかどうかだけで、コンテンツタイプを名前で一覧にします。

変更履歴

0.5.0

すべての投票ページ、投票操作、管理画面が、Cloudflare のプラグイン呼び出し 1 回あたり 10 リクエストという上限に収まるようになりました。

  • 新機能 - 各投票が累計を保持するため、どんな規模の投票でも結果を 1 回の読み取りで表示できます。
  • 新機能 - Results に Recount votes を追加。保存済みの票から投票を数え直します。
  • 改善 - 投票を削除するとすぐに非表示になります。名前を含む票は、管理画面を開いたときに削除されます。
  • 改善 - 開始時刻と終了時刻は、表示のたびに投票の日付から読み取ります。
  • 修正 - Cloudflare で、ゲストの投票が保存された後に “Something went wrong” と表示されなくなりました。
  • 修正 - Cloudflare で、アクセスの多いサイトでも Polls 画面、Results、My votes、Poll パネルが失敗しなくなりました。

以前のバージョンの投票は、最初に開いたときに集計されます。更新後は、サイトのルートフォルダーでキットをもう一度コピーしてください。

kit="$(mktemp -d)" &&
  git clone --depth 1 \
    --branch v0.5.0 \
    https://github.com/wbcomdesigns/emdash-polls \
    "$kit/emdash-polls" &&
  "$kit/emdash-polls/scripts/add-to-site.sh" .

0.4.0

  • 新機能:Read your content 権限により、下書きページの投票は公開するまで非表示のままになります。
  • 新機能:Set up visitor pages カードと scripts/add-to-site.sh で、コマンド 1 つでキットをコピーできます。
  • セキュリティ:ゲストが投票できるのは、ホストが訪問者のアドレスを渡す環境のみです。1 人の投票者が同時に送った 2 票は 1 票として数えられます。

0.3.0

  • 新機能:一覧に投票の統計、結果の棒グラフ、そして投稿本文用の任意の This page’s poll ブロックを追加。

以前のバージョン:https://github.com/wbcomdesigns/emdash-polls/blob/main/CHANGELOG.md