カスタムフィールドは(の集まり、アーカイブ)は作成されないので、当然、リンクを提供するようなテンプレートタグもありません。
方法1
カスタムフィールドを諦めて、カスタムタクソノミーで作り直す
方法2
カスタムフィールドでそのままやるなら、
1. 固定ページなどで特定のカスタムフィールドの同じ値を持つ投稿を表示するようなPHPコードを頑張って書く
(当然都道府県はいっぱいあるので、47個作らないといけない)
2.投稿のページからはその固定ページに行くようにリンクを作る
まだ、そんなに投稿を作っていないのであれば方法1に方針を変えたほうが後々楽です
ほい、こんな感じ。都道府県のカスタムフィールドのキーを prefecture
としていますので、そこは適宜変更してください。
<?php
/*
Plugin Name: 管理画面の記事一覧にカスタムフィールドへのリンクを追加
*/
// 管理画面の記事一覧に都道府県カラムを追加
add_filter( 'manage_posts_columns', function($posts_columns, $post_type) {
return array_merge( $posts_columns, array('prefecture' => '都道府県') );
}, 10, 2);
// 管理画面の都道府県カラムに表示する内容
add_action( 'manage_posts_custom_column', function($column_name, $post_id) {
if ($column_name == 'prefecture') {
$post = get_post($post_id);
if (isset($post->prefecture)) {
$url = admin_url( 'edit.php?meta_key=prefecture&meta_value=' . $post->prefecture );
echo sprintf(
'<a href="%s">%s</a>',
esc_url($url),
esc_html($post->prefecture)
);
}
}
}, 10, 2 );
// 管理画面でカスタムフィールドのパラメーターを許可する
add_filter('query_vars', function($public_query_vars) {
if (is_admin()) {
$public_query_vars[] = 'meta_key';
$public_query_vars[] = 'meta_value';
}
return $public_query_vars;
});
ダッシュボードの方でしたか。
(とはいえ個人的にはタクソノミーのほうが向いてる気もしますが・・・。)