首页 文章

尝试向wordpress添加自定义元框

提问于
浏览
0

我正在尝试将自定义元框添加到wordpress页面,该页面在自定义字段中存储值 . 它不起作用 . 将显示元框,但是当您按更新输入的值时,文本框将丢失,并且不会将任何内容写入wp_postmeta表(不会创建_c3m_sponsor_ur meta_key)

我已经通过在线示例对此进行了调整 . 我还尝试添加一个die语句来查看是否甚至调用了保存帖但没有任何故障 . 我也不明白为什么没有为页面创建add_post_meta

add_action( 'add_meta_boxes', 'c3m_sponsor_meta' );
        function c3m_sponsor_meta() {
                add_meta_box( 'c3m_meta', 'Sponsor URL Metabox', 'c3m_sponsor_url_meta', 'page', 'side', 'high' );
                }

            function c3m_sponsor_url_meta( $post ) {
                $c3m_sponsor_url = get_post_meta( $post->ID, '_c3m_sponsor_url', true);
                if (!isset($c3m_sponsor_url))
                    add_post_meta($post->ID, '_c3m_sponsor_url', '', false);
                echo 'Please enter the sponsors website link below';
                ?>
                <input type="text" name="c3m_sponsor_url" value="<?php echo esc_attr( $c3m_sponsor_url ); ?>" />
                <?php
        }

add_action( 'save_post', 'c3m_save_project_meta' );

        function c3m_save_project_meta( $post_ID ) {
            die('here');
            global $post;
            if( $post->post_type == "page" ) {
                if (isset( $_POST ) ) {
                    update_post_meta( $post_ID, '_c3m_sponsor_url', strip_tags( $_POST['c3m_sponsor_url'] ) );
                }
            }
        }

任何帮助修复这个是非常感谢非常感谢

1 回答

  • 0

    这可能对您有所帮助: -

    add_action( 'save_post', 'c3m_save_project_meta' );
    
    function c3m_save_project_meta( $post_ID ) {
        if ( isset( $_POST['post_type'] ) && 'page' == $_POST['post_type'] )
        {
            if (isset( $_POST ) ) {
                update_post_meta( $post_ID, '_c3m_sponsor_url', strip_tags( $_POST['c3m_sponsor_url'] ) );
            }
        }
    }
    

    已编辑: -

    您只需使用Advanced Custom Fields插件而不是使用代码 . 这个插件对自定义元字段很有帮助 .

相关问题