2026年11月12日
2026年11月12日
WordPress 中繼框(Meta Box)不顯示的解決方法
本文是日文原文的在地化版本。 閱讀日文原文
前言
用外掛新增的中繼框(Meta Box)沒有出現在文章編輯畫面、之前看得到的中繼框突然消失、切換到區塊編輯器之後側邊欄的中繼框不見了。中繼框不顯示,與畫面設定以及和區塊編輯器的相容性有關。
症狀・原因
中繼框不顯示的主要原因:
- 在畫面選項中被隱藏:每位使用者各自的顯示設定被設為「隱藏」
- 與區塊編輯器不相容:需要設定
__block_editor_compatible_meta_box - 掛鉤優先順序的問題:
add_meta_boxes掛鉤的時機不對 - 文章類型指定錯誤:第 3 個參數的文章類型寫錯了
- 外掛衝突:其他外掛移除了該中繼框
解決步驟
步驟 1:確認畫面選項
最常見的原因是在畫面選項中被隱藏。
1. 點選文章編輯畫面右上角的「畫面選項」(Screen Options)
2. 確認想顯示的中繼框是否被取消勾選
3. 勾選後關閉,就會顯示出來
步驟 2:確認 add_meta_box 的實作
// functions.php — 正確地新增中繼框
add_action('add_meta_boxes', function() {
add_meta_box(
'my_meta_box_id', // ID(唯一的字串)
'自訂資訊', // 標題
'render_my_meta_box', // 回呼函式
['post', 'page'], // 文章類型(可用陣列指定多個)
'normal', // 區域: normal/side/advanced
'high' // 優先順序: high/core/default/low
);
});
function render_my_meta_box($post) {
wp_nonce_field('my_meta_nonce_action', 'my_meta_nonce');
$value = get_post_meta($post->ID, '_my_field', true);
echo '<input type="text" name="my_field" value="' . esc_attr($value) . '">';
}
步驟 3:在區塊編輯器中顯示中繼框
區塊編輯器(Gutenberg)對中繼框的支援有限。
// 在區塊編輯器中也顯示中繼框
add_action('add_meta_boxes', function() {
add_meta_box(
'my_meta_box_id',
'自訂資訊',
'render_my_meta_box',
'post',
'normal',
'high',
// 明確宣告與區塊編輯器相容
['__block_editor_compatible_meta_box' => true]
);
});
步驟 4:停用區塊編輯器來確認
// functions.php — 針對特定文章類型停用區塊編輯器
add_filter('use_block_editor_for_post_type', function($use_block_editor, $post_type) {
if ($post_type === 'post') {
return false; // 切換到傳統編輯器
}
return $use_block_editor;
}, 10, 2);
也可以安裝「Classic Editor」外掛,從後台進行設定。
步驟 5:除錯中繼框的顯示
// 確認中繼框是否已經註冊
add_action('add_meta_boxes', function() {
global $wp_meta_boxes;
error_log('Meta boxes: ' . print_r(array_keys($wp_meta_boxes), true));
}, 999); // 優先順序 999,最後才執行
步驟 6:確認外掛衝突
# 用 WP-CLI 停用所有外掛,確認中繼框
wp plugin deactivate --all
# 在瀏覽器開啟文章編輯畫面,確認中繼框有沒有出現
# 沒問題的話,再逐一啟用外掛來找出原因
wp plugin activate plugin-name
步驟 7:重設使用者中繼資料
畫面選項的設定是儲存在使用者中繼資料(user meta)中。
// 重設特定使用者的中繼框顯示設定
delete_user_meta(get_current_user_id(), 'metaboxhidden_post');
delete_user_meta(get_current_user_id(), 'metaboxhidden_page');
注意事項
- 畫面選項的設定是依每位使用者分別儲存的。其他使用者需要各自設定。
- 在區塊編輯器中,只有
side區域的中繼框會顯示在側邊欄。 - 使用 ACF(Advanced Custom Fields)時,需要設定支援區塊編輯器的欄位群組。
總結
中繼框不顯示時,請先確認「畫面選項」的勾選狀態。在區塊編輯器中需要設定__block_editor_compatible_meta_box。如果還是無法解決,就要逐一排查外掛衝突。相關文章:自訂欄位無法儲存時、區塊編輯器當機時
對 WordPress 有疑問嗎?本站營運方位於日本,僅以日文回覆。 聯絡我們(日文)