この記事は投稿日から、2年以上経過しています。

WordPress のテーマで使用するfunctions.php。
今回は、自分が普段どんなことを書いているのか備忘録代わりに記事にしました。
今まで結構な量を書いたと思うので、その中でも汎用的に使えそうなものをチョイスしています。

アイキャッチ画像を使えるようにする

//アイキャッチ画像を使用できるようにする
add_theme_support('post-thumbnails');
//サイズを指定する場合
set_post_thumbnail_size(500, 300, true);

表示する際はテーマ内に以下を記述

<?php the_post_thumbnail(); ?>

管理画面の投稿(カテゴリー・タグ)の名称変更

例として全て平仮名にしてみます。

add_action( 'admin_menu', 'change_post_menu_label' );
function change_post_menu_label() {
  global $menu;
  global $submenu;
  $menu[5][0] = 'とうこう';
  $submenu['edit.php'][5][0] = 'いちらん';
  $submenu['edit.php'][10][0] = 'しんき';
  $submenu['edit.php'][15][0] = 'かてごりー';
  $submenu['edit.php'][16][0] = 'たぐ';
}

add_action( 'init', 'change_post_label' );
function change_post_label() {
  global $wp_post_types;
  $labels = $wp_post_types['post']->labels;
  $labels->name = 'とうこう';
  $labels->singular_name = 'とうこう';
  $labels->name_admin_bar = 'とうこう';
  $labels->add_new = 'しんきとうこう';
  $labels->add_new_item = 'しんきとうこうをついか';
  $labels->edit_item = 'しんきとうこうのへんしゅう';
  $labels->new_item = 'しんきとうこう';
  $labels->view_item = 'とうこうをひょうじ';
  $labels->view_items = 'とうこうをひょうじ';
  $labels->search_items = 'とうこうをけんさく';
  $labels->not_found = 'とうこうがみつかりませんでした';
  $labels->not_found_in_trash = 'ごみばこないにとうこうがみつかりませんでした。';
}

add_action( 'init', 'change_taxonomies_label' );
function change_taxonomies_label() {
  global $wp_taxonomies;
  $labels = $wp_taxonomies['category']->labels;
  $labels->name = 'かてごりー';
  $labels->singular_name = 'かてごりー';
  $labels->search_items = 'かてごりーをけんさく';
  $labels->all_items = 'かてごりーいちらん';
  $labels->parent_item = 'おやかてごりー';
  $labels->parent_item_colon = 'おやかてごりー:';
  $labels->edit_item = 'かてごりーのへんしゅう';
  $labels->view_item = 'かてごりーをひょうじ';
  $labels->update_item = 'かてごりーをこうしん';
  $labels->add_new_item = 'しんきかてごりーをついか';
  $labels->new_item_name = 'しんきかてごりーめい';
  $labels->not_found = 'かてごりーがみつかりませんでした。';
  $labels->no_terms = 'かてごりーなし';

  $labels = $wp_taxonomies['post_tag']->labels;
  $labels->name = 'たぐ';
  $labels->singular_name = 'たぐ';
  $labels->search_items = 'たぐをけんさく';
  $labels->popular_items = 'にんきのたぐ';
  $labels->all_items = 'すべてのたぐ';
  $labels->edit_item = 'たぐのへんしゅう';
  $labels->view_item = 'たぐをひょうじ';
  $labels->update_item = 'たぐをこうしん';
  $labels->add_new_item = 'しんきたぐをついか';
  $labels->new_item_name = 'しんきたぐめい';
  $labels->separate_items_with_commas = 'たぐがふくすうある場合は~';
  $labels->add_or_remove_items = 'たぐのついかもしくはさくじょ';
  $labels->choose_from_most_used = 'よくつかわれているたぐからせんたく';
  $labels->not_found = 'たぐがみつかりませんでした。';
  $labels->no_terms = 'たぐなし';
}

【参考サイト】
WordPress:投稿・カテゴリー・タグの各ラベル名を任意に変更する方法 | NxWorld

管理画面の使用しないメニューを非表示にする

例として管理者(level_10)以外にはメニューを表示させないという設定にしてみます。

// 使用しないメニューを非表示にする
function remove_admin_menus() {
 
    // level10以外のユーザーの場合
    if (!current_user_can('level_10')) {
 
        global $menu;
 
        // unsetで非表示にするメニューを指定
        unset($menu[2]);        // ダッシュボード
        unset($menu[20]);       // 固定ページ
        unset($menu[25]);       // コメント
        unset($menu[60]);       // 外観
        unset($menu[65]);       // プラグイン
        unset($menu[70]);       // ユーザー
        unset($menu[75]);       // ツール
        unset($menu[80]);       // 設定
        remove_menu_page('wpcf7');    //コンタクトフォーム
    }
}
add_action('admin_menu', 'remove_admin_menus');

特定ユーザー以外への更新通知を非表示

例として管理者(level_10)以外には通知を表示させないという設定にしてみます。

//特定ユーザー以外への更新通知を非表示
function update_message_admin_only() { 

// level10以外のユーザーの場合
if (!current_user_can('level_10')) { 
    add_filter( 'pre_site_transient_update_core', '__return_zero' );
    remove_action( 'wp_version_check', 'wp_version_check' );
    remove_action( 'admin_init', '_maybe_update_core' );
}}
add_action( 'admin_init', 'update_message_admin_only' );

寄稿者でも画像をアップロードできるようにする

デフォルトでは寄稿者は記事を作成できるがメディアは扱えません。

//寄稿者でも画像をアップロードできるようにする
if ( current_user_can('contributor') && !current_user_can('upload_files') ){
    add_action('admin_init', 'allow_contributor_uploads');
}
function allow_contributor_uploads() {
    $contributor = get_role('contributor');
    $contributor->add_cap('upload_files');
}

既存のテキストエディタを表示させない

カスタムフィールドを使用していて既存のテキストエディタは不要という事は多いと思います。

//既存のテキストエディタを表示させない
add_action( 'init' , 'my_remove_post_editor_support' ); 

function my_remove_post_editor_support() {
 remove_post_type_support( 'post', 'editor' );
}

1 件のコメントが “[その1]WordPressのfunctions.phpに書いておくと便利かもしれないこと” にあります。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です