[英]How do I display the Category description field within the dropdown generated by ACF in my custom post type?
在編輯此類型的帖子時,我正在使用自定義帖子類型在其自身中顯示分類類別,並且我希望下拉列表(或者可能是其他選擇方式)也能夠顯示描述字段類別,以便簡單的“區域 1”、“區域 2”可以解釋這些區域中包含哪些地理區域。
為 CPT 設置分類非常簡單,
$clubregions = array(
'labels' => array(
'name' => 'Club Regions',
'singular_item' => 'Club Region',
'add_new_item' => 'Add New Club Region',
'edit_item' => 'Edit Club Region',
),
'hierarchical' => true,
'public' => true,
'show_ui' => true,
'show_admin_column' => true,
'show_in_nav_menus' => false,
'show_in_rest' => false,
'show_tagcloud' => false,
);
register_taxonomy( 'clubregions', array( 'clubdetails' ), $clubregions );
但是如何獲取 ACF Pro 生成的頁面來編輯自定義帖子類型,以使用描述字段?
現在,您可能會想,“只需保存為草稿,go 備份到 CPT 頂層並單擊類別以閱讀說明”,但是我們還使用 Publishpress Capabilities Manager 來限制訪問此自定義帖子的用戶類型,因此他們無法從該級別看到類別部分。
在這種情況下,您需要超出 ACF 默認提供的自定義功能,這是創建新字段類型的絕佳機會。
ACF 提供官方字段類型模板,可在 github 獲得,以加快新字段類型的開發。 這包括您需要的所有文件,並具有出色的內聯注釋,可引導您完成整個過程。 它還包含您可以使用的所有可能的功能。
還有很多很棒的教程,比如這個,關於如何使用這個插件來創建你自己的自定義字段。
作為總結,您需要創建一個自定義方法,例如。 get_regions
,返回所有可用區域並將其注冊為字段選項。 您可以在create_options()
方法中執行此操作,如下所示:
do_action('acf/create_field', array(
'type' => 'select',
'name' => 'fields['.$key.'][initial_value]',
'value' => $field['initial_value'],
'choices' => $this->get_regions()
));
然后一切都將歸結為創建用戶將實際看到的控件。 這是在create_field()
方法中完成的。 您需要為<select>
字段創建 HTML ,您可以在其中為每個選項添加更多數據:
function create_field( $field ) {
$field = array_merge($this->defaults, $field);
?>
<div>
<select name='<?php echo $field['name'] ?>'>
<?php
foreach( $this->get_regions() as $region ) :
// get your $description here
?>
<option <?php selected( $field['value'], $region ) ?> value='<?php echo $country ?>'>
<?php echo $region . ' - ' . $description; ?>
</option>
<?php endforeach; ?>
</select>
</div>
<?php
}
您當然可以選擇不同的元素,例如復選框或單選按鈕,而不是select
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.