在编辑器中永久显示自定义域

时间:2018-04-20 作者:mad2kx

我想在编辑器下面显示某些自定义字段。目前我只有一个下拉字段,但里面有太多的meta,我没有使用。每天发布60-100篇帖子,搜索相应的自定义字段确实很耗时。enter image description here

我发现以下代码可以永久显示自定义字段,但它似乎不起作用。

add_action( \'add_meta_boxes_tender\', \'lamosty_add_tender_meta_data\' );

function lamosty_add_tender_meta_data( WP_Post $tender ) {
        // Add the meta data you want the custom post type to have
    $tender_meta_data = [
        \'briefing\',
        \'closing\',
        \'rfirfqnumber\',
        \'download\'
    ];

    foreach ( $tender_meta_data as $meta ) {
        add_post_meta( $tender->ID, $meta, \'\', true );
    }
}
?>
我期望的结果是,每次我创建一个新帖子时,相应的自定义字段总是在那里,我不需要在下拉列表中查找它们。例如,如下图所示。

Pleas note that for every new post the values of the Custom Field change!

enter image description here

我的要求有意义吗?

1 个回复
最合适的回答,由SO网友:mmm 整理而成

这应该可以工作,但会覆盖现有对象的值。

要仅为新对象添加默认值,请尝试以下操作:

$postType = "tender";

add_action( \'save_post_\' . $postType, function ($post_ID, \\WP_Post $tender, $update) {

    if (!$update) {
        // default value for new object

        // Add the meta data you want the custom post type to have
        $tender_meta_data = [
            \'briefing\',
            \'closing\',
            \'rfirfqnumber\',
            \'download\',
        ];

        foreach ( $tender_meta_data as $meta ) {
            add_post_meta( $tender->ID, $meta, \'\', true );
        }


        return;
    }



}, 10, 3);

结束

相关推荐

在使用AJAX的前端插入wp_EDITOR?

我正在尝试插入wp_editor() 使用AJAX将其转换为前端的页面。我现在的代码插入了wp\\U编辑器元素和所需的JavaScript和CSS文件,但没有我最初在中使用的设置wp_editor() 创建此TinyMCE元素时使用。How do I pass the $settings set in PHP into the dynamically created TinyMCE instance?我发现一个老问题似乎可以回答我的问题,但我不理解它是如何工作的,代码给出了一个PHP折旧错误。Load t