備忘録として。
2025.3.30現在
<?php
/* 子テーマのfunctions.phpは、親テーマのfunctions.phpより先に読み込まれることに注意してください。 */
function my_child_block_editor_styles() {
wp_enqueue_style(
'my-child-block-editor-styles',
get_stylesheet_directory_uri() . '/editor-style.css',
array(),
filemtime( get_stylesheet_directory() . '/editor-style.css' ) // キャッシュ対策
);
}
add_action( 'enqueue_block_editor_assets', 'my_child_block_editor_styles' );
// HTMLサイトマップ用のショートコード
function custom_html_sitemap() {
$output = '';
// 固定ページ一覧
$output .= '<h2>固定ページ</h2><ul>';
$pages = get_pages(array('sort_column' => 'menu_order'));
foreach ($pages as $page) {
$output .= '<li><a href="' . get_permalink($page->ID) . '">' . esc_html($page->post_title) . '</a></li>';
}
$output .= '</ul>';
// 投稿(カテゴリー別)
$output .= '<h2>投稿</h2>';
$categories = get_categories();
foreach ($categories as $category) {
$output .= '<h3>' . esc_html($category->name) . '</h3><ul>';
$posts = get_posts(array(
'category' => $category->term_id,
'numberposts' => -1,
));
foreach ($posts as $post) {
$output .= '<li><a href="' . get_permalink($post->ID) . '">' . esc_html($post->post_title) . '</a></li>';
}
$output .= '</ul>';
}
return $output;
}
add_shortcode('custom_sitemap', 'custom_html_sitemap');
/**
* 親テーマのfunctions.phpのあとで読み込みたいコードはこの中に。
*/
// add_filter('after_setup_theme', function(){
// }, 11);
/**
* 子テーマでのファイルの読み込み
*/
add_action('wp_enqueue_scripts', function() {
$timestamp = date( 'Ymdgis', filemtime( get_stylesheet_directory() . '/style.css' ) );
wp_enqueue_style( 'child_style', get_stylesheet_directory_uri() .'/style.css', [], $timestamp );
/* その他の読み込みファイルはこの下に記述 */
}, 11);
コメント