START30 BLOG
Web開発に関する備忘録や
日々の雑記ブログ
  • WordPress
  • 2018年9月1日
ENTRY TITLE

WordPressでRailsのyield的なことをしたいときの実装例

  • LINEで送る
  • このエントリーをはてなブックマークに追加

WordPressを弄る触る際にほとんどテンプレートがモジュール化されていないものに遭遇しました。その際、あーRailsぽい構成にしたいなーと思いyield的なことを実現するための実装例を記録しておきます。

もっとよくできるなーとかツッコミどころあるかも。

実装例

[function.php]

// yield
function content_for($name, $method = null) {
    global $obj;
    $obj->$name = $method;
}

function _yield($name) {
  global $obj;
  if ( $name === 'contents' ) {
    return get_template_part('modules/contents/' . $obj->$name);
  } else {
    return get_template_part('modules/' . $name);
  }
}

[layout.php]

_yield('header');
_yield('contents');
_yield('footer');

[index.php]

global $obj;
content_for('contents', 'home');
get_template_part( 'layouts' );
  • 本当に必要な部分しか書いてません。
  • layout.phpでhtmlのhead要素とか書いておきます。

参考にさせていただいたサイト

  • LINEで送る
  • このエントリーをはてなブックマークに追加

RELATED POST関連する記事