ランディングページでコンテンツを非表示/挿入する

カスタムホームページを作成しました。方法は以下の通りです。
a) ランディングページに .custom-homepage クラスを追加しました。これにより、カスタム CSS を使用して、その特定のページで非表示にしたいコンテンツや調整したいコンテンツを簡単にターゲットにできます。
b) デフォルトテーマのカスタム HTML の head ファイルに新しいコンポーネントを直接追加しました。

以下のようになります。

<script type="text/discourse-plugin" version="0.8">
  api.registerConnectorClass("above-main-container", "custom-homepage", {
    setupComponent(args, component) {
     var topMenuRoutes =
        component.siteSettings.top_menu.split('|')
        .map(function(route) {return '/' + route});

     // 'top_menu' 設定で最初にリストされたページがホームページです
 var homeRoute = topMenuRoutes[0];

     // ページが変更されるたびにコードを呼び出します
     api.onPageChange((url) => {
        // ホームページかどうかを確認します
        if (url === "/" || url === homeRoute ){
          // ホームページの場合は、HTMLタグに 'custom-homepage' クラスを追加します
          // そして 'displayCustomHomepage' を true に設定します

          document.querySelector("html").classList.add("custom-homepage");
          component.set("displayCustomHomepage", true);
        } else {
          // ホームページでない場合は、クラスを削除します
          // そして `displayCustomHomepage` を false に設定します
          document.querySelector("html").classList.remove("custom-homepage");
          component.set("displayCustomHomepage", false);
        }
      });
    }

  });
</script>

<script type="text/x-handlebars" data-template-name="/connectors/above-main-container/custom-homepage">
  {{#if displayCustomHomepage}}

    <div class="custom-homepage-wrapper mask-polygon">
       <div class="custom-welcome-banner">
        <h1 class="welcome-header-text">Välkommen till Sveriges idéburna byggrörelse</h1>
        <p>Här kan du se färdiga och planerade projekt, hitta kunskap, få råd - och få kontakt med andra som bygger och bor ihop över hela landet.</p>
       </div>

    </div>

    {{whos-online}}
    {{search-menu}}

<div class="two-column-layout">
  <div>
   (ここに地図画像の独自のコードがあります。省略します)
  </div>

  <WANTED DIV>
  (ここにフィードを配置したいです。例えば {{categories-topic- list topics=latest filter=“latest” limit=“10” … }} のようなもの)
  </WANTED DIV>

</div>

  {{/if}}
</script>

これまでのところ順調です。ページは以下のようになります。

問題は、現在のフィードを制御できないことです。これは単にデフォルトのフィードであり、カスタム CSS で幅と位置を大まかに調整して、左側の地図のスペースを確保しています。例えば、現在は無限に表示されます。最新の 10 件の投稿のみを表示したいのです。

私の質問は以下の通りです。

  • 現在のフィードを非表示にするには、どのクラスを非表示にすればよいですか?
  • 独自のコードで最新の投稿を追加するための正しい構文は何ですか?上記のコードの ‘WANTED DIV’ セクションを参照してください。

ライブサイト: https://bygg.boihop.co/

この件について、ご協力いただければ幸いです。

カスタムホームページモディファイアを使用して、ページに専用のホームページルートを追加することをお勧めします。新しいカスタムホームページ機能の使用

その後、クリーンでモジュラーなアプローチでホームページを構築できます。テーマコードにコンポーネントを追加できます。または、ホームページブロックのようなコンポーネントを試して、エディターからコンポーネントを追加することもできます。

ここでは、カスタムホームページルートとブロックを使用して構築した最近のサイトの2つの例を紹介します。コードを検査して、結果の構造を確認できます。Zolidarのホームページは、コンテナクエリとグリッドレイアウトをホームページで活用する方法の例も示しているため、ホームページレイアウトをより細かく制御できます。

「いいね!」 3

このヒントをありがとうございます!素晴らしいですね。試してみる機会が得られるまで、現在の「最新」フィードに表示される投稿数を設定で制限する方法をご存知ですか?どうしても見つからないのです。

トピックリストは通常、下までスクロールすると拡張される無限リストです。最も簡単な修正方法がわかりません。おそらく、ホームページのデフォルトリストを非表示にして、注目のリストのようなコンポーネントを使用するでしょう。そうすれば、デフォルトのリストの動作をいじらずに、リストの長さなどを制御できます。

「いいね!」 3

ありがとうございます!

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.