滅多にないが レスポンシブルで 正方形の中に 縦横比不規則な画像を常に中心揃えで入れたい

http://qiita.com/ryounagaoka/items/a98f59347ed758743b8d
http://www.memo.d-marking.com/blog/2017/05/11/car-%E3%81%A7%E3%80%80%E3%82%AE%E3%83%A3%E3%83%A9%E3%83%AA%E3%83%BC%E3%81%A7%E3%80%80%E8%89%B2%E3%80%85/
http://qiita.com/7968/items/eddfeb4b424d7c2d2d34

co.d-marking の 制作事例 一覧d_jirei.php で使用

cssは

.jirei_box_img2{
	border: 1px solid #CCC;
	
	position: relative;
	width: 100%;
	background-image: url(../img/body_backgr/body_background_dark15.png);
	background-repeat: repeat;
	
	img{ max-width:100%; max-height:100%;
		position: relative;
		
  top: 50%;left: 50%;
  -webkit-transform: translateY(-50%) translateX(-50%);
  -ms-transform: translateY(-50%) translateX(-50%);
  transform: translateY(-50%) translateX(-50%);
	}
}


.jirei_box{
	width: 31%;
	margin-right: 1%;
	margin-left: 1%;
	margin-bottom: 24px;
}

中古車販売 まとめ2

結局ブログのYARPPはやめて
車で出したかったので
ステータスをタクソノミーに変更

変更方法は
アドバンスでcar_openに作ったタクソノミーを割り当てる。
返り値はID
IDは順に数値がおおきくなるため、
販売受付中
SOLDOUTと順につくれば

並び順は
ASC となる。

真ん中に新しい項目 交渉中など入れたい場合は
SOLD OUTを一度消して、 
作り直す必要が出てくるので
注意

<?php //公開状態
   $hoge = get_field('car_open'); 
if($hoge == '10'): 
 elseif($hoge == '189'): 
?>

という表示方法
IDに変えただけ

ファンクションの
メインクエリは

				$meta_query = array(
            'relation' => 'AND', //meta_queryの配列が1つの時は指定しない
            'meta_sort1' => array(
                 'key' => 'car_open', //キー
                'type' => 'NUMERIC', //タイプ 数字
            ),
            'meta_sort2' => array(
                 'key' => 'car_cc', //キー
                'type' => 'NUMERIC',   //値のタイプ 数字
            ));
			$orderby = array(
            'meta_sort1' => 'ASC',
             'meta_sort2' => 'ASC',
               //            'date' => 'DESC'
       		 );
        	$query->set('meta_query', $meta_query);
        	$query->set('orderby', $orderby);

結局  ‘meta_sort1’ => ‘ASC’,にへんこうしただけ

yarpp 直書きの場合はタクスとかないとエラーで表示されないからきお

http://blog.k-kansei.com/?p=728
http://www.ex-tra.jp/kosukekato/archives/15420

オプション

yarpp_related(array(
    // Pool options: these determine the "pool" of entities which are considered
    'post_type' => array('post', 'page', ...),
    'show_pass_post' => false, // show password-protected posts
    'past_only' => false, // show only posts which were published before the reference post
    'exclude' => array(), // a list of term_taxonomy_ids. entities with any of these terms will be excluded from consideration.
    'recent' => false, // to limit to entries published recently, set to something like '15 day', '20 week', or '12 month'.
    // Relatedness options: these determine how "relatedness" is computed
    // Weights are used to construct the "match score" between candidates and the reference post
    'weight' => array(
        'body' => 1,
        'title' => 2, // larger weights mean this criteria will be weighted more heavily
        'tax' => array(
            'post_tag' => 1,
            ... // put any taxonomies you want to consider here with their weights
        )
    ),
    // Specify taxonomies and a number here to require that a certain number be shared:
    'require_tax' => array(
        'post_tag' => 1 // for example, this requires all results to have at least one 'post_tag' in common.
    ),
    // The threshold which must be met by the "match score"
    'threshold' => 5,

    // Display options:
    'template' => , // either the name of a file in your active theme or the boolean false to use the builtin template
    'limit' => 5, // maximum number of results
    'order' => 'score DESC'
),
$reference_ID, // second argument: (optional) the post ID. If not included, it will use the current post.
true); // third argument: (optional) true to echo the HTML block; false to return it

メーカーが更新後トヨタにもどってしまう(何も選択されない)は
その他のアドバンスカスタムで分岐条件でつかっていたからかもしれない

そこをcarにインサートされないようにしたら治った。

中古車販売 まとめ

まず、soldout は今回カスタムフィールドのセレクトボックスで
20 : 販売受付中
1 : SOLD OUT
でやった。

YARPPを使いたい場合は
売り切れを表示する 一覧で最後に表示する
http://www.memo.d-marking.com/blog/2015/10/31/%E5%A3%B2%E3%82%8A%E5%88%87%E3%82%8C%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%99%E3%82%8B%E3%80%80%E4%B8%80%E8%A6%A7%E3%81%A7%E6%9C%80%E5%BE%8C%E3%81%AB%E8%A1%A8%E7%A4%BA%E3%81%99%E3%82%8B/
を参考に。
soldoutをタクソノミーで作成し、
yarppで 売り切れを除外できる。
並び替え等のファクションのクエリがみなへんこうとなるので注意
車はソートして見る事が基本でカーセンサーとかも関連時事なかったので
今回はなし。

並び替えの際に、たくすクエリで下記とした。

elseif ( $sortset == 'car_pay_money_low' ) { //総支払い価格安い 実際使わない
	
			$meta_query = array(
            'relation' => 'AND', //meta_queryの配列が1つの時は指定しない
            'meta_sort1' => array(
                 'key' => 'car_open', //キー
                'type' => 'NUMERIC', //値のタイプ 数字
            ),
            'meta_sort2' => array(
                 'key' => 'car_pay_money', //キー
                'type' => 'NUMERIC',   //値のタイプ 数字
				'value'=>'1', //ask設定
				'compare'=>'>=', //総額1以上を表示
            ));
			$orderby = array(
            'meta_sort1' => 'DESC',
             'meta_sort2' => 'ASC',
               //            'date' => 'DESC'
       		 );
        	$query->set('meta_query', $meta_query);
        	$query->set('orderby', $orderby);
        	} 

