いつまで経ってもわからない、WEBってやつは・・・(´・ω・`)

【 WordPress 】Intuitive Custom Post Orderで並び替えしていて、日付順で並ばせたいところは除外させたい対処法(ΦωΦ)

こんにちわ、WPを4.0.1にしたら「外観」の「テーマ編集」が「エディター」という名前に変わっていて焦ったゆでです(´・ω・`)<なぜに変わったww

さてさて、Intuitive Custom Post Orderという管理画面上で記事を並び替えた順番で表示させるプラグインを入れていて、「お知らせ」とか日付順がいいのに並び替えたら並び替えが反映されてしまうのを防ぐ対処法のメモです(´・ω・`)<またニッチなメモw

3つの記事を新規に追加(テスト)

  • 新規投稿で公開日付を「2010年10月10日」として公開
    タイトル : TEST0001(2010/10/10)
  • さらに新規投稿で公開日付を「2014年10月10日」として公開
    タイトル : TEST0002(2014/10/10)
  • さらに新規投稿で公開日付を「2012年10月10日」として公開
    タイトル : TEST0003(2012/10/10)

通常ならば日付順なので

  • TEST0002(2014/10/10)
  • TEST0003(2012/10/10)
  • TEST0001(2010/10/10)

となる。ダガシカシ、「Intuitive Custom Post Order」が有効の場合は入れた順番(管理画面と同じ並び順)で表示される。
(注意:有効後に入れたものが反映)

  • TEST0003(2012/10/10)
  • TEST0002(2014/10/10)
  • TEST0001(2010/10/10)

(; ・`ω・´)<なんとかするしかないw
※公式の作者のサイトとかにもあるのですが・・除外とかうまく動いてないみたいなので、その場合は下記で対応でヽ(´Д`ヽ)(/´Д`)/(今のところ☆)

関数追加

function.phpに下記関数を追加(´・ω・`)

//日付順並び用(一覧)
function get_querylist($catslug){
	wp_reset_postdata();
	wp_reset_query();
	if($catslug){
		$me = $catslug;
	}else{
		$meid = get_query_var('cat');
		$me = get_category($meid);$me = $me->slug;
	}
	$listargs = array(
	 'post_status' =>'publish', 
	 'post_type' =>'post', 
	 'category_name' => $me,
	 'order' => 'DESC',
	 'orderby' =>'date'
	);
	$querylist = new WP_Query( $listargs );
	wp_reset_query();
	return $querylist;
}

一覧で表示するphpにまずは下記追加

例えばcategory.phpとか、archive.phpとか、index.phpとか…一覧のphpの「<?php get_header(); ?>」の後に下記を追加(´・ω・`)

<?php //並び替え日付順用
$args = array('order' => 'DESC','orderby' =>'date');
$showquery = new WP_Query( $args );
?>

ループする場所を編集

日付順にしたいループ修正前

while ( have_posts() ) : the_post();

修正後

$query = get_querylist('');
while ( $query->have_posts() ) : $query->the_post();

ヨシャ、いけたー(∩´∀`)∩

ついでに他の場合もいれたまとめ

WP_Queryで色々指定している場合

並び替え無効(日付順)

$my_query = new WP_Query(array('category_name' => 'カテゴリスラッグ☆'));
while ($my_query->have_posts()) : $my_query->the_post();

並び替えが有効

$my_query = new WP_Query(array('category_name' => 'カテゴリスラッグ☆','order'=>'ASC','orderby'=>'menu_order'));
while ($my_query->have_posts()) : $my_query->the_post();

特に何もしてない場合

並び替え無効(日付順)

$query = get_querylist('');
while ( $query->have_posts() ) : $query->the_post();

並び替えが有効

 while (have_posts()) : the_post();

そのうちアップデートで直るといいなぁ(*´∀`*)それまではこれで☆