【问题标题】:Wordpress 'add_action' content to 'postbox-container-1' in admin sectionWordpress 'add_action' 内容到管理部分中的 'postbox-container-1'
【发布时间】:2016-01-28 15:31:41
【问题描述】:

我希望能够在管理部分的侧边栏中添加一个新的“小部件”,特别是在“新页面”和“编辑页面”页面上。

我正在浏览 Wordpress API 文档,但似乎找不到在第一个“postbox-container-1”部分中添加新部分的位置。

如果您进入 wordpress 管理部分,然后单击添加页面,我想在“发布/页面属性/特色图像”小部件下添加一个新小部件。

我最接近的是:add_action('dbx_post_sidebar', 'pluginFunctionHere');。不幸的是,这将我的所有内容添加到主页所见即所得编辑器下。

我知道如何定期添加它,但我想把它做成一个通用插件。有任何想法吗?或者这部分是否有特定的钩子?

【问题讨论】:

  • 您的意思是要将 Metabox 添加到“编辑页面”和“创建新页面”页面?
  • @Shazzad 元框与“发布”、“页面属性”和“特色图片”是一样的吗?我知道编程,但这是我第一次访问 wordpress...themergency.com/wordpress-meta-box-roundup

标签: php html wordpress


【解决方案1】:

我尝试了上面的示例,但没有成功。然后我搜索了它缺少的东西并找到了它。我稍微调整了original

/**
 * Register meta box(es).
 */
function wpdocs_register_meta_boxes() {
    add_meta_box( 'meta-box-id', __( 'Metabox Title', 'textdomain' ), 'wpdocs_my_display_callback', 'post', 'side', 'high');
}
add_action( 'add_meta_boxes', 'wpdocs_register_meta_boxes' );

/**
 * Meta box display callback.
 *
 * @param WP_Post $post Current post object.
 */
function wpdocs_my_display_callback( $post ) {
    // Display code/markup goes here. Don't forget to include nonces!
    ?> <h1>Test</h1><?php
}

/**
 * Save meta box content.
 *
 * @param int $post_id Post ID
 */
function wpdocs_save_meta_box( $post_id ) {
    // Save logic goes here. Don't forget to include nonce checks!
}
add_action( 'save_post', 'wpdocs_save_meta_box' );

【讨论】:

    【解决方案2】:

    首先,您需要注册您的元框。你可以使用add_meta_boxes_page钩子。

    add_action( "add_meta_boxes_page", "se20892273_add_meta_boxes_page" );
    
    // Register Your Meta box
    function se20892273_add_meta_boxes_page( $post )
    {
        add_meta_box( 
           'se20892273_custom_meta_box', // this is HTML id
           'Metabox Title', 
           'se20892273_custom_meta_box', // the callback function
           'page', // register on post type = page
           'side', // 
           'core'
        );
    }
    

    然后使用回调函数生成模板

    function se20892273_custom_meta_box( $post )
    {
        // you will get the $post object
        // do your stuff here
    }
    

    要保存在您的元框上使用的任何输入值,请使用“save_post_page”挂钩。

    add_action( "save_post_page", "se20892273_save_post_page" );
    function se20892273_save_post_page( $post_ID )
    {
        if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE ) 
            return $post_ID ;
    
        if( isset( $_POST['input_name'] ))
        {
            update_post_meta( $post_ID, '_w4_template', $_POST['input_name'] );
        }
    }
    

    【讨论】:

    • 很好的答案,谢谢。我特别喜欢关于发帖的附加内容。
    猜你喜欢
    • 2010-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多