通常の一覧部も

// サーチ ページ数
    if ( $query->is_search() && $query->is_main_query() ) {
$query->set('posts_per_page', 12 );
 $query->set( 'meta_key', 'car_open' );
 $query->set( 'orderby', 'meta_value_num' );
 $query->set( 'order', 'DESC' ); //数値が低い順
  }
  
  //アーカイブページ数	
  if ( $query-> is_tax() && $query->is_main_query() ) {
$query->set('posts_per_page', 12 );
$query->set( 'meta_key', 'car_open' );
$query->set( 'orderby',array('meta_value_num' => 'DESC', 'date' => 'DESC') );
  }

とした。car_open

ちなみに総額の部分は空欄だとaskでそうすると数値が入ってこないから
ソートで総額の時 最も安いがaskから出るので
上記総額ソートはやめて 車体価格のソートのみに
車体価格を目立たせた

タクソノミーにコメントアウトしてあるから
ファぬションにもうかいてあるので
必要があれば表示すれば並び替わる

タクソノミーは
タクソノミーページで分岐して
まんま 他のタクソノミーを誘導するのをはじめてやった

ギャラリーは
car で ギャラリーで 色々
http://www.memo.d-marking.com/blog/2017/05/11/car-%E3%81%A7%E3%80%80%E3%82%AE%E3%83%A3%E3%83%A9%E3%83%AA%E3%83%BC%E3%81%A7%E3%80%80%E8%89%B2%E3%80%85/

参考
高さをほぼ固定することで決まった。

絞込は
サイドバーでリストカテゴリにて
(タクソノミーを使って カテゴリ1=メーカー カテゴリ2=車両タイプ カテゴリ3=詳細項目として、管理画面から追加並びかえでき、クライアントによっては例えばロードスター専門店の場合 ほぼロードスターなので メーカーを年式 などに カテゴリ2までは自由に変更。詳細項目はシングルにも使ってるので統一 つまり2個のカテゴリは自由に変更
※タクソノミーでやってる場合は 絞り込み検索が自分でできるっぽい。これは後の課題)

http://kotori-blog.com/wordpress/refinement_search/
詳細項目で検索のみ
ドロップダウンで すぐ検索するやつ

<div class="car_serch_title_side" style="margin-top:24px;">
   詳細項目で選ぶ
    </div>
        
<div style="padding-top:20px;"></div>
<ul class="car_side_menu">



<?php $cats = get_categories(array(
'post_type' => 'car',
'taxonomy' => 'car_cat3' ,
'hide_empty' => 0 ,//記事がなくとも表示
'depth' => 1,//子は表示しません。
'orderby' => 'order',//順番は指定します
)); ?>
<?php if(!empty($cats)): ?>
<select name="cat" id="cat">
<option value=" "> 詳細項目で選ぶ</option>
<?php  foreach($cats as $cat): ?>
<option value="<?php $cat_term = $cat->slug; echo get_term_link($cat_term ,'car_cat3'); ?>"><?php echo $cat->cat_name; ?>(<?php echo $cat->count; ?>)</option>
<?php endforeach; ?>
</select>

<script type="text/javascript">
var dropdown = document.getElementById("cat");
function onCatChange(){
    if(dropdown.options[dropdown.selectedIndex].value != ""){
        location.href = dropdown.options[dropdown.selectedIndex].value;
    }
}
dropdown.onchange = onCatChange;
</script>
<?php endif; ?>

</ul>

お気に入りプラグは ログインしてると、まだありませんが表示されないっぽい。

Duplicate Post は設定画面からカスタムポストも選べるが
カスタムフィールドスイートを使ってると
ループフィールド=今回はギャラリーのサムネイルに使ってるフォーチせずに1個目の画像 が前のものになるようなので
複製しないカスタムフィールドを指定すること

検索boxは

  <div class="car_serch_page_side" style="margin-top:30px;">
    
<div class="car_serch_title_side">
<img src="<?php echo get_stylesheet_directory_uri(); ?>/d/img/car/side_serch.png" width="96" height="25" />
</div>
<div class="search_box">
<form role="search" method="get" id="searchform" action="/" >
<input type="text" value="<?php the_search_query(); ?>" name="s" class="s" />
<input type="hidden" name="post_type" value="car">
<input type="submit" class="searchsubmit" value="" />
</form>
</div>
</div>

とした。

value="<?php the_search_query(); ?>"

とすると、検索後も検索ワードが検索ボックスに入ったままになる

is_main_query で meta_query を使う

複数 meta_key の指定

http://qiita.com/harapeko_wktk/items/4fe7d39ad22d3951e5cc

elseif ( $sortset == 'car_price_high' ) { //価格高い
			 $meta_query = array(
            'relation' => 'AND', //meta_queryの配列が1つの時は指定しない
            'meta_sort_parent_id' => array(
                 'key' => 'car_open', //カスタムフィールドのキー
                'type' => 'NUMERIC',     //カスタムフィールドの値のタイプ
            ),
            'meta_sort_child_id' => array(
                 'key' => 'car_price', //カスタムフィールドのキー
                'type' => 'NUMERIC',       //カスタムフィールドの値のタイプ
            )
        );

  $orderby = array(
            'meta_sort_parent_id' => 'DESC',
             'meta_sort_child_id' => 'DESC',
               //            'date' => 'DESC'
        );
        $query->set('meta_query', $meta_query);
        $query->set('orderby', $orderby);
        } 
		

だがけっきょく、 使わない買った
いや使った

結局、価格でソートなど
その前に売り切れで分岐したい場合
2個使いました。

car で ギャラリーで 色々

まず カーのギャラリーで たてよこ の画像の対応

