WordPressの管理画面のカスタム投稿一覧画面にカスタムフィールドの値を表示したいとき

こんにちはレターズです。
今回は、クライアントさまからのご要望も多い、Wordpressの管理画面のカスタム投稿一覧画面にカスタムフィールドの値を表示する方法をお伝えします。

まずは結果画面

画面全部はお見せできないのですが、下記の赤枠のところを実装していきます。

それではやり方を説明していきます。

STEP01 リスト内に表示個所を準備

functions.phpに下記を記載します。

	//
	//
	function custom_columns($columns)
	{
		$columns['item_name'] = "物件名";
		$columns['propety_images'] = "物件画像";
		return $columns;
	}
	add_filter('manage_property_posts_columns', 'custom_columns');

manage_property_posts_columnsフックのpropertyのところを任意のカスタム投稿スラッグに置き換えてください。

これで、物件名と物件画像の項目が一覧リストに表示されます。
このままだと値は表示されないので、表示する値を設定していきます。

STEP02 表示する値を設定

functions.phpに下記を追記載します。

    //
	//
	function display_custom_columns($column, $post_id)
	{
		switch ($column) {
			case 'propety_images':
				$images = SCF::get('propety_images', $post_id);
				//ge img from id 
				$img = wp_get_attachment_image($images[0]["propety_image"], 'thumbnail');
				echo $img ? $img : __('None');
				break;
			case 'item_name':
				$item_name = SCF::get('item_name', $post_id);
				echo esc_html($item_name) ? esc_html($item_name) : __('None');
				break;
		}
	}
	add_action('manage_property_posts_custom_column', 'display_custom_columns', 10, 2);	

manage_property_posts_custom_columnフックのpropertyのところを任意のカスタム投稿スラッグに置き換えてください。

この場合は物件画像はSmartCustomFieldで指定した繰り返しの項目の中の一番最初の画像を出力しています。(7から10行目)

echo $img ? $img : __('None');

は画像がないときは なし を出力してください。という意味です。

物件名は物件画像のフィールドの値を表示しています。esc_htmlを忘れずに。

これで管理画面内でのカスタム投稿一覧に任意のカスタムフィールドの値を表示することができます。

コメントを残す

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