web-dev-qa-db-ja.com

ノードの作成日を表示するには

テンプレートファイルでformat_date()を使用して、作成した日付を出力してみました。

私はこのチュートリアルに従いました http://webwash.net/tutorials/handling-date-and-time-drupal-7

日付形式「d、j M y」と日付タイプ「article」を作成し、コードから呼び出しました。

<?php print format_date($node->changed, 'article') ?> 

ただし、表示される日付は、作成された日付ではなく、更新された日付です。

ノードの作成日を表示するにはどうすればよいですか?

8
Jeremy

「作成された」と呼ばれるノードオブジェクトのプロパティがあります。これはあなたが求めているものであり、「変更」を使用したのとまったく同じ方法で使用できます。

<?php print format_date($node->created, 'article'); ?>
17
Sam152

最初のステップ

最初のステップは、次のURLのコンテンツタイプ編集ページで「著者と日付情報の表示」を有効にすることです。

/ admin/structure/types/manage/[your_custom_content_type]

...以下に示すように:

enter image description here

データを取得

Node.tpl.phpファイルでこのデータを取得し、投稿日のテーマを変更できます。理想的には、これはカスタムノードテンプレート用であり、メインのnode.tpl.phpファイル用ではありません。私の場合、ブログと呼ばれるコンテンツタイプがあり、ブログの投稿の場合、投稿の日付をこのように表示するだけです。私はnode.tpl.php(私のテーマフォルダーにあります)を取得し、コピーして名前をnode--blog.tpl.phpに変更します。 Drupalの新機能である「二重ダッシュ」に注意してください。

置き換えるコードを見つける

新しいnode--blog.tpl.phpファイルを見ると、PHPコードが表示されているのがわかります。その後、次のように変更します。

<?php if ($display_submitted): ?>
  <div class="submitted"><?php print $date; ?> -- <?php print $name; ?></div>
  <?php endif; ?>

私はこれをいくつかのカスタムPHPコードで本質的に日付を部分に分解し、著者名を取り除くことで置き換えます)(これを簡単に追加してテーマに戻すことができます)。

コード化

これが新しいコードです。

<?php if ($submitted) { ?>

   <div class="date-in-parts">
       <span class="day"><?php  echo date("j", $node->created); ?></span>
       <span class="month"><?php echo date("M", $node->created); ?></span>
       <span class="year"><?php echo date("Y", $node->created); ?></span>
    </div><!--//date-in-parts -->

  <?php } ?>
2
Adi