functions.phpカスタマイズ
クラシックエディタにする
// クラシックエディタ
add_filter( 'use_block_editor_for_post', '__return_false' );
ショートコード追加
テーマファイルへのリンク
functions.phpに以下の記述を追加
// ショートコード追加(テーマファイルへのリンク)
function shortcode_templateurl() {
return get_stylesheet_directory_uri();
//return get_template_directory_uri();
}
add_shortcode('tpl_url', 'shortcode_templateurl');
/テーマ/img/test.jpgの画像を表示したい場合
投稿ページ or 固定ページにショートコードを記載
<img src="[tpl_url]/img/test.jpg">
phpファイルを読み込み
functions.phpに以下の記述を追加
// ショートコード追加(php読み込み)
function sc_php($atts = array()) {
shortcode_atts(array( /* shortcode_atts でショートコードの属性名を指定 */
'file' => 'default' /* 属性名とデフォルトの値 */
), $atts); /* 属性を格納する変数 */
ob_start(); /* バッファリング */
include(STYLESHEETPATH . "/$atts[file].php"); /* CSSのあるパス = 子テーマのパスを指定 */
return ob_get_clean(); /* バッファの内容取得、出力バッファを削除 */
}
add_shortcode('sc', 'sc_php');
/テーマ/modules/banner.phpファイルを読み込む場合
投稿ページ or 固定ページにショートコードを記載
[sc file='modules/banner']
固定ページ読み込み
functions.phpに以下の記述を追加
// ショートコード追加(固定ページ読み込み)
function page_content_include($atts) {
extract(shortcode_atts(array(
'slug' => 'default'
), $atts, 'page_scode'));
ob_start();
$page_info = get_page_by_path( $slug );
$page = get_post($page_info);
ob_end_clean();
return do_shortcode( $page->post_content );
}
add_shortcode('page_scode', 'page_content_include');
固定ページ「page_slug」を表示させる場合
投稿ページ or 固定ページにショートコードを記載
[page_scode slug='page_slug']
bodyにスラッグを用いたclassを追加する
// bodyにスラッグを用いたclassを追加する
add_filter( 'body_class', 'add_page_slug_class_name' );
function add_page_slug_class_name( $classes ) {
if ( is_page() ) {
$page = get_post( get_the_ID() );
$classes[] = $page->post_name;
}
return $classes;
}
固定ページで自動タグ挿入を停止
// 固定ページで自動<p>タグ挿入を停止
add_filter('the_content', 'wpautop_filter', 9);
function wpautop_filter($content) {
global $post;
$remove_filter = false;
$arr_types = array('page');
$post_type = get_post_type( $post->ID );
if (in_array($post_type, $arr_types)) $remove_filter = true;
if ( $remove_filter ) {
remove_filter('the_content', 'wpautop');
remove_filter('the_excerpt', 'wpautop');
}
return $content;
}
まとめ
// クラシックエディタ
add_filter( 'use_block_editor_for_post', '__return_false' );
// ショートコード追加(テーマファイルへのリンク)
function shortcode_templateurl() {
return get_stylesheet_directory_uri();
//return get_template_directory_uri();
}
add_shortcode('tpl_url', 'shortcode_templateurl');
// ショートコード追加(php読み込み)
function sc_php($atts = array()) {
shortcode_atts(array( /* shortcode_atts でショートコードの属性名を指定 */
'file' => 'default' /* 属性名とデフォルトの値 */
), $atts); /* 属性を格納する変数 */
ob_start(); /* バッファリング */
include(STYLESHEETPATH . "/$atts[file].php"); /* CSSのあるパス = 子テーマのパスを指定 */
return ob_get_clean(); /* バッファの内容取得、出力バッファを削除 */
}
add_shortcode('sc', 'sc_php');
// ショートコード追加(固定ページ読み込み)
function page_content_include($atts) {
extract(shortcode_atts(array(
'slug' => 'default'
), $atts, 'page_scode'));
ob_start();
$page_info = get_page_by_path( $slug );
$page = get_post($page_info);
ob_end_clean();
return do_shortcode( $page->post_content );
}
add_shortcode('page_scode', 'page_content_include');
// bodyにスラッグを用いたclassを追加する
add_filter( 'body_class', 'add_page_slug_class_name' );
function add_page_slug_class_name( $classes ) {
if ( is_page() ) {
$page = get_post( get_the_ID() );
$classes[] = $page->post_name;
}
return $classes;
}
// 固定ページで自動<p>タグ挿入を停止
add_filter('the_content', 'wpautop_filter', 9);
function wpautop_filter($content) {
global $post;
$remove_filter = false;
$arr_types = array('page');
$post_type = get_post_type( $post->ID );
if (in_array($post_type, $arr_types)) $remove_filter = true;
if ( $remove_filter ) {
remove_filter('the_content', 'wpautop');
remove_filter('the_excerpt', 'wpautop');
}
return $content;
}