<?php
/*
  投稿サムネイル画像（アイキャッチ画像）を使用する。
  参考 https://webtips.site/page/8/
*/
if(function_exists("add_theme_support"))
  add_theme_support("post-thumbnails");

/*フロントページに投稿サムネイル画像（アイキャッチ画像）を使用する場合の大きさを指定 */
add_image_size("list-thumbnail", 200, 200, true);
add_image_size("single-post-thumbnail", 324, 243, true);

/*投稿一覧にサムネイルを表示 */
if(!function_exists("fb_AddThumbColumn") && function_exists("add_theme_support")){
  /*サムネイルを使用する記事タイプを指定 */
  add_theme_support("post-thumbnails", array("salt_water","fresh_water","fishing_gear"));
  function fb_AddThumbColumn($cols){
    $cols["thumbnail"] = __("Thumbnail");
    return $cols;
  }

  function fb_AddThumbValue($column_name, $post_id){
    $width = (int)120;
    $height = (int)90;
    if("thumbnail" == $column_name){
      /* thumbnail of WP 2.9 */
      $thumbnail_id = get_post_meta($post_id, "_thumbnail_id", true);
      /* image from gallery */
      $attachments = get_children(array("post_parent" => $post_id, "post_type" => "attachment", "post_mime_type" => "image"));
      if($thumbnail_id)
        $thumb = wp_get_attachment_image($thumbnail_id, array($width, $height), true);
      elseif($attachments){
        foreach ($attachments as $attachment_id => $attachment){
          $thumb = wp_get_attachment_image($attachment_id, array($width, $height), true);
        }
      }
      if(isset($thumb) && $thumb){
        echo $thumb;
      } else{
        echo __("None");
      }
    }
  }

  /* for posts */
  add_filter("manage_posts_columns", "fb_AddThumbColumn");
  add_action("manage_posts_custom_column", "fb_AddThumbValue", 10, 2);

  /* for pages */
  add_filter("manage_pages_columns", "fb_AddThumbColumn");
  add_action("manage_pages_custom_column", "fb_AddThumbValue", 10, 2);
}
/*
  //投稿サムネイル画像（アイキャッチ画像）を使用する。(ここまで。テーマ側の設定は参考サイトの｢テンプレートファイル｣の部分参照)
*/


/* 管理画面に admin-panel.css を読み込ませる */
function my_head(){
  echo '<link rel="stylesheet" type="text/css" href="' . get_bloginfo('template_url') . '/css/admin-panel.css" />';
}
add_action("admin_print_styles", "my_head", 21);


/*
  ダッシュボードから不要ウィジットを消す
  参考 https://hijiriworld.com/web/wordpress-admin-customize/
*/
remove_all_actions("wp_dashboard_setup");
function example_remove_dashboard_widgets(){
  global $wp_meta_boxes;
  //Main column
  // unset($wp_meta_boxes["dashboard"]["normal"]["core"]["dashboard_right_now"]);//現在の状況
  // unset($wp_meta_boxes["dashboard"]["normal"]["core"]["dashboard_recent_comments"]);//最近のコメント
  // unset($wp_meta_boxes["dashboard"]["normal"]["core"]["dashboard_incoming_links"]);//被リンク
  // unset($wp_meta_boxes["dashboard"]["normal"]["core"]["dashboard_plugins"]);//プラグイン

  //Side Column
  unset($wp_meta_boxes["dashboard"]["side"]["core"]["dashboard_quick_press"]);//クイック投稿
  unset($wp_meta_boxes["dashboard"]["side"]["core"]["dashboard_recent_drafts"]);//最近の下書き
  unset($wp_meta_boxes["dashboard"]["side"]["core"]["dashboard_primary"]);//WordPressブログ
  unset($wp_meta_boxes["dashboard"]["side"]["core"]["dashboard_secondary"]);//WordPressフォーラム
}
add_action("wp_dashboard_setup", "example_remove_dashboard_widgets" );


/* 参考 http://wpcj.net/108 */
if(!is_super_admin()){
  /* 管理者以外にアップデートのお知らせ非表示 */
  function wphidenag(){
    remove_action("admin_notices", "update_nag");
  }
  add_action("admin_menu","wphidenag");
  /* 管理者以外のときはバージョンチェックを停止 */
  add_filter("pre_site_transient_update_core", "__return_zero");
  remove_action("wp_version_check", "wp_version_check");
  remove_action("admin_init", "_maybe_update_core");
}

/* 編集者ログイン後に任意のページヘリダイレクトさせる */
if(!is_super_admin()){
  function redirect_dashiboard(){
    if("/news/wp-admin/index.php" == $_SERVER["SCRIPT_NAME"]){
      wp_redirect(admin_url("edit.php"));
    }
  }
  add_action("admin_init", "redirect_dashiboard");
}

/* 管理者以外に不要なメニューを非表示 */
function remove_menus(){
  if(!is_super_admin()){
    remove_menu_page("index.php"); /* ダッシュボード */
    remove_menu_page("edit.php?post_type=page"); /* 固定ページ */
    remove_menu_page("edit-comments.php"); /* コメント */
    remove_menu_page("tools.php"); /* ツールメニュー */
    remove_submenu_page("edit.php","edit-tags.php?taxonomy=category"); /* カテゴリー(左のメニューのところの) */
    remove_meta_box("categorydiv","post","normal"); /* カテゴリー(投稿画面の) */
  }
}
add_action("admin_menu", "remove_menus");
/*
validation
英数字のみの項目入力を禁止
*/
add_filter(
    'wpcf7_validate',
    function ($result, $tag) {
        if ($_POST['sender-message'] ?? false) {
            $value = str_replace([PHP_EOL, ' '], '', esc_attr($_POST['sender-message']));
            if (!empty($value)) {
                if (preg_match('/^[!-~]+$/', $value)) {
                    $result['valid'] = false;
                    $result['reason'] = ['sender-message' => '日本語で入力してください'];
                }
            }
        }
        return $result;
    },
    10,
    2
);
