Wordpress + Discourse構成からDiscourseサイトのみに変更しますか?

こんにちは!

これから読む前に、Moved from PluXml and phpBB to Wordpress and Discourse, my all-new experience 🎉 をご覧いただいても構いませんが、必須ではありません。要約します。

現在の状況

WPはWP Discourseを通じてDiscourseに接続されています。WPはDiscourseConnectクライアントでもあり、WPのニュースは専用カテゴリに自動的にDiscourseに公開されます。プラグインができるのはこれだけです。

  • WPウェブサイトは主にニュースと静的な情報ページに焦点を当てています。

  • Discourseフォーラムは…フォーラムです。コミュニティが集まり、話し合い、時には物事を整理する場所です。


質問

「ウェブサイトの本当の目的は何だろう?付加価値は低く、サイトの多くの機能はDiscourseで実現できる。では、なぜ2つのプラットフォームを使う必要があるのか?」と自問しました。

まだ考え始めたばかりですが、我々のケースではWordPressを廃止するのが良い考えかもしれないと思い始めています。

では、ウェブサイトの利点は何でしょうか?クリーンでニュース中心のレイアウトがあります。一見良さそうに見えるが、おそらく無用な小さな機能があります。スポーツ連盟のFacebook iframe。マガジンボタン。フォーラムの最近の活動。
イベントカレンダー(カスタムソリューション)。
そして、一輪車に関する多くの静的な情報ページ。

Discourseでできないことは何でしょうか?ほとんど何もありません。

主な懸念は、ニュースをフォーラムでどのように目立たせるかということです。毎週新しい情報があるわけではありませんが、フランスの一輪車コミュニティでは重要であり、目立つべきです。

この件について、このフォーラム/サイトに関わる2人と話し合いました。彼らは、ウェブサイトが私たちに提供してくれる重要なものを失わないのであれば、WPを廃止するのは良い考えかもしれないと考えています。

