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

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

TEXT BY @hippohack@hippohack
TEXT BY @hippohack@hippohack
  • このエントリーをはてなブックマークに追加

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要素とか書いておきます。

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


最後までお読みいただき、ありがとうございました。

ご意見などありましたら@hippohackへDMをお願いいたします。

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