WordPress的不保存自定义帖子输入字段

时间:2019-05-29 17:58:57

标签: php wordpress

我正在尝试保存自定义帖子类型。我无法弄清楚为什么保存不适用于下面列出的输入字段。

我包括了所有相关代码,因为我看不出问题出在哪里。除保存功能(最后列出)外,其他所有功能似乎都可以正常工作。

我只想将输入保存在'type' => 'singleinput'处。我没有尝试保存'fulltext'

有人可以指出我要去哪里了吗?

//input boxes for custom post
$specialpage->inputs = array(
    'item1' => array(
        'type' => 'singleinput',
        'headline' => 'Page headline',
        'bullet1' => 'Bullet Point 1:',
        'bullet2' => 'Bullet Point 2:',
        'bullet3' => 'Bullet Point 3:'
    ),
    'item2' => array(
        'type' => 'fulltext',
        'promo1' => 'Promo text 1:',
        'promo2' => 'Promo text 2:',
        'promo3' => 'Promo text 3:'
    ),
    'item3' => array(
        'type' => 'singleinput',
        'quote' => 'The quote'
    )
);

调用此函数以显示meta框。

    public function display_meta_box_($post_object){

        foreach($this->inputs as $item){
            foreach($item as $name => $title){
                if ($title == 'singleinput'){
                    $activate = 'singleinput';
                    continue;
                }
                if ($title == 'fulltext'){
                    $activate = 'fulltext';
                    continue;
                }

                if ($activate == 'singleinput'){
             $this->singleinput[$name] =  $title;


        ${$this->name . $name} = get_post_meta($post_object->ID, $this->name . $name, true);
        echo '<span class="meta_titles">' . $title . '</span>';
        ?>
        <input type='text' class='input_single' name='<?php echo $this->name . $name;?>_name' value='<?php echo ${$this->name . $name}; ?>' >      
        <?php
         }
    }

这是保存功能

public function save_profile( $post_id,  $post_object ) { 
        if( $this->name == $post_object->post_type){
                //check if singleinput are defined for this custom post type
            if ($this->singleinput){
                        //save single line text input boxes
                foreach ($this->singleinput as $name => $title){
                    update_post_meta($post_id, $this->name . $name, $_POST[$this->name . $name . '_name']);
                }
            }
}

编辑:添加了保存功能

$simplejoiner->saveNow();

    public function saveNow(){
        add_action( 'save_post', array($this, 'save_profile'), 10, 2 );
    }

0 个答案:

没有答案