※社内専用

基本情報登録(構造化) ドキュメント

  • HOME
  • EPRESS-BS
  • 基本情報登録(構造化) ドキュメント

基本情報登録ページ ドキュメント

概要

epressの初期設定時に構造化マークアップに必要な項目をオプション設定に登録しています。
オプション設定は
http://ドメイン/wp-admin/options.php で見ることができます。

__default-data-setting.php

add_option('org_LocalBusiness', localBusiness_data(), '', 'no');
foreach(org_settings_data() as  $option_name) {
  $val  =  '';
  if( $option_name  ==  'org_businessType') {
    $val  =  'LocalBusiness';
  } elseif( $option_name  ==  'org_logo' ) {
    $val  =  '/wp-content/uploads/logo_org.png';
  } elseif( $option_name  ==  'org_img' ) {
    $val  =  '/wp-content/uploads/logo_ogp.jpg';
  }
  add_option($option_name, $val, '', 'no');
}

更新は基本情報登録ページにて行っています。
epress_thme テーマ解説でも書いた通り
基本情報登録のページは、themes\epress_theme\functions\moduleのbaseinfo.phpでを作成しています。

管理者メニュー登録

baseinfo.php

add_action( 'admin_menu', 'regist_menu_page' );
function  regist_menu_page() {
  add_menu_page( '基本情報', '基本情報', 'manage_options', 'org_plugin/baseinfo-admin.php', 'custom_regist_menu_page' );
}

add_menu_page() トップレベルメニューの追加です。
引数にあるcustom_regist_menu_pageに書かれている内容が管理者メニューに表示されます。

基本情報メニューページ

スクリプト

wp_enqueue_script( 'media-uploader-main-js', get_bloginfo('template_url').'/assets/js/media-uploader-main.js', array( 'jquery' ) );
wp_enqueue_media();

画像アップロードに必要なスクリプトを読み込んでいます。

登録項目

$org_settings  =  org_settings_data();

org_settings_data(); __default_data_setting.php に記述があります。

$get_busiTypes  =  get_option('org_LocalBusiness');

epress初期設定時に登録した、選択可能業種一覧を取得しています。

基本情報ページ

echo  '<div class="wrap"><h1>基本情報登録</h1>';
if( !empty($_POST['submit']) ) { 
  update_regist_menu_page($org_settings); 
}
echo  '<form method="post" action="" enctype="multipart/form-data"><table class="form-table"><tbody>';
foreach ( $org_settings  as  $key  =>  $value ) {
 echo  "<tr><th scope='row'><label for='${value}'>${key}</label></th>";
ー略ー

登録項目を回しながら表示させている。

登録ボタン

「変更保存ボタン」をクリックしたら以下発動されます。

function  update_regist_menu_page($org_settings) {
  if( !empty($_POST['submit']) ) {
    foreach ( $org_settings  as  $val ) {
      $save  =  trim($_POST[$val]);
      update_option( $val, wp_unslash($save) );
    } ?>
<div  id="setting-error-settings_updated"  class="updated settings-error notice is-dismissible">
<p><strong>設定を保存しました。</strong></p>
</div>
<?php
  }
}

update_option

ぱんくず

設定した内容を構造化マークアップのぱんくずとして表示しています。

function  businessType_org() {
  $protocol  =  is_ssl() ? 'https' : 'http';
  $domain  =  $protocol.'://'.$_SERVER["HTTP_HOST"]; ?>
<script  type="application/ld+json">
{
"@context": "http://schema.org/",
"@type": "<?= get_option('org_businessType') ?>",
"name": "<?= get_option('org_baseName') ?>",
"address": "<?= get_option('org_address') ?>",
"telephone": "<?= get_option('org_baseTel') ?>",
"faxNumber": "<?= get_option('org_baseFax') ?>",
"url": "<?= $domain ?>",
"email": "<?= get_option('org_baseEmail') ?>",
"image": "<?= $domain ?>/wp-content/uploads/<?= basename(get_option('org_img')) ?>",
"logo": "<?= $domain ?>/wp-content/uploads/<?= basename(get_option('org_logo')) ?>"
}
</script>
<?php
}

header.phpにbusinessType_org()の記述があると思います。