まず 新しく
画像 高さ 中心 のcss

これほんと? って感じですごいけど

http://coliss.com/articles/build-websites/operation/css/css-vertical-align-anything-by-sebastian.html

.demo p {
  position: relative;
  top: 50%;
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  transform: translateY(-50%);
}

スクリーンショット 2017-05-11 16.31.49

そんで ギャラリーに使ってる画像 ファンクション

		//carサムネイル使用
			 'car_thum' => array(
            'name'       => 'car_thum', // 選択肢のラベル名
            'width'      => 360,    // 最大画像幅
            'height'     => 270,    // 最大画像高さ
            'crop'       => true,  // 切り抜きを行うかどうか
            'selectable' => false // 選択肢に含めるかどうか
        ),
					//carサムネイル使用
			 'car_big' => array(
            'name'       => 'car_big', // 選択肢のラベル名
            'width'      => 784,    // 最大画像幅
            'height'     => 588,    // 最大画像高さ
            'crop'       => false,  // 切り抜きを行うかどうか
            'selectable' => false // 選択肢に含めるかどうか
        ),

新たに足したcss

.flickSlider .flickView ul li img.car_big {
    width: auto;
	max-height:588px;
	  position: relative;
  top: 50%;
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  transform: translateY(-50%);
}

@media screen and (max-width: 736px) {
	
	.flickSlider .flickView ul li img.car_big {
   width: auto;
   max-width:100%;
	max-height:262px;
}
}

幅100%にせずに、 サムネイル切り抜きの幅を 100%のサイズで数字指定
高さもサムネイル切り抜きの数字指定。

ただし、ギャラリーが1個めの画像の高さを取得して高さを出してくるので
1こめが小さい画像だと、高さが 高いやつが隠れてしまう。 なので、
1個めが小さい画像だった場合、高さが低いやつだった場合、その高さを取得して、
マックスハイトを変更してやることにした。

それがflickSliderに書いた
最後の方のコード

・・・
	var $w = ($('.flickSlider .flickView ul li').height());
$('.flickSlider .flickView ul li img.car_big').css("max-height", $w);

    });
});

これ同じオンロードに入れてやって最後に処理させることで辻褄が合うのでここで、。

但し、今思ったが、 1個目の画像の高さを取得した時 すんごい小さい場合、全部スのサイズになってしまうよね、。そんなやつおらんか?
なので、
スマホ PCで もう高さ指定したほうがいいんかな?

上記だと上手く動作していなかったみたいだで 高さ取得して変更するのやめた
(JSないでなく シングルの最後にいれると、ギャラリーが表示されんことあるもんでたまに)

やっぱこうした

/*一応最小のギャラリーの高さを出しておく*/
.flickSlider .flickView,.flickSlider .flickView ul,.flickSlider .flickView ul li{
	min-height:500px;
	}

.flickSlider .flickView ul li img.car_big {
    width: auto;
	max-height:588px;
	  position: relative;
  top: 50%;
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  transform: translateY(-50%);
}

@media screen and (max-width: 736px) {
	
	/*一応最小のギャラリーの高さを出しておく*/
.flickSlider .flickView,.flickSlider .flickView ul,.flickSlider .flickView ul li{
	min-height:200px;
	}

	
	.flickSlider .flickView ul li img.car_big {
   width: auto;
   max-width:100%;
	max-height:262px;
}
}

get_the_categoryで特定のカテゴリを除外するコードの書き方

https://ja.wordpress.org/support/topic/get_the_category%E3%81%A7%E7%89%B9%E5%AE%9A%E3%81%AE%E3%82%AB%E3%83%86%E3%82%B4%E3%83%AA%E3%82%92%E9%99%A4%E5%A4%96%E3%81%99%E3%82%8B%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AE%E6%9B%B8%E3%81%8D%E6%96%B9/

 

function my_get_the_category( $id = false, $exclude = array() ) {
	$cats = get_the_category( $id );
	$excluded_cats = array();
	foreach( $cats as $cat ) {
		if ( !in_array( $cat->cat_ID, $exclude ) ) {
			$excluded_cats[] = $cat;
		}
	}
	return $excluded_cats;
}
<?php
	$category = my_get_the_category(false, array(1, 2));
	$cat_id   = $category[0]->cat_ID;
	$cat_name = $category[0]->cat_name;
	$cat_slug = $category[0]->category_nicename;
?>

上記のみでは 小カテゴリは表示されてしまうので
追加記入

<?php //カテゴリでインフォメーションとインフォメーションの子カテゴリのチェックがあってもそれをアイコンに表示させない
$taxonomy_name = 'category';
$termchildren = get_term_children( $info_cat, $taxonomy_name );//インフォカテの小カテをすべて取得
array_push($termchildren, $info_cat);//取得したものにインフォカテを追加
?>

<?php $cat = my_get_the_category(false, $termchildren );//ファンクション独自関数
if(empty($cat)){$cat = get_the_category();}//もしインフォカテゴリのみ場合 普通にget_the_categoryでインフォメーションを取得
 $cat = $cat[0]; { echo $cat->cat_name; } ?>

スワイプ レスポンシブ ギャラリー スライダー

ギャラリー参考
http://black-flag.net/jquery/20130514-4588.html

ローディング参考
http://mori-coding.blog.jp/archives/6760786.html

レスポンシブ 幅100% 高さ同じ比率 参考
http://tsudoi.org/weblog/?p=2949

これ少々改造

サイドナビ 透明度変更のためthumbOpc2項目追加

 

//これはローディング画像を出すスクリプト 後入れ
window.onload = function(){
	$(function() {
		$("#loading").fadeOut(0);
		$(".flickSlider").fadeIn(500);
	});
}



$(function(){
    $(window).load(function(){
        var setWrap = $('.flickSlider'),//スライダー全体を囲うブロック要素名(IDでも可)
        setMainView = $('.flickView'),//メインビジュアル部分を囲うブロック要素名(IDでも可)
        setThumbNail = $('.flickThumb'),//サムネイル部分を囲うブロック要素名(IDでも可)
        setMaxWidth = 800,//スライダー部分の最大幅
        setMinWidth = 320,//スライダー部分の最小幅
        thumbNum = 6,//一行に並べるサムネイル数
        thumbOpc = 0.5,//サムネイルの非アクティブ時の透過度
		thumbOpc2 = 0.3,//サイドバーの非アクティブ時の透過度
        scrollSpeed  = 500,//スライドアニメーションスピード
        delayTime = 5000,//スライドアニメーション待機時間
        easing = 'linear',//スライドアニメーションのイージング指定
        sideNavi = 'on', // 'on' or 'off'//左右NEXT/BACKの表示/非表示(非表示の場合は「off」等)
        autoPlay = 'off'; // 'on' or 'off'//自動切換え動作のON/OFF(自動切換えさせない場合は「off」等)
		
        var agent = navigator.userAgent;
        setWrap.each(function(){
            var thisObj = $(this),
            childMain = thisObj.find(setMainView),mainUl = childMain.find('ul'),mainLi = mainUl.find('li'),mainLiLink = mainLi.children('a'),mainLiImg = mainLi.find('img'),
            childThumb = thisObj.find(setThumbNail),thumbUl = childThumb.find('ul'),thumbLi = childThumb.find('li'),thumbLiFst = childThumb.find('li:first'),thumbLiLst = childThumb.find('li:last'),
            mainWidth = parseInt(childMain.css('width')),mainHeight = parseInt(childMain.css('height')),listCount = mainUl.children('li').length;
 
            thisObj.css({display:'block'});
 
            // レスポンシブ動作メイン
            imgSize();
            function imgSize(){
                var windowWidth = parseInt($(window).width()),
                setUlLeft = parseInt(mainUl.css('left')),
                setlistWidth = parseInt(mainLi.css('width')),
                setLeft = setUlLeft / setlistWidth;
 
                if(windowWidth >= setMaxWidth) {
                    thisObj.css({width:setMaxWidth});
                    childMain.css({width:setMaxWidth});
                    mainUl.css({width:((setMaxWidth)*(listCount))});
                    mainLi.css({width:setMaxWidth});
 
                    var listWidthA = parseInt(mainLi.css('width')),
                    leftMax = -((listWidthA)*((listCount)-1)),
                    baseHeight = mainLiImg.height();
                    childMain.css({height:baseHeight});
                    mainUl.css({height:baseHeight});
                    mainLi.css({height:baseHeight});
 
                    thumbUl.css({width:setMaxWidth});
                    thumbLi.css({width:((setMaxWidth)/(thumbNum)),height:''});
                } else if(windowWidth < setMaxWidth) {
                    var listWidthB = parseInt(childMain.css('width')),
                    leftMax = -((listWidthB)*((listCount)-1));
                    thisObj.css({width:setMaxWidth});
                    if(windowWidth >= setMinWidth) {
                        thisObj.css({width:'100%'});
                        childMain.css({width:'100%'});
                        mainUl.css({width:((listWidthB)*(listCount))});
                        mainLi.css({width:(listWidthB)});
                    } else if(windowWidth < setMinWidth) {
                        thisObj.css({width:setMinWidth});
                        childMain.css({width:setMinWidth});
                        mainUl.css({width:((setMinWidth)*(listCount))});
                        mainLi.css({width:setMinWidth});
                    }
                    var reHeight = mainLiImg.height();
                    childMain.css({height:reHeight});
                    mainUl.css({height:reHeight});
                    mainLi.css({height:reHeight});
 
                    var reWidth = setThumbNail.width();
                    thumbUl.css({width:reWidth});
                    thumbLi.css({width:((reWidth)/(thumbNum))});
                }
 
                var adjLeftWidth = parseInt(mainLi.css('width')),
                adjLeft = adjLeftWidth * setLeft;
                mainUl.css({left:(adjLeft)});
            }
            imgSize();
            $(window).resize(function(){
                if(!(agent.search(/iPhone/) != -1 || agent.search(/iPad/) != -1 || agent.search(/iPod/) != -1 || agent.search(/Android/) != -1)){
                    if(autoPlay == 'on'){clearInterval(setTimer);}
                    imgSize();
                    if(autoPlay == 'on'){slideTimer();}
                } else {
                    imgSize();
                }
            });
 
            // フリックアクション
            var isTouch = ('ontouchstart' in window);
            mainUl.on(
                {'touchstart mousedown': function(e){
                    if(mainUl.is(':animated')){
                        e.preventDefault();
                    } else {
                        if(autoPlay == 'on'){clearInterval(setTimer);}
                        if(!(agent.search(/iPhone/) != -1 || agent.search(/iPad/) != -1 || agent.search(/iPod/) != -1 || agent.search(/Android/) != -1)){
                            e.preventDefault();
                        }
                        this.pageX = (isTouch ? event.changedTouches[0].pageX : e.pageX);
                        this.leftBegin = parseInt($(this).css('left'));
                        this.left = parseInt($(this).css('left'));
                        this.touched = true;
                    }
                },'touchmove mousemove': function(e){
                    if(!this.touched){return;}
                    e.preventDefault();
                    this.left = this.left - (this.pageX - (isTouch ? event.changedTouches[0].pageX : e.pageX) );
                    this.pageX = (isTouch ? event.changedTouches[0].pageX : e.pageX);
                    $(this).css({left:this.left});
                },'touchend mouseup mouseout': function(e){
                    if (!this.touched) {return;}
                    this.touched = false;
 
                    var setThumbLiActive = thumbUl.children('li.active'),
                    listWidth = parseInt(mainLi.css('width')),leftMax = -((listWidth)*((listCount)-1));
 
                    if(((this.leftBegin)-30) > this.left && (!((this.leftBegin) === (leftMax)))){
                        $(this).stop().animate({left:((this.leftBegin)-(listWidth))},scrollSpeed,easing);
                        setThumbLiActive.each(function(){
                            $(this).removeClass('active');
                            $(this).next().addClass('active');
                        });
                    } else if(((this.leftBegin)+30) < this.left && (!((this.leftBegin) === 0))){
                        $(this).stop().animate({left:((this.leftBegin)+(listWidth))},scrollSpeed,easing);
                        setThumbLiActive.each(function(){
                            $(this).removeClass('active');
                            $(this).prev().addClass('active');
                        });
                    } else if(this.leftBegin === 0) {
                        $(this).stop().animate({left:'0'},scrollSpeed,easing);
                    } else if(this.leftBegin <= leftMax) {
                        $(this).stop().animate({left:(leftMax)},scrollSpeed,easing);
                    } else if(this.left >= 0) {
                        $(this).stop().animate({left:'0'},scrollSpeed);
                    } else if(this.left <= leftMax) {
                        $(this).stop().animate({left:(leftMax)},scrollSpeed,easing);
                    } else {
                        $(this).stop().animate({left:(this.leftBegin)},scrollSpeed,easing);
                    }
                    compBeginLeft = this.leftBegin;
                    compThisLeft = this.left;
                    mainLiLink.click(function(e){
                        if(!(compBeginLeft === compThisLeft)){
                            e.preventDefault();
                        }
                    });
                    if(autoPlay == 'on'){slideTimer();}
                }
            });
 
            // ボタン移動動作
            thumbLi.click(function(){
                if(autoPlay == 'on'){clearInterval(setTimer);}
                var listWidth = parseInt(mainLi.css('width')),leftMax = -((listWidth)*((listCount)-1)),
                connectCont = thumbLi.index(this);
                mainUl.stop().animate({left:(-(listWidth)*(connectCont))},scrollSpeed,easing);
                thumbLi.removeClass('active');
                $(this).addClass('active');
                if(autoPlay == 'on'){slideTimer();}
            });
            thumbLiFst.addClass('active');
            thumbLi.css({opacity:thumbOpc});
 
            // サイドナビボタン(有り無し)
            if(sideNavi == 'on'){
                childMain.append('<div class="btnPrev"></div><div class="btnNext"></div>');
                var setPrev = childMain.find('.btnPrev'),setNext = childMain.find('.btnNext'),setPrevNext = childMain.find('.btnPrev,.btnNext');
                setPrevNext.css({opacity:thumbOpc2});
 
                setNext.click(function(){
                    var setThumbLiActive = thumbUl.children('li.active');
                    setThumbLiActive.each(function(){
                        var listLengh = thumbLi.length;
                        var listIndex = thumbLi.index(this);
                        var listCount = listIndex+1;
                        if(listLengh == listCount){
                            thumbLiFst.click();
                        } else {
                            $(this).next('li').click();
                        }
                    });
                });
                setPrev.click(function(){
                    var setThumbLiActive = thumbUl.children('li.active');
                    setThumbLiActive.each(function(){
                        var listLengh = thumbLi.length;
                        var listIndex = thumbLi.index(this);
                        var listCount = listIndex+1;
                        if(1 == listCount){
                            thumbLiLst.click();
                        } else {
                            $(this).prev('li').click();
                        }
                    });
                });
            }
 
            // サムネイルマウスオーバー
            if(!(agent.search(/iPhone/) != -1 || agent.search(/iPad/) != -1 || agent.search(/iPod/) != -1 || agent.search(/Android/) != -1)){
                thumbLi.hover(function(){
                    $(this).stop().animate({opacity:'1'},300);
                },function(){
                    $(this).stop().animate({opacity:thumbOpc},300);
                });
                if(sideNavi == 'on'){
                    setPrevNext.hover(function(){
                        $(this).stop().animate({opacity:'0.5'},300);
                    },function(){
                        $(this).stop().animate({opacity:thumbOpc2},300);
                    });
                }
            }
 
            // 自動再生(有り無し)
            if(autoPlay == 'on'){
                function slideTimer() {
                    setTimer = setInterval(function(){
                        var setThumbLiActive = thumbUl.children('li.active');
                        setThumbLiActive.each(function(){
                            var listLengh = thumbLi.length;
                            var listIndex = thumbLi.index(this);
                            var listCount = listIndex+1;
                            if(listLengh == listCount){
                                thumbLiFst.click();
                            } else {
                                $(this).next('li').click();
                            }
                        });
                    },delayTime);
                }
                slideTimer();
            }
        });
    });
});
/*--------------------------------
フリックギャラリー
---------------------------------*/

