Genesisフレームワークで個別記事ページのみ「genesis_entry_header」の場所を移動させる方法。
まずはソースを。
File: functions.php
-------------------------
add_action( 'genesis_before', 'singlular_Only_Hook' );
function singlular_Only_Hook(){
if(is_singular()){
remove_action('genesis_entry_header', 'genesis_do_post_format_image', 4 );//
remove_action('genesis_entry_header', 'genesis_do_post_title', 10);//タイトルを削除
remove_action('genesis_entry_header', 'genesis_entry_header_markup_open', 5 );//を削除
remove_action('genesis_entry_header', 'genesis_entry_header_markup_close', 15 );// を削除
remove_action('genesis_entry_header', 'genesis_post_info', 12);//post_infoを削除(日時等)
//全部削除するときは1行で書ける
//remove_all_actions('genesis_entry_header');
add_action('genesis_after_header', 'genesis_do_post_format_image',4 );
add_action('genesis_after_header', 'after_entry_header_markup_open', 5 );
add_action('genesis_after_header', 'genesis_do_post_title', 10 );
add_action('genesis_after_header', 'genesis_post_info',12);
add_action('genesis_after_header', 'after_entry_header_markup_close', 15 );
//class名を変える
function after_entry_header_markup_open(){
echo '';
}
function after_entry_header_markup_close(){
echo ' ';
}
}
}
1.is_singular()で条件分岐
今回は、個別記事ページのみ移動をさせたいので、個別の投稿を表示中であるかの判定がまとめてできるis_singular()がTrueの場合のみ移動させるようにしています。
条件分岐タグis_singular()とは?
個別の投稿を表示中であるかチェックする条件分岐タグで、
is_single():投稿ページ
is_page():固定ページ
is_attachment():アップロードされたイメージや他のファイル
のいずれかがtrue(表示されている場合)の場合にis_singular()はtrueとなります。
2.消して、移動させるだけ
remove_actionでgenesis_entry_header内のアクションをそれぞれ削除しています。
genesis_entry_headerを一括で削除する場合は、remove_all_actions()が便利です。
今回は、「genesis_after_header」に移動したかったため、
そして、「genesis_after_header」フックに追加しています。
genesis_after_headerをラップするclass名を変更したかったため、関数でdivを追加しています。
以上です。
コメントを残す