重新设计自定义帖子类型“Add New”页面

时间:2011-01-07 作者:Zack

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

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

然而,我记不起我为找到那篇文章所做的搜索词了。

谢谢,扎克

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

您所指的问题/答案是Tips for using WordPress as a CMS.

该答案中发布的屏幕截图是使用register_meta_box_cb 可用于自定义帖子类型的参数。

register\\u meta\\u box\\u cb必须指定包含meta框代码的回调函数。

要创建元框,可以使用内置的WordPressadd_meta_box function 这还需要在保存帖子时保存输入数据的功能。

下面是我创建的一些示例代码,用于在我个人网站上使用的公文包帖子类型中添加2个自定义元框。

“这是什么?”;“项目”;我创建的帖子类型包含以下参数:

\'register_meta_box_cb\' => \'c3m_project_meta\',

下面的第一个函数是register\\u meta\\u box\\u 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); 

SO网友:Noel Tock

当我研究同样的问题时,我发现这篇文章非常有趣:

How to Create A Custom WordPress Meta Box Instead of Using WordPress Custom Fields

学习如何创建自定义WordPress元框可以让您为自己和客户创建专业的UI元素。本WordPress元框教程将向您展示如何将管理UI元素添加到编辑帖子/页面屏幕。

Chris在钱上是对的,但额外的资源并没有坏处:)

结束

相关推荐

How do you debug plugins?

我对插件创作还很陌生,调试也很困难。我用了很多echo,它又脏又丑。我确信有更好的方法可以做到这一点,也许是一个带有调试器的IDE,我可以在其中运行整个站点,包括插件?