2021年1月26日

プラグイン不要、投稿の属性「順序」で投稿の表示順を変える方法

順序に入力した数字順に投稿を表示させる方法

function.php

//管理画面の記事一覧に順序を表示
function add_posts_columns($columns) {
    $columns['menu_order'] = '順序';
    return $columns;
}
function add_posts_columns_row($column_name, $post_id) {
    if ( 'menu_order' == $column_name ) {
      $menu_order = get_post($post_id) -> menu_order;
      echo $menu_order;
    }
}
add_filter( 'manage_posts_columns', 'add_posts_columns' );
add_action( 'manage_posts_custom_column', 'add_posts_columns_row', 10, 2 );
投稿以外で順序を使う場合はピンクを指定のpost_typeにする(管理画面URLから判断)
//投稿編集画面で「投稿の属性」の中に「順序」を表示させる
add_post_type_support( 'post', 'page-attributes' );
//管理画面の記事一覧「順序」でソートできるようにする
function make_order_column_sortable( $columns ) {
  $columns['menu_order'] = 'menu_order';
  return $columns;
}
add_filter( 'manage_edit-psot_sortable_columns', 'make_order_column_sortable' );
//カテゴリページだけ投稿を「順序」の順で表示
function cate_change_sort_order( $query ) {
  if ( is_admin() || ! $query->is_main_query() ) {
    return;
  }
  if($query->is_category('news') || $query->is_category('feature') ){
     //特定のカテゴリページでは管理設定通り(新しい順)
  }else if ( $query->is_category() ) {
   $query->set( 'order', 'ASC' );
    $query->set( 'orderby', 'menu_order' );
  }
}
add_action( 'pre_get_posts', 'cate_change_sort_order' );
Wish I could be Comic Sans ついにマイコンピューターでインターネットを始めたの
わたしはヨガマットデザイナー

fzfeed