福岡県久留米市にある小さな、ホームページ・webサイト制作所

猫壱屋 サイト ホームページ 作成 制作

カスタム投稿タイプのタイトルのフォント

2024-08-03

投稿別にタイトルのフォントを変えたくてfunctions.phpに書き込んだ覚書。

確認用に一覧でも反映しています。

//タイトルのフォント選択

function add_font_selection_metabox() {

    add_meta_box(

        'studio_font_selection',

        'タイトルフォント選択',

        'render_font_selection_metabox',

        'studio',

        'side',

        'default'

    );

}

add_action('add_meta_boxes', 'add_font_selection_metabox');

//フォントの選択肢

function render_font_selection_metabox($post) {

    $selected_font = get_post_meta($post->ID, 'selected_font', true);

    $fonts = array("TanukiMagic", "Tamanegi", "OtsutomeFont", "Noto_Sans_JP");

    wp_nonce_field('studio_font_selection_nonce', 'studio_font_selection_nonce');

    foreach ($fonts as $font) {

        echo '<label><input type="radio" name="selected_font" value="' . esc_attr($font) . '" ' . checked($selected_font, $font, false) . '> ' . esc_html($font) . '</label><br>';

    }

}

function save_font_selection_metabox($post_id) {

    if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {

        return $post_id;

    }

    if (!isset($_POST['studio_font_selection_nonce']) || !wp_verify_nonce($_POST['studio_font_selection_nonce'], 'studio_font_selection_nonce')) {

        return $post_id;

    }

    if (isset($_POST['selected_font'])) {

        update_post_meta($post_id, 'selected_font', sanitize_text_field($_POST['selected_font']));

    }

}

add_action('save_post', 'save_font_selection_metabox');

//タイトルのフォント呼び出し

function admin_enqueue_custom_fonts() {

    $screen = get_current_screen();

    if ($screen->post_type === 'studio') {

        wp_enqueue_style('font', get_template_directory_uri() . '/css/font.css', false);

    }

}

add_action('admin_enqueue_scripts', 'admin_enqueue_custom_fonts');

function add_studio_post_classes($classes, $class, $post_id) {

    if (get_post_type($post_id) === 'studio') {

        $selected_font = get_post_meta($post_id, 'selected_font', true);

        if ($selected_font) {

            $classes[] = 'font-' . sanitize_html_class($selected_font);

        }

    }

    return $classes;

}

add_filter('post_class', 'add_studio_post_classes', 10, 3);

//一覧でのフォントcss

function custom_admin_styles() {

    echo '

    <style>

        .post-type-studio .font-TanukiMagic .row-title {

            font-family: "TanukiMagic", sans-serif;

        }

        .post-type-studio .font-Tamanegi .row-title {

            font-family: "Tamanegi", sans-serif;

        }

        .post-type-studio .font-OtsutomeFont .row-title {

            font-family: "OtsutomeFont", sans-serif;

        }

        .post-type-studio .font-Noto_Sans_JP .row-title {

            font-family: "Noto Sans JP", sans-serif;

        }

    </style>

    ';

}

add_action('admin_head', 'custom_admin_styles');

一覧に戻る