Commit fba13719 by Orine Matsui

【テーマ】改変前

parent ab6c28b8
Showing with 3813 additions and 0 deletions
<?php
//////////////////////////////////////////////////
//下記ユーザーカスタマイズエリア
//////////////////////////////////////////////////
\ No newline at end of file
@charset "UTF-8";
/*
Theme Name: THE THOR CHILD
Theme URI: http://fit-jp.com/theme/
Description: FIT(フィット) が制作するブロガー/アフィリエイター向けWordPressTHEME「THE THOR」の子テーマ
Author: Kota Naito @FIT(フィット)
Author URI: http://fit-jp.com/about/
Template: the-thor
Version:     1.0
License:     GNU GENERAL PUBLIC LICENSE
License URI: http://www.gnu.org/licenses/gpl.html
*/
/*---------------------------------------------------------------
          独自のスタイル(CSS)を追加する場合は、
          現在開いている「style.css」ではなく、
          style-user.cssを編集してください。
---------------------------------------------------------------*/
\ No newline at end of file
<?php get_header(); ?>
<!--l-wrapper-->
<div class="l-wrapper">
<!--l-main-->
<?php
//フレーム設定
$frame = '';
if (get_option('fit_conMain_frame') && get_option('fit_conMain_frame') != 'off' ){$frame = ' '.get_option('fit_conMain_frame');}
//ページ横幅のオプション設定
$width_page = '';
if (get_option('fit_pageLayout_width') && get_option('fit_pageLayout_width') != 'off'){$width_page = get_option('fit_pageLayout_width');}
//レイアウト設定
$layout = '';
if ( get_option('fit_pageLayout_column') == '1' ){$layout = ' l-main-wide'.$width_page;}
if ( get_option('fit_pageLayout_column') != '1' && get_option('fit_pageLayout_side') == 'left' ){$layout = ' l-main-right';}
?>
<main class="l-main<?php echo $frame.$layout; ?>">
<div class="dividerBottom">
<h1 class="heading heading-primary"><?php echo fit_get_headline_title(); ?></h1>
<!--pageContents-->
<div class="pageContents<?php if (get_option('fit_pageStyle_frame') && get_option('fit_pageStyle_frame') != 'off' ):?> <?php echo get_option('fit_pageStyle_frame')?><?php endif; ?>">
<section class="content">
<p class="phrase">お探しのページはありませんでした。</p>
<div class="btn btn-center"><a class="btn__link btn__link-normal" href="<?php echo home_url() ?>"><?php bloginfo('name') ?>のTOPへ戻る</a></div>
</section>
</div>
<!--/pageContents-->
</div>
</main>
<!--/l-main-->
<?php if ( get_option('fit_pageLayout_column') != '1' ):?>
<?php get_sidebar(); ?>
<?php endif; ?>
</div>
<!--/l-wrapper-->
<?php get_footer(); ?>
/*カスタマイザーstyle*/
.customize-control{ margin-bottom: 20px;}
.customize-control-title,
.customize-control-radio .customize-control-title{background:#0073AA; color:#fff; padding:10px; text-align:center; margin-top: 10px; margin-bottom: 10px;}
.customize-control-subtitle{border:1px solid #0073AA; color:#0073AA; padding:5px; text-align:center; margin-top: 10px;margin-bottom: 10px; font-weight:bold;}
.customize-section-description{ background:#FFF; padding:10px;}
.customize-section-description .asterisk{ display:inline-block; color:#C00; font-size:10px; }
.customize-control-description .label__red{ display:inline-block; background:#C00; color:#FFF; font-size:10px; padding:2.5px 5px; border-radius:5px;}
.customize-control-description .label_blue{ display:block; border:1px dotted #8fa3bf; color:#8fa3bf; padding:2.5px 5px; font-size:11px; text-align:center }
.customize-control select,
.customize-control input,
.customize-control textarea {font-size:12px;}
.customize-control select,
.customize-control input[type=number]{width: auto !important; max-width:100%;}
.customize-control + .customize-control-checkbox{margin-top: -12px;}
.customize-control .required{ display:inline-block; background:#C00; color:#FFF; font-size:10px; padding: 0px 5px; line-height: 16px; margin:0 5px;}
/*アイコンフォントwindow*/
#layer {
display: none;
position: fixed;
top: 0;
bottom:0;
left: 0;
right:0;
background: rgba(0,0,0,0.7);
z-index:9999;
}
#popup {
display: none;
position: fixed;
top: 30px;
bottom:30px;
left: 30px;
right:30px;
background-color: white;
z-index:9999;
}
/*基本のTable*/
.basicTable {
margin: 0;
width: 100%;
border-spacing: 0;
}
.basicTable th,
.basicTable td{
background: #fff;
border-top: #eee solid 1px;
padding: 20px 0;
}
.basicTable th{ text-align:left; font-weight:normal;width:220px}
.basicTable tr:first-child th,
.basicTable tr:first-child td{border-top: none;}
.basicTable textarea{ width:100%}
/*メニュービルダーTable*/
.menuBuilderTable {
margin: 0;
width: 100%;
border: 1px solid #ddd;
background-color: #f9f9f9;
border-spacing: 0;
counter-reset: rowCount;
}
.menuBuilderTable thead th {
padding:10px 0;
background-color: #f1f1f1;
}
.menuBuilderTable__tr{counter-increment: rowCount;}
.menuBuilderTable__tr td:first-child::before {
content: counter(rowCount);
line-height: 30px;
padding-left:5px;
}
.menuBuilderTable__tr td .input__title,
.menuBuilderTable__tr td .input__price{ width:100%}
.menuBuilderTable__tr td .textarea__text{ min-width:280px; height:63px;}
.menuBuilderTable__tr td .input__img{ width : calc(100% - 120px) ; margin-bottom:5px;}
.menuBuilderTable__tr td .previewBox{
float:right;
margin-left:10px;
background:#f1f1f1;
border:1px solid #ddd;
width:100px;
min-height:27px;
}
.menuBuilderTable__tr td .previewBox img{vertical-align: bottom;}
.menuBuilderTable__tr td:last-child {text-align:center;} /*コントローラ―エリア*/
.menuBuilderTable tbody td{padding:10px 5px;} /*基本入力エリア*/
.menuBuilderTable tbody td select{width:100%;} /*セレクトボックスを100%*/
.menuBuilderTable tbody tr:last-child td{padding-left:30px;} /*行を追加ボタンエリア*/
/*AFランキングビルダーTable*/
.afRankBuilderTable {
margin: 0;
width: 100%;
border: 1px solid #ddd;
background-color: #f9f9f9;
border-spacing: 0;
counter-reset: rowCount;
}
.afRankBuilderTable thead th {
padding:10px 0;
background-color: #f1f1f1;
}
.afRankBuilderTable__tr{counter-increment: rowCount;}
.afRankBuilderTable__tr td:first-child::before {
content: counter(rowCount);
line-height: 30px;
padding-left:5px;
}
.afRankBuilderTable__tr td:last-child {text-align:center;} /*コントローラ―エリア*/
.afRankBuilderTable tbody td{padding:10px 5px;} /*基本入力エリア*/
.afRankBuilderTable tbody td .select__title{width:100%;} /*セレクトボックスを100%*/
.afRankBuilderTable tbody tr:last-child td{padding-left:30px;} /*行を追加ボタンエリア*/
/*AFランキングフォーマットビルダーTable*/
.afRankFormatBuilderTable {
margin: 0 0 20px 0;
width: 100%;
border-top: 1px solid #ddd;
border-left: 1px solid #ddd;
border-right: 1px solid #ddd;
background-color: #f9f9f9;
border-spacing: 0;
}
.afRankFormatBuilderTable tbody td{padding:20px 10px;border-bottom: #ddd solid 1px;} /*基本入力エリア*/
.afRankFormatBuilderTable tbody td label{ margin-right:10px;vertical-align: baseline;}
/*AFタグオリジナルフォーマットビルダーTable*/
.afTagFormatBuilderTable {
margin: 0;
width: 100%;
border-spacing: 0;
}
.afTagFormatBuilderTable th,
.afTagFormatBuilderTable td{
background: #fff;
border-top: #eee solid 1px;
padding: 20px 0;
}
.afTagFormatBuilderTable th{ text-align:left; font-weight:normal;width:220px}
.afTagFormatBuilderTable td label{ margin-right:10px;vertical-align: baseline;}
.afTagFormatBuilderTable__inFirst{ margin-right:20px;}
.afTagFormatBuilderTable textarea{ width:100%}
.afTagFormatBuilderTable .middle{width:180px}
.afTagFormatBuilderTable .wide{ width:240px}
.afTagFormatBuilderTable .wide100{ width:100%}
.afTagFormatBuilderTable tr:first-child th,
.afTagFormatBuilderTable tr:first-child td{border-top: none;}
.afTagFormatBuilderTable td small{color: #7F7F7F; font-size:11px;}
/*カラム設定&非表示設定の行間*/
.fitInner{line-height: 22px;}
/*閲覧数などを表示するBox(投稿・AFタグの投稿詳細で使用)*/
.afTag_day{margin-bottom:10px;}
.afTag_day:last-child{margin-bottom:0;}
.afTag_day input{ display:block;}
/*カラーピッカー用style*/
.wp-picker-container .wp-color-result.button {
height: 24px;
margin: 0 6px 6px 0;
padding: 0 0 0 30px;
font-size: 11px;
}
.wp-picker-container .wp-color-result-text {
background: #f7f7f7;
border-radius: 0 2px 2px 0;
border-left: 1px solid #ccc;
color: #555;
display: block;
line-height: 22px;
padding: 0 6px;
text-align: center;
}
.fitColorPicker.wp-color-picker {
width: 65px;
font-size: 12px;
font-family: monospace;
line-height: 16px;
margin: 0;
padding: 2px 5px;
vertical-align: top;
}
.wp-customizer .wp-picker-input-wrap .button, .wp-picker-input-wrap .button {
margin-left: 6px;
}
/*一覧画面のテーブル系*/
#post-search-keyword{ width:200px}
.edit-php.post-type-post .widefat tfoot td,
.edit-php.post-type-post .widefat th,
.edit-php.post-type-post .widefat thead td{font-size: 13px}
.edit-php.post-type-post .widefat td,
.edit-php.post-type-post .widefat th{padding: 6px 6px}
.edit-php.post-type-post th.sortable a,
.edit-php.post-type-post th.sorted a{padding:0}
.edit-php.post-type-post .wp-list-table b{ color:#ca4a1f}
.edit-php.post-type-post .subsubsub{ width:100%}
.edit-php.post-type-post .subsubsub li.seo_keyword{ float:right;}
@media screen and (max-width: 782px){.edit-php.post-type-post .subsubsub li.seo_keyword{ display:none}}
.edit-php.post-type-post .column-author,
.edit-php.post-type-post .column-date,
.edit-php.post-type-post .column-format,
.edit-php.post-type-post .column-links,
.edit-php.post-type-post .column-parent,
.edit-php.post-type-post .column-posts,
.edit-php.post-type-post .column-categories,
.edit-php.post-type-post .column-rel,
.edit-php.post-type-post .column-response,
.edit-php.post-type-post .column-role,
.edit-php.post-type-post .column-tags{ width:auto;}
.edit-php.post-type-post .manage-column.column-title{ width:20%;}
.edit-php.post-type-post .manage-column.column-author{ width:6%;}
.edit-php.post-type-post .manage-column.column-comments{ width:4%;}
.edit-php.post-type-post .manage-column.column-date{ width:7%;}
.edit-php.post-type-post .manage-column.column-modified-last{ width:7%;}
.edit-php.post-type-post .manage-column.column-views{ width:5%;}
.edit-php.post-type-post .manage-column.column-averageViews{ width:5%;}
.edit-php.post-type-post .manage-column.column-titleNumber{ width:5%;}
.edit-php.post-type-post .manage-column.column-contentNumber{ width:5%;}
.edit-php.post-type-post .manage-column.column-titleKeyword{ width:5%;}
.edit-php.post-type-post .manage-column.column-contentKeyword{ width:5%;}
.edit-php.post-type-post .manage-column.column-contentInLink{ width:4%;}
.edit-php.post-type-post .manage-column.column-contentOutLink{ width:4%;}
.edit-php.post-type-post .manage-column.column-postid{ width:4%;}
.edit-php.post-type-post .manage-column.column-thumbnail{ width:50px;}
(function($){
$(function() {
$('.fitColorPicker').wpColorPicker();
});
}(jQuery));
$(function() {
// show popupボタンクリック時の処理
$('#show').click(function(e) {
$('#popup, #layer').show();
});
// レイヤー/ポップアップのcloseボタンクリック時の処理
$('#close, #layer').click(function(e) {
$('#popup, #layer').hide();
});
});
\ No newline at end of file
jQuery(document).ready(function($){
var custom_uploader;
/* 画像選択ボタンがクリックされた場合の処理。*/
$('#upload_img_button').click(function(e) {
e.preventDefault();
if (custom_uploader) {
custom_uploader.open();
return;
}
custom_uploader = wp.media({
title: '画像を選択',
library: {
type: 'image'
},
button: {
text: '画像を選択'
},
multiple: false // falseにすると画像を1つしか選択できなくなる
});
custom_uploader.on('select', function() {
var images = custom_uploader.state().get('selection');
var date = new Date().getTime();
images.each(function(file){
$('#term_meta_img').val(file.toJSON().url);
$('#term_preview_img').attr('src', file.toJSON().url);
});
});
custom_uploader.open();
});
});
\ No newline at end of file
( function( $ ) {
// 公開ボタンを押すとリロード【有効無効】
wp.customize( 'fit_pwaFunction_switch', function( value ) {
value.bind( function( newval ) {
$('input#save').click(function(){
$('iframe')[0].contentDocument.location.reload(true);
});
} );
} );
// 公開ボタンを押すとリロード【バージョン】
wp.customize( 'fit_pwaFunction_version', function( value ) {
value.bind( function( newval ) {
$('input#save').click(function(){
$('iframe')[0].contentDocument.location.reload(true);
});
});
} );
// 公開ボタンを押すとリロード【ホーム画面のアイコン下に表示される名前】
wp.customize( 'fit_pwaFunction_text', function( value ) {
value.bind( function( newval ) {
$('input#save').click(function(){
$('iframe')[0].contentDocument.location.reload(true);
});
} );
} );
// 公開ボタンを押すとリロード【アイコン72】
wp.customize( 'fit_pwaIcon_img72', function( value ) {
value.bind( function( newval ) {
$('input#save').click(function(){
$('iframe')[0].contentDocument.location.reload(true);
});
} );
} );
// 公開ボタンを押すとリロード【アイコン192】
wp.customize( 'fit_pwaIcon_img192', function( value ) {
value.bind( function( newval ) {
$('input#save').click(function(){
$('iframe')[0].contentDocument.location.reload(true);
});
} );
} );
// 公開ボタンを押すとリロード【アイコン512】
wp.customize( 'fit_pwaIcon_img512', function( value ) {
value.bind( function( newval ) {
$('input#save').click(function(){
$('iframe')[0].contentDocument.location.reload(true);
});
} );
} );
} )( jQuery );
jQuery(document).ready(function () {
// カウントアップでオリジナルIDにする
$('.input__img').each(function(i){
$(this).attr('id','uploade' + (i+1) + '_url');
});
$('.add_upload_media').each(function(i){
$(this).attr('data-targetId','uploade' + (i+1));
});
$('.remove_upload_media').each(function(i){
$(this).attr('data-targetId','uploade' + (i+1));
});
$('.previewBox').each(function(i){
$(this).attr('id','uploade' + (i+1) + '_preview');
});
$('.menuBuilderTable__tbody').on('click', '.button-add', function(){
$('.input__imgadd').each(function(i){
$(this).attr('id','uploadeadd' + (i+1) + '_url');
});
$('.add_upload_mediaadd').each(function(i){
$(this).attr('data-targetId','uploadeadd' + (i+1));
});
$('.remove_upload_mediaadd').each(function(i){
$(this).attr('data-targetId','uploadeadd' + (i+1));
});
$('.previewBoxadd').each(function(i){
$(this).attr('id','uploadeadd' + (i+1) + '_preview');
});
});
});
jQuery(document).ready(function () {
function buildMedia(self)
{
return wp.media({
title: self.attr('data-title'),
library: {type: self.attr('data-library')},
frame: self.attr('data-frame'),
button: {text: self.attr('data-button')},
multiple: self.attr('data-multiple')
});
}
var setMedia = [];
jQuery(document).on("click", ".add_upload_media", function (event) {
event.preventDefault();
var self = jQuery(this);
var targetId = self.attr('data-targetId');
// キャッシュを表示する
if (setMedia[targetId]) {
setMedia[targetId].open();
return;
}
// ビルド
setMedia[targetId] = buildMedia(self);
//ファイル選択時の動作
setMedia[targetId].on('select', function() {
var media = setMedia[targetId].state().get('selection').first().toJSON();
jQuery('#' + targetId + '_url').val(media.url);
jQuery('#' + targetId + '_id').val(media.id);
jQuery('#' + targetId + '_text').text(media.url);
// プレビュー画像を表示したい場合
if(self.attr('data-preview') == 'true'){
var img = jQuery('<img style="width:100px">').attr('src', media.url);
jQuery('#' + targetId + '_preview').html(img);
}
});
//モーダルを展開
setMedia[targetId].open();
});
// 削除イベント
jQuery(document).on('click','.remove_upload_media',function(event){
event.preventDefault();
var self = jQuery(this);
var targetId = self.attr('data-targetId');
jQuery('#' + targetId + '_url').val('');
jQuery('#' + targetId + '_id').val('');
jQuery('#' + targetId + '_text').text('');
});
});
\ No newline at end of file
<?php get_header(); ?>
<!--l-wrapper-->
<div class="l-wrapper">
<!--l-main-->
<?php
//フレーム設定
$frame = '';
if (get_option('fit_conMain_frame') && get_option('fit_conMain_frame') != 'off' ){$frame = ' '.get_option('fit_conMain_frame');}
//ページ横幅のオプション設定
$width_archive = '';
if (get_option('fit_archiveLayout_width') && get_option('fit_archiveLayout_width') != 'off'){$width_archive = get_option('fit_archiveLayout_width'); }
//レイアウト設定
$layout = '';
if ( get_option('fit_archiveLayout_column') == '1' ){$layout = ' l-main-wide'.$width_archive;}
if ( get_option('fit_archiveLayout_column') != '1' && get_option('fit_archiveLayout_side') == 'left' ){$layout = ' l-main-right';}
?>
<main class="l-main<?php echo $frame.$layout; ?>">
<div class="dividerBottom">
<div class="archiveHead">
<div class="archiveHead__contents">
<span class="archiveHead__subtitle"><?php echo fit_get_headline_subtitle(); ?></span>
<h1 class="heading heading-primary"><?php echo fit_get_headline_title(); ?></h1>
</div>
</div>
</div>
<div class="dividerBottom">
<?php if( is_post_type_archive('custom') || is_tax('custom_category') || is_tax('custom_tag')) : ?>
<!--custom-->
<div class="custom<?php if (get_option('fit_custList_frame') && get_option('fit_custList_frame') != 'off' ):?> <?php echo get_option('fit_custList_frame')?><?php endif; ?>">
<?php if (have_posts()): ?>
<?php while (have_posts()) : the_post(); ?>
<div class="custom__item<?php if(get_option('fit_custList_style') && get_option('fit_custList_style') != 'off' ): ?> custom__item-<?php echo get_option('fit_custList_style') ?><?php endif; ?>">
<div class="custom__data">
<span class="custom__day"><?php the_time(get_option('date_format')); ?></span>
<?php
if(get_option('fit_custBasis_category') == 'on' ){
$cat = get_the_terms( $post->ID, 'custom_category' );
if ( $cat[0] ) {
echo '<span class="custom__cat">';
echo '<a href="' . get_term_link( $cat[0]->term_id ) . '">' . $cat[0]->name . '</a>';
echo '</span>';
}
}
?>
</div>
<h2 class="heading heading-custom">
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
</h2>
</div>
<?php endwhile; ?>
<?php else : ?>
<div class="custom__item">
<p class="phrase phrase-primary">投稿が1件も見つかりませんでした。</p>
</div>
<?php endif; ?>
</div>
<!--/custom-->
<?php else : ?>
<!--controller-->
<?php fit_archive_controller() ?>
<!--/controller-->
<!--archive-->
<?php if (have_posts()) : $count = 1; ?>
<div class="archive">
<?php while (have_posts()) : the_post(); ?>
<?php get_template_part('loop');?>
<?php
if(get_option('fit_adInfeed_first')){
if(!is_paged()){
$number1 = '1';
if(get_option('fit_adInfeed_number')){$number1 = get_option('fit_adInfeed_number');}
if($count == $number1){ echo fit_infeed(); }
$number2 = '';
if(get_option('fit_adInfeed_number2')){$number2 = get_option('fit_adInfeed_number2');}
if($count == $number2){ echo fit_infeed();}
}
}
else{
$number1 = '1';
if(get_option('fit_adInfeed_number')){$number1 = get_option('fit_adInfeed_number');}
if($count == $number1){ echo fit_infeed(); }
$number2 = '';
if(get_option('fit_adInfeed_number2')){$number2 = get_option('fit_adInfeed_number2');}
if($count == $number2){ echo fit_infeed();}
}
$count = $count + 1;
?>
<?php endwhile; ?>
</div>
<?php else : ?>
<div class="archive">
<div class="archive__item archive__item-none<?php if (get_option('fit_archiveList_frame') && get_option('fit_archiveList_frame') != 'off' ):?> <?php echo get_option('fit_archiveList_frame')?><?php endif; ?>">
<p class="phrase phrase-primary">投稿が1件も見つかりませんでした。</p>
</div>
</div>
<?php endif; ?>
<!--/archive-->
<?php endif; ?>
<!--pager-->
<?php if ( function_exists( 'fit_pagination' ) ) {fit_pagination( $wp_query->max_num_pages );} ?>
<!--/pager-->
</div>
</main>
<!--/l-main-->
<?php if ( get_option('fit_archiveLayout_column') != '1' ):?>
<?php get_sidebar(); ?>
<?php endif; ?>
</div>
<!--/l-wrapper-->
<?php get_footer(); ?>
<?php get_header(); ?>
<!--l-wrapper-->
<div class="l-wrapper">
<!--l-main-->
<?php
//フレーム設定
$frame = '';
if (get_option('fit_conMain_frame') && get_option('fit_conMain_frame') != 'off' ){$frame = ' '.get_option('fit_conMain_frame');}
//ページ横幅のオプション設定
$width_archive = '';
if (get_option('fit_archiveLayout_width') && get_option('fit_archiveLayout_width') != 'off'){$width_archive = get_option('fit_archiveLayout_width'); }
//レイアウト設定
$layout = '';
if ( get_option('fit_archiveLayout_column') == '1' ){$layout = ' l-main-wide'.$width_archive;}
if ( get_option('fit_archiveLayout_column') != '1' && get_option('fit_archiveLayout_side') == 'left' ){$layout = ' l-main-right';}
?>
<main class="l-main<?php echo $frame.$layout; ?>">
<?php if (!is_paged()) : ?>
<div class="dividerBottom">
<div class="archiveHead">
<div class="archiveHead__contents u-clearfix">
<?php
$avatar = get_avatar($author,300);
$imgtag= '/<img.*?src=(["\'])(.+?)\1.*?>/i';
if(preg_match($imgtag, $avatar, $imgurl)){
$avatar = $imgurl[2];
}
?>
<div class="archiveHead__authorImg"><img width="120" height="120" <?php echo fit_correct_src(); ?>="<?php echo $avatar; ?>" alt="<?php echo fit_get_headline_title(); ?>" <?php echo fit_dummy_src(); ?>></div>
<div class="archiveHead__authorText">
<span class="archiveHead__subtitle"><?php echo fit_get_headline_subtitle(); ?></span>
<h1 class="heading heading-primary"><?php echo fit_get_headline_title(); ?><?php if(get_the_author_meta('user_group',$author)): ?><span><?php the_author_meta('user_group',$author); ?></span><?php endif; ?></h1>
<ul class="archiveHead__slist">
<?php if(get_the_author_meta('facebook',$author)): ?><li class="archiveHead__sitem"><a class="archiveHead__slink icon-facebook" href="<?php the_author_meta('facebook',$author); ?>"></a></li><?php endif; ?>
<?php if(get_the_author_meta('twitter',$author)): ?><li class="archiveHead__sitem"><a class="archiveHead__slink icon-twitter" href="<?php the_author_meta('twitter',$author); ?>"></a></li><?php endif; ?>
<?php if(get_the_author_meta('instagram',$author)): ?><li class="archiveHead__sitem"><a class="archiveHead__slink icon-instagram" href="<?php the_author_meta('instagram',$author); ?>"></a></li><?php endif; ?>
<?php if(get_the_author_meta('gplus',$author)): ?><li class="archiveHead__sitem"><a class="archiveHead__slink icon-google-plus" href="<?php the_author_meta('gplus',$author); ?>"></a></li><?php endif; ?>
<?php if(get_the_author_meta('youtube',$author)): ?><li class="archiveHead__sitem"><a class="archiveHead__slink icon-youtube" href="<?php the_author_meta('youtube',$author); ?>"></a></li><?php endif; ?>
<?php if(get_the_author_meta('linkedin',$author)): ?><li class="archiveHead__sitem"><a class="archiveHead__slink icon-linkedin" href="<?php the_author_meta('linkedin',$author); ?>"></a></li><?php endif; ?>
<?php if(get_the_author_meta('pinterest',$author)): ?><li class="archiveHead__sitem"><a class="archiveHead__slink icon-pinterest" href="<?php the_author_meta('pinterest',$author); ?>"></a></li><?php endif; ?>
</ul>
</div>
</div>
<?php if(get_the_author_meta('description',$author)): ?><p class="phrase phrase-secondary archiveHead__authorDescription"><?php the_author_meta('description',$author); ?></p><?php endif; ?>
</div>
</div>
<?php else : ?>
<div class="dividerBottom">
<div class="archiveHead">
<div class="archiveHead__contents">
<span class="archiveHead__subtitle"><?php echo fit_get_headline_subtitle(); ?></span>
<h1 class="heading heading-primary"><?php echo fit_get_headline_title(); ?></h1>
</div>
</div>
</div>
<?php endif; ?>
<div class="dividerBottom">
<!--controller-->
<?php fit_archive_controller() ?>
<!--/controller-->
<!--archive-->
<?php if (have_posts()) : $count = 1; ?>
<div class="archive">
<?php while (have_posts()) : the_post(); ?>
<?php get_template_part('loop');?>
<?php
if(get_option('fit_adInfeed_first')){
if(!is_paged()){
$number1 = '1';
if(get_option('fit_adInfeed_number')){$number1 = get_option('fit_adInfeed_number');}
if($count == $number1){ echo fit_infeed(); }
$number2 = '';
if(get_option('fit_adInfeed_number2')){$number2 = get_option('fit_adInfeed_number2');}
if($count == $number2){ echo fit_infeed();}
}
}
else{
$number1 = '1';
if(get_option('fit_adInfeed_number')){$number1 = get_option('fit_adInfeed_number');}
if($count == $number1){ echo fit_infeed(); }
$number2 = '';
if(get_option('fit_adInfeed_number2')){$number2 = get_option('fit_adInfeed_number2');}
if($count == $number2){ echo fit_infeed();}
}
$count = $count + 1;
?>
<?php endwhile; ?>
</div>
<?php else : ?>
<div class="archive">
<div class="archive__item archive__item-none<?php if (get_option('fit_archiveList_frame') && get_option('fit_archiveList_frame') != 'off' ):?> <?php echo get_option('fit_archiveList_frame')?><?php endif; ?>">
<p class="phrase phrase-primary">投稿が1件も見つかりませんでした。</p>
</div>
</div>
<?php endif; ?>
<!--/archive-->
<!--pager-->
<?php if ( function_exists( 'fit_pagination' ) ) {fit_pagination( $wp_query->max_num_pages );} ?>
<!--/pager-->
</div>
</main>
<!--/l-main-->
<?php if ( get_option('fit_archiveLayout_column') != '1' ):?>
<?php get_sidebar(); ?>
<?php endif; ?>
</div>
<!--/l-wrapper-->
<?php get_footer(); ?>
<?php get_header(); ?>
<!--l-wrapper-->
<div class="l-wrapper">
<!--l-main-->
<?php
//フレーム設定
$frame = '';
if (get_option('fit_conMain_frame') && get_option('fit_conMain_frame') != 'off' ){$frame = ' '.get_option('fit_conMain_frame');}
//ページ横幅のオプション設定
$width_archive = '';
if (get_option('fit_archiveLayout_width') && get_option('fit_archiveLayout_width') != 'off'){$width_archive = get_option('fit_archiveLayout_width'); }
//レイアウト設定
$layout = '';
if ( get_option('fit_archiveLayout_column') == '1' ){$layout = ' l-main-wide'.$width_archive;}
if ( get_option('fit_archiveLayout_column') != '1' && get_option('fit_archiveLayout_side') == 'left' ){$layout = ' l-main-right';}
?>
<main class="l-main<?php echo $frame.$layout; ?>">
<?php if (!is_paged()) : ?>
<div class="dividerBottom">
<?php $term_meta = get_option('category_'.$cat); ?>
<div class="archiveHead<?php if ( get_option('fit_archiveCat_headline') == 'color' || get_option('fit_archiveCat_headline') == 'colorgray' ):?> cc-bg<?php echo $cat ?><?php endif; ?>
<?php if (get_option('fit_archiveCat_headline') && get_option('fit_archiveCat_headline') != 'off' ):?> mask mask-<?php echo get_option('fit_archiveCat_headline')?><?php endif; ?>">
<?php if (get_option('fit_archiveCat_headline') && get_option('fit_archiveCat_headline') != 'off' && get_option('fit_archiveCat_img') && !empty($term_meta['img'])):?>
<?php
$image_id = fit_get_imageId($term_meta['img']);
$image = wp_get_attachment_image_src( $image_id, 'icatch768' );
?>
<img class="archiveHead__img" <?php echo fit_correct_src(); ?>="<?php echo $image[0];?>" alt="<?php echo fit_get_headline_title(); ?>" <?php echo fit_dummy_src(); ?>>
<?php endif; ?>
<div class="archiveHead__contents">
<span class="archiveHead__subtitle"><?php echo fit_get_headline_subtitle(); ?></span>
<h1 class="heading heading-primary cc-ft<?php echo $cat; ?>"><?php echo fit_get_headline_title(); ?></h1>
<?php if(category_description()): ?><p class="phrase phrase-secondary"><?php echo category_description(); ?></p><?php endif; ?>
<?php
if ( get_option('fit_archiveCat_child') == 'on' ){
$args = array(
'parent' => $cat //現在のカテゴリーの直近子カテゴリを取得
);
$children = get_categories( $args );
if($children){
echo '<ul class="archiveHead__list">';
foreach($children as $child){
echo '<li class="archiveHead__item cc-bg'.$cat.'"><a class="archiveHead__link" href="'. get_category_link($child->term_id). '">'. $child -> name. '</a></li>';
}
echo '</ul>';
}
}
?>
</div>
</div>
<?php if($term_meta['free_input']): ?>
<!--archiveContents-->
<div class="archiveContents<?php if (get_option('fit_archiveCat_frame') && get_option('fit_archiveCat_frame') != 'off' ):?> <?php echo get_option('fit_archiveCat_frame')?><?php endif; ?>">
<section class="content<?php fit_content_class(); ?>">
<?php echo apply_filters('the_content', $term_meta['free_input']);?>
</section>
</div>
<!--/archiveContents-->
<?php endif; ?>
</div>
<?php else : ?>
<div class="dividerBottom">
<div class="archiveHead">
<div class="archiveHead__contents">
<span class="archiveHead__subtitle"><?php echo fit_get_headline_subtitle(); ?></span>
<h1 class="heading heading-primary cc-ft<?php echo $cat; ?>"><?php echo fit_get_headline_title(); ?></h1>
</div>
</div>
</div>
<?php endif; ?>
<div class="dividerBottom">
<!--controller-->
<?php fit_archive_controller() ?>
<!--/controller-->
<?php if (have_posts()) : $count = 1; ?>
<!--archive-->
<div class="archive">
<?php while (have_posts()) : the_post(); ?>
<?php get_template_part('loop');?>
<?php
if(get_option('fit_adInfeed_first')){
if(!is_paged()){
$number1 = '1';
if(get_option('fit_adInfeed_number')){$number1 = get_option('fit_adInfeed_number');}
if($count == $number1){ echo fit_infeed(); }
$number2 = '';
if(get_option('fit_adInfeed_number2')){$number2 = get_option('fit_adInfeed_number2');}
if($count == $number2){ echo fit_infeed();}
}
}else{
$number1 = '1';
if(get_option('fit_adInfeed_number')){$number1 = get_option('fit_adInfeed_number');}
if($count == $number1){ echo fit_infeed(); }
$number2 = '';
if(get_option('fit_adInfeed_number2')){$number2 = get_option('fit_adInfeed_number2');}
if($count == $number2){ echo fit_infeed();}
}
$count = $count + 1;
?>
<?php endwhile; ?>
</div>
<!--/archive-->
<?php else : ?>
<!--archive-->
<div class="archive">
<div class="archive__item archive__item-none<?php if (get_option('fit_archiveList_frame') && get_option('fit_archiveList_frame') != 'off' ):?> <?php echo get_option('fit_archiveList_frame')?><?php endif; ?>">
<p class="phrase phrase-primary">投稿が1件も見つかりませんでした。</p>
</div>
</div>
<!--/archive-->
<?php endif; ?>
<!--pager-->
<?php if ( function_exists( 'fit_pagination' ) ) {fit_pagination( $wp_query->max_num_pages );} ?>
<!--/pager-->
</div>
</main>
<!--/l-main-->
<?php if ( get_option('fit_archiveLayout_column') != '1' ):?>
<?php get_sidebar(); ?>
<?php endif; ?>
</div>
<!--/l-wrapper-->
<?php get_footer(); ?>
<?php if( comments_open() ): ?>
<aside class="comments" id="comments">
<?php if( have_comments() ): ?>
<h2 class="heading heading-sub">コメント<span><?php comments_number('0','1','%'); ?>件)</span></h2>
<ul class="comments__list">
<?php wp_list_comments('avatar_size=40'); ?>
</ul>
<?php endif; ?>
<?php if(get_comment_pages_count() > 1): ?>
<div class="pager pager-comments">
<?php paginate_comments_links( array(
'prev_text' => 'PREV',
'next_text' => 'NEXT',
'mid_size' => 0,
)); ?>
</div>
<?php endif; ?>
<?php $args = array(
'title_reply' => 'コメントを書く',
'label_submit' => __( 'コメントを送信' , 'default' ),
'title_reply_before' => '<h2 class="heading heading-secondary">',
'title_reply_after' => '</h2>',
);
comment_form( $args ); ?>
</aside>
<?php endif; ?>
@charset "UTF-8";.mb_YTPBar,.mb_YTPBar span.mb_YTPUrl a{color:#fff}@font-face{font-family:ytpregular;src:url(font/ytp-regular.eot)}@font-face{font-family:ytpregular;src:url(data:application/x-font-woff;charset=utf-8;base64,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)format('woff'),url(font/ytp-regular.ttf)format('truetype');font-weight:400;font-style:normal}.mb_YTPlayer:focus{outline:0}.YTPWrapper{display:block;transform:translateZ(0)translate3d(0,0,0);transform-style:preserve-3d;-webkit-backface-visibility:hidden;backface-visibility:hidden;box-sizing:border-box}.mb_YTPlayer .loading{position:absolute;top:10px;right:10px;font-size:12px;color:#fff;background:rgba(0,0,0,.51);text-align:center;padding:2px 4px;border-radius:5px;font-family:"Droid Sans",sans-serif;-webkit-animation:fade .1s infinite alternate;animation:fade .1s infinite alternate}.YTPFullscreen,.inline_YTPlayer img{border:none!important;padding:0!important}@-webkit-keyframes fade{0%{opacity:.5}100%{opacity:1}}@keyframes fade{0%{opacity:.5}100%{opacity:1}}.YTPFullscreen{display:block!important;position:fixed!important;width:100%!important;height:100%!important;top:0!important;left:0!important;margin:0!important;opacity:1!important;background-color:#000!important}.mbYTP_wrapper iframe{max-width:8000px!important}.inline_YTPlayer{margin-bottom:20px;vertical-align:top;position:relative;left:0;overflow:hidden;border-radius:4px;box-shadow:0 0 5px rgba(0,0,0,.7);background:rgba(0,0,0,.5)}.inline_YTPlayer img{margin:0!important;transform:none!important}.mb_YTPBar,.mb_YTPBar .buttonBar{box-sizing:border-box;left:0;padding:5px;width:100%}.mb_YTPBar .ytpicon{font-size:20px;font-family:ytpregular}.mb_YTPBar .mb_YTPUrl.ytpicon{font-size:30px}.mb_YTPBar{transition:opacity .5s;display:block;height:10px;background:#333;position:fixed;bottom:0;text-align:left;z-index:1000;font:14px/16px sans-serif;opacity:.1}.mb_YTPBar.visible,.mb_YTPBar:hover{opacity:1}.mb_YTPBar .buttonBar{transition:all .5s;background:0 0;font:12px/14px san-serif;position:absolute;top:-30px;height:40px}.mb_YTPBar:hover .buttonBar{background:rgba(0,0,0,.4)}.mb_YTPBar span{display:inline-block;font:16px/20px sans-serif;position:relative;width:30px;height:25px;vertical-align:middle}.mb_YTPBar span.mb_YTPTime{width:130px}.mb_YTPBar span.mb_OnlyYT,.mb_YTPBar span.mb_YTPUrl{position:absolute;width:auto;display:block;top:6px;right:10px;cursor:pointer}.mb_YTPBar span.mb_YTPUrl img{width:60px}.mb_YTPBar span.mb_OnlyYT{left:300px;right:auto}.mb_YTPBar span.mb_OnlyYT img{width:25px}.mb_YTPBar .mb_YTPMuteUnmute,.mb_YTPBar .mb_YTPPlaypause,.mb_YTPlayer .mb_YTPBar .mb_YTPPlaypause img{cursor:pointer}.mb_YTPBar .mb_YTPProgress{height:10px;width:100%;background:#222;bottom:0;left:0}.mb_YTPBar .mb_YTPLoaded{height:10px;width:0;background:#444;left:0}.mb_YTPBar .mb_YTPseekbar{height:10px;width:0;background:#bb110e;bottom:0;left:0;box-shadow:rgba(82,82,82,.47)1px 1px 3px}.mb_YTPBar .YTPOverlay{backface-visibility:hidden;-webkit-backface-visibility:hidden;-webkit-transform-style:"flat";box-sizing:border-box}.YTPOverlay.raster{background:url(images/raster.png)}.YTPOverlay.raster.retina{background:url(images/raster@2x.png)}.YTPOverlay.raster-dot{background:url(images/raster_dot.png)}.YTPOverlay.raster-dot.retina{background:url(images/raster_dot@2x.png)}.mb_YTPBar .simpleSlider{position:relative;width:100px;height:10px;border:1px solid #fff;overflow:hidden;box-sizing:border-box;margin-right:10px;cursor:pointer!important;border-radius:3px}.mb_YTPBar.compact .simpleSlider{width:40px}.mb_YTPBar .simpleSlider.muted{opacity:.3}.mb_YTPBar .level{position:absolute;left:0;bottom:0;background-color:#fff;box-sizing:border-box}.mb_YTPBar .level.horizontal{height:100%;width:0}.mb_YTPBar .level.vertical{height:auto;width:100%}
This diff could not be displayed because it is too large.
<?php
////////////////////////////////////////////////////////
//content_width
////////////////////////////////////////////////////////
if (!isset($content_width)) $content_width = 1140;
////////////////////////////////////////////////////////
//srcset none
////////////////////////////////////////////////////////
add_filter( 'wp_calculate_image_srcset_meta', '__return_null' );
//////////////////////////////////////////////////
//インクルード
//////////////////////////////////////////////////
require_once locate_template('inc/_t-check.php'); // ファイルチェックファイル
require_once locate_template('inc/customizer.php'); // カスタマイザー設定用ファイル
require_once locate_template('inc/custom_post_taxonomy.php'); // カスタム投稿タイプ・タクソノミー用ファイル
require_once locate_template('inc/custom_field.php'); // カスタムフィールド用ファイル
require_once locate_template('inc/editor.php'); // ビジュアル・テキストエディター用ファイル
require_once locate_template('inc/list.php'); // 管理画面の各種一覧画面用ファイル
require_once locate_template('inc/admin.php'); // その他管理画面用ファイル
require_once locate_template('inc/widget.php'); // ウィジェット関連パーツ用ファイル
require_once locate_template('inc/shortcode.php'); // ショートコードパーツ用ファイル
require_once locate_template('inc/front.php'); // フロント表示パーツ用ファイル
require_once locate_template('inc/seo.php'); // SEOパーツ用ファイル
require_once locate_template('inc/amp.php'); // AMP用ファイル
require_once locate_template('inc/pwa.php'); // PWA用ファイル
require_once locate_template('inc/parts.php'); // その他パーツ用ファイル
<?php get_header(); ?>
<!--l-wrapper-->
<div class="l-wrapper">
<!--l-main-->
<?php
//フレーム設定
$frame = '';
if (get_option('fit_conMain_frame') && get_option('fit_conMain_frame') != 'off' ){$frame = ' '.get_option('fit_conMain_frame');}
//ページ横幅のオプション設定
$width_archive = '';
if (get_option('fit_archiveLayout_width') && get_option('fit_archiveLayout_width') != 'off'){$width_archive = get_option('fit_archiveLayout_width'); }
//レイアウト設定
$layout = '';
if ( get_option('fit_archiveLayout_column') == '1' ){$layout = ' l-main-wide'.$width_archive;}
if ( get_option('fit_archiveLayout_column') != '1' && get_option('fit_archiveLayout_side') == 'left' ){$layout = ' l-main-right';}
?>
<main class="l-main<?php echo $frame.$layout; ?>">
<div class="dividerBottom">
<h1 class="heading heading-primary"><?php single_post_title(); ?> </h1>
<!--controller-->
<?php fit_archive_controller() ?>
<!--/controller-->
<!--archive-->
<?php if (have_posts()) : $count = 1; ?>
<div class="archive">
<?php while (have_posts()) : the_post(); ?>
<?php get_template_part('loop');?>
<?php
if(get_option('fit_adInfeed_first')){
if(!is_paged()){
$number1 = '1';
if(get_option('fit_adInfeed_number')){$number1 = get_option('fit_adInfeed_number');}
if($count == $number1){ echo fit_infeed(); }
$number2 = '';
if(get_option('fit_adInfeed_number2')){$number2 = get_option('fit_adInfeed_number2');}
if($count == $number2){ echo fit_infeed();}
}
}
else{
$number1 = '1';
if(get_option('fit_adInfeed_number')){$number1 = get_option('fit_adInfeed_number');}
if($count == $number1){ echo fit_infeed(); }
$number2 = '';
if(get_option('fit_adInfeed_number2')){$number2 = get_option('fit_adInfeed_number2');}
if($count == $number2){ echo fit_infeed();}
}
$count = $count + 1;
?>
<?php endwhile; ?>
</div>
<?php else : ?>
<div class="archive">
<div class="archive__item archive__item-none<?php if (get_option('fit_archiveList_frame') && get_option('fit_archiveList_frame') != 'off' ):?> <?php echo get_option('fit_archiveList_frame')?><?php endif; ?>">
<p class="phrase phrase-primary">投稿が1件も見つかりませんでした。</p>
</div>
</div>
<?php endif; ?>
<!--/archive-->
<!--pager-->
<?php if ( function_exists( 'fit_pagination' ) ) {fit_pagination( $wp_query->max_num_pages );} ?>
<!--/pager-->
</div>
</main>
<!--/l-main-->
<?php if ( get_option('fit_archiveLayout_column') != '1' ):?>
<?php get_sidebar(); ?>
<?php endif; ?>
</div>
<!--/l-wrapper-->
<?php get_footer(); ?>
<?php
/*
Copyright 2010 Scott MacVicar
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Original can be found at https://github.com/scottmac/opengraph/blob/master/OpenGraph.php
*/
class OpenGraph implements Iterator
{
/**
* There are base schema's based on type, this is just
* a map so that the schema can be obtained
*
*/
public static $TYPES = array(
'activity' => array('activity', 'sport'),
'business' => array('bar', 'company', 'cafe', 'hotel', 'restaurant'),
'group' => array('cause', 'sports_league', 'sports_team'),
'organization' => array('band', 'government', 'non_profit', 'school', 'university'),
'person' => array('actor', 'athlete', 'author', 'director', 'musician', 'politician', 'public_figure'),
'place' => array('city', 'country', 'landmark', 'state_province'),
'product' => array('album', 'book', 'drink', 'food', 'game', 'movie', 'product', 'song', 'tv_show'),
'website' => array('blog', 'website'),
);
/**
* Holds all the Open Graph values we've parsed from a page
*
*/
private $_values = array();
/**
* Fetches a URI and parses it for Open Graph data, returns
* false on error.
*
* @param $URI URI to page to parse for Open Graph data
* @return OpenGraph
*/
static public function fetch($URI) {
$curl = curl_init($URI);
curl_setopt($curl, CURLOPT_FAILONERROR, true);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_TIMEOUT, 15);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
$response = curl_exec($curl);
curl_close($curl);
if (!empty($response)) {
return self::_parse($response);
} else {
return false;
}
}
/**
* Parses HTML and extracts Open Graph data, this assumes
* the document is at least well formed.
*
* @param $HTML HTML to parse
* @return OpenGraph
*/
static private function _parse($HTML) {
$old_libxml_error = libxml_use_internal_errors(true);
$doc = new DOMDocument();
$doc->loadHTML($HTML);
libxml_use_internal_errors($old_libxml_error);
$tags = $doc->getElementsByTagName('meta');
if (!$tags || $tags->length === 0) {
return false;
}
$page = new self();
$nonOgDescription = null;
foreach ($tags AS $tag) {
if ($tag->hasAttribute('property') &&
strpos($tag->getAttribute('property'), 'og:') === 0) {
$key = strtr(substr($tag->getAttribute('property'), 3), '-', '_');
$page->_values[$key] = $tag->getAttribute('content');
}
//Added this if loop to retrieve description values from sites like the New York Times who have malformed it.
if ($tag ->hasAttribute('value') && $tag->hasAttribute('property') &&
strpos($tag->getAttribute('property'), 'og:') === 0) {
$key = strtr(substr($tag->getAttribute('property'), 3), '-', '_');
$page->_values[$key] = $tag->getAttribute('value');
}
//Based on modifications at https://github.com/bashofmann/opengraph/blob/master/src/OpenGraph/OpenGraph.php
if ($tag->hasAttribute('name') && $tag->getAttribute('name') === 'description') {
$nonOgDescription = $tag->getAttribute('content');
}
}
//Based on modifications at https://github.com/bashofmann/opengraph/blob/master/src/OpenGraph/OpenGraph.php
if (!isset($page->_values['title'])) {
$titles = $doc->getElementsByTagName('title');
if ($titles->length > 0) {
$page->_values['title'] = $titles->item(0)->textContent;
}
}
if (!isset($page->_values['description']) && $nonOgDescription) {
$page->_values['description'] = $nonOgDescription;
}
//Fallback to use image_src if ogp::image isn't set.
if (!isset($page->values['image'])) {
$domxpath = new DOMXPath($doc);
$elements = $domxpath->query("//link[@rel='image_src']");
if ($elements->length > 0) {
$domattr = $elements->item(0)->attributes->getNamedItem('href');
if ($domattr) {
$page->_values['image'] = $domattr->value;
$page->_values['image_src'] = $domattr->value;
}
}
}
if (empty($page->_values)) { return false; }
return $page;
}
/**
* Helper method to access attributes directly
* Example:
* $graph->title
*
* @param $key Key to fetch from the lookup
*/
public function __get($key) {
if (array_key_exists($key, $this->_values)) {
return $this->_values[$key];
}
if ($key === 'schema') {
foreach (self::$TYPES AS $schema => $types) {
if (array_search($this->_values['type'], $types)) {
return $schema;
}
}
}
}
/**
* Return all the keys found on the page
*
* @return array
*/
public function keys() {
return array_keys($this->_values);
}
/**
* Helper method to check an attribute exists
*
* @param $key
*/
public function __isset($key) {
return array_key_exists($key, $this->_values);
}
/**
* Will return true if the page has location data embedded
*
* @return boolean Check if the page has location data
*/
public function hasLocation() {
if (array_key_exists('latitude', $this->_values) && array_key_exists('longitude', $this->_values)) {
return true;
}
$address_keys = array('street_address', 'locality', 'region', 'postal_code', 'country_name');
$valid_address = true;
foreach ($address_keys AS $key) {
$valid_address = ($valid_address && array_key_exists($key, $this->_values));
}
return $valid_address;
}
/**
* Iterator code
*/
private $_position = 0;
public function rewind() { reset($this->_values); $this->_position = 0; }
public function current() { return current($this->_values); }
public function key() { return key($this->_values); }
public function next() { next($this->_values); ++$this->_position; }
public function valid() { return $this->_position < sizeof($this->_values); }
}
?>
\ No newline at end of file
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', '<?php echo get_option('fit_bsAccess_gaid'); ?>', 'auto');
ga('send', 'pageview');
</script>
<?php
/**
* Theme Update Checker Library 1.2
* http://w-shadow.com/
*
* Copyright 2012 Janis Elsts
* Licensed under the GNU GPL license.
* http://www.gnu.org/licenses/gpl.html
*/
if ( !class_exists('ThemeUpdateChecker') ):
/**
* A custom theme update checker.
*
* @author Janis Elsts
* @copyright 2012
* @version 1.2
* @access public
*/
class ThemeUpdateChecker {
public $theme = ''; //The theme associated with this update checker instance.
public $metadataUrl = ''; //The URL of the theme's metadata file.
public $enableAutomaticChecking = true; //Enable/disable automatic update checks.
protected $optionName = ''; //Where to store update info.
protected $automaticCheckDone = false;
protected static $filterPrefix = 'tuc_request_update_';
/**
* Class constructor.
*
* @param string $theme Theme slug, e.g. "twentyten".
* @param string $metadataUrl The URL of the theme metadata file.
* @param boolean $enableAutomaticChecking Enable/disable automatic update checking. If set to FALSE, you'll need to explicitly call checkForUpdates() to, err, check for updates.
*/
public function __construct($theme, $metadataUrl, $enableAutomaticChecking = true){
$this->metadataUrl = $metadataUrl;
$this->enableAutomaticChecking = $enableAutomaticChecking;
$this->theme = $theme;
$this->optionName = 'external_theme_updates-'.$this->theme;
$this->installHooks();
}
/**
* Install the hooks required to run periodic update checks and inject update info
* into WP data structures.
*
* @return void
*/
public function installHooks(){
//Check for updates when WordPress does. We can detect when that happens by tracking
//updates to the "update_themes" transient, which only happen in wp_update_themes().
if ( $this->enableAutomaticChecking ){
add_filter('pre_set_site_transient_update_themes', array($this, 'onTransientUpdate'));
}
//Insert our update info into the update list maintained by WP.
add_filter('site_transient_update_themes', array($this,'injectUpdate'));
//Delete our update info when WP deletes its own.
//This usually happens when a theme is installed, removed or upgraded.
add_action('delete_site_transient_update_themes', array($this, 'deleteStoredData'));
}
/**
* Retrieve update info from the configured metadata URL.
*
* Returns either an instance of ThemeUpdate, or NULL if there is
* no newer version available or if there's an error.
*
* @uses wp_remote_get()
*
* @param array $queryArgs Additional query arguments to append to the request. Optional.
* @return ThemeUpdate
*/
public function requestUpdate($queryArgs = array()){
//Query args to append to the URL. Themes can add their own by using a filter callback (see addQueryArgFilter()).
$queryArgs['installed_version'] = $this->getInstalledVersion();
$queryArgs = apply_filters(self::$filterPrefix.'query_args-'.$this->theme, $queryArgs);
//Various options for the wp_remote_get() call. Themes can filter these, too.
$options = array(
'timeout' => 10, //seconds
);
$options = apply_filters(self::$filterPrefix.'options-'.$this->theme, $options);
$url = $this->metadataUrl;
if ( !empty($queryArgs) ){
$url = add_query_arg($queryArgs, $url);
}
//Send the request.
$result = wp_remote_get($url, $options);
//Try to parse the response
$themeUpdate = null;
$code = wp_remote_retrieve_response_code($result);
$body = wp_remote_retrieve_body($result);
if ( ($code == 200) && !empty($body) ){
$themeUpdate = ThemeUpdate::fromJson($body);
//The update should be newer than the currently installed version.
if ( ($themeUpdate != null) && version_compare($themeUpdate->version, $this->getInstalledVersion(), '<=') ){
$themeUpdate = null;
}
}
$themeUpdate = apply_filters(self::$filterPrefix.'result-'.$this->theme, $themeUpdate, $result);
return $themeUpdate;
}
/**
* Get the currently installed version of our theme.
*
* @return string Version number.
*/
public function getInstalledVersion(){
if ( function_exists('wp_get_theme') ) {
$theme = wp_get_theme($this->theme);
return $theme->get('Version');
}
/** @noinspection PhpDeprecationInspection get_themes() used for compatibility with WP 3.3 and below. */
foreach(get_themes() as $theme){
if ( $theme['Stylesheet'] === $this->theme ){
return $theme['Version'];
}
}
return '';
}
/**
* Check for theme updates.
*
* @return void
*/
public function checkForUpdates(){
$state = get_option($this->optionName);
if ( empty($state) ){
$state = new StdClass;
$state->lastCheck = 0;
$state->checkedVersion = '';
$state->update = null;
}
$state->lastCheck = time();
$state->checkedVersion = $this->getInstalledVersion();
update_option($this->optionName, $state); //Save before checking in case something goes wrong
$state->update = $this->requestUpdate();
update_option($this->optionName, $state);
}
/**
* Run the automatic update check, but no more than once per page load.
* This is a callback for WP hooks. Do not call it directly.
*
* @param mixed $value
* @return mixed
*/
public function onTransientUpdate($value){
if ( !$this->automaticCheckDone ){
$this->checkForUpdates();
$this->automaticCheckDone = true;
}
return $value;
}
/**
* Insert the latest update (if any) into the update list maintained by WP.
*
* @param StdClass $updates Update list.
* @return array Modified update list.
*/
public function injectUpdate($updates){
$state = get_option($this->optionName);
//Is there an update to insert?
if ( !empty($state) && isset($state->update) && !empty($state->update) ){
$updates->response[$this->theme] = $state->update->toWpFormat();
}
return $updates;
}
/**
* Delete any stored book-keeping data.
*
* @return void
*/
public function deleteStoredData(){
delete_option($this->optionName);
}
/**
* Register a callback for filtering query arguments.
*
* The callback function should take one argument - an associative array of query arguments.
* It should return a modified array of query arguments.
*
* @param callable $callback
* @return void
*/
public function addQueryArgFilter($callback){
add_filter(self::$filterPrefix.'query_args-'.$this->theme, $callback);
}
/**
* Register a callback for filtering arguments passed to wp_remote_get().
*
* The callback function should take one argument - an associative array of arguments -
* and return a modified array or arguments. See the WP documentation on wp_remote_get()
* for details on what arguments are available and how they work.
*
* @param callable $callback
* @return void
*/
public function addHttpRequestArgFilter($callback){
add_filter(self::$filterPrefix.'options-'.$this->theme, $callback);
}
/**
* Register a callback for filtering the theme info retrieved from the external API.
*
* The callback function should take two arguments. If a theme update was retrieved
* successfully, the first argument passed will be an instance of ThemeUpdate. Otherwise,
* it will be NULL. The second argument will be the corresponding return value of
* wp_remote_get (see WP docs for details).
*
* The callback function should return a new or modified instance of ThemeUpdate or NULL.
*
* @param callable $callback
* @return void
*/
public function addResultFilter($callback){
add_filter(self::$filterPrefix.'result-'.$this->theme, $callback, 10, 2);
}
}
endif;
if ( !class_exists('ThemeUpdate') ):
/**
* A simple container class for holding information about an available update.
*
* @author Janis Elsts
* @copyright 2012
* @version 1.0
* @access public
*/
class ThemeUpdate {
public $version; //Version number.
public $details_url; //The URL where the user can learn more about this version.
public $download_url; //The download URL for this version of the theme. Optional.
/**
* Create a new instance of ThemeUpdate from its JSON-encoded representation.
*
* @param string $json Valid JSON string representing a theme information object.
* @return ThemeUpdate New instance of ThemeUpdate, or NULL on error.
*/
public static function fromJson($json){
$apiResponse = json_decode($json);
if ( empty($apiResponse) || !is_object($apiResponse) ){
return null;
}
//Very, very basic validation.
$valid = isset($apiResponse->version) && !empty($apiResponse->version) && isset($apiResponse->details_url) && !empty($apiResponse->details_url);
if ( !$valid ){
return null;
}
$update = new self();
foreach(get_object_vars($apiResponse) as $key => $value){
$update->$key = $value;
}
return $update;
}
/**
* Transform the update into the format expected by the WordPress core.
*
* @return array
*/
public function toWpFormat(){
$update = array(
'new_version' => $this->version,
'url' => $this->details_url,
);
if ( !empty($this->download_url) ){
$update['package'] = $this->download_url;
}
return $update;
}
}
endif;
<?php
//////////////////////////////////////////////////
//その他管理画面用パーツインクルード
//////////////////////////////////////////////////
require_once locate_template('inc/admin/script_style.php'); // CSS&JSファイル読み込み用ファイル
require_once locate_template('inc/admin/user.php'); // ユーザープロフィール項目追加用ファイル
require_once locate_template('inc/admin/term_editor.php'); // カテゴリ・タグ登録項目追加用ファイル
require_once locate_template('inc/admin/security_login.php'); // セキュリティ対策ログイン用ファイル
require_once locate_template('inc/admin/data.php'); // 各種データ用ファイル
require_once locate_template('inc/admin/dashboard.php'); // オリジナルダッシュボード設定用ファイル
require_once locate_template('inc/admin/rss.php'); // カスタム投稿フィード追加用ファイル
<?php
//////////////////////////////////////////////////
//オリジナルダッシュボード用ファイル設定
//////////////////////////////////////////////////
function rss_dashboard_widget() {
echo '
<div class="rss-widget">
<p>THE THORをご利用の皆様へのFITからのお知らせです。</p>
';
wp_widget_rss_output(array(
'url' => 'https://thor-manual.fit-theme.com/feed/?post_type=custom',
'title' => 'THE THOR利用者へのお知らせ',
'items' => 10,
'show_summary' => 1,
'show_author' => 0,
'show_date' => 1
));
echo '</div>';
}
function pass_dashboard_widget() {
$stamp = date('U');
echo '
<div class="rss-widget">
';
wp_widget_rss_output(array(
'url' => 'https://fit-theme.com/wp-content/themes/fit-theme/rss/thor.xml?stamp='.$stamp.'',
'title' => 'THE THOR会員フォーラムPASS',
'items' => 3,
'show_summary' => 1,
'show_author' => 0,
'show_date' => 1
));
echo '</div>';
}
function btn_dashboard_widget() {
echo '
<div class="rss-widget">
<h3>マニュアル・会員フォーラムへのリンク</h3>
<p class="about-description">基本的な操作方法はマニュアルサイト。マニュアルサイトで解決できなければ会員フォーラムサイトへ。</p>
<div style="display:flex;width:100%; text-align:center;">
<div style="width:50%;">
<a style="width: 90%;" class="button button-primary" href="https://thor-manual.fit-theme.com/">マニュアルサイト</a>
</div>
<div style="width:50%;">
<a style="width: 90%;" class="button button-primary" href="https://thor-forum.fit-theme.com/">会員フォーラム</a>
</div>
</div>
</div>';
}
function add_rss_dashboard_widget() {
wp_add_dashboard_widget( 'rss_dashboard', 'THE THORからのお知らせ', 'rss_dashboard_widget' );
wp_add_dashboard_widget( 'pass_dashboard', 'THE THOR会員フォーラムPASSのご案内', 'pass_dashboard_widget' );
wp_add_dashboard_widget( 'btn_dashboard', 'THE THORマニュアル・会員フォーラムサイト', 'btn_dashboard_widget' );
}
add_action( 'wp_dashboard_setup', 'add_rss_dashboard_widget' );
<?php
//////////////////////////////////////////////////
//各種データ用ファイル設定
//////////////////////////////////////////////////
$U = 'NONE';if (get_option('fit_bsUserID_set')){$U = get_option('fit_bsUserID_set');}
$D1 = strstr($U,'Id:X');$C1 = 'D_f-tt';$D2 = strstr($U,'FKN-d');$C2 = 'FTHsW';
if(strpos($D1,$C1)!==false){
if(strpos($D2,$C2)!==false){
$example_update_checker = new ThemeUpdateChecker('the-thor','https://fit-theme.com/wp-content/themes/fit-theme/upload/thor.json');
}
}
<?php
//////////////////////////////////////////////////
//フィードにカスタム投稿を追加
//////////////////////////////////////////////////
function fit_feed_request($vars) {
if ( isset( $vars['feed'] ) && !isset( $vars['post_type'] ) ) {
$vars['post_type'] = array(
'post',
'custom',
);
}
return $vars;
}
add_filter( 'request', 'fit_feed_request' );
<?php
////////////////////////////////////////////////////////
// 管理画面用 style & script アセット設定
////////////////////////////////////////////////////////
function fit_admin_script_style(){
wp_enqueue_media();
wp_enqueue_script('uploader_script', get_template_directory_uri().'/admin/js/uploader.js', array( 'jquery' ), true);
wp_enqueue_script('themecustomizer', get_template_directory_uri().'/admin/js/theme-customizer.js', array( 'jquery', 'customize-preview' ), false, true );
wp_enqueue_script('icon_window_script', get_template_directory_uri().'/admin/js/icon_window.js' );
wp_enqueue_script('term_img_uploader', get_template_directory_uri().'/admin/js/term_img_uploader.js');
wp_enqueue_script('wp-color-picker');
wp_enqueue_script('color_picker', get_template_directory_uri().'/admin/js/color_picker.js', array( 'wp-color-picker' ), false, true );
wp_enqueue_style ('admin_style', get_template_directory_uri().'/admin/css/style.css' );
wp_enqueue_style ('admin_icon_style', get_template_directory_uri().'/css/icon.min.css' );
}
add_action( 'admin_enqueue_scripts', 'fit_admin_script_style' );
<?php
////////////////////////////////////////////////////////
//ログインセキュリティ設定(メールアドレスでログイン)
////////////////////////////////////////////////////////
if(get_option('fit_bsSecurity_login') == 'on' ){
function fit_email_login( $user, $username, $password ) {
// ユーザ情報を'email'を対象に検索
$user = get_user_by('email',$username);
// ユーザ情報が存在する場合
if(!empty($user->user_login)) {
// ユーザ名を取得しセットする
$username = $user->user_login;
} else {
// メールアドレスに該当するユーザが存在しない場合は強制的に空文字
$username = ''; // 認証失敗にする
}
// ログイン認証の判定結果を返す
return wp_authenticate_username_password( null, $username, $password );
}
add_filter('authenticate', 'fit_email_login', 20, 3);
function fit_custom_login() {
echo '
<style>
.login label[for=user_login]{font-size: 0;}
.login label[for=user_login]:before{font-size: 14px; content: "メールアドレス";}
</style>
';
}
add_action( 'login_enqueue_scripts', 'fit_custom_login' );
}
<?php
////////////////////////////////////////////////////////
// ターム(カテゴリ・タグ)編集画面に項目を追加する
////////////////////////////////////////////////////////
//説明欄出力時に自動挿入されるPタグを削除
remove_filter('term_description','wpautop');
//編集画面の入力部分
function fit_add_taxonomy_fields($term) {
$term_id = $term->term_id; //タームID
$taxonomy = $term->taxonomy; //タームIDに所属しているタクソノミー名
$term_meta = get_option( $term->taxonomy . '_' . $term_id );//すでにデータが保存されている場合はDBから取得する
$titleNameOn = '';
$titleNameOff = '';
if($term_meta['titleName'] == 'on'){
$titleNameOn = 'checked';
}
if($term_meta['titleName'] == 'off' || !$term_meta['titleName']){
$titleNameOff = 'checked';
}
?>
<tr class="form-field">
<th scope="row"><label for="term_meta_title">titleタグ</label></th>
<td><input name="term_meta[title]" id="term_meta_title" type="text" class="large-text" value="<?php echo isset($term_meta['title']) ? esc_attr( $term_meta['title'] ) : ''; ?>"><br>
後ろに[<?php echo fit_title_separator().get_bloginfo( 'name' ) ?>]を <input name="term_meta[titleName]" type="radio" class="radio" value="on" <?php echo $titleNameOn; ?> />表示する <input name="term_meta[titleName]" type="radio" class="radio" value="off" <?php echo $titleNameOff; ?> />表示しない<br><br>
<span style="color: #7F7F7F;">※未入力時は「カテゴリ名 <?php echo fit_title_separator().get_bloginfo( 'name' )?>」が表示されます。</span>
</td>
</tr>
<tr class="form-field">
<th scope="row"><label for="term_meta_description">meta description</label></th>
<td><textarea name="term_meta[description]" id="term_meta_description" rows="5" cols="50" class="large-text"><?php echo isset($term_meta['description']) ? esc_attr( $term_meta['description'] ) : ''; ?></textarea>
</td>
</tr>
<tr class="form-field">
<th scope="row"><label for="term_meta_img">画像URL</label></th>
<td style="display:flex">
<div style="width:calc(100% - 120px)">
<input name="term_meta[img]" id="term_meta_img" type="text" class="large-text" value="<?php echo isset($term_meta['img']) ? esc_attr( $term_meta['img'] ) : ''; ?>"><br>
<input type="button" id="upload_img_button" class="button button-add" value="画像を追加">
</div>
<div>
<img style="vertical-align:bottom;" id="term_preview_img" width="100" src="<?php echo isset($term_meta['img']) ? esc_attr( $term_meta['img'] ) : ''; ?>" />
</div>
</td>
</tr>
<tr class="form-field">
<th scope="row"><label for="term_meta_color">イメージカラー</label></th>
<td><input name="term_meta[color]" id="term_meta_color" class="fitColorPicker" value="<?php echo isset($term_meta['color']) ? esc_attr( $term_meta['color'] ) : ''; ?>"></td>
</tr>
<tr class="form-field">
<th scope="row"><label for="term_meta_free_input">自由コンテンツ</label></th>
<td>
<?php
$settings = array('wpautop' => false, 'media_buttons' => true, 'quicktags' => true, 'textarea_rows' => '15', 'textarea_name' => 'term_meta[free_input]' );
wp_editor(wp_kses_post($term_meta['free_input'] , ENT_QUOTES, 'UTF-8'), 'term_meta_free_input', $settings);
?>
</td>
</tr>
<?php
}
add_action('category_edit_form_fields','fit_add_taxonomy_fields'); //カテゴリー
add_action('post_tag_edit_form_fields','fit_add_taxonomy_fields'); //タグ
//入力欄の保存
function fit_save_taxonomy_fileds( $term_id ) {
global $taxonomy; //タクソノミー名を取得
if ( isset( $_POST['term_meta'] ) ) {//追加項目に値が入っていたら処理する
$term_meta = get_option( $taxonomy . '_' . $term_id );
$term_keys = array_keys($_POST['term_meta']);
foreach ($term_keys as $key){
if (isset($_POST['term_meta'][$key])){
$term_meta[$key] = stripslashes_deep( $_POST['term_meta'][$key] );
}
}
update_option( $taxonomy . '_' . $term_id, $term_meta ); //保存
}
}
add_action('edited_term', 'fit_save_taxonomy_fileds' );
<?php
////////////////////////////////////////////////////////
//プロフィール項目追加
////////////////////////////////////////////////////////
function fit_user_contact( $user_contact ) {
$user_contact['facebook'] = __( 'Facebook URL', 'default' );
$user_contact['twitter'] = __( 'Twitter URL', 'default' );
$user_contact['instagram'] = __( 'Instagram URL', 'default' );
$user_contact['gplus'] = __( 'Google+ URL', 'default' );
$user_contact['youtube'] = __( 'YouTube URL', 'default' );
$user_contact['linkedin'] = __( 'LinkedIn URL', 'default' );
$user_contact['pinterest'] = __( 'Pinterest URL', 'default' );
return $user_contact;
}
add_filter( 'user_contactmethods', 'fit_user_contact' );
function fit_add_user_group_form( $bool ) {
global $profileuser;
if ( preg_match( '/^(profile\.php|user-edit\.php)/', basename( $_SERVER['REQUEST_URI'] ) ) ) { ?>
<tr>
<th scope="row">役職 / 所属</th>
<td>
<input type="text" name="user_group" id="user_group" value="<?php echo esc_html( $profileuser->user_group ); ?>" class="regular-text" />
</td>
</tr>
<?php }
return $bool;
}
add_action( 'show_password_fields', 'fit_add_user_group_form' );
function fit_update_user_group( $user_id, $old_user_data ) {
if ( isset( $_POST['user_group'] ) && $old_user_data->user_group != $_POST['user_group'] ) {
$user_group = sanitize_text_field( $_POST['user_group'] );
$user_group = wp_filter_kses( $user_group );
$user_group = _wp_specialchars( $user_group );
update_user_meta( $user_id, 'user_group', $user_group );
}
}
add_action( 'profile_update', 'fit_update_user_group', 10, 2 );
<?php
//////////////////////////////////////////////////
//AMP関連用パーツインクルード
//////////////////////////////////////////////////
require_once locate_template('inc/amp/switch.php'); // AMP用テンプレート切り替え用ファイル
require_once locate_template('inc/amp/convert.php'); // コンテンツをAMPページにコンバートする用ファイル
\ No newline at end of file
<?php
////////////////////////////////////////////////////////
//AMP専用投稿コンテンツをAMPページ用にコンバート
////////////////////////////////////////////////////////
function convert_content_amp($the_content){
// 通常ページではコンテンツを置換しない
if (isset($_GET["type"]) && $_GET['type'] == 'AMP' && is_single() && get_option('fit_ampFunction_switch') == 'on' && get_post_meta(get_the_ID(), 'amp_hide', true) != '1') {
// Twitterをamp-twitterに置換する
$pattern = '/<blockquote class="twitter-tweet".*?>.+?<a href="https:\/\/twitter\.com\/.*?\/status\/(.*?)">.+?<\/blockquote>/is';
$append = '<p><amp-twitter width=486 height=657 layout="responsive" data-tweetid="$1"></amp-twitter></p>';
$the_content = preg_replace($pattern, $append, $the_content);
// Instagramをamp-instagramに置換する
$pattern = '/<blockquote class="instagram-media".+?"https:\/\/www\.instagram\.com\/p\/(.+?)\/".+?<\/blockquote>/is';
$append = '<amp-instagram layout="responsive" data-shortcode="$1" width="400" height="400" ></amp-instagram>';
$the_content = preg_replace($pattern, $append, $the_content);
// YouTubeをamp-youtubeに置換する
$pattern = '/<iframe[^>]+?src="https:\/\/www\.youtube\.com\/embed\/(.+?)(\?feature=oembed)?".*?><\/iframe>/is';
$append = '<amp-youtube layout="responsive" data-videoid="$1" width="480" height="270"></amp-youtube>';
$the_content = preg_replace($pattern, $append, $the_content);
// iframeをamp-iframeに置換する
$pattern = '/<iframe/i';
$append = '<amp-iframe layout="responsive" sandbox="allow-scripts allow-same-origin allow-popups"';
$the_content = preg_replace($pattern, $append, $the_content);
$pattern = '/<\/iframe>/i';
$append = '</amp-iframe>';
$the_content = preg_replace($pattern, $append, $the_content);
//C2A0文字コード(半角スペース)を通常の半角スペースに置換
$the_content = str_replace('\xc2\xa0', ' ', $the_content);
//style属性を取り除く
$the_content = preg_replace('/ +style=["][^"]*?["]/i', '', $the_content);
$the_content = preg_replace('/ +style=[\'][^\']*?[\']/i', '', $the_content);
//onclick属性を取り除く
$the_content = preg_replace('/ +onclick=["][^"]*?["]/i', '', $the_content);
$the_content = preg_replace('/ +onclick=[\'][^\']*?[\']/i', '', $the_content);
//fontタグを取り除く
$the_content = preg_replace('/<font[^>]+?>/i', '', $the_content);
$the_content = preg_replace('/<\/font>/i', '', $the_content);
//画像タグをAMP用に置換
$the_content = preg_replace('/<img (.*?)>/i', '<amp-img layout="responsive" $1></amp-img>', $the_content);
$the_content = preg_replace('/<img (.*?) \/>/i', '<amp-img layout="responsive" $1></amp-img>', $the_content);
//スクリプトを除去する
$pattern = '/<script.+?<\/script>/is';
$append = '';
$the_content = preg_replace($pattern, $append, $the_content);
return $the_content;
}else {
return $the_content;
}
}
add_filter('the_content','convert_content_amp', 999999999);
\ No newline at end of file
<?php
////////////////////////////////////////////////////////
// AMP用テンプレートへの切り替え
////////////////////////////////////////////////////////
function fit_amp_template_switch($template) {
$new_template = $template;
if (isset($_GET["type"]) && $_GET['type'] == 'AMP' && is_single() && get_option('fit_ampFunction_switch') == 'on' && get_post_meta(get_the_ID(), 'amp_hide', true) != '1') {
$new_template = locate_template( "single-amp.php" );
}
return $new_template;
}
add_filter('single_template', 'fit_amp_template_switch');
<?php
//////////////////////////////////////////////////
//カスタムフィールドインクルード
//////////////////////////////////////////////////
require_once locate_template('inc/custom_field/seo.php'); // SEO設定用ファイル
require_once locate_template('inc/custom_field/password.php'); // パスワード保護コンテンツ設定用ファイル
require_once locate_template('inc/custom_field/column.php'); // カラム設定用ファイル
require_once locate_template('inc/custom_field/cta.php'); // CTA設定用ファイル
require_once locate_template('inc/custom_field/hide.php'); // 表示非表示設定用ファイル
require_once locate_template('inc/custom_field/views.php'); // 投稿管理画面PV数表示用ファイル
require_once locate_template('inc/custom_field/tag_scode.php'); // タグ管理ショートコード表示用ファイル
require_once locate_template('inc/custom_field/tag_number.php'); // タグ管理閲覧数&クリック数表示用ファイル
require_once locate_template('inc/custom_field/rank_scode.php'); // タグランキングショートコード表示用ファイル
require_once locate_template('inc/custom_field/tag_builder.php'); // タグ管理登録ビルダー用ファイル
require_once locate_template('inc/custom_field/rank_builder.php'); // タグランキング登録ビルダー用ファイル
<?php
////////////////////////////////////////////////////////
//カラム設定用カスタムフィールド
////////////////////////////////////////////////////////
function fit_add_column_fields() {
//add_meta_box(表示される入力ボックスのHTMLのID, ラベル, 表示する内容を作成する関数名, 投稿タイプ, 表示方法)
add_meta_box( 'column_setting', 'カラム設定', 'fit_insert_column_fields', 'post', 'side');
add_meta_box( 'column_setting', 'カラム設定', 'fit_insert_column_fields', 'page', 'side');
}
add_action('admin_menu', 'fit_add_column_fields');
// カスタムフィールドの入力エリア(PAGE)
if(!function_exists('fit_insert_column_fields')) {
function fit_insert_column_fields() {
global $post;
$column_single_check = "";
$column_double_check = "";
$column_default_check = "";
if( !get_post_meta($post->ID,'column_layout',true) || get_post_meta($post->ID,'column_layout',true) == "0" ) {
$column_default_check = "checked";
}if( get_post_meta($post->ID,'column_layout',true) == "1" ) {
$column_single_check = "checked";
}if( get_post_meta($post->ID,'column_layout',true) == "2" ) {
$column_double_check = "checked";
}
echo '<div class="fitInner">';
echo '<input type="radio" name="column_layout" value="0" '.$column_default_check.'>デフォルト<br>';
echo '<input type="radio" name="column_layout" value="1" '.$column_single_check.' >1カラムにする<br>';
echo '<input type="radio" name="column_layout" value="2" '.$column_double_check.' >2カラムにする<br>';
echo '</div>';
}
}
// カスタムフィールドの値を保存
function fit_save_column_fields( $post_id ) {
// クイックポストの時は何もしない
if(isset($_POST['action'])) {
if ($_POST['action'] == 'inline-save') {
return $post_id;
}
}
if(!empty($_POST['column_layout'])){
update_post_meta($post_id, 'column_layout', $_POST['column_layout'] );
}else{
delete_post_meta($post_id, 'column_layout');
}
}
add_action('save_post', 'fit_save_column_fields');
<?php
////////////////////////////////////////////////////////
//個別CTA設定
////////////////////////////////////////////////////////
function fit_add_cta_fields() {
//add_meta_box(表示される入力ボックスのHTMLのID, ラベル, 表示する内容を作成する関数名, 投稿タイプ, 表示方法)
if(get_option('fit_postCta_switch') == 'on' ){add_meta_box( 'cta_setting', '記事下CTA設定', 'fit_insert_cta_fieldsPost', 'post', 'side');}
if(get_option('fit_pageCta_switch') == 'on' ){add_meta_box( 'cta_setting', '記事下CTA設定', 'fit_insert_cta_fieldsPage', 'page', 'side');}
}
add_action('admin_menu', 'fit_add_cta_fields');
if(get_option('fit_postCta_switch') == 'on' ){
// カスタムフィールドの入力エリア
function fit_insert_cta_fieldsPost() {
$cta_id = get_post_meta(get_the_id(),'cta_id',true);
// 投稿データ(cta)の取得
$args = array(
'posts_per_page' => -1, //表示(取得)する記事の数
'post_type' => 'cta', //投稿タイプの指定
'order' => 'ASC',
'orderby' => 'ID' //投稿ID順で並び替え
);
$the_query = get_posts( $args );
echo '<div class="fitInner">';
echo '<select name="cta_id" class="select__title">';
echo '<option value="">デフォルトのCTAを利用する</option>';
foreach ( $the_query as $post ) {
setup_postdata( $post );
$selected = ((int)$cta_id === $post->ID)?' selected="selected"':'';
echo '<option value="'.$post->ID.'"'.$selected.'>'.$post->ID.':'.$post->post_title.'</option>';
}
wp_reset_postdata();
echo '</select>';
echo '</div>';
}
}
if(get_option('fit_pageCta_switch') == 'on' ){
// カスタムフィールドの入力エリア
function fit_insert_cta_fieldsPage() {
$cta_id = get_post_meta(get_the_id(),'cta_id',true);
// 投稿データ(cta)の取得
$args = array(
'posts_per_page' => -1, //表示(取得)する記事の数
'post_type' => 'cta', //投稿タイプの指定
'order' => 'ASC',
'orderby' => 'ID' //投稿ID順で並び替え
);
$the_query = get_posts( $args );
echo '<div class="fitInner">';
echo '<select name="cta_id" class="select__title">';
echo '<option value="">デフォルトのCTAを利用する</option>';
foreach ( $the_query as $post ) {
setup_postdata( $post );
$selected = ((int)$cta_id === $post->ID)?' selected="selected"':'';
echo '<option value="'.$post->ID.'"'.$selected.'>'.$post->ID.':'.$post->post_title.'</option>';
}
wp_reset_postdata();
echo '</select>';
echo '</div>';
}
}
// カスタムフィールドの値を保存
function fit_save_cta_fields( $post_id ) {
// クイックポストの時は何もしない
if(isset($_POST['action'])) {
if ($_POST['action'] == 'inline-save') {
return $post_id;
}
}
if(!empty($_POST['cta_id'])){
update_post_meta($post_id, 'cta_id', $_POST['cta_id'] );
}else{
delete_post_meta($post_id, 'cta_id');
}
}
add_action('save_post', 'fit_save_cta_fields');
<?php
////////////////////////////////////////////////////////
//表示/非表示、個別選択設定
////////////////////////////////////////////////////////
function fit_add_hide_fields() {
//add_meta_box(表示される入力ボックスのHTMLのID, ラベル, 表示する内容を作成する関数名, 投稿タイプ, 表示方法)
if(get_option('fit_postOutline_switch') == 'on' ||
get_option('fit_postShare_top') == 'on' ||
get_option('fit_postShare_bottom') == 'on' ||
get_option('fit_postSns_switch') == 'on' ||
get_option('fit_postCta_switch') == 'on' ||
get_option('fit_postPrevNext_switch') == 'on' ||
get_option('fit_postProfile_switch') == 'on' ||
get_option('fit_postRelated_switch') == 'on' ||
get_option('fit_postCategory_switch') == 'on' ||
get_option('fit_adPost_doubleLeft') ||
get_option('fit_adPost_doubleRight') ||
get_option('fit_ampFunction_switch') == 'on'
){
add_meta_box( 'hide_setting', '個別非表示設定', 'fit_insert_hidePost_fields', 'post', 'side');
}
if(get_option('fit_pageOutline_switch') == 'on' ||
get_option('fit_pageShare_top') == 'on' ||
get_option('fit_pageShare_bottom') == 'on' ||
get_option('fit_pageCta_switch') == 'on'
){
add_meta_box( 'hide_setting', '個別非表示設定', 'fit_insert_hidePage_fields', 'page', 'side');
}
}
add_action('admin_menu', 'fit_add_hide_fields');
// カスタムフィールドの入力エリア(POST)
function fit_insert_hidePost_fields() {
global $post;
$outline_hide_check = "";
$share_hide_check = "";
$follow_hide_check = "";
$cta_hide_check = "";
$prevNext_hide_check = "";
$profile_hide_check = "";
$related_hide_check = "";
$category_hide_check = "";
$rectangle_hide_check = "";
$amp_hide_check = "";
if( get_post_meta($post->ID,'outline_hide',true) == "1" ) {
$outline_hide_check = "checked";
}if( get_post_meta($post->ID,'share_hide',true) == "1" ) {
$share_hide_check = "checked";
}if( get_post_meta($post->ID,'follow_hide',true) == "1" ) {
$follow_hide_check = "checked";
}if( get_post_meta($post->ID,'cta_hide',true) == "1" ) {
$cta_hide_check = "checked";
}if( get_post_meta($post->ID,'prevNext_hide',true) == "1" ) {
$prevNext_hide_check = "checked";
}if( get_post_meta($post->ID,'profile_hide',true) == "1" ) {
$profile_hide_check = "checked";
}if( get_post_meta($post->ID,'related_hide',true) == "1" ) {
$related_hide_check = "checked";
}if( get_post_meta($post->ID,'category_hide',true) == "1" ) {
$category_hide_check = "checked";
}if( get_post_meta($post->ID,'rectangle_hide',true) == "1" ) {
$rectangle_hide_check = "checked";
}if( get_post_meta($post->ID,'amp_hide',true) == "1" ) {
$amp_hide_check = "checked";
}
echo '<div class="fitInner">';
if(get_option('fit_postOutline_switch') == 'on' ){
echo '<input type="checkbox" name="outline_hide" value="1" '.$outline_hide_check.' >目次を非表示にする<br>';
}
if(get_option('fit_postShare_top') == 'on' || get_option('fit_postShare_bottom') == 'on' ){
echo '<input type="checkbox" name="share_hide" value="1" '.$share_hide_check.' >シェアボタンを非表示にする<br>';
}
if(get_option('fit_postSns_switch') == 'on' ){
echo '<input type="checkbox" name="follow_hide" value="1" '.$follow_hide_check.' >フォローボタンを非表示にする<br>';
}
if(get_option('fit_postCta_switch') == 'on' ){
echo '<input type="checkbox" name="cta_hide" value="1" '.$cta_hide_check.' >記事下CTAを非表示にする<br>';
}
if(get_option('fit_postPrevNext_switch') == 'on' ){
echo '<input type="checkbox" name="prevNext_hide" value="1" '.$prevNext_hide_check.' >Prev Next記事を非表示にする<br>';
}
if(get_option('fit_postProfile_switch') == 'on' ){
echo '<input type="checkbox" name="profile_hide" value="1" '.$profile_hide_check.' >プロフィールを非表示にする<br>';
}
if(get_option('fit_postRelated_switch') == 'on' ){
echo '<input type="checkbox" name="related_hide" value="1" '.$related_hide_check.' >関連記事を非表示にする<br>';
}
if(get_option('fit_postCategory_switch') == 'on' ){
echo '<input type="checkbox" name="category_hide" value="1" '.$category_hide_check.' >所属カテゴリ最新記事を非表示にする<br>';
}
if(get_option('fit_adPost_doubleLeft') || get_option('fit_adPost_doubleRight')){
echo '<input type="checkbox" name="rectangle_hide" value="1" '.$rectangle_hide_check.' >レクタングル広告を非表示にする<br>';
}
if(get_option('fit_ampFunction_switch') == 'on' ){
echo '<input type="checkbox" name="amp_hide" value="1" '.$amp_hide_check.' >AMPページを非表示にする<br>';
}
echo '</div>';
}
// カスタムフィールドの入力エリア(PAGE)
function fit_insert_hidePage_fields() {
global $post;
$outline_hide_check = "";
$share_hide_check = "";
$cta_hide_check = "";
if( get_post_meta($post->ID,'outline_hide',true) == "1" ) {
$outline_hide_check = "checked";
}if( get_post_meta($post->ID,'share_hide',true) == "1" ) {
$share_hide_check = "checked";
}if( get_post_meta($post->ID,'cta_hide',true) == "1" ) {
$cta_hide_check = "checked";
}
echo '<div class="fitInner">';
if(get_option('fit_pageOutline_switch') == 'on' ){
echo '<input type="checkbox" name="outline_hide" value="1" '.$outline_hide_check.' >目次を非表示にする<br>';
}
if(get_option('fit_pageShare_top') == 'on' || get_option('fit_postShare_bottom') == 'on' ){
echo '<input type="checkbox" name="share_hide" value="1" '.$share_hide_check.' >シェアボタンを非表示にする<br>';
}
if(get_option('fit_pageCta_switch') == 'on' ){
echo '<input type="checkbox" name="cta_hide" value="1" '.$cta_hide_check.' >記事下CTAを非表示にする<br>';
}
echo '</div>';
}
// カスタムフィールドの値を保存
function fit_save_hide_fields( $post_id ) {
// クイックポストの時は何もしない
if(isset($_POST['action'])) {
if ($_POST['action'] == 'inline-save') {
return $post_id;
}
}
if(!empty($_POST['outline_hide'])){
update_post_meta($post_id, 'outline_hide', $_POST['outline_hide'] );
}else{
delete_post_meta($post_id, 'outline_hide');
}if(!empty($_POST['share_hide'])){
update_post_meta($post_id, 'share_hide', $_POST['share_hide'] );
}else{
delete_post_meta($post_id, 'share_hide');
}if(!empty($_POST['follow_hide'])){
update_post_meta($post_id, 'follow_hide', $_POST['follow_hide'] );
}else{
delete_post_meta($post_id, 'follow_hide');
}if(!empty($_POST['cta_hide'])){
update_post_meta($post_id, 'cta_hide', $_POST['cta_hide'] );
}else{
delete_post_meta($post_id, 'cta_hide');
}if(!empty($_POST['prevNext_hide'])){
update_post_meta($post_id, 'prevNext_hide', $_POST['prevNext_hide'] );
}else{
delete_post_meta($post_id, 'prevNext_hide');
}if(!empty($_POST['profile_hide'])){
update_post_meta($post_id, 'profile_hide', $_POST['profile_hide'] );
}else{
delete_post_meta($post_id, 'profile_hide');
}if(!empty($_POST['related_hide'])){
update_post_meta($post_id, 'related_hide', $_POST['related_hide'] );
}else{
delete_post_meta($post_id, 'related_hide');
}if(!empty($_POST['category_hide'])){
update_post_meta($post_id, 'category_hide', $_POST['category_hide'] );
}else{
delete_post_meta($post_id, 'category_hide');
}if(!empty($_POST['rectangle_hide'])){
update_post_meta($post_id, 'rectangle_hide', $_POST['rectangle_hide'] );
}else{
delete_post_meta($post_id, 'rectangle_hide');
}if(!empty($_POST['amp_hide'])){
update_post_meta($post_id, 'amp_hide', $_POST['amp_hide'] );
}else{
delete_post_meta($post_id, 'amp_hide');
}
}
add_action('save_post', 'fit_save_hide_fields');
<?php
////////////////////////////////////////////////////////
// パスワード保護中の冒頭コンテンツ用カスタムフィールド
////////////////////////////////////////////////////////
function fit_add_pass_fields() {
add_meta_box( 'pass_setting', 'パスワード保護中コンテンツ', 'fit_insert_pass_fields', 'post', 'normal', 'high');
add_meta_box( 'pass_setting', 'パスワード保護中コンテンツ', 'fit_insert_pass_fields', 'page', 'normal', 'high');
}
add_action('admin_menu', 'fit_add_pass_fields');
// カスタムフィールドの入力フィールド
function fit_insert_pass_fields() {
global $post;
$pass_contents = get_post_meta($post->ID,'pass_contents',true);
?>
<table class="basicTable">
<tbody>
<tr>
<th>パスワード保護中の冒頭コンテンツ設定</th>
<td>
<textarea name="pass_contents" id="pass_contents" cols="50" rows="4" /><?php echo esc_html($pass_contents) ?></textarea>
</td>
</tr>
</tbody>
</table>
<?php
}
// カスタムフィールドの値を保存
function fit_save_pass_fields( $post_id ) {
// クイックポストの時は何もしない
if(isset($_POST['action'])) {
if ($_POST['action'] == 'inline-save') {
return $post_id;
}
}
if(!empty($_POST['pass_contents'])){
update_post_meta($post_id, 'pass_contents', $_POST['pass_contents'] );
}else{
delete_post_meta($post_id, 'pass_contents');
}
}
add_action('save_post', 'fit_save_pass_fields');
<?php
////////////////////////////////////////////////////////
//タグランキング登録ビルダー
////////////////////////////////////////////////////////
//投稿ページにカスタムフィールド入力欄
function add_afRanking_post_fields() {
add_meta_box('afRanking_post_setting', 'タグランキングビルダー', 'insert_afRanking_post', 'afRanking', 'normal' );
}
add_action('admin_menu', 'add_afRanking_post_fields');
function insert_afRanking_post() {
global $post;
$style = get_post_meta($post->ID, 'afRanking_style', true);
$crown = get_post_meta($post->ID, 'afRanking_crown', true);
$values = get_post_meta($post->ID, 'afRanking_post', true);
// 投稿データ(afTag)の取得
$args = array(
'posts_per_page' => -1, //表示(取得)する記事の数
'post_type' => 'afTag', //投稿タイプの指定
'order' => 'ASC',
'orderby' => 'ID' //投稿ID順で並び替え
);
$the_query = new WP_Query( $args );
?>
<table class="afRankFormatBuilderTable">
<tbody>
<tr valign="top">
<td>表示スタイル</td>
<td>
<label><input type="radio" name="afRanking_style" value="_0" <?php if($style == '_0' || empty($style)){echo 'checked';} ?>> フォーマットを利用しない</label>
<label><input type="radio" name="afRanking_style" value="_1" <?php if($style == '_1'){echo 'checked';} ?>> 利用する(全項目表示)</label>
<label><input type="radio" name="afRanking_style" value="_2" <?php if($style == '_2'){echo 'checked';} ?>> 利用する(簡易表示)</label>
</td>
</tr>
<tr valign="top">
<td>ランクマーク</td>
<td>
<label><input type="radio" name="afRanking_crown" value="_1" <?php if($crown == '_1' || empty($crown)){echo 'checked';} ?>> 画像1</label>
<label><input type="radio" name="afRanking_crown" value="_2" <?php if($crown == '_2'){echo 'checked';} ?>> 画像2</label>
<label><input type="radio" name="afRanking_crown" value="_3" <?php if($crown == '_3'){echo 'checked';} ?>> 画像3</label>
<label><input type="radio" name="afRanking_crown" value="_4" <?php if($crown == '_4'){echo 'checked';} ?>> 画像4</label>
<label><input type="radio" name="afRanking_crown" value="_5" <?php if($crown == '_5'){echo 'checked';} ?>> 画像5</label>
</td>
</tr>
</tbody>
</table>
<table class="afRankBuilderTable">
<thead>
<tr valign="top">
<th scope="col" width="10px"></th>
<th scope="col">タグを指定</th>
<th scope="col" width="130px">CONTROL</th>
<tr>
</thead>
<tbody class="afRankBuilderTable__tbody">
<?php
if ( !empty( $values) ) {
foreach ($values as $val) {
?>
<tr valign="top" class="afRankBuilderTable__tr">
<td></td>
<td>
<select name="afRanking_post[]" class="select__title">
<?php
if ( $the_query->have_posts() ) {
while ( $the_query->have_posts() ) {
$the_query->the_post();
$selected = ((int)$val === get_the_ID())?' selected="selected"':'';
echo '<option value="'.get_the_ID().'"'.$selected.'>'.get_the_ID().':'.get_the_title().'</option>';
}
}
wp_reset_postdata();
?>
</select>
</td>
<td>
<input type="button" class="button button-delete" value="削除" />
<input type="button" class="button button-moveup" value="↑" />
<input type="button" class="button button-movedown" value="↓" />
</td>
</tr>
<?php }} else { ?>
<tr valign="top" class="afRankBuilderTable__tr">
<td></td>
<td>
<select name="afRanking_post[]" class="select__title">
<?php
if ( $the_query->have_posts() ) {
while ( $the_query->have_posts() ) {
$the_query->the_post();
echo '<option value="'.get_the_ID().'">'.get_the_ID().':'.get_the_title().'</option>';
}
}
wp_reset_postdata();
?>
</select>
</td>
<td>
<input type="button" class="button button-delete" value="削除" />
<input type="button" class="button button-moveup" value="↑" />
<input type="button" class="button button-movedown" value="↓" />
</td>
</tr>
<?php } ?>
<tr valign="top">
<td colspan="3">
<input type="button" class="button button-add" value="行を追加" />
</td>
</tr>
</tbody>
</table>
<script>
(function($){
$('.afRankBuilderTable__tbody').on('click', '.button-add', function(){
var areaTr = '\
<tr valign="top" class="afRankBuilderTable__tr">\
<td></td>\
<td>\
<select name="afRanking_post[]" class="select__title">\
<?php
if ( $the_query->have_posts() ) {
while ( $the_query->have_posts() ) {
$the_query->the_post();
echo '<option value="'.get_the_ID().'">'.get_the_ID().':'.get_the_title().'</option>';
}
}
wp_reset_postdata();
?>
</select>\
</td>\
<td>\
<input type="button" class="button button-delete" value="削除" />\
<input type="button" class="button button-moveup" value="↑" />\
<input type="button" class="button button-movedown" value="↓" />\
</td>\
</tr>';
$(this).closest('tr').before(areaTr);
});
$('.afRankBuilderTable__tbody').on('click', '.button-delete', function(){
$(this).closest('tr').remove();
});
$('.afRankBuilderTable__tbody').on('click', '.button-moveup',function(){
var moveTr = $(this).parent().parent();
if($(moveTr).prev('tr')){
$(moveTr).insertBefore($(moveTr).prev('tr'));
}
});
$('.afRankBuilderTable__tbody').on('click', '.button-movedown',function(){
var moveTr = $(this).parent().parent();
if($(moveTr).next('tr') && $(moveTr).next('tr').hasClass('afRankBuilderTable__tr')){
$(moveTr).insertAfter($(moveTr).next('tr'));
}
});
// sortstopイベントをバインド
$('.afRankBuilderTable__tbody').bind('sortstop',function(){
// 番号を設定している要素に対しループ処理
$(this).find('[name="num_data"]').each(function(idx){
// タグ内に通し番号を設定(idxは0始まりなので+1する)
$(this).html(idx+1);
});
});
})(jQuery);
</script>
<?php
}
//保存用関数
function save_afRanking_post( $post_id ) {
// クイックポストの時は何もしない
if(isset($_POST['action'])) {
if ($_POST['action'] == 'inline-save') {
return $post_id;
}
}
if(!empty($_POST['afRanking_style'])){
update_post_meta($post_id, 'afRanking_style', $_POST['afRanking_style'] );
}else{
delete_post_meta($post_id, 'afRanking_style');
}
if(!empty($_POST['afRanking_crown'])){
update_post_meta($post_id, 'afRanking_crown', $_POST['afRanking_crown'] );
}else{
delete_post_meta($post_id, 'afRanking_crown');
}
if(!empty($_POST['afRanking_post'])){ //入力されている場合
update_post_meta($post_id, 'afRanking_post', $_POST['afRanking_post'] ); //値を保存
}else{ //未入力の場合
delete_post_meta($post_id, 'afRanking_post'); //値を削除
}
}
add_action('save_post', 'save_afRanking_post');
<?php
////////////////////////////////////////////////////////
//ランキング投稿画面にショートコード表示
////////////////////////////////////////////////////////
function add_afRanking_Scode_fields() {
add_meta_box( 'afRanking_Scode_setting', 'ショートコード', 'insert_afRanking_Scode', 'afRanking', 'side');
}
add_action('admin_menu', 'add_afRanking_Scode_fields');
// カスタムフィールドの表示エリア
function insert_afRanking_Scode() {
global $post;
echo '<input type="text" value="[afRanking id='.esc_attr($post->ID).']" readonly>';
}
<?php
////////////////////////////////////////////////////////
// SEO専用カスタムフィールド
////////////////////////////////////////////////////////
function fit_add_seo_fields() {
add_meta_box( 'seo_setting', 'SEO対策', 'fit_insert_seo_fields', 'post', 'normal', 'high');
add_meta_box( 'seo_setting', 'SEO対策', 'fit_insert_seo_fields', 'page', 'normal', 'high');
}
add_action('admin_menu', 'fit_add_seo_fields');
// カスタムフィールドの入力フィールド
function fit_insert_seo_fields() {
global $post;
$title = get_post_meta($post->ID,'title',true);
$description = get_post_meta($post->ID,'description',true);
$titleName_check = "";
$noindex_check = "";
$nofollow_check = "";
$nosnippet_check = "";
$noarchive_check = "";
if( get_post_meta($post->ID,'titleName',true) == 1 ) {
$titleName_check = "checked";
}
if( get_post_meta($post->ID,'noindex',true) == 'noindex' ) {
$noindex_check = "checked";
}
if( get_post_meta($post->ID,'nofollow',true) == 'nofollow' ) {
$nofollow_check = "checked";
}
if( get_post_meta($post->ID,'nosnippet',true) == 'nosnippet' ) {
$nosnippet_check = "checked";
}
if( get_post_meta($post->ID,'noarchive',true) == 'noarchive' ) {
$noarchive_check = "checked";
}
?>
<table class="basicTable">
<tbody>
<tr>
<th>title設定</th>
<td>
<input type="text" size="50" name="title" id="title" value="<?php echo esc_html($title) ?>" /><br>
<input type="checkbox" name="titleName" value="1" <?php echo $titleName_check ?>>後ろに[<?php echo fit_title_separator().get_bloginfo( 'name' ) ?>]を表示する<br>
<span style="color: #7F7F7F;">※未入力時は「記事タイトル <?php echo fit_title_separator().get_bloginfo( 'name' )?>」が表示されます。</span>
</td>
</tr>
<tr>
<th>meta description設定</th>
<td>
<textarea name="description" id="description" cols="50" rows="4" /><?php echo esc_html($description) ?></textarea><br>
<span>検索結果に表示される説明文です。</span>
</td>
</tr>
<tr>
<th>meta robot設定</th>
<td>
<input type="checkbox" name="noindex" value="noindex" <?php echo $noindex_check ?>>:NoIndex 
<input type="checkbox" name="nofollow" value="nofollow" <?php echo $nofollow_check ?>>:NoFollow 
<input type="checkbox" name="nosnippet" value="nosnippet" <?php echo $nosnippet_check ?>>:NoSnippet 
<input type="checkbox" name="noarchive" value="noarchive" <?php echo $noarchive_check ?>>:NoArchive
</td>
</tr>
</tbody>
</table>
<?php
}
// カスタムフィールドの値を保存
function fit_save_seo_fields( $post_id ) {
// クイックポストの時は何もしない
if(isset($_POST['action'])) {
if ($_POST['action'] == 'inline-save') {
return $post_id;
}
}
if(!empty($_POST['title'])){
update_post_meta($post_id, 'title', $_POST['title'] );
}else{
delete_post_meta($post_id, 'title');
}
if(!empty($_POST['titleName'])){
update_post_meta($post_id, 'titleName', $_POST['titleName'] );
}else{
delete_post_meta($post_id, 'titleName');
}
if(!empty($_POST['description'])){
update_post_meta($post_id, 'description', $_POST['description'] );
}else{
delete_post_meta($post_id, 'description');
}
if(!empty($_POST['noindex'])){
update_post_meta($post_id, 'noindex', $_POST['noindex'] );
}else{
delete_post_meta($post_id, 'noindex');
}
if(!empty($_POST['nofollow'])){
update_post_meta($post_id, 'nofollow', $_POST['nofollow'] );
}else{
delete_post_meta($post_id, 'nofollow');
}
if(!empty($_POST['nosnippet'])){
update_post_meta($post_id, 'nosnippet', $_POST['nosnippet'] );
}else{
delete_post_meta($post_id, 'nosnippet');
}
if(!empty($_POST['noarchive'])){
update_post_meta($post_id, 'noarchive', $_POST['noarchive'] );
}else{
delete_post_meta($post_id, 'noarchive');
}
}
add_action('save_post', 'fit_save_seo_fields');
<?php
////////////////////////////////////////////////////////
//タグ管理に閲覧数&クリック数表示
////////////////////////////////////////////////////////
function add_afTag_day_fields() {
add_meta_box( 'afTag_day_setting', '情報', 'insert_afTag_day', 'afTag', 'side');
}
add_action('admin_menu', 'add_afTag_day_fields');
// カスタムフィールドの表示エリア
function insert_afTag_day() {
global $post;
//投稿日をセット
$Date1 = get_the_time('Y-m-d');
$TimeStamp1 = strtotime($Date1);//日付をUNIXタイムスタンプに変換
//今日をセット
$Date2 = date_i18n("Y-m-d");
$TimeStamp2 = strtotime($Date2);//日付をUNIXタイムスタンプに変換
//投稿日から今日まで何日離れているか
$SecondDiff = abs($TimeStamp2 - $TimeStamp1);//何秒離れているかを計算(絶対値)
$DayDiff = $SecondDiff / (60 * 60 * 24) + 1;//秒を日数に変換(投稿日から何日?)
//総合閲覧数をセット
$Date3 = (int)$post->post_views;
//平均閲覧数をセット
$average = (int)$Date3 / (int)$DayDiff;//平均閲覧数(1日)
$Date4 = (int)esc_attr($average);
//総合クリック数をセット
$Date5 = (int)$post->afTag_click;
//平均クリック数をセット
$averageC = (int)$Date5 / (int)$DayDiff;//平均クリック数(1日)
$Date6 = (int)esc_attr($averageC);
//CTRをセット
$ctr = '0';
if(!$Date3 == 0){
$ctr = (int)$Date5 / (int)$Date3 * 100;//総合クリック数÷総合閲覧数×100
}
$Date7 = (int)esc_attr($ctr);
//日付をUNIXタイムスタンプに変換
$TimeStamp1 = strtotime($Date1);
$TimeStamp2 = strtotime($Date2);
//何秒離れているかを計算(絶対値)
$SecondDiff = abs($TimeStamp2 - $TimeStamp1);
//秒を日数に変換
$DayDiff = $SecondDiff / (60 * 60 * 24) + 1;
//出力
echo '<div class="afTag_day">公開期間:<input type="text" value="'.$DayDiff.' 日" readonly=""></div>';
echo '<div class="afTag_day">総合閲覧数:<input type="text" value="'.$Date3.' View" readonly=""></div>';
echo '<div class="afTag_day">平均閲覧数(1日):<input type="text" value="'.$Date4.' View" readonly=""></div>';
echo '<div class="afTag_day">総合クリック数:<input type="text" value="'.$Date5.' Click" readonly=""></div>';
echo '<div class="afTag_day">平均クリック数(1日):<input type="text" value="'.$Date6.' Click" readonly=""></div>';
echo '<div class="afTag_day">総合CTR:<input type="text" value="'.$Date7.' %" readonly=""></div>';
}
<?php
////////////////////////////////////////////////////////
//タグ管理画面にショートコード表示
////////////////////////////////////////////////////////
function add_afTag_Scode_fields() {
add_meta_box( 'afTag_Scode_setting', 'ショートコード', 'insert_afTag_Scode', 'afTag', 'side');
}
add_action('admin_menu', 'add_afTag_Scode_fields');
// カスタムフィールドの表示エリア
function insert_afTag_Scode() {
global $post;
echo '<input type="text" value="[afTag id='.esc_attr($post->ID).']" readonly>';
}
<?php
////////////////////////////////////////////////////////
//投稿画面(管理画面)にPV数を表示
////////////////////////////////////////////////////////
function add_post_views_fields() {
add_meta_box( 'post_views_setting', '閲覧数', 'insert_post_views', 'post', 'side');
}
add_action('admin_menu', 'add_post_views_fields');
// カスタムフィールドの表示エリア
function insert_post_views($post_id) {
$Date1 = get_the_time('Y-m-d', $post_id);//投稿日をセット
$Date2 = date_i18n("Y-m-d");//今日をセット
$TimeStamp1 = strtotime($Date1);//日付をUNIXタイムスタンプに変換
$TimeStamp2 = strtotime($Date2);//日付をUNIXタイムスタンプに変換
$SecondDiff = abs($TimeStamp2 - $TimeStamp1);//何秒離れているかを計算(絶対値)
$DayDiff = $SecondDiff / (60 * 60 * 24) + 1;//秒を日数に変換(投稿日から何日?)
$count = $post_id->post_views;//総合閲覧数
$average = (int)$count / (int)$DayDiff;//平均閲覧数(1日)
echo '<div class="afTag_day">総合閲覧数:<input type="text" value="'.(int)esc_attr($count).'" readonly=""></div>';
echo '<div class="afTag_day">平均閲覧数(1日):<input type="text" value="'.(int)esc_attr($average).'" readonly=""></div>';
}
<?php
//////////////////////////////////////////////////
//カスタム投稿タイプ・タクソノミー用パーツインクルード
//////////////////////////////////////////////////
require_once locate_template('inc/custom_post_taxonomy/setting.php'); // カスタム投稿タイプ・タクソノミーのセッティング用ファイル
require_once locate_template('inc/custom_post_taxonomy/post.php'); // カスタム投稿タイプ追加用ファイル
require_once locate_template('inc/custom_post_taxonomy/taxonomy.php'); // カスタムタクソノミー追加用ファイル
require_once locate_template('inc/custom_post_taxonomy/storage_views.php');// カスタムタクソノミーへフロントからアクセス数保存用ファイル(投稿・タグ管理)
require_once locate_template('inc/custom_post_taxonomy/storage_click.php');// カスタムタクソノミーへフロントからクリック数保存用ファイル(タグ管理)
<?php
////////////////////////////////////////////////////////
//カスタム投稿タイプ追加
////////////////////////////////////////////////////////
function create_posttype() {
$name = 'CTA管理';
register_post_type(
'cta', //投稿タイプ名
array(
'labels' => array(
'name' => $name, //管理画面などで表示する名前
'singular_name' => $name, //管理画面などで表示する名前(単数形)
'menu_name' => $name, //管理画面メニューで表示する名前(nameより優先される)
'all_items' => $name.'一覧', //管理画面メニューの一覧リンクの文字
'add_new_item' => '新規'.$name.'を追加', //新規作成ページのタイトルに表示される名前
'add_new' => '新規追加', //メニューの新規追加ボタンのラベル
'new_item' => '新規'.$name, //一覧ページの「新規追加」ボタンのラベル
'edit_item' => $name.'の編集', //編集ページのタイトルに表示される名前
'view_item' => '投稿を表示', //編集ページの「投稿を表示」ボタンのラベル
'search_items' => $name.'を検索', //一覧ページの検索ボタンのラベル
'not_found' => $name.'が見つかりませんでした。', //一覧ページに投稿が見つからなかったときに表示
'not_found_in_trash' => 'ゴミ箱内に'.$name.'が見つかりませんでした。' //ゴミ箱に何も入っていないときに表示
),
'public' => false, //管理画面の表示・フロント画面での表示・検索結果の表示・カスタムメニューでの表示
'show_ui' => true, //管理画面の表示
'has_archive' => false, //アーカイブページの作成
'menu_position' => 20, //管理画面メニュー位置
'menu_icon' => 'dashicons-lightbulb', //管理画面メニューアイコン
'hierarchical' => false, //階層構造(固定ページのような)
'supports' => array( //利用パーツ
'title',
'editor',
'revisions',
),
)
);
$name = 'タグ管理';
register_post_type(
'afTag', //投稿タイプ名
array(
'labels' => array(
'name' => $name, //管理画面などで表示する名前
'singular_name' => $name, //管理画面などで表示する名前(単数形)
'menu_name' => $name, //管理画面メニューで表示する名前(nameより優先される)
'all_items' => $name.'一覧', //管理画面メニューの一覧リンクの文字
'add_new_item' => '新規'.$name.'を追加', //新規作成ページのタイトルに表示される名前
'add_new' => '新規追加', //メニューの新規追加ボタンのラベル
'new_item' => '新規'.$name, //一覧ページの「新規追加」ボタンのラベル
'edit_item' => $name.'の編集', //編集ページのタイトルに表示される名前
'view_item' => '投稿を表示', //編集ページの「投稿を表示」ボタンのラベル
'search_items' => $name.'を検索', //一覧ページの検索ボタンのラベル
'not_found' => $name.'が見つかりませんでした。', //一覧ページに投稿が見つからなかったときに表示
'not_found_in_trash' => 'ゴミ箱内に'.$name.'が見つかりませんでした。' //ゴミ箱に何も入っていないときに表示
),
'public' => false, //管理画面の表示・フロント画面での表示・検索結果の表示・カスタムメニューでの表示
'show_ui' => true, //管理画面の表示
'has_archive' => false, //アーカイブページの作成
'menu_position' => 20, //管理画面メニュー位置
'menu_icon' => 'dashicons-exerpt-view', //管理画面メニューアイコン
'hierarchical' => false, //階層構造(固定ページのような)
'supports' => array( //利用パーツ
'title',
'editor',
'custom-fields',
'revisions',
),
)
);
$name = 'タグランキング';
register_post_type(
'afRanking', //投稿タイプ名
array(
'labels' => array(
'name' => $name, //管理画面などで表示する名前
'singular_name' => $name, //管理画面などで表示する名前(単数形)
'menu_name' => $name, //管理画面メニューで表示する名前(nameより優先される)
'all_items' => $name.'一覧', //管理画面メニューの一覧リンクの文字
'add_new_item' => '新規'.$name.'を追加', //新規作成ページのタイトルに表示される名前
'add_new' => '新規追加', //メニューの新規追加ボタンのラベル
'new_item' => '新規'.$name, //一覧ページの「新規追加」ボタンのラベル
'edit_item' => $name.'の編集', //編集ページのタイトルに表示される名前
'view_item' => '投稿を表示', //編集ページの「投稿を表示」ボタンのラベル
'search_items' => $name.'を検索', //一覧ページの検索ボタンのラベル
'not_found' => $name.'が見つかりませんでした。', //一覧ページに投稿が見つからなかったときに表示
'not_found_in_trash' => 'ゴミ箱内に'.$name.'が見つかりませんでした。' //ゴミ箱に何も入っていないときに表示
),
'public' => false, //管理画面の表示・フロント画面での表示・検索結果の表示・カスタムメニューでの表示
'show_ui' => true, //管理画面の表示
'has_archive' => false, //アーカイブページの作成
'menu_position' => 20, //管理画面メニュー位置
'menu_icon' => 'dashicons-awards', //管理画面メニューアイコン
'hierarchical' => false, //階層構造(固定ページのような)
'supports' => array( //利用パーツ
'title',
'revisions',
),
)
);
if(get_option('fit_custBasis_setting') == 'on'){
if(get_option('fit_custBasis_name')){
$name = get_option('fit_custBasis_name');
}else{
$name = 'お知らせ';
}
register_post_type(
'custom', //投稿タイプ名
array(
'labels' => array(
'name' => $name, //管理画面などで表示する名前
'singular_name' => $name, //管理画面などで表示する名前(単数形)
'menu_name' => $name, //管理画面メニューで表示する名前(nameより優先される)
'all_items' => $name.'一覧', //管理画面メニューの一覧リンクの文字
'add_new_item' => '新規'.$name.'を追加', //新規作成ページのタイトルに表示される名前
'add_new' => '新規追加', //メニューの新規追加ボタンのラベル
'new_item' => '新規'.$name, //一覧ページの「新規追加」ボタンのラベル
'edit_item' => $name.'の編集', //編集ページのタイトルに表示される名前
'view_item' => '投稿を表示', //編集ページの「投稿を表示」ボタンのラベル
'search_items' => $name.'を検索', //一覧ページの検索ボタンのラベル
'not_found' => $name.'が見つかりませんでした。', //一覧ページに投稿が見つからなかったときに表示
'not_found_in_trash' => 'ゴミ箱内に'.$name.'が見つかりませんでした。' //ゴミ箱に何も入っていないときに表示
),
'public' => true, //管理画面の表示・フロント画面での表示・検索結果の表示・カスタムメニューでの表示
'show_ui' => true, //管理画面の表示
'has_archive' => true, //アーカイブページの作成
'menu_position' => 20, //管理画面メニュー位置
'menu_icon' => 'dashicons-book-alt', //管理画面メニューアイコン
'hierarchical' => false, //階層構造(固定ページのような)
'supports' => array( //利用パーツ
'title',
'editor',
'author',
'thumbnail',
'revisions',
'comments',
'trackbacks',
'excerpt',
'custom-fields',
),
)
);
}
}
add_action('init', 'create_posttype');
<?php
////////////////////////////////////////////////////////
//カスタム投稿タイプのその他設定
////////////////////////////////////////////////////////
//カスタム投稿(custom)個別ページ表示時のカスタムメニューのクラスを編集(現在地表示用)
function make_menu_current( $classes, $item ) {
if ( $item->url == get_post_type_archive_link('custom') && ( is_tax( 'custom_category' ) || 'custom' == get_post_type() ) ) {
$classes[] = 'current-menu-item';
}
$classes = array_unique( $classes );
return $classes;
}
add_filter( 'nav_menu_css_class', 'make_menu_current', 10, 2 );
//カスタムタクソノミー(custom系)をリダイレクト
add_rewrite_rule('custom/category/([^/]+)/?$', 'index.php?custom_category=$matches[1]', 'top');
add_rewrite_rule('custom/tag/([^/]+)/?$', 'index.php?custom_tag=$matches[1]', 'top');
<?php
////////////////////////////////////////////////////////
//フロント画面からタグ管理のクリック数を保存
////////////////////////////////////////////////////////
//ajaxでデータをPOSTする
function post_ajax_send($id) {
return '
<script>
(function($){
$(".afTag-'.$id.' a[href]").on("click",function(){
if (!this.href.match(new RegExp("^(#|\/|(https?:\/\/" + location.hostname + "))"))) {
$.ajax({
type: "POST",
url: "'.admin_url('admin-ajax.php').'",
data: {
"action" : "tag_ajax",
"meta_key" : "afTag_click",
"post_id" : '.$id.',
"meta_value" : '.get_post_meta($id, 'afTag_click', true ).' + 1
},
dataType: "json",
});
}
});
})(jQuery);
</script>
';
}
//ajaxで受け取ったデータをカスタムタクソノミーのキーに保存する
function post_ajax_reception() {
$meta_key = $_POST['meta_key'];
$meta_value = $_POST['meta_value'];
$post_id = $_POST['post_id'];
if(!empty($meta_key) && !empty($meta_value) && !empty($post_id)){
update_post_meta($post_id, $meta_key, $meta_value );
}else{
delete_post_meta($post_id, $meta_key);
}
}
add_action('wp_ajax_tag_ajax', 'post_ajax_reception');
add_action('wp_ajax_nopriv_tag_ajax', 'post_ajax_reception');
<?php
////////////////////////////////////////////////////////
//フロント画面からアクセス数を保存
////////////////////////////////////////////////////////
//アクセス数をカスタムタクソノミーのキーに保存
function set_post_views($postID) {
$count_key = 'post_views';
$count = get_post_meta($postID, $count_key, true);
if($count==''){
$count = 0;
delete_post_meta($postID, $count_key);
add_post_meta($postID, $count_key, '0');
}else{
$count = $count + 1;
update_post_meta($postID, $count_key, $count);
}
}
<?php
////////////////////////////////////////////////////////
//カスタムタクソノミーを追加
////////////////////////////////////////////////////////
//カスタム投稿タイプ(custom)にカテゴリを追加
if(get_option('fit_custBasis_category') == 'on'){
function add_register_custom_category() {
if(get_option('fit_custBasis_name')){
$name = get_option('fit_custBasis_name');
}else{
$name = 'お知らせ';
}
register_taxonomy(
'custom_category',
'custom', //投稿タイプ名
array(
'labels' => array(
'name' => $name.'カテゴリー',
'add_new_item' => '新規'.$name.'カテゴリーを追加',
'search_items' => $name.'カテゴリーの検索',
'parent_item' => '親'.$name.'カテゴリー',
'edit_item' => $name.'カテゴリーの編集',
),
'hierarchical' => true, //カテゴリータイプを指定
'update_count_callback' => '_update_post_term_count',
'public' => true,
'show_in_nav_menus' => true,
'rewrite' => array(
'slug' => 'custom/category',
'with_front' => true,
'hierarchical' => true
),
)
);
}
add_action('init', 'add_register_custom_category');
}
//カスタム投稿タイプ(custom)にタグを追加
if(get_option('fit_custBasis_tag') == 'on'){
function add_register_custom_tag() {
if(get_option('fit_custBasis_name')){
$name = get_option('fit_custBasis_name');
}else{
$name = 'お知らせ';
}
register_taxonomy(
'custom_tag',
'custom', //投稿タイプ名
array(
'labels' => array(
'name' => $name.'タグ',
'add_new_item' => '新規'.$name.'タグを追加',
'search_items' => $name.'タグの検索',
'parent_item' => '親'.$name.'タグ',
'edit_item' => $name.'タグの編集',
),
'hierarchical' => false, //タグタイプを指定
'update_count_callback' => '_update_post_term_count',
'public' => true,
'show_in_nav_menus' => false,
'rewrite' => array(
'slug' => 'custom/tag',
'with_front' => true,
'hierarchical' => true
),
)
);
}
add_action('init', 'add_register_custom_tag');
}
<?php
//////////////////////////////////////////////////
//カスタマイザーインクルード
//////////////////////////////////////////////////
require_once locate_template('inc/customizer/sanitize.php');// サニタイズ用ファイル
require_once locate_template('inc/customizer/basis.php'); // 基本設定用ファイル
require_once locate_template('inc/customizer/common.php'); // 共通エリア用ファイル
require_once locate_template('inc/customizer/home.php'); // TOPページ用ファイル
require_once locate_template('inc/customizer/archive.php'); // アーカイブページ用ファイル
require_once locate_template('inc/customizer/post.php'); // 投稿ページ用ファイル
require_once locate_template('inc/customizer/page.php'); // 固定ページ用ファイル
require_once locate_template('inc/customizer/custom.php'); // カスタム投稿タイプ用ファイル
require_once locate_template('inc/customizer/ad.php'); // 広告設定用ファイル
require_once locate_template('inc/customizer/seo.php'); // SEO設定用ファイル
require_once locate_template('inc/customizer/sns.php'); // SNS設定用ファイル
require_once locate_template('inc/customizer/amp.php'); // AMP設定用ファイル
require_once locate_template('inc/customizer/pwa.php'); // PWA設定用ファイル
require_once locate_template('inc/customizer/parts.php'); // パーツスタイル設定用ファイル
<?php
////////////////////////////////////////////////////////
//SEO設定画面
////////////////////////////////////////////////////////
function fit_amp_cutomizer( $wp_customize ) {
//パネルの追加
$wp_customize->add_panel( 'fit_amp_panel', array(
'title' => 'AMP設定[THE]',
'priority' => 1,
));
//セクションの追加
$wp_customize->add_section( 'fit_amp_function_section', array(
'title' => 'AMP機能設定',
'panel' => 'fit_amp_panel',
'description' => 'AMP機能の設定画面です。',
'priority' => 1,
));
// AMP表示 セッティング
$wp_customize->add_setting( 'fit_ampFunction_switch', array(
'default' => 'off',
'type' => 'option',
'sanitize_callback' => 'fit_sanitize_select',
));
// AMP表示 コントロール
$wp_customize->add_control( 'fit_ampFunction_switch', array(
'section' => 'fit_amp_function_section',
'settings' => 'fit_ampFunction_switch',
'label' => 'AMP機能設定',
'description' => '■AMPページを表示するか選択',
'type' => 'select',
'choices' => array(
'off' => '非表示(default)',
'on' => '表示',
),
));
// AMPサーチボックス表示 セッティング
$wp_customize->add_setting( 'fit_ampFunction_search', array(
'default' => 'off',
'type' => 'option',
'sanitize_callback' => 'fit_sanitize_select',
));
// AMPサーチボックス表示 コントロール
$key = 'on';
$value = '表示';
if(!is_ssl()){
$key = 'off';
$value = 'SSL化されていないため表示できません';
}
$wp_customize->add_control( 'fit_ampFunction_search', array(
'section' => 'fit_amp_function_section',
'settings' => 'fit_ampFunction_search',
'description' => '■AMPページで検索ボックスを表示するか選択<br>(HTTPS通信サイトでのみ表示できます)',
'type' => 'select',
'choices' => array(
'off' => '非表示(default)',
$key => $value,
),
));
// AMP通常ページへボタン表示 セッティング
$wp_customize->add_setting( 'fit_ampFunction_btn', array(
'default' => 'off',
'type' => 'option',
'sanitize_callback' => 'fit_sanitize_select',
));
// AMP通常ページへボタン表示 コントロール
$wp_customize->add_control( 'fit_ampFunction_btn', array(
'section' => 'fit_amp_function_section',
'settings' => 'fit_ampFunction_btn',
'description' => '■AMPページで通常ページへのボタンを表示するか選択',
'type' => 'select',
'choices' => array(
'off' => '非表示(default)',
'on' => '表示',
),
));
//セクションの追加
$wp_customize->add_section( 'fit_amp_logo_section', array(
'title' => 'AMPロゴの設定',
'panel' => 'fit_amp_panel',
'description' => 'AMPロゴの設定画面です。',
'priority' => 1,
));
//ロゴ画像 セッティング
$wp_customize->add_setting('fit_ampLogo_img', array(
'type' => 'theme_mod',
'sanitize_callback' => 'fit_sanitize_image',
));
//ロゴ画像 コントロール
$wp_customize->add_control(new WP_Customize_Image_Control($wp_customize, 'fit_ampLogo_img', array(
'section' => 'fit_amp_logo_section',
'settings' => 'fit_ampLogo_img',
'label' => 'ロゴ画像の設定',
'description' => '■AMPのロゴ画像を登録<br>(サイズ:縦:60 × 横:600px 以下)',
)));
// セクション
$wp_customize->add_section( 'fit_amp_ad_section', array(
'title' => 'AMPページ用広告設定',
'priority' => 1,
'panel' => 'fit_amp_panel',
'description' => 'AMPページ用広告の画面です。',
));
// AMP広告 セッティング
$wp_customize->add_setting( 'fit_ampAd_tag', array(
'type' => 'option',
'sanitize_callback' => '',
));
// AMP広告 コントロール
$wp_customize->add_control( 'fit_ampAd_tag', array(
'section' => 'fit_amp_ad_section',
'settings' => 'fit_ampAd_tag',
'label' => 'AMP広告の設定',
'description' => '■AdSense等の広告タグを入力<br>
(通常投稿ページ内の広告を、ここで設定したAMP広告タグに切り替えます)',
'type' => 'textarea',
));
}
add_action( 'customize_register', 'fit_amp_cutomizer' );
function get_fit_amplogo(){ return esc_url(get_theme_mod('fit_ampLogo_img'));}
<?php
////////////////////////////////////////////////////////
//カスタム投稿タイプ設定画面
////////////////////////////////////////////////////////
function fit_custom_cutomizer( $wp_customize ) {
//パネルの追加
$wp_customize->add_panel( 'fit_custom_panel', array(
'title' => 'カスタム投稿タイプ設定[THE]',
'priority' => 1,
));
//セクションの追加
$wp_customize->add_section( 'fit_custom_basis_section', array(
'title' => '基本設定',
'panel' => 'fit_custom_panel',
'description' => '基本の設定画面です。',
'priority' => 1,
));
//カスタム投稿タイプの利用 セッティング
$wp_customize->add_setting( 'fit_custBasis_setting', array(
'default' => 'off',
'type' => 'option',
'sanitize_callback' => 'fit_sanitize_select',
));
//カスタム投稿タイプの利用 コントロール
$wp_customize->add_control( 'fit_custBasis_setting', array(
'section' => 'fit_custom_basis_section',
'settings' => 'fit_custBasis_setting',
'label' => '基本設定',
'description' => '■カスタム投稿タイプを利用するか選択',
'type' => 'select',
'choices' => array(
'off' => '利用しない(default)',
'on' => '利用する',
),
));
//カスタム投稿タイプ名 セッティング
$wp_customize->add_setting( 'fit_custBasis_name', array(
'type' => 'option',
'sanitize_callback' => 'wp_filter_nohtml_kses',
'default' => 'お知らせ',
));
//カスタム投稿タイプ名 コントロール
$wp_customize->add_control( 'fit_custBasis_name', array(
'section' => 'fit_custom_basis_section',
'settings' => 'fit_custBasis_name',
'description' => '■カスタム投稿タイプ名を入力',
'type' => 'text',
));
//カテゴリー利用 セッティング
$wp_customize->add_setting( 'fit_custBasis_category', array(
'default' => 'off',
'type' => 'option',
'sanitize_callback' => 'fit_sanitize_select',
));
//カテゴリー利用 コントロール
$wp_customize->add_control( 'fit_custBasis_category', array(
'section' => 'fit_custom_basis_section',
'settings' => 'fit_custBasis_category',
'description' => '■カテゴリー機能の利用するか選択',
'type' => 'select',
'choices' => array(
'off' => '利用しない(default)',
'on' => '利用する',
),
));
//タグ利用 セッティング
$wp_customize->add_setting( 'fit_custBasis_tag', array(
'default' => 'off',
'type' => 'option',
'sanitize_callback' => 'fit_sanitize_select',
));
//タグ利用 コントロール
$wp_customize->add_control( 'fit_custBasis_tag', array(
'section' => 'fit_custom_basis_section',
'settings' => 'fit_custBasis_tag',
'description' => '■タグ機能の利用するか選択',
'type' => 'select',
'choices' => array(
'off' => '利用しない(default)',
'on' => '利用する',
),
));
//セクションの追加
$wp_customize->add_section( 'fit_custom_list_section', array(
'title' => '一覧表示設定',
'panel' => 'fit_custom_panel',
'description' => '一覧表示の設定画面です。',
'priority' => 1,
));
//フレーム設定 セッティング
$wp_customize->add_setting( 'fit_custList_frame', array(
'default' => 'off',
'type' => 'option',
'sanitize_callback' => 'fit_sanitize_select',
));
//フレーム設定 コントロール
$wp_customize->add_control( 'fit_custList_frame', array(
'section' => 'fit_custom_list_section',
'settings' => 'fit_custList_frame',
'label' => 'カスタム投稿一覧デザイン設定',
'description' => '■フレームを選択',
'type' => 'select',
'choices' => array(
'off' => '無し(default)',
'u-shadow' => 'シャドウフレーム',
'u-border' => 'ボーダーフレーム',
),
));
// カスタム投稿一覧デザイン セッティング
$wp_customize->add_setting( 'fit_custList_style', array(
'default' => 'off',
'type' => 'option',
'sanitize_callback' => 'fit_sanitize_select',
));
// カスタム投稿一覧デザイン コントロール
$wp_customize->add_control( 'fit_custList_style', array(
'section' => 'fit_custom_list_section',
'settings' => 'fit_custList_style',
'description' => '■リストデザインを選択',
'type' => 'select',
'choices' => array(
'off' => '背景スタイル(default)',
'border' => 'ボーダースタイル',
),
));
//セクションの追加
$wp_customize->add_section( 'fit_custom_top_section', array(
'title' => 'TOPページ一覧表示設定',
'panel' => 'fit_custom_panel',
'description' => 'TOPページの一覧表示設定画面です。',
'priority' => 1,
));
//カスタム投稿TOPページ一覧表示設定 セッティング
$wp_customize->add_setting( 'fit_custTop_switch', array(
'default' => 'off',
'type' => 'option',
'sanitize_callback' => 'fit_sanitize_select',
));
//カスタム投稿TOPページ一覧表示設定 コントロール
$wp_customize->add_control( 'fit_custTop_switch', array(
'section' => 'fit_custom_top_section',
'settings' => 'fit_custTop_switch',
'label' => 'TOPページ一覧表示設定',
'description' => '■TOPページで一覧を表示するか選択',
'type' => 'select',
'choices' => array(
'off' => '非表示(default)',
'on' => '表示',
),
));
// カスタム投稿TOP一覧表示件数 セッティング
$wp_customize->add_setting( 'fit_custTop_number', array(
'type' => 'option',
'sanitize_callback' => 'fit_sanitize_number_range',
));
// カスタム投稿TOP一覧表示件数 コントロール
$wp_customize->add_control( 'fit_custTop_number', array(
'section' => 'fit_custom_top_section',
'settings' => 'fit_custTop_number',
'description' => '■一覧に表示する件数を指定',
'type' => 'number',
'input_attrs' => array(
'step' => '1',
'min' => '1',
'max' => '20',
),
));
// カスタム投稿見出し設定 セッティング
$wp_customize->add_setting( 'fit_custTop_title', array(
'type' => 'option',
'sanitize_callback' => 'sanitize_text_field',
));
// カスタム投稿見出し設定 コントロール
$wp_customize->add_control( 'fit_custTop_title', array(
'section' => 'fit_custom_top_section',
'settings' => 'fit_custTop_title',
'description' => '■セクションの見出しを入力',
'type' => 'text',
));
// 太文字設定 セッティング
$wp_customize->add_setting('fit_custTop_bold', array(
'type' => 'option',
'sanitize_callback' => 'fit_sanitize_checkbox',
));
// 太文字設定 コントロール
$wp_customize->add_control('fit_custTop_bold', array(
'section' => 'fit_custom_top_section',
'settings' => 'fit_custTop_bold',
'label' => '見出しを太文字にする',
'type' => 'checkbox',
));
// カスタム投稿見出しアイコン設定 セッティング
$wp_customize->add_setting( 'fit_custTop_icon', array(
'type' => 'option',
'sanitize_callback' => 'sanitize_text_field',
));
// カスタム投稿見出しアイコン設定 コントロール
$wp_customize->add_control( 'fit_custTop_icon', array(
'section' => 'fit_custom_top_section',
'settings' => 'fit_custTop_icon',
'description' => '■見出しの左に表示するアイコンを入力 [<a href="'.get_template_directory_uri().'/admin/template/icon_list.php" target="_blank">アイコン一覧</a>]',
'type' => 'text',
));
// カスタム投稿見出しサブ設定 セッティング
$wp_customize->add_setting( 'fit_custTop_sub', array(
'type' => 'option',
'sanitize_callback' => 'sanitize_text_field',
));
// カスタム投稿見出しサブ設定 コントロール
$wp_customize->add_control( 'fit_custTop_sub', array(
'section' => 'fit_custom_top_section',
'settings' => 'fit_custTop_sub',
'description' => '■見出しの右に表示する補足情報を入力',
'type' => 'text',
));
// カスタム投稿アーカイブページへのボタンテキスト セッティング
$wp_customize->add_setting( 'fit_custTop_btn', array(
'default' => '一覧へ',
'type' => 'option',
'sanitize_callback' => 'sanitize_text_field',
));
// カスタム投稿アーカイブページへのボタンテキスト コントロール
$wp_customize->add_control( 'fit_custTop_btn', array(
'section' => 'fit_custom_top_section',
'settings' => 'fit_custTop_btn',
'description' => '■アーカイブへのボタンテキストを入力',
'type' => 'text',
));
}
add_action( 'customize_register', 'fit_custom_cutomizer' );
\ No newline at end of file
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment