見出し画像

WordPressの投稿編集画面で投稿者のニックネームを表示させる

投稿編集画面に自分の名前を表示させたいって思った人いませんか?
そんな方のためにコードを投稿者のニックネームを表示させる作成しました。

function display_custom_user_field_in_editor($post){
	$fixed_text = __('Nickname:', 'sample');
	$author_id = $post->post_author;
	$nickname_value = get_user_meta($author_id, 'nickname', true);
	if (is_admin() && get_current_screen()->id === 'post'){
		if ($nickname_value){
			$author_info_html = '<div style="margin-top:20px;background-color:#f5f5f5;padding:0 5px;border:1px solid #ddd;">';
			$author_info_html .= '<p>'.$fixed_text. $nickname_value.'</p>';
			$author_info_html .= '</div>';
			echo $author_info_html;
		}
	}
}
add_action('edit_form_after_title', 'display_custom_user_field_in_editor');

このソースをfunctions.phpに入れてください。

$fixed_text = __('Nickname:', 'sample');
$author_id = $post->post_author;
$nickname_value = get_user_meta($author_id, 'nickname', true);

「$fixed_text」は、「Nickname:」というテキストを表示させるもの。
「$author_id」は、投稿者IDを格納するもの。
「$nickname_value」は、投稿者のニックネームを取得。
因みに「$fixed_text = __('Nickname:', 'sample');」の「Nickname:」は第1引数に渡された英文テキストを、第2引数に指定された「sample」に応じて翻訳するものです。
翻訳についてはWordPressのテーマやプラグインなど翻訳ツールPoeditで翻訳するのですが、近いうちに話したいと思います。

if (is_admin() && get_current_screen()->id === 'post') {}

そして管理画面で表示させるための関数です。
「get_current_screen()->id === 'post'」で投稿編集画面であることを確認します。

if ($nickname_value) {
	$author_info_html = '<div style="margin-top:20px;background-color:#f5f5f5;padding:0 5px;border:1px solid #ddd;">';
	$author_info_html .= '<p>'.$fixed_text. $nickname_value.'</p>';
	$author_info_html .= '</div>';
	echo $author_info_html;
}

そしていよいよ、投稿編集画面の上に表示させるHTMLを作成します。
さきほどの「$fixed_text」が「Nickname:」と表示され、echoで生成した HTMを画面に表示します。
以下がその例です。

編集画面にニックネームを表示

デフォでスクショのようなデザインにしていますが、「style=""」内を編集すれば好きなデザインにカスタマイズできます。
よろしければ、参考にしてください。


この記事が気に入ったらサポートをしてみませんか?