売り切れを表示する 一覧で最後に表示する

<!--ステータス--->
<?php $buyz = SCF::get('item_buy');
foreach ($buyz as $buy) :
 if ( $buy == '売り切れ' ):?> 
<!----->
<div class="item_sta1">売り切れ</div>

<!----->
<?php elseif ( $buy == '入荷待ち' ):?> 
<div class="item_sta2">入荷待ち</div>

<?php else:?>

<?php
endif; ?>
<?php
endforeach;
?>

スマートカスタムフィールドで
チェックボックスでこうやって出来たが
一覧で入荷待ちは普通に表示したかったため却下

2択 販売中 売り切れ
とし

<!--ステータス--->
<?php 
$sta = SCF::get('item_sta');
$buyz = SCF::get('item_buy'); //一個しかない項目だがチェックボックスがいいのでフォーチ
foreach ($buyz as $buy) : ?>
<?php endforeach;?>

 <?php if ( $sta == '売り切れ' ):?> 
<!----->
<div class="item_sta1">売り切れ</div>

<!----->
<?php elseif ( $buy == '入荷待ち' ):?> 
<div class="item_sta2">入荷待ち</div>

<?php else:?>

<?php
endif; ?>

こうして
mファンクション

//ショップ売れ切れ最後表示

//こっから本番
function SortArchive( $query ) {
 //管理画面スルー	
    if ( is_admin() || ! $query->is_main_query() )
        return;
 //こっから
    if ( $query->is_category() || $query->is_archive() || $query->is_tax() || $query->is_search() ) {
$query->set( 'meta_key', 'item_sta' );
$query->set( 'orderby', array( 'meta_value' => 'DESC', 'date' => 'DESC' ) );//新しい デフォ
 
	 
        return;
    }
}
add_action( 'pre_get_posts', 'SortArchive' );

タクソノミー絞り込み部分

ちなみmに絞り込みのときだけこのクエリポストが動作するコード

<?php
    $shashu = $_GET['shashu'];//urlにpostが渡されていればそれを取得(urlの例 → http://ドメイン/カテゴリスラグ/?area=新宿区)
	if($shashu){//入っていればクエリポスト投げる
    $cfKey = 'shashu';//カスタムフィールドのキー名

$args = array(

 'tax_query' => array(
			'relation' => 'AND',
			array(
				'taxonomy' => get_query_var( 'taxonomy' ),
				'field' => 'slug',
				'terms' => get_query_var( 'term' ),

				),),

        'meta_query' => array(//カスタムフィールドによる絞り込み
            array(
                'key' => 'shashu',//カスタムフィールド名
                'value' => $shashu,//$area,//カスタムフィールドの値
  /*              "compare" => "LIKE"*/
            ),
        ),
  //      'posts_per_page' => 10,//1ページあたりの表示件数
        'paged' => $paged,
	'post_type' => 'shop',
	//売り切れステータスは後に表示&新しい投稿順
	'meta_key'       => 'item_sta',
	'orderby'       => array( 'meta_value' => 'DESC', 'date' => 'DESC' ) 
    );
query_posts($args);
	}
?>

としてうまくいったが

こんどはyarppが売り切れを表示させたくないので
できないので却下
yarppはタクソノミータームIDを除外できるようなので
タクソノミーを作ってタームを作って
それをアドバンスカスタムフィールドで入れ込む位しかないかな。

状態tax で販売中と売り切れを作り
ドロップダウンにして
タクソノミーにも保存時反映ボタンチェックで
どうやらアドバンスのタームはタクソノミーに影響しながら
そのカスタムフィールドも値をもつようだ(array なのでフォーチしないといけない)
なのでメタバリューで一覧時売り切れは最後に表示されるが可能だ

入荷待ちは真偽にして
チェックを入れるようにしゅる

yarppのエクスクルードはterm_taxonomy_idという初めて聞く値で除外できるみたいで

<?php 
$staz = get_the_terms($post->ID, 'item_sta');
foreach ($staz as $sta) :

endforeach;//状態タクスからタームをフォーチでまわしてnameでとりだして(1個だけだからこれでよし)
echo $sta -> term_taxonomy_id;
?>

こいつで初めて取得した。タームIDとはちがうみたい

こっから完成したもの

アーカイブ用メインクエリ

//ショップ売れ切れ最後表示

//こっから本番
function SortArchive( $query ) {
 //管理画面スルー	
    if ( is_admin() || ! $query->is_main_query() )
        return;
 //こっから
    if ( $query->is_category() || $query->is_archive() || $query->is_tax() || $query->is_search() ) {
$query->set( 'meta_key', 'item_sta_tax' );
$query->set( 'orderby', array( 'meta_value' => 'ASC', 'date' => 'DESC' ) );//新しい デフォ
 
	 
        return;
    }
}
add_action( 'pre_get_posts', 'SortArchive' );
<!--ステータス--->
<?php 
$staz = get_the_terms($post->ID, 'item_sta');
foreach ($staz as $sta) :

endforeach;//状態タクスからタームをフォーチでまわしてnameでとりだして(1個だけだからこれでよし)
echo $sta -> term_taxonomy_id;
?>


 <?php if ( $sta->name == '売り切れ' ):?> 
<!----->
<div class="item_sta1">売り切れ</div>

<!----->
<?php elseif ( get_field('item_buy') == '入荷待ち' )://真偽ぼたんだはこれでよい?> 
<div class="item_sta2">入荷待ち</div>

<?php else:?>

<?php
endif; ?>

画像のソールドアウト部分も同じ分岐
topはちょい違う
W60%とかなんで商品ページは大きく表示されるから画像大きめ
フォトギャラリーはでくくった部分がギャリャーになるから最後に入れても大丈夫だった
下記テンプレはコード省く
shop_roop.php shop_roop_box.php

<!--売り切れアイコン表示--->
<?php 
$staz = get_the_terms($post->ID, 'item_sta');
foreach ($staz as $sta) :
endforeach;//状態タクスからタームをフォーチでまわしてnameでとりだして(1個だけだからこれでよし)
?>
<?php
 if ( $sta->name == '売り切れ' ):?> 
<div class="sold_icon">
<img src="/img/d_site/soldout.png" width="100%" alt="売り切れ"/>
</div>

<?php
endif; ?>
/*売り切れとか*/

.item_sta1{ color:#dc0012;
margin-bottom:5px;}

.item_sta2{ margin-bottom:5px;}
.sold_icon{
	position: absolute;
	left: 0;
	right: 0;
	bottom: 20px;
	margin: auto;
	width: 63%;
	z-index: 1000;
}

やっとこさYARPP

<?php 
yarpp_related(array(
	'post_type' => array('shop', 'mycustompost'),
	'show_pass_post' => false, // show password-protected posts
	'past_only' => false,
	'exclude'  => array(199),
 'weight' => array(
        'body' => 2,
        'title' =>2, 
		 'tax' => array(
            'shop_cat' => 2,
        ))
//	    'order' => 'score DESC'//載せる順番    
	// show only posts which were published before the reference post
	// 任意のテンプレートを利用する場合指定
	//'template' => 'yarpp-template-xxxxxx.php', // either the name of a file in your active theme or the boolean false to use the builtin template


	));
	
	?>