問題描述

如何將 pre-defined 選項添加到”add new” 自定義字段下拉列表?

以下是自動添加和顯示新自定義字段的兩個示例:

  1. WordPress: Adding Default Custom Fields on New Posts

  2. Auto create custom field

這接近我想做的事情; 我的目標是將 pre-defined 選項添加到”add new” 自定義歸檔下拉列表中,但是在博主添加它們之前,它們不會顯示為字段。

我想知道如何做,而不使用插件。

最佳解決方案

你不能用純 PHP 來做,因為這些字段是從現有的字段中獲取的,沒有鈎子。但是您可以使用 JavaScript,檢查帖子類型是否支持自定義字段,並且字段不存在 – 並將其插入:

<?php # -*- coding: utf-8 -*-
/* Plugin Name: Extend custom fields */

add_action( 'admin_footer-post-new.php', 'wpse_98269_script' );
add_action( 'admin_footer-post.php', 'wpse_98269_script' );

function wpse_98269_script()
{
    if ( ! isset ( $GLOBALS['post'] ) )
        return;

    $post_type = get_post_type( $GLOBALS['post'] );

    if ( ! post_type_supports( $post_type, 'custom-fields' ) )
        return;
    ?>
<script>
    if ( jQuery( "[value='demo_data']" ).length < 1 ) // avoid duplication
        jQuery( "#metakeyselect").append( "<option value='demo_data'>demo_data</option>" );
</script>
    <?php
}

參考文獻

注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。