/*ローディング画像*/
#loading{ 	position: relative;
	width: 100%;
	height: 100%;
	padding: 75% 0 0;}
#loading .inner{
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: url(/wp-content/themes/D/d/img/parts/wait3.gif) center center no-repeat #FFF;
	}



/* .flickSlider
--------------------------- */
.flickSlider {
    margin: 24px auto;
    text-align: left;
    display: none;
}
 
/* .flickView
--------------------------- */
.flickSlider .flickView {
    width: 100%;
    text-align: left;
    position: relative;
    overflow: hidden;
}
.flickSlider .flickView ul {
    top: 0;
    left: 0;
    width: 100%;
    position: absolute;
    overflow: hidden;
}
.flickSlider .flickView ul li {
    width: 100%;
    float: left;
    display: inline;
    overflow: hidden;
}
.flickSlider .flickView ul li img {
    width: 100%;
	height:auto;
}
 
/* .flickThumb
--------------------------- */
.flickSlider .flickThumb {
    width: 100%;
    overflow: hidden;
}
.flickSlider .flickThumb ul {
    width: 110%;
}
.flickSlider .flickThumb ul li {
    float: left;
    cursor: pointer;
    display: inline;
}
.flickSlider .flickThumb ul li img {
    width: 100%;
	height:auto;
}
.flickSlider .flickThumb ul li.active {
    filter:alpha(opacity=100)!important;
    -moz-opacity: 1!important;
    opacity: 1!important;
}
 
