重新设计自定义帖子类型的“添加新”页面


8

我一直在谷歌上浏览此问题的解决方案。我正在编写一个自定义帖子类型插件,用于登录我们获得的访问者。我最初写的是没有自定义帖子类型的模型,然后从谷歌搜索中来到这里,看到了一个截图,其中显示了一个自定义帖子类型的示例,用于存储有关律师的信息。它表明有人用一个全新的界面为自定义帖子类型重新设计了“添加新” /“编辑”页面。

我想知道wordpress @ stackexchange是否有任何资源可以重新设计自定义帖子类型的“添加/编辑”页面。

但是,我不记得为找到该文章所做的搜索词。

谢谢,
-Zack

Answers:


11

您所指的问题/答案是使用WordPress作为CMS的提示

该答案中张贴的屏幕截图register_meta_box_cb是使用自定义帖子类型可用的参数创建的。

register_meta_box_cb必须指定一个包含元框代码的回调函数。

要创建元框,您可以使用WordPress内置的add_meta_box函数,该函数还需要一个函数以在保存帖子时保存输入的数据。

这是我创建的一些示例代码,用于向个人网站上使用的投资组合帖子类型添加2个自定义元框。

我创建的“项目”帖子类型包含以下参数:

'register_meta_box_cb' => 'c3m_project_meta',

下面的第一个函数是register_meta_box_cb的回调函数。以下2个输出在添加帖子页面上的元框的html,最后2个保存输入的数据。

function c3m_project_meta() {
        add_meta_box('_c3m_project_url', __('Enter Website Url') , 'c3m_project_url', 'project', 'side', 'low');
        add_meta_box('_c3m_project_work', __('Enter Work Done on Project') , 'c3m_project_work', 'project', 'side', 'low');

        }


    function c3m_project_url($post) {
        global $post;
        echo  '<input type="hidden" name="banner-buttonmeta_noncename" id="banner-buttonmeta_noncename" value="' .
        wp_create_nonce( plugin_basename(__FILE__) ) . '" />';
        $projecturl = get_post_meta($post->ID, '_projecturl', true);
        echo '<input type="text" name="_projecturl" value="' . $projecturl . '" class="widefat" />' ; 
        }

    function c3m_project_work($post) {
        global $post;
        echo  '<input type="hidden" name="banner-buttonmeta_noncename" id="banner-buttonmeta_noncename" value="' .
        wp_create_nonce( plugin_basename(__FILE__) ) . '" />';
        $projectwork = get_post_meta($post->ID, '_projectwork', true);
        echo '<input type="text" name="_projectwork" value="' . $projectwork . '" class="widefat" />' ; 
        }


    add_action('admin_init', 'c3m_project_meta');



    function c3m_save_project_meta( $post_id , $post ) { 

        if ( !wp_verify_nonce( $_POST [ 'banner-buttonmeta_noncename' ], plugin_basename( __FILE__ ) )) { return $post ->ID; 

        }

        if ( !current_user_can( 'edit_post' , $post ->ID )) return $post ->ID; 
        $c3m_projecturl [ '_projecturl' ] = $_POST [ '_projecturl' ]; 
                    foreach ( $c3m_projecturl as $key => $value ) { 
                    if ( $post ->post_type == 'revision' ) return ; 

                    $value = implode( ',' , ( array ) $value );
                    if (get_post_meta( $post ->ID, $key , FALSE)) { 
                    update_post_meta( $post ->ID, $key , $value ); } else { 
                    add_post_meta( $post ->ID, $key , $value ); } if (! $value ) delete_post_meta( $post ->ID, $key ); 

                    }

        $c3m_projectwork [ '_projectwork' ] = $_POST [ '_projectwork' ]; 
                    foreach ( $c3m_projectwork as $key => $value ) { 
                    if ( $post ->post_type == 'revision' ) return ; 

                    $value = implode( ',' , ( array ) $value );
                    if (get_post_meta( $post ->ID, $key , FALSE)) { 
                    update_post_meta( $post ->ID, $key , $value ); } else { 
                    add_post_meta( $post ->ID, $key , $value ); } if (! $value ) delete_post_meta( $post ->ID, $key ); 

                    }
        }

   add_action( 'save_post' , 'c3m_save_project_meta' , 1, 2); 

啊哈,好吧,那只是我看到的一个meta框。我认为这是对wordpress的某种“ hack”,哈哈。谢谢!
Zack

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.