:where(:not(.alignleft):not(.alignright):not(.alignfull)), div.block-editor-block-list__layout.is-root-container > :where(:not(.alignleft):not(.alignright):not(.alignfull)) { max-width: ".$main_column_contents_width."px; }"; // ハンドルは 'wp-block-editor'(新しめ)または 'wp-edit-blocks'(互換) wp_add_inline_style('wp-block-editor', $css); } // // テーマ内のCSSファイルのパスを構築 // $css_file_path = get_template_directory() . '/css/gutenberg-editor.css'; // $css_file_url = get_template_directory_uri() . '/css/gutenberg-editor.css'; // // ファイルが存在するかチェック // if (file_exists($css_file_path)) { // wp_enqueue_style( // 'theme-gutenberg-editor-styles', // ハンドル名 // $css_file_url, // CSSファイルのURL // array(), // 依存関係 // filemtime($css_file_path), // バージョン(ファイルの更新時刻を使用) // 'all' // メディアタイプ // ); // } // ブロックエディターに翻訳ファイルを読み込む wp_set_script_translations( 'cocoon-blocks-js', THEME_NAME, get_cocoon_template_directory() . '/languages' ); //ショートコードオブジェクトの取得 $balloons = get_speech_balloons(null, 'title'); $colors = ['keyColor' => get_editor_key_color()]; $templates = get_function_texts(null, 'title'); $affiliates = get_affiliate_tags(null, 'title'); $rankings = get_item_rankings(null, 'title'); $is_templates_visible = has_valid_shortcode_item($templates) && is_block_editor_template_shortcode_dropdown_visible() ? 1 : 0; $is_affiliates_visible = has_valid_shortcode_item($affiliates) && is_block_editor_affiliate_shortcode_dropdown_visible() ? 1 : 0; $is_rankings_visible = has_valid_shortcode_item($rankings) && is_block_editor_ranking_shortcode_dropdown_visible() ? 1 : 0; global $wp_version; $gutenberg_settings = [ 'isRubyVisible' => is_block_editor_ruby_button_visible() ? 1 : 0, 'isClearFormatVisible' => is_block_editor_clear_format_button_visible() ? 1 : 0, 'isLetterVisible' => is_block_editor_letter_style_dropdown_visible() ? 1 : 0, 'isMarkerVisible' => is_block_editor_marker_style_dropdown_visible() ? 1 : 0, 'isBadgeVisible' => is_block_editor_badge_style_dropdown_visible() ? 1 : 0, 'isFontSizeVisible' => is_block_editor_font_size_style_dropdown_visible() ? 1 : 0, 'isGeneralVisible' => is_block_editor_general_shortcode_dropdown_visible() ? 1 : 0, 'isTemplateVisible' => $is_templates_visible, 'isAffiliateVisible' => $is_affiliates_visible, 'isRankingVisible' => $is_rankings_visible, 'isSpeechBalloonEnable' => $balloons ? 1 : 0, 'isAdsVisible' => is_ads_visible() ? 1 : 0, 'isAdShortcodeEnable' => is_ad_shortcode_enable() ? 1 : 0, 'speechBalloonDefaultIconUrl' => get_cocoon_template_directory_uri() . '/images/anony.png', 'siteIconFont' => ' ' . get_site_icon_font_class(), 'pageTypeClass' => get_editor_page_type_class(), 'isDebugMode' => DEBUG_MODE, 'wpVersion' => $wp_version, 'templateUrl' => get_cocoon_template_directory_uri(), 'customTextCount' => apply_filters( 'cocoon_custom_text_count', 2), ]; // _v(is_block_editor_template_shortcode_dropdown_visible()); // _v( $is_templates_visible); /////////////////////////////////////////// // 表示 /////////////////////////////////////////// wp_localize_script( 'cocoon-blocks-js', //値を渡すjsファイルのハンドル名 'gbSettings', //任意のオブジェクト名 $gutenberg_settings //プロバティ ); /////////////////////////////////////////// // オブジェクト渡し /////////////////////////////////////////// //吹き出し情報を渡す wp_localize_script( 'cocoon-blocks-js', //値を渡すjsファイルのハンドル名 'gbSpeechBalloons', //任意のオブジェクト名 $balloons //プロバティ ); //テーマのキーカラーを渡す wp_localize_script( 'cocoon-blocks-js', //値を渡すjsファイルのハンドル名 'gbColors', //任意のオブジェクト名 $colors //プロバティ ); //テンプレート情報を渡す wp_localize_script( 'cocoon-blocks-js', //値を渡すjsファイルのハンドル名 'gbTemplates', //任意のオブジェクト名 $templates //プロバティ ); //アフィリエイト情報を渡す if ($is_affiliates_visible) { wp_localize_script( 'cocoon-blocks-js', //値を渡すjsファイルのハンドル名 'gbAffiliateTags', //任意のオブジェクト名 $affiliates //プロバティ ); } //ランキング情報を渡す wp_localize_script( 'cocoon-blocks-js', //値を渡すjsファイルのハンドル名 'gbItemRankings', //任意のオブジェクト名 $rankings //プロバティ ); //メニュー情報を渡す $menus = wp_get_nav_menus(); wp_localize_script( 'cocoon-blocks-js', //値を渡すjsファイルのハンドル名 'gbNavMenus', //任意のオブジェクト名 $menus //プロバティ ); //プロフィール情報を渡す $users = get_users(['fields' => ['ID', 'display_name']]); wp_localize_script( 'cocoon-blocks-js', //値を渡すjsファイルのハンドル名 'gbUsers', //任意のオブジェクト名 $users //プロバティ ); //カラーパレット情報渡し wp_localize_script( 'cocoon-blocks-js', //値を渡すjsファイルのハンドル名 'cocoonPaletteColors', //任意のオブジェクト名 get_cocoon_editor_color_palette_colors() //カラーパレット ); //言語情報渡し wp_localize_script( 'cocoon-blocks-js', //値を渡すjsファイルのハンドル名 'gbCodeLanguages', //任意のオブジェクト名 get_block_editor_code_languages() //カラーパレット ); // Amazon商品リンクブロックの初期値をCocoon設定から渡す $amazon_api_name = ''; $amazon_api_version = ''; if ( function_exists( 'is_amazon_creators_api_credentials_available' ) && is_amazon_creators_api_credentials_available() ) { $amazon_api_name = __( 'Creators API', THEME_NAME ); if ( function_exists( 'amazon_creators_api_get_version' ) && function_exists( 'get_amazon_creators_api_credential_id' ) ) { $amazon_api_version = 'v' . amazon_creators_api_get_version( get_amazon_creators_api_credential_id() ); } } else { if ( function_exists( 'get_amazon_api_access_key_id' ) && get_amazon_api_access_key_id() && function_exists( 'get_amazon_api_secret_key' ) && get_amazon_api_secret_key() ) { $amazon_api_name = __( 'PA-API', THEME_NAME ); $amazon_api_version = 'v5'; } } $amazon_block_defaults = array( // 枠線を表示するか(常に有効) 'showBorder' => 1, // Amazonロゴを表示するかどうか 'showLogo' => is_amazon_item_logo_visible() ? 1 : 0, // カタログ画像(バリエーション画像)を表示するかどうか 'showCatalogImages' => is_amazon_item_catalog_image_visible() ? 1 : 0, // 価格を表示するかどうか 'showPrice' => is_amazon_item_price_visible() ? 1 : 0, // 商品説明を表示するかどうか 'showDescription' => is_amazon_item_description_visible() ? 1 : 0, // カスタマーレビューを表示するかどうか 'showReview' => is_amazon_item_customer_reviews_visible() ? 1 : 0, // Amazon検索ボタンを表示するかどうか 'showAmazonButton' => is_amazon_search_button_visible() ? 1 : 0, // 楽天検索ボタンを表示するかどうか 'showRakutenButton' => is_rakuten_search_button_visible() ? 1 : 0, // Yahoo!検索ボタンを表示するかどうか 'showYahooButton' => is_yahoo_search_button_visible() ? 1 : 0, // メルカリ検索ボタンを表示するかどうか 'showMercariButton' => is_mercari_search_button_visible() ? 1 : 0, // もしもアフィリエイトリンクを使用するかどうか 'useMoshimoAffiliate' => is_moshimo_affiliate_link_enable() ? 1 : 0, // もしものAmazon/楽天/Yahoo! IDが設定済みかどうか(設定パネルの表示制御用) 'hasMoshimoIds' => (get_moshimo_amazon_id() || get_moshimo_rakuten_id() || get_moshimo_yahoo_id()) ? 1 : 0, 'apiName' => $amazon_api_name, 'apiVersion' => $amazon_api_version, ); wp_localize_script( 'cocoon-blocks-js', 'gbAmazonBlockDefaults', $amazon_block_defaults ); // 楽天商品リンクブロックの初期値をCocoon設定から渡す $rakuten_api_name = ''; $rakuten_api_version = ''; if ( function_exists( 'get_rakuten_application_id' ) && get_rakuten_application_id() && function_exists( 'get_rakuten_affiliate_id' ) && get_rakuten_affiliate_id() ) { $rakuten_api_name = __( '楽天商品検索API', THEME_NAME ); if ( function_exists( 'get_rakuten_access_key' ) && trim( get_rakuten_access_key() ) ) { $rakuten_api_version = COCOON_RAKUTEN_API_VERSION; } else { $rakuten_api_version = COCOON_RAKUTEN_API_LEGACY_VERSION; } } $rakuten_block_defaults = array( // 枠線を表示するか(常に有効) 'showBorder' => 1, // 楽天ロゴを表示するかどうか 'showLogo' => is_rakuten_item_logo_visible() ? 1 : 0, // 商品説明を表示するかどうか 'showDescription' => is_rakuten_item_description_visible() ? 1 : 0, // 価格を表示するかどうか 'showPrice' => is_rakuten_item_price_visible() ? 1 : 0, // Amazon検索ボタンを表示するかどうか 'showAmazonButton' => is_amazon_search_button_visible() ? 1 : 0, // 楽天検索ボタンを表示するかどうか 'showRakutenButton' => is_rakuten_search_button_visible() ? 1 : 0, // Yahoo!検索ボタンを表示するかどうか 'showYahooButton' => is_yahoo_search_button_visible() ? 1 : 0, // メルカリ検索ボタンを表示するかどうか 'showMercariButton' => is_mercari_search_button_visible() ? 1 : 0, // もしもアフィリエイトリンクを使用するかどうか 'useMoshimoAffiliate' => is_moshimo_affiliate_link_enable() ? 1 : 0, // もしものAmazon/楽天/Yahoo! IDが設定済みかどうか(設定パネルの表示制御用) 'hasMoshimoIds' => (get_moshimo_amazon_id() || get_moshimo_rakuten_id() || get_moshimo_yahoo_id()) ? 1 : 0, 'apiName' => $rakuten_api_name, 'apiVersion' => $rakuten_api_version, ); wp_localize_script( 'cocoon-blocks-js', 'gbRakutenBlockDefaults', $rakuten_block_defaults ); } endif; //Cocoonカテゴリーを追加 if (is_admin()) { if (is_wp_5_8_or_over()) { add_filter( 'block_categories_all', 'add_cocoon_theme_block_categories', 10, 2 ); } else { add_filter( 'block_categories', 'add_cocoon_theme_block_categories', 10, 2 ); } } if (!function_exists('add_cocoon_theme_block_categories')): function add_cocoon_theme_block_categories($categories, $post) { $block_categories = array_merge($categories, [ [ 'slug' => THEME_NAME . '-block', 'title' => __('Cocoonブロック', THEME_NAME), //'icon' => 'heart', ], [ 'slug' => THEME_NAME . '-universal-block', 'title' => __('Cocoon汎用ブロック', THEME_NAME), //'icon' => 'heart', ], [ 'slug' => THEME_NAME . '-micro', 'title' => __('Cocoonマイクロコピー', THEME_NAME), //'icon' => 'heart', ], [ 'slug' => THEME_NAME . '-layout', 'title' => __('Cocoonレイアウト', THEME_NAME), //'icon' => 'heart', ], [ 'slug' => THEME_NAME . '-shortcode', 'title' => __('Cocoonショートコード', THEME_NAME), //'icon' => 'heart', ], [ 'slug' => THEME_NAME . '-old', 'title' => __('Cocoon旧ブロック(非推奨)', THEME_NAME), //'icon' => 'heart', ], ]); //ブロックカテゴリーのフィルターフック $block_categories = apply_filters( 'cocoon_theme_block_categories', $block_categories ); return $block_categories; } endif; //許可するブロックを配列で返す(ホワイトリスト形式で実用性がない…) if (is_wp_5_8_or_over()) { add_filter('allowed_block_types_all', 'cocoon_allowed_block_types_custom'); } else { add_filter('allowed_block_types', 'cocoon_allowed_block_types_custom'); } if (!function_exists('cocoon_allowed_block_types_custom')): function cocoon_allowed_block_types_custom($allowed_block_types) { return $allowed_block_types; } endif; //カラーパレット add_action('after_setup_theme', 'cocoon_editor_color_palette_setup'); if (!function_exists('cocoon_editor_color_palette_setup')): function cocoon_editor_color_palette_setup() { $colors = get_cocoon_editor_color_palette_colors(); // カラーパレットの設定 add_theme_support('editor-color-palette', $colors); // // カスタム色を無効 // add_theme_support('disable-custom-colors'); // // カスタムフォントサイズを無効 // add_theme_support('disable-custom-font-sizes'); // 行の高さ add_theme_support('custom-line-height'); // 寸法設定 add_theme_support('custom-spacing'); // 単位設定 add_theme_support('custom-units'); // リンクカラー設定 add_theme_support( 'link-color' ); return $colors; } endif; //「ブロック下余白」のattributesに値格納用のextraBottomMargin追加(「ブロック読み込みエラー: 無効なパラメータ: attributes」エラー対策) add_filter('register_block_type_args', 'register_block_type_args_custom', 10, 2); if (!function_exists('register_block_type_args_custom')): function register_block_type_args_custom($args, $name) { $extra_attributes = array( "extraBottomMargin" => array( "type" => "string", "default" => "", ) ); if (isset($args['attributes']) && is_array($args['attributes'])) { $args['attributes'] = array_merge($args['attributes'], $extra_attributes); } return $args; } endif; //ブロックの読み込み require_once abspath(__FILE__) . 'block/balloon/index.php'; require_once abspath(__FILE__) . 'block/blank-box/index.php'; require_once abspath(__FILE__) . 'block/blogcard/index.php'; require_once abspath(__FILE__) . 'block/button/index.php'; require_once abspath(__FILE__) . 'block/button-wrap/index.php'; require_once abspath(__FILE__) . 'block/icon-box/index.php'; require_once abspath(__FILE__) . 'block/icon-list/index.php'; require_once abspath(__FILE__) . 'block/info-box/index.php'; require_once abspath(__FILE__) . 'block/search-box/index.php'; require_once abspath(__FILE__) . 'block/sticky-box/index.php'; require_once abspath(__FILE__) . 'block/tab-box/index.php'; require_once abspath(__FILE__) . 'block/timeline/index.php'; require_once abspath(__FILE__) . 'block/timeline-item/index.php'; require_once abspath(__FILE__) . 'block/toggle-box/index.php'; require_once abspath(__FILE__) . 'block/ranking/index.php'; require_once abspath(__FILE__) . 'block/template/index.php'; require_once abspath(__FILE__) . 'block/box-menu/index.php'; require_once abspath(__FILE__) . 'block/ad/index.php'; require_once abspath(__FILE__) . 'block/profile/index.php'; require_once abspath(__FILE__) . 'block/new-list/index.php'; require_once abspath(__FILE__) . 'block/popular-list/index.php'; require_once abspath(__FILE__) . 'block/info-list/index.php'; require_once abspath(__FILE__) . 'block/cta/index.php'; require_once abspath(__FILE__) . 'block/radar/index.php'; require_once abspath(__FILE__) . 'block/faq/index.php'; require_once abspath(__FILE__) . 'block/campaign/index.php'; require_once abspath(__FILE__) . 'block/navicard/index.php'; require_once abspath(__FILE__) . 'block/tab/index.php'; require_once abspath(__FILE__) . 'block/tab-item/index.php'; require_once abspath(__FILE__) . 'block/login-user-only/index.php'; require_once abspath(__FILE__) . 'block-universal/caption-box/index.php'; require_once abspath(__FILE__) . 'block-universal/tab-caption-box/index.php'; require_once abspath(__FILE__) . 'block-universal/label-box/index.php'; require_once abspath(__FILE__) . 'micro/micro-balloon/index.php'; require_once abspath(__FILE__) . 'micro/micro-text/index.php';