/* sideNavi
------------------------- */
.flickSlider .btnPrev,
.flickSlider .btnNext {
    top: 0;
    width: 5%;
    height: 100%;
    position: absolute;
    cursor: pointer;
}
.flickSlider .btnPrev {
    left: 0; 
    background: #6d6d6d url(/wp-content/themes/D/d/img/parts/btnPrev.png) no-repeat center center;
}
 
.flickSlider .btnNext {
    right: 0;
    background: #6d6d6d url(/wp-content/themes/D/d/img/parts/btnNext.png) no-repeat center center;
}
 
 
/* =======================================
    ClearFixElements
======================================= */
.flickSlider .flickView ul:after,
.flickSlider .flickThumb ul:after {
    content: ".";
    height: 0;
    clear: both;
    display: block;
    visibility: hidden;
}
 
.flickSlider .flickView ul,
.flickSlider .flickThumb ul {
    display: inline-block;
    overflow: hidden;
}


.flickSlider .flickView ul li a img:hover{ opacity:1;
filter: alpha(opacity=100);        /* ie lt 8 */
-ms-filter: "alpha(opacity=100)";  /* ie 8 */
-moz-opacity:1;                 /* FF lt 1.5, Netscape */
-khtml-opacity: 1;              /* Safari 1.x */}

パフォーマーであえて複雑になりそうだからやらなかった

タクソノミーアーカイブで
特定のカテゴリのみ
小カテゴリ別に分けて 一覧表示

タクソノミーで分岐して

<?php if(is_tax('genre','演奏家')): ////演奏家は特別仕様?>

<?php include("d_page_tax_ensouka.php"); ?>

<?php else://演奏家以外は普通のループ?>   
$taxonomy_name = get_query_var('taxonomy'); //タクソノミーページでタクソノミー名を取得
//$taxonomy_name = 'ensou_cat'; //
$term_var = get_query_var( 'term' );//タクソノミーページでターム名を取得
$term = get_term_by('slug',get_query_var( 'term' ),get_query_var( 'taxonomy' ));//タクソノミーページでターム情報を取得
$term_id = $term -> term_id;//上記使ってタームID取得

///宣言------------------------------------------
$args = array(
'parent'       => 0,
'hierarchical' => 0,
'orderby'      => 'term_order', // Category Order and Taxonomy Terms Order を使用
'order'        => 'ASC',
//'parent'     => $term_id,
);

レスポンシブルで 回り込み 画像 文字を うまいことやる方法

スクリーンショット 2017-04-22 0.42.14

スクリーンショット 2017-04-22 0.43.14

 

コレ以外とむつかしかった

 

最初イメージにimg_right クラスがついてたけど

それをやめて Pでかこんでimg_rightクラスを追加

それでまわりこまして

レスポンのとき真ん中で

配置画像初期で500とかでかすぎる場合100%になる幅をもたしたcss

 

 

<p class="img_right "><img src="<?php echo get_stylesheet_directory_uri(); ?>/d/img/con/top2.jpg" width="240"   alt="<?php echo $alt1.$alt2; ?>"></p><p>
マツダ CX-5、トヨタ アルファード、トヨタ プリウス、スズキ ワゴンRなど、<span class="dbold dred">人気車種取り揃えています。</span>
高品質な中古車を、適正価格で提供することを心がけています。<br>
<span class="dbold">万全の整備点検</span>と<span class="dbold">修復歴なし</span>の優良中古車を中心に取り揃えています。<br>
もちろん<span style="text-decoration:underline">全国納車可能!</span><br>
どの地域のお客様の要望にもお応えします。<br>
中古車両の買取は、原則、その場で現金でお支払いをします。<br>
お気軽にお問い合わせ下さい!どの地域のお客様の要望にもお応えします。<br>
中古車両の買取は、原則、その場で現金でお支払いをします。<br>
お気軽にお問い合わせ下さい!どの地域のお客様の要望にもお応えします。<br>
中古車両の買取は、原則、その場で現金でお支払いをします。<br>
お気軽にお問い合わせ下さい!どの地域のお客様の要望にもお応えします。<br>
中古車両の買取は、原則、その場で現金でお支払いをします。<br>
お気軽にお問い合わせ下さい!お気軽にお問い合わせ下さい!お気軽にお問い合わせ下さい!お気軽にお問い合わせ下さい!お気軽にお問い合わせ下さい!お気軽にお問い合わせ下さい!
</p>
</div>
.img_right{
	float: right;
	padding-left: 15px;
	padding-bottom: 15px;
}

れすぽ

.con_box1 .img_right { padding-left:0; float:none; text-align:center; img{ max-width:100%}}

スマホの時は
フロートやめ
互いにPだで、画像で改行される

そんでセンターして 横マージンけして イメージのMAXを100%にする

ファンクションで

<?php $site = 2868 //サイト設定記事ID ファンクションで定義すればサイト全体にいきわたるのか??>

※やはりファンクションの関数内には適応しないようだった。
そこは手作業で入力するべきか?

$site = 2868;//サイト設定

【このようにみな同じようにコピペして使えば コマンドF で検索入れ替えできる】

ファンクションの最初にこうやって
ドルで投稿ID これは カスタムポストでサイト設定のために作った記事ID
をしていすれば

そこから ファンクションだろうが htmlだろうが すべて上書きされなければ ここの設定が通用する。

これはたとえば

