CatStyle - キャットスタイル
Web系のお仕事全般やってます!Webシステム構築、ホームページ制作 etc.

ブログ

  • 管理画面カスタマイズ
  • Wordpress

WP管理画面でメディアの下に表示されてしまうカスタム投稿メニューをメディアの上に表示する方法

2019.12.28

複数(5個以上)カスタム投稿を設置するとWordPressの管理画面のメニューで「メディア」メニューの下にカスタム投稿のメニューが表示されてしまいます。これをメディアの上に表示させる方法。

これは「メディア」メニューの表示位置が「10」と定義されているためで、この表示位置「10」を上回ってしまったカスタム投稿メニューがメディアの下に表示されるようになってしまいます。

【解決方法】
定義されている「メディア」メニューの位置を「10」以上に再設定することによって、複数(5個以上)のカスタム投稿のメニュー位置を「メディア」の上にもってくることができます。

functions.phpに下記の記述を加えることによって「メディア」の位置を変更できます。
※同じ関数名( custom_admin_menus )が既に定義されているとエラーが出るので注意が必要です。

function custom_admin_menus(){

global $menu;

$menu[19] = $menu[10]; //メディアの位置を19(固定ページ上)に移動
unset($menu[10]); //メディア(位置10)を解放

}
add_action(‘admin_menu’, ‘custom_admin_menus’);

  • 関数
  • Wordpress

タクソノミータームに関連付けられている投稿数を更新する

2017.05.30
wp_update_term_count_now(array $terms, string $taxonomy);

指定のタームに関連付けられている投稿数のカウントをすぐに更新する。

■ $terms … 更新したいタクソノミータームIDの配列。

■ $taxonomy … 更新したいタクソノミースラッグ。

  • Wordpress

カテゴリ、タームの一覧取得方法

2017.03.07

= カテゴリ一覧取得 =

$args = array(‘hide_empty’ => false,’parent’=>false);
$cats = get_terms(‘category‘,$args);
if($cats and is_array($cats)):
  foreach($cats as $cat):

    echo esc_html($cat->name);
    echo esc_html($cat->slug);
    echo esc_html($cat->term_id);

  endforeach;
endif;

= ターム(カテゴリ)一覧取得 =

$args = array(‘hide_empty’ => false,’parent’=>false);
$terms = get_terms(‘news-cat‘,$args);
if($cats and is_array($cats)):
  foreach($cats as $cat):

    echo esc_html($cat->name);
    echo esc_html($cat->slug);
    echo esc_html($cat->term_id);

  endforeach;
endif;

取得条件($args)で指定できるパラメータ項目

※下記はよく使うもの。下記以外は 関数リファレンス/get terms を確認。

hide_empty
true(デフォルト):このタームが設定されている投稿がない場合にはタームを返さない。
false:このタームが設定されている投稿の有無に関係なくタームを返す。
parent
false:トップレベルのターム(最上位のターム)のみを返す。親タームIDを指定するとその親タームIDを持つタームのみを返す。
include
取得したいタームIDの配列を指定する。
child_of
指定したタームIDの子孫をすべて返す。

取得できるデータ

name
表示名
slug
スラッグ
term_id
タームID
parent
親ターム(カテゴリ)のID
count
このターム(カテゴリ)が設定されている記事数
term_group
まだ使ったことがない
term_taxonomy_id
まだ使ったことがない
taxonomy
まだ使ったことがない
description
まだ使ったことがない

※取得できるデータはすべて文字列なので、数値として使用する場合は数値への変換が必要。

  • Wordpress

サブクエリ

2017.03.05
$args = array(‘post_type’=>’news’,…);
$query = new WP_Query($args);
if($query->have_posts()): while($query->have_posts()): $query->the_post();



endwhile(); endif;
wp_reset_postdata();
  • Wordpress

タックスクエリ – tax_query

2017.03.04
$tax_query = array(
  array(
    ‘taxonomy’ => ‘news-cat’,
    ‘field’ => ‘slug’,
    ‘terms’ => array(‘news-slug’),
    ‘include_children’ => true,
    ‘operator’ => ‘IN’
  ),
  array(
    ‘taxonomy’ => ‘news2-cat’,
    ‘field’ => ‘slug’,
    ‘terms’ => array(‘news2-slug’),
    ‘include_children’ => true,
    ‘operator’ => ‘IN’
  ),
  ‘relation’ => ‘AND’
); $args = array(…,’tax_query’=>$tax_query);

■ fieldで設定できる値:slug / term_id / name / term_taxonomy_id

■ termsの値は配列で指定する。

■ include_children … 子ターム(カテゴリ)を含める場合は true 含めない場合は false。

■ operatorで設定できる値:IN / NOT IN / AND

■ relationで設定できる値:OR / AND

※ ‘relation’ => ‘AND’ は複数条件に指定したい taxonomy がある場合のみ必要。

  • Wordpress

メタクエリ – meta_query

2017.03.03
$meta_query = array(
  array(
    “key” => “style”,
    “value” => “cat”,
    “compare” => “LIKE”
  ),
    array(
    “key” => “style”,
    “value” => “dog”,
    “compare” => “NOT IN”
  ),
  ‘relation’ => ‘AND’
);
$args = array(…,’meta_query’=>$meta_query);

■ compareで設定できる値:LIKE / NOT LIKE / IN / NOT IN / BETWEEN / NOT BETWEEN

※ value値が配列の要素のひとつである場合はcompareはINではなくLIKEを使わないと取得できない。

※ オブジェクトに対してvalue値を指定する場合は、term_idを指定する。

■ relationで設定できる値:OR / AND

PAGE TOP