web-dev-qa-db-ja.com

特定のノードのタイトルを非表示にするにはどうすればよいですか?

特定のノードのタイトルを非表示にするにはどうすればよいですか?

私は次の3つのモジュールを試しましたが、どれも私が望んでいることをしていません。

  1. ページタイトル

  2. ノードのタイトルを除外

  3. 自動Nodeタイトル

ページのコンテンツタイプ、hook_preprocess_node()関数のコードにfield_hide_titleを追加しました。うまく動かない。

screenshot

print_r($vars['node'])から表示される値は次のとおりです。

 stdClass Object(
 [vid] => 4 
 [uid] => 1 
 [title] => search_material 
 [log] = > 
 [ステータス] => 1 
 [コメント] => 1 
 [プロモート] => 0 
 [スティッキー] => 0 
 [nid] => 4 
 [type] => page 
 [language] => zh-hant 
 [created] => 1339055801 
 [changed] = > 1339727555 
 [tnid] => 0 
 [translate] => 0 
 [revision_timestamp] => 1339727555 
 [revision_uid] => 1 
 [body] => Array(
 [und] => Array(
 [0] => Array(
 [value] => 
 [概要] => 
 [format] => php_code 
)
)
)
 [field_hide_title] => Array(
 [und ] => Array(
 [0] => Array([value] => 1)
)
)
 [rdf_mapping] => Array(
 [rdftype] => Array([0] => foaf:Document)
 [title] => Array(
 [述語] => Array([0] => dc:題名)
    )
 [作成] =>配列(
 [述語] =>配列(
 [0] => dc:date 
 [1] => dc:created 
 )
 [datatype] => xsd:dateTime 
 [callback] => date_iso8601 
)
 [changed] => Array(
 [述語] => Array([0] => dc:modified)
 [datatype] => xsd:dateTime 
 [callback] => date_iso8601 
)
 [本文] => Array(
 [述語] => Array([0] => content:encoded)
)
 [uid] => Array(
 [述語] => Array([0] => sioc:has_creator)
 [type] => rel 
)
 [name] => Array(
 [述語] =>配列([0] => foaf:name)
)
 [comment_count] =>配列(
 [述語] =>配列([0] = > sioc:num_replies)
 [datatype] => xsd:integer 
)
 [last_activity] => Array(
 [述語] =>配列([0 ] => sioc:last_activity_date)
 [da tatype] => xsd:dateTime 
 [callback] => date_iso8601 
)
)
 [cid] => 0 
 [last_comment_timestamp] = > 1339055801 
 [last_comment_name] => 
 [last_comment_uid] => 1 
 [comment_count] => 0 
 [name] => admin 
 [画像] => 0 
 [データ] => b:0; 
 [entity_view_prepared] => 1 
)

================================================== ==========更新:

しかし、私は一つのことを見つけました。タイトルをNULLに変更する前に、タイトルが表示されています...

mytheme_preprocess_page関数のprint_r($ vars):

[概要] => [フォーマット] => php_code)))[field_hide_title] =>配列([und] =>配列([0] =>配列([値] => 1)))[rdf_mapping] =>配列([rdftype] =>配列([0] => foaf:Document)[title] =>配列([述語] =>配列([0] => dc:title))[作成済み] =>配列([述語] =>配列([0] => dc:date 1 => dc:created)[datatype] => xsd:dateTime [callback] => date_iso8601)[changed] =>配列([ predicates] => Array([0] => dc:modified)[datatype] => xsd:dateTime [callback] => date_iso8601)[body] => Array([predicates] => Array([0] => content :encoded))[uid] => Array([predicates] => Array([0] => sioc:has_creator)[type] => rel)[name] => Array([predicates] => Array([0 ] => foaf:name))[comment_count] => Array([predicates] => Array([0] => sioc:num_replies)[datatype] => xsd:integer)[last_activity] => Array([predicates] =>配列([0] => sioc:last_activity_date)[datatype] => xsd:dateTime [callback] => date_iso8601))[cid] => 0 [last_comme nt_timestamp] => 1339039221 [last_comment_name] => [last_comment_uid] => 1 [comment_count] => 0 [name] => admin [picture] => 0 [data] => b:0; [entity_view_prepared] => 1))

3
user6919

フラグとして機能するcckフィールド(チェックボックス/ブール)を作成できます。したがって、ノードを非表示にするかどうかを動的に選択できます。

疑似コード:

Template.php

function yourtTheme_process_page(&$variables) {
  if($variables['node']->field_hide_title['und'][0]['value']) {
    $variables['title'] = NULL;
  }
}

このコードは試していませんが、これでうまくいくと思います。

編集:新しいフィールドのスクリーンショットを追加しました enter image description here

これはcckの値である必要があります enter image description here

16
ninjascorner

CSSを使用します。

個々のノードごとに、ページの<body>タグに特定のクラスがあり、特定のノードをターゲットにすることができます。

たとえば、ノード69のタイトルを非表示にしようとしているとすると、次のようになります。

.page-node-69 .page-title { 
  display: none;
}

ノード150の場合、次のようになります。

.page-node-150 .page-title { 
  display: none;
}

テーマに応じて微調整する必要がある場合や、カスケードのさらに上位にある特定性がある場合に備えて、ページタイトル(つまりh1.page-title)をより具体的にターゲティングする必要がある場合があります。

3
Chapabu

私はあなたがtemplate.phpにこのようなものを追加できると思います:

function YOURTHEME_preprocess_node(&$node) {
    // check if it's the node of interest
    if($node['title'] == 'your-specific-node-title') {
       // set the title to NULL so nothing is rendered
       $node['title'] = NULL; 
    }
}

chapab が示唆するように、タイトルの代わりにノードのnidを確認する方が良いかもしれません:

if($node['nid'] == 'your-node-nid') {
   ...
}
2
Cyclonecode

タイトルのCSSはタイトルのクラスとpage-titleのIDなので、私のCSSは

.page-node-69 #page.title {
   display: none; 
}

これが機能するために。

0
pixelshrink