5

Drupalのページノードのタイトルを削除しようとしています。私はこのページを持っています:

ここに画像の説明を入力してください

そして、私はそれをこのように見せたいです:

ここに画像の説明を入力してください

ご覧のとおり、タイトルを削除したいのですが、分類用語についてのみです。CSSを使用して消去しようとすると、すべてのページタイトルが消去されるため、管理者がノードタイトルを自動生成して非表示にできるこのモジュールを使用したいと思いました。

構造->タイプコンテンツ->タイプコンテンツに移動し、編集します。モジュールをアクティブ化し、ノードカテゴリに応じてタイトルを自動生成したいと思います。こんな感じになると思いますが、うまくいきません...

ここに画像の説明を入力してください

なぜ何かアイデアはありますか?

編集:申し訳ありませんが、私は言うのを忘れました:はい、モジュールをアクティブにして使用し、自動生成されたタイトルとしてカテゴリを選択すると、機能します。しかし、それはタイトルを隠しません...

また、この間違いを引き起こします:

ここに画像の説明を入力してください

4

9 に答える 9

7

[ノードタイトルの除外]モジュールを使用します。

https://drupal.org/project/exclude_node_title

このモジュールの設定:

ここに画像の説明を入力してください

Click on Module->Exclude node title->configure
Home » Administration » Configuration » Content authoring
Select All nodes from Basic Page
Check Full Content for hide title from all cms page except home page
Check Teaser for hide title from home page. 
于 2014-05-08T06:19:06.887 に答える
3

タイトルを削除する場合は、ページとノードのテンプレートを上書きすることを検討する必要があります。

page.tpl.phpおよびnode.tpl.php

両方の[ソースの表示]をクリックして、テーマフォルダにコピーするだけです。そこから、必要に応じて両方を変更できます。

私が収集できるもの$titleから、node.tpl.phpから印刷物を削除する必要があります。

于 2012-12-04T17:10:21.693 に答える
2

申し訳ありませんが、「プレゼンテーションの管理」でタイトルタグを非表示にするのと同じくらい簡単でした...

あなたはあなたの応答に大丈夫です、しかしそれらは私が必要としていたものではありませんでした...ありがとう!

于 2012-12-07T09:29:12.677 に答える
2

以前にも同様の問題がありましたが、私が覚えている限りif、コードにステートメントを追加しました。

<?php if (blah-blah-blah): ?>
   <h2> <?php echo $title; ?> </h2>
<?php endif; ?>

うまくいけば、それはあなたに手がかりを与えるでしょう。

その他の考え:ifステートメントをpage.tpl.php作成するか、それを書き直すだけでなく、特定のpage-node-type.tpl.phpファイルを作成してそのファイルのみを上書きするか$title、Views/Panelsモジュールを介してページの出力をカスタマイズすることもできます。

また、どのタイトルを削除したいのか、はっきりさせていただけますか?ページタイトルまたはノードタイトル?また、分類用語に関連付けられているノードを探している場合(つまり、/taxonomy/term/nページ上にいる場合)にのみ削除する必要があります。

于 2012-12-05T10:49:42.183 に答える
2

Contextモジュールを使用すると、本体にクラスを追加できるため、CSSの分類ページのみをターゲットにできます。

コンテキストモジュールを使用してボディクラスを設定する

于 2012-12-07T03:04:11.627 に答える
1

[ノードタイトルの除外]モジュールを使用します。

https://drupal.org/project/exclude_node_title

于 2014-02-20T07:18:44.570 に答える
0

特定のノードに対するもう1つの優れたソリューションは、すべてのテーマで実装する必要がある標準の$ title_prefix/suffix変数を使用することです。標準クラス要素の使用-ページの前処理では表示されません。

お気に入り:

/**
 * Implements hook_preprocess_page().
 */
function YOUR_THEME_preprocess_page(&$variables) {

  if (isset($variables['node']) && $variables['node']->nid == 1) {
    $variables['title_prefix'] = array('#markup' => '<div class="element-invisible">');
    $variables['title_suffix'] = array('#markup' => '</div>');
  }
}
于 2015-08-03T15:12:48.153 に答える
0

すべてのページに見出しを含める必要があります。

Webページ内の見出しの構造化された階層を常に維持する必要があります。見出しを空白にしたり、display:none;で非表示にしたりしないでください。訪問者には表示されないが検索エンジンには表示されないコンテンツを非表示にすることは、検索エンジンの結果を含めることによってのみ操作することを意図しているため、Googleのガイドラインに違反します。デザインに合うようにH1のスタイルを変更するのが最良のオプションです。

それでも非表示にする必要がある場合は、そのノード、コンテンツタイプ、またはページのテンプレートを作成し、見出しを印刷しない方がよいでしょう。

または、CSSを使用する場合は、position:absoluteを使用して、見出しがページ内のスペースを使用せず、text-indent:-9999px; そのため、テキストは画面から移動して表示されなくなりますが、少なくともスクリーンリーダーと検索エンジンで読み取ることができます。

于 2015-08-12T10:57:12.253 に答える
0

これが私がやった方法です、Switchステートメント

//ノードの名前を取得します

$ node_name = node_type_get_name($ node);

//次に、$titleオブジェクトを空の文字列で上書きして//除外するコンテンツタイプを追加します

      switch ($node_name) {
           case 'Home page':
                $title = '' ;
                 break;
           case 'Event':
                $title = '';
                 break;
           case 'Offer':
                $title = '';
               break;
             }
于 2016-08-18T14:49:51.423 に答える