3v4l.org

run code in 500+ PHP versions simultaneously
<?php function kotonoha_setup() { add_theme_support('title-tag'); add_theme_support('post-thumbnails'); add_theme_support('automatic-feed-links'); add_theme_support('html5', array('search-form', 'gallery', 'caption')); } add_action('after_setup_theme', 'kotonoha_setup'); function kotonoha_enqueue_assets() { $uri = get_template_directory_uri(); wp_enqueue_style('kotonoha-style', $uri . '/css/style.css', array(), '1.0.0'); wp_enqueue_script('kotonoha-cursor', $uri . '/js/cursor.js', array(), '1.0.0', true); } add_action('wp_enqueue_scripts', 'kotonoha_enqueue_assets'); /* ============================================================ * 不動産サンプル記事(カスタム投稿タイプ)+ 専用カテゴリ * -------------------------------------------------------------- * LP「不動産会社向けサイト制作」のサンプル記事を、本体の通常投稿(post)と * 完全に分離して管理・表示するための登録。 * - 投稿タイプ : re_sample(専用メニュー) * - 単一URL : /real-estate-web/sample/{記事スラッグ}/ * - 一覧 : /real-estate-web/sample/(アーカイブ) * - 分類 : re_sample_cat(「相続」「空き家」等で分類) * post とは別タイプのため、本体のブログ/コラム一覧(postのループ)には出ません。 * ============================================================ */ if ( ! function_exists( 'kotonoha_register_re_sample' ) ) { function kotonoha_register_re_sample() { // ── 専用カテゴリ(タクソノミー):相続・空き家 などで分類 ── $re_sample_tax_labels = array( 'name' => '不動産サンプル記事カテゴリ', 'singular_name' => '不動産サンプル記事カテゴリ', 'menu_name' => 'カテゴリ', 'all_items' => 'すべてのカテゴリ', 'edit_item' => 'カテゴリを編集', 'view_item' => 'カテゴリを表示', 'update_item' => 'カテゴリを更新', 'add_new_item' => '新規カテゴリを追加', 'new_item_name' => '新しいカテゴリ名', 'search_items' => 'カテゴリを検索', ); register_taxonomy( 're_sample_cat', array( 're_sample' ), array( 'labels' => $re_sample_tax_labels, 'hierarchical' => true, // カテゴリ型(チェックボックス選択) 'public' => true, 'show_ui' => true, 'show_admin_column' => true, 'show_in_rest' => true, 'rewrite' => array( 'slug' => 'real-estate-web/sample/category', 'with_front' => false, ), ) ); // ── カスタム投稿タイプ:不動産サンプル記事 ── $re_sample_cpt_labels = array( 'name' => '不動産サンプル記事', 'singular_name' => '不動産サンプル記事', 'menu_name' => '不動産サンプル記事', 'add_new' => '新規追加', 'add_new_item' => '新規サンプル記事を追加', 'edit_item' => 'サンプル記事を編集', 'new_item' => '新規サンプル記事', 'view_item' => 'サンプル記事を表示', 'view_items' => 'サンプル記事一覧を表示', 'search_items' => 'サンプル記事を検索', 'not_found' => 'サンプル記事が見つかりませんでした', 'not_found_in_trash' => 'ゴミ箱にサンプル記事はありません', 'all_items' => 'サンプル記事一覧', ); register_post_type( 're_sample', array( 'labels' => $re_sample_cpt_labels, 'public' => true, 'show_ui' => true, 'show_in_menu' => true, // 管理画面に専用メニューとして表示 'show_in_rest' => true, // ブロックエディタ対応 'menu_icon' => 'dashicons-admin-home', 'menu_position' => 25, 'hierarchical' => false, 'has_archive' => 'real-estate-web/sample', // 一覧(アーカイブ) 'rewrite' => array( 'slug' => 'real-estate-web/sample', // 単一記事のURL基点 'with_front' => false, ), // 本体ブログ(post)と分離:通常投稿のループには含まれない 'supports' => array( 'title', 'editor', 'excerpt', 'thumbnail' ), 'taxonomies' => array( 're_sample_cat' ), ) ); } } add_action( 'init', 'kotonoha_register_re_sample' ); /* ============================================================ * 記事末 CTA ショートコード [kcta type="..."] * -------------------------------------------------------------- * 記事本文の末尾に [kcta type="realestate"] のように書くと、 * 対応する CTA ブロックを表示する。 * type="realestate" 不動産サイト制作・Web集客 * type="shigyo" 士業サイト制作 * type="ai" AI記事監修 * type="general" コンテンツ制作のご相談(type 省略・不正時の既定値) * スタイルは style.css の .kcta__ 系クラスに定義(<style> の都度出力はしない)。 * リンク先スラッグは固定。home_url()+esc_url() でURL、esc_html() で文言をエスケープ。 * ============================================================ */ if ( ! function_exists( 'kotonoha_cta_shortcode' ) ) { function kotonoha_cta_shortcode( $atts ) { $atts = shortcode_atts( array( 'type' => 'general' ), $atts, 'kcta' ); $ctas = array( 'realestate' => array( 'label' => '不動産サイト制作・Web集客', 'title' => '反響につながる不動産サイトを、一緒に。', 'desc' => '不動産会社のサイト制作からSEO・専門コンテンツまで、宅建士資格を持つ作り手が一貫して支援します。', 'btn' => '不動産サイト制作について見る', 'slug' => '/real-estate-web/', ), 'shigyo' => array( 'label' => '士業サイト制作', 'title' => '専門性と相談しやすさが伝わるサイトへ。', 'desc' => '士業事務所の強みや専門分野を整理し、初めて訪れた方にも伝わるサイト設計と文章制作を支援します。', 'btn' => '士業サイト制作について見る', 'slug' => '/shigyo-web/', ), 'ai' => array( 'label' => 'AI記事監修', 'title' => 'AI原稿を、そのまま公開していませんか?', 'desc' => '事実確認・表現調整・構成改善まで、有資格の編集者が公開前の原稿を確認します。', 'btn' => 'AI記事監修について見る', 'slug' => '/ai-article-supervision/', ), 'general' => array( 'label' => 'コンテンツ制作のご相談', 'title' => '言葉まわりのこと、まるごと相談できます。', 'desc' => '記事制作・編集・サイト制作まで、必要な範囲からご相談いただけます。', 'btn' => 'お問い合わせはこちら', 'slug' => '/contact/', ), ); // type が省略・不正な値のときは general を表示 $type = isset( $atts['type'] ) ? strtolower( trim( $atts['type'] ) ) : 'general'; if ( ! isset( $ctas[ $type ] ) ) { $type = 'general'; } $cta = $ctas[ $type ]; $url = esc_url( home_url( $cta['slug'] ) ); $html = '<aside class="kcta kcta--' . esc_attr( $type ) . '">'; $html .= '<p class="kcta__label">' . esc_html( $cta['label'] ) . '</p>'; $html .= '<h3 class="kcta__title">' . esc_html( $cta['title'] ) . '</h3>'; $html .= '<p class="kcta__desc">' . esc_html( $cta['desc'] ) . '</p>'; $html .= '<a class="kcta__btn" href="' . $url . '">' . esc_html( $cta['btn'] ) . '</a>'; $html .= '</aside>'; return $html; } add_shortcode( 'kcta', 'kotonoha_cta_shortcode' ); }

preferences:
47.44 ms | 774 KiB | 5 Q