技術的なこと

  • カスタムDiscourseヘッダーはそのまま維持されます。

  • ニュースには News Plugin 📰 を使用できるかもしれません。ただし、メインページとしては使用しません。なぜなら、フォーラムのコンテンツは「フォーラム」ボタン(例: Elektronauts

  • しかし、フォーラムのホームページにニュースを掲載したいと考えています。過去に、トピックの上にバナーでいくつかの投稿を表示するプラグインやテーマコンポーネントを見た記憶がありますが、間違っているかもしれません。これに対する既存のソリューションはありますか?私たちにとって最善の使い方は、ヘッダーの下、ホームページの一番上に、サムネイルと抜粋付きの最新ニュース3件を表示し、これらのトピックをすでに読んだ場合は、このバナーを非表示にできるようなものだと思います。

  • ウェブサイトの静的ページは、トピックまたは公開ページにすることができます。

  • wikiはDiscourseのwiki機能を使用できます。

  • ニュースレターは不要です(Discourseのダイジェストがこれを置き換えます)。また、私の共同管理者も、スポーツ連盟の埋め込みFacebook投稿ストリームやその他のものに実質的な目的を見出していません。

  • イベントカテゴリ(カスタムソリューション)がありますが、最近は少し空虚ですが、有用性があり、特定の機能を備えたイベントカテゴリのようなものを維持したいと考えています。

過去にいくつかのイベント/カレンダープラグインを見て試しました。

いくつか理解したり設定したりするのが少し厄介で、試したときの私のニーズは少し異なっていたので、もう一度試す必要があります。

Discourseのみを維持することの長所と短所

長所

  • WP、その多くの拡張機能/テーマ/カスタムの厄介なコード[1]、および投稿公開時のWP/Discourseの互換性に関する潜在的な問題がなくなります。
  • 考慮し、集中すべきプラットフォームは1つだけになります。

  • すべてのデータが単一のデータベースに整理されるため、将来的にすべてのデータを移動する必要がある場合(Discourseさえ永遠ではないかもしれませんが…あるいは永遠なのでしょうか?:face_savoring_food:)に、物事がシンプルになります。

短所

  • WPからDiscourseへいくつかのコンテンツを「移動」するのに少し手間がかかります。

  • いくつかの機能については、適切なソリューションを見つける必要があります。

  • 301リダイレクトを設定する必要があります。

ご意見、ご感想、アドバイス

私の目標はよく説明できたと思います。WP+DからDへの移行の可能性について、どのような提案、アドバイスでも喜んでお聞きします。


  1. 見たくないでしょう。考えようともしないでください。すでに恥ずかしいです。 ↩︎

「いいね!」 6

これは、各サイトが生成するトラフィック量と、あなたの予算にかかってくるでしょう。

Discourse は上記すべてを確実に実行できますが、WordPress サイトで大量のコンテンツを匿名ユーザーに提供している場合、ページビューあたりのコストは大幅に低くなります。

適切に設定された 5 ドルの VPS は、数百万の読み取り専用ページビューを非常に楽に提供できます。これが WordPress が優れている点です。同じトラフィックを Discourse 経由で提供する場合、かなりのリソースが必要になります。そのようなことを気にするのであれば、WordPress は依然として非常に効果的なツールです。適切に設定されていれば、検索エンジンに提供するコンテンツをキュレートするのにも非常に優れています。

現在、ある顧客が 2 つのサイトに対して DO に月額約 100 ドルを支払っています。すべてを Discourse に移行することを検討したところ、運用コストは桁違いに高くなることが判明したため、その作業は中止されました。

「いいね!」 3

大きな懸念事項ですね。それについて言及すべきでした。

これは非常にニッチなウェブサイトです。トラフィックは本質的に少ないです。帯域幅やディスク容量などのコストは一切かかりません。どちらのサイトも、他のウェブコンテンツと一緒に私のVPSでスムーズに動作しており、すべてボランティアで行っています。:slight_smile:

しかし、SEOの側面は興味深い研究対象になるでしょう。そこまでは考えていませんでした。:thinking:

「いいね!」 2

現在は、StrapiヘッドレスCMSバックエンドとVercelでホストされているNext.jsフロントエンドを使用しています。

また、Discourseフォーラムも接続されています:
https://forum.monerochan.news/
Strapiバックエンドを完全に廃止し、DiscourseをヘッドレスCMSとして使用することも検討しています。

したがって、この問題は、「ランディングページ」/最もアクセス数の多いページをVercelのようなものでヘッドレス方式でホストすることで解決できる可能性があります。
現在の形式でも、DiscourseはヘッドレスCMSとしてほぼ機能します。トピックURLに.jsonを付けるだけで、Markdown /生の投稿データを取得できます。

唯一の問題は、パーマリンク、キュレートされたトピックリスト、および著者と編集者のための公開+権限システムでしょう。一部はグループとカテゴリで実現できますが、単一の記事/プレビュー記事カテゴリがあれば良いでしょう。

それ用のプラグインを構築すべきでしょうか?:thinking:

@Canapin トピックありがとうございます!素晴らしい読み物です :grinning: :+1:

「いいね!」 4

これは、静的コンテンツを配信しているのがフロントページだけであると仮定しています。上記の例では、サイトには10,000以上の投稿とページがあります。

「いいね!」 1
export const getStaticProps: GetStaticProps = async ({params}) => {
  // Run API calls in parallel
  const id = params?.id

  if (!id) {
    return {
      redirect: {
        destination: '/',
        permanent: false,
        // statusCode: 301
      },
    }
  }
  const qs = require('qs');
  const query = qs.stringify({
    populate: '*',
  }, {
    encodeValuesOnly: true, // prettify URL
  });
  const article = await fetchAPI("/api/articles/" + params.id + "?" + query)
  if (!article.data) {
    return {
      redirect: {
        destination: '/',
        permanent: false,
        // statusCode: 301
      },
    }
  }

  return {
    props: { article },
    revalidate: 1,
  }
}

Next.jsのフロントエンドで記事を取得するためにこのコードを使用しています。そのため、記事は1秒間キャッシュされ、その後再検証されます。この方法を使用すると、Discourseインスタンスは1秒あたり1つのリクエストしか受け取りません。

これは、著者や編集者の特別なグループによって管理される特別なカテゴリだけでなく、行うことができます。
すべてコンテンツに対して行うことができます。monerochan.newsのStrapiバックエンドもMarkdown(Discourseと同様)を提供しています。そのため、通常のトピックURLに.jsonを付けるだけで、投稿データを取得し、表示するためにまったく同じコードを使用できます。
明らかに、この場合Discourseのインタラクティブ機能は欠落します。しかし、コメント!のようなボタンを配置して、Discourseページにリダイレクトすることができます。Next.jsのページも非常に高速に読み込まれ、SEOフレンドリーです。

したがって、2つの状況が考えられます。1.著者や編集者によってキュレーションされる特別なカテゴリを持つニュースサイト。2.ユーザー生成コンテンツを持つ通常のDiscourseフォーラム。
両方のケースの混合もあり得ます。

どちらの場合も、ヘッドレスフロントエンドを構築することは多くの利点をもたらす可能性があります。

「いいね!」 1

上記のいずれかを、News Plugin、Landing Pages Plugin、Events Plugin を使用して行うのに問題がある場合は、いつでもお知らせください。喜んでお手伝いさせていただきます。

イベントプラグインに関しては、まもなくリリースされる v2 の実装事例をさらに探しているため、お問い合わせください。このウィザードに記入してください。

「いいね!」 2

これは興味深いアイデアですね。もし私が正しく理解していれば、フォーラムはそのままにして、DiscourseのAPIを通じてフォーラムのデータからコンテンツを取得する自作ウェブサイトを作成するということでしょうか?

@Stephen、WordPressには確かに妥当な点があります。

WordPressは、キャッシュシステムを使用している場合、非常に高速にロードされますが、Discourseはアプリケーション全体をロードする必要があり、起動には常に時間がかかります。

私のサイト https://monocycle.info は高速にロードされ、ページ間の移動はほぼ瞬時です。

WordPressを削除したい理由はいくつか挙げましたが、フォーラムをもっと目立たせ、より分かりやすくしたいということを追加するのを忘れました。サイトにアクセスしたときに、アクティブなコミュニティがあることをすぐに人々に見てもらいたいのです。

デスクトップでもモバイルでも、Discourseでの登録と投稿は楽しく、簡単な体験です。

WordPressをホームページのみ(またはそれ以上はあまり)に留め、ほとんどのコンテンツをDiscourseのトピック/公開ページに移動させることもできます。

素晴らしいですね!ウィザードに記入する前に、あなたのプラグインをもう一度詳しく見て、どのような機能があり、全体的にどのように動作するかを正確に把握する必要があります。:+1:

「いいね!」 1

WordPressサイトにもっとコミュニティコンテンツを取り込むことについてはどうですか?その方法で可視性を高めましょう。

何か具体的なアイデアはありますか?ホームページに着地すると、「ディスカッション」リンクと最新のトピックのリストが表示されます。

はい!まさにその通りです!Discourse側でやるべきこともあまりありません!トピックリンクに.jsonを付けるだけで、すでにAPIが利用できます!
例えば、今話しているこのトピックを見てみてください。
https://meta.discourse.org/t/go-from-a-wordpress-discourse-structure-to-a-discourse-site-only/247273/8.json?include_raw=true

末尾の.jsonとinclude_raw=trueに注目してください。これにより、「調理済み」HTMLに加えて、投稿のMarkdownを取得することさえできます。

StrapiもMarkdownエディタを使用しているので、以前と同じコードを文字通り使用できます。

「いいね!」 2

それは文字通り私を椅子から飛び上がらせました。.json と include_raw=true を使用し、ある種の自動化 (n8n) を利用することで、メタタグとマークダウンを直接 git リポジトリにプッシュすることにより、すべての Discourse を Hugo にリダイレクトできるということでしょうか??

「いいね!」 1