WordPress
カスタムフィールド

Wordpressで管理画面の設定 > 一般に任意のカスタムフィールドを設定する方法

この記事を書いた理由

営業さんからの
「これ、クライアントに設定させられないかな?」の一言

設定方法

functions.php
//Twitter/Facebook/InstagramのURLを設定するカスタムフィールドを追加
add_action('admin_init', function(){
  //Twitter設定
  add_settings_field(
    'site_twitter_link',
    'Twitter URL',
    function(){echo(get_original_input_customfield("site_twitter_link"));},
    'general'
  );
  register_setting('general', 'site_twitter_link');

  //Facebook設定
  add_settings_field(
    'site_facebook_link',
    'Facebook URL',
    function(){echo(get_original_input_customfield("site_facebook_link"));},
    'general'
  );
  register_setting('general', 'site_facebook_link');

  //Instagram設定
  add_settings_field(
    'site_instagram_link',
    'Instagram URL',
    function(){echo(get_original_input_customfield("site_instagram_link"));},
    'general'
  );
  register_setting('general', 'site_instagram_link');
});
//input fieldを返す
function get_original_input_customfield($name = ""){
  if($name === "") return false;
  $html = '<input type="text" name="'.$name.'" id="'.$name.'" class="regular-text" value="'. esc_attr(get_option($name)). '">';
  return $html;
}

取得方法

template.php
$twitter_link = get_option('site_twitter_link');
$facebook_link = get_option('site_facebook_link');
$instagram_link = get_option('site_instagram_link');