投稿日:2018/03/12
更新日:2018/03/19
基本情報登録ページ ドキュメント
概要
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
}
}
ぱんくず
設定した内容を構造化マークアップのぱんくずとして表示しています。
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()
の記述があると思います。