//2016.03 ファンクションへ 改
function get_meta_description() {
  global $post;
  $description = "";	
    $disp_base = get_post_meta($site,"fb_disp",true);

このようにファンクション内のコード内にも使えることで
ディスプリクションの分岐関数のベースにも使える。

いままではこの関数を開いてそこを変更していたが
これで何処か全部編集する所を一箇所にあつめ
そこを変更すれば変更できる
また管理画面で入力したカスタムフィールドを取得して入れている。
下記詳細 

またアドバンスカスタムフィールドの カスタムポスト 記事IDを指定して
情報を取得できる
http://www.tam-tam.co.jp/tipsnote/cms/post2000.html
https://www.advancedcustomfields.com/resources/the_field/

the_field('my_custom_01', 100);

こんなのもあった
https://elearn.jp/wpman/function/get_post_custom_values.html
投稿IDが10のカスタムフィールド’drink’の値を取得する。

<?php $val = get_post_custom_values( 'drink', 10 ); ?>

これによって ポストタイプメニューの 記事IDを指定知れば その記事のカスタムフィールドをしていできる。

また、サイト設定なども同じく投稿タイプを作成して h1ヘッドなどを記載して コードすれば 管理画面で編集できる。

もどるが
ファンクションで全て記載して
$abc=’内容’

htmlで
echo $abc;

で全て同じページで変更する部分をかんりできるんじゃないか?
ドリでやれば入力補助もあるし

カスタムポストタイプメニューでメインメニュー 幅自動 flexbox

https://nelog.jp/flexible-box-layout-module

	/*このフレックスはノーマルフレックス*/
.frex_nomal,.flex_nomal{
	-js-display: flex;
    display:-webkit-box;
    display:-moz-box;
    display:-ms-box;
    display:-webkit-flexbox;
    display:-moz-flexbox;
    display:-ms-flexbox;
    display:-webkit-flex;
    display:-moz-flex;
    display:-ms-flex;
    display:flex;
	}
		/*このフレックスは一般的な実用フレックス*/
.frex,.flex{
	-js-display: flex;
    display:-webkit-box;
    display:-moz-box;
    display:-ms-box;
    display:-webkit-flexbox;
    display:-moz-flexbox;
    display:-ms-flexbox;
    display:-webkit-flex;
    display:-moz-flex;
    display:-ms-flex;
    display:flex;
    -webkit-box-lines:multiple;
    -moz-box-lines:multiple;
    -webkit-flex-wrap:wrap;
    -moz-flex-wrap:wrap;
    -ms-flex-wrap:wrap;
    flex-wrap:wrap;
	}


/*メニューが1段*/
	.d_navi_main_in ul{	.flex_nomal;
		 li{ width:100%}
		 }
		 
		 /*メニューが2段 計10個*/
	/*	 .d_navi_main_in ul{.flex;
		 li{ width:20%}}*/

カスタム投稿タイプを(タクソノミー)CPI UIで書き出すとき、うまくいかない バージョンアップ時

どうやらバージョンアップで
項目全ての部分 シングルラベル等 必須の部分が入ってないまま
書き出して インポートしても うまくいかないみたいだわ

その前にすべて入れるか

ファンクションに 手で入れ直す等対応が必要

googlemap ダブルクリックで動き スクロール防止

<script>//すごい
$(function() {
        var map = $('iframe');
        map.css('pointer-events', 'none');
        $('.google-maps').click(function() {
            map.css('pointer-events', 'auto');
        });
        map.mouseout(function() {
            map.css('pointer-events', 'none');
        })
    })
</script>

<div class="google-maps">
<iframe src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d1628.1300797312329!2d137.0187482744373!3d35.29951662393029!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x60036d01fe458233%3A0x40ec121516dbb108!2z44CSNDgwLTAzMDQg5oSb55-l55yM5pil5pel5LqV5biC56We5bGL55S677yR77yX77yW77yVIO-8iOagqu-8ieOCr-ODquOCqOOCpOODiOemj-a1tw!5e0!3m2!1sja!2sjp!4v1491892956529" width="100%" height="400" frameborder="0" style="border:0" allowfullscreen></iframe>
</div>
<div class="google-maps">


囲う

春日井ナビで登録をスムーズにするためにコンタクトフォームからある程度投稿できるようにする。

まず、コンタクトフォームから投稿できるようにする。
すぐ前々記事に記載。
ファンクションにてフックして、送る前に、下書きをポストしてねと。
これにはカスタムポストもいける。
※だたし、できないものは
フィールドグループで作成したもの。
画像・タクソノミー・日付 はできないと実験済み

そのためできない部分についてはまとめて投稿画面にメモする方法へ

テキストエリアのフィールドをつくり
そのフィールドにまとめてその部分をいれた。

画像に関しては、携帯スタイルと言うプラグイン
メール投稿プラグイン。これで下書き投稿(ブログ)で画像をメディアに入れれる。

下書きにしたいのでコンタクトフォームの送信元のアドレスを寄与者のアドレスする(ユーザー必要)

専用のメアドを作成 そこにも送信先にして、サーバーにメールをためる

ポップメールをとりにいって、あれば取得して メールを消すというもの(投稿)

これであれ程度楽に登録できるか。

コンタクトフォームから 画像投稿 考え

メール投稿の機能を使ったらどうか?

下書き権限のユーザーを作成して、そのユーザーにメール投稿させて
下書きでブログ投稿させて
メディアを添付ファイルでアップさせた状態
内容も記載しても良い
で 正式な投稿後 消す

カスタムポストタイプに予めある程度投稿した記事を編集する。

メール投稿
https://ja.support.wordpress.com/post-by-email/
https://ja.support.wordpress.com/post-by-email/

http://algorhythnn.jp/blg/2013/12/14/mailpost-myaddress/

関係ないけど
「Contact Form 7」でメール送信の直前に入力値や送信先を変更する方法
http://stockcode.info/wordpress/%E3%80%8Ccontact-form-7%E3%80%8D%E3%81%A7%E3%83%A1%E3%83%BC%E3%83%AB%E9%80%81%E4%BF%A1%E3%81%AE%E7%9B%B4%E5%89%8D%E3%81%AB%E5%85%A5%E5%8A%9B%E5%80%A4%E3%82%84%E9%80%81%E4%BF%A1%E5%85%88%E3%82%92/

後はタクソノミーの投稿テスト

後、ナビのカスタムフィールドでもできるのか?

フィールドグループはできない
タクソノミー 日付等できない



//コンタクトフォームからお店投稿
add_action( 'wpcf7_before_send_mail', 'wpcf7_post' );
function wpcf7_post($cf7) {
	
$submission = WPCF7_Submission::get_instance();
if ( $submission ) {
 $formdata = $submission->get_posted_data();
 
$shop_name = $formdata['text-shop'];//店名
$addr = $formdata['addr'];//住所
$addr2 = $formdata['addr2'];//建物名
$tel = $formdata['text-691'];//電話番号
$time = $formdata['textarea-692'];//営業時間
$holiday = $formdata['text-692'];//定休日
$price = $formdata['text-693'];//料金

$shop_catch = $formdata['textarea-131'];//お店のキャッチコピー
$shop_disp = $formdata['your-message'];//お店のキャッチコピー

$open_day = $formdata['date-704'];//オープン日
$school_map = $formdata['menu-705'];//中学校区

$shop_terms = $formdata['menu-636'];//お店カテゴリ
$shop_terms2 = $formdata['menu-637'];//お店カテゴリ2
$shop_terms3 = $formdata['menu-638'];//お店カテゴリ3
$shop_terms4 = $formdata['text-111'];//希望カテゴリ

$eki1 = $formdata['menu-296'];//最寄り駅
$eki2 = $formdata['menu-296-2'];//最寄り駅2

//$login = $formdata['checkbox-221'];//ログインして、自分で編集できるようにする:
//チェックボックスはアーリーと出るのでだめ



$post_memo = 'お店カテゴリ:' .$shop_terms.' , '.$shop_terms2.' , '.$shop_terms3.' , '.$shop_terms4 .'  オープン日:' .$open_day .'  中学校区:' .$school_map. '  最寄り駅:'.$eki1.' , '.$eki2 ;


//タームid取得
//$term    = get_term_by('slug',$shop_terms, 'shop_tax');
//$term_id = $term->term_id;
//wp_set_object_terms($id, $term_id, 'shop_tax', true);//お店カテゴリ


$new_post = array(
'post_type' => 'shop',
'post_title' => $shop_name,//店名
'post_status' => 'draft',
);


$post_id = wp_insert_post( $new_post );
add_post_meta($post_id,'所在地', $addr, true);
add_post_meta($post_id,'建物名', $addr2, true);
add_post_meta($post_id,'電話番号', $tel, true);
add_post_meta($post_id,'営業時間', $time, true);
add_post_meta($post_id,'定休日', $holiday, true);
add_post_meta($post_id,'料金', $price, true);

add_post_meta($post_id,'店舗名下簡易紹介文', $shop_catch, true);
add_post_meta($post_id,'お店からメッセージ見出し', $shop_catch, true);
add_post_meta($post_id,'お店からメッセージ', $shop_disp, true);

//add_post_meta($post_id,'open_day ', $open_day, true);
//add_post_meta($post_id,'open_day ', $school_map, true); //タクソノミー  日付はできない
//add_post_meta($post_id,'shop_tax', $shop_terms, true); //

add_post_meta($post_id,'post_memo', $post_memo, true);//メモ欄で確認






}
}

コンタクトフォームから記事投稿

http://daily.glocalism.jp/wordpress/contact-form-7-hooks/
http://daily.glocalism.jp/wordpress/contact-form-7-hooks/
コレが使える

http://blog.sarabande.jp/post/100606805503 
https://contactform7.com/ja/2014/07/02/contact-form-7-39-beta/
WPCF7_Submissionの説明

http://www.ex-tra.jp/kosukekato/archives/10669
http://www.ex-tra.jp/kosukekato/archives/10676
コレは使えないぶぶんがある

add_action( 'wpcf7_before_send_mail', 'wpcf7_post' );
function wpcf7_post($cf7) {
//$fname = $cf7->posted_data["fname"];
//$ftitle = $cf7->posted_data["ftitle"];
//$fdesc = $cf7->posted_data["fdesc"];

$new_post = array(
'post_type' => 'post',
'post_title' => 'テスト',
'post_content' => 'テスト',
'post_status' => 'draft',
);

$post_id = wp_insert_post( $new_post );

//add_post_meta($id, 'fname', $fname, true);

}

カスタムフィールドスイートじゃ入らないわ

アドバンスは入るわ

コンタクトフォーム カスタムポスト  カスタムフィールド 投稿

http://www.ex-tra.jp/kosukekato/archives/10669
http://www.ex-tra.jp/kosukekato/archives/10676

https://wordpress.org/support/topic/issue-with-wpcf7_before_send_mail/

wpcf7_before_send_mail にフックっする

function wpcf7_post($cf7) {
$fname = $cf7->posted_data["fname"];
$ftitle = $cf7->posted_data["ftitle"];
$fdesc = $cf7->posted_data["fdesc"];

$fname = $cf7->posted_data[“フィールドネーム”];
で$fnameに収納

多分  これ切れとるけど

$postだわ

$post = (
'post_title' => $ftitle,
'post_content' => $fdesc,
'post_status' => 'draft',
'post_type' => 'post_type',
'post_author' => 'user'
);
$id = wp_insert_post($post);
$terms = get_terms('taxonomies');
$floor_id = '';
foreach($terms as $term) {
  if(($term->name == 'カテゴリ名') && ($ftax == 'なんか')) {
    $floor_id = $term->term_id;
  }
}
wp_set_post_terms($id, $floor_id, 'events_categories', true);

こうかいてあるけど
https://wpdocs.osdn.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/wp_set_post_terms
によると かすたむポストではwp set object termsを使えといっとりますが?

add_post_meta($id, 'fname', $fname, true);

簡単らしい

add_action( 'wpcf7_before_send_mail', 'wpcf7_post' );

締め

過去の記事を予約投稿

<?php
if(post_custom('kiji_date'))://日付があれば 過去の日付に使い
    $date = date_create(get_field('kiji_date'));
    echo date_format($date,'Y年m月d日');//日付を表示
	else://通常はこれだけ
 the_time('Y年m月'); 
 endif;
 ?>

しかし、全ての日付をこの分岐にしないといけんのでやめた