使用定制post_type的快速草稿小部件(dashboard.php)

时间:2020-02-05 作者:Electronic Ink

我正在尝试修改WP dashboard小部件“快速草稿”,以接受自定义post\\u类型的avada\\u公文包(avada Fusion主题),但页面只是挂起每个提交测试。

这里有一个类似的问题:Adding Custom taxonomies to Press This panel

一位成员提到他们已经成功了,但不幸的是,他们删除了他们的例子,因为帖子是关于“按这个”。

我想知道我是否正确调用了post\\u类型。任何帮助都将受到感激。就我所知:

/**
 * The Quick Draft widget display and creation of drafts.
 *
 * @since 3.8.0
 *
 * @global int $post_ID
 *
 * @param string $error_msg Optional. Error message. Default false.
 */
function wp_dashboard_quick_press( $error_msg = false ) {
    global $post_ID;

    if ( ! current_user_can( \'edit_posts\' ) ) {
        return;
    }

    /* Check if a new auto-draft (= no new post_ID) is needed or if the old can be used */
    $last_post_id = (int) get_user_option( \'dashboard_quick_press_last_post_id\' ); // Get the last post_ID
    if ( $last_post_id ) {
        $post = get_post( $last_post_id );
        if ( empty( $post ) || $post->post_status != \'auto-draft\' ) { // auto-draft doesn\'t exists anymore
// MY REMOVE - $post = get_default_post_to_edit( \'post\', true );
            $post = get_default_post_to_edit( $post_type = \'avada_portfolio\', true );
            update_user_option( get_current_user_id(), \'dashboard_quick_press_last_post_id\', (int) $post->ID ); // Save post_ID
        } else {
            $post->post_title = \'\'; // Remove the auto draft title
        }
    } else {
// MY REMOVE - $post    = get_default_post_to_edit( \'post\', true );
        $post    = get_default_post_to_edit( $post_type = \'avada_portfolio\', true );
        $user_id = get_current_user_id();
        // Don\'t create an option if this is a super admin who does not belong to this site.
        if ( in_array( get_current_blog_id(), array_keys( get_blogs_of_user( $user_id ) ) ) ) {
            update_user_option( $user_id, \'dashboard_quick_press_last_post_id\', (int) $post->ID ); // Save post_ID
        }
    }

    $post_ID = (int) $post->ID;
    ?>

    <form name="post" action="<?php echo esc_url( admin_url( \'post.php\' ) ); ?>" method="post" id="quick-press" class="initial-form hide-if-no-js">

        <?php if ( $error_msg ) : ?>
        <div class="error"><?php echo $error_msg; ?></div>
        <?php endif; ?>

        <div class="input-text-wrap" id="title-wrap">
            <label for="title">
                <?php
                /** This filter is documented in wp-admin/edit-form-advanced.php */
                echo apply_filters( \'enter_title_here\', __( \'Title\' ), $post );
                ?>
            </label>
            <input type="text" name="post_title" id="title" autocomplete="off" />
        </div>

        <div class="textarea-wrap" id="description-wrap">
            <label for="content"><?php _e( \'Content\' ); ?></label>
            <textarea name="content" id="content" placeholder="<?php esc_attr_e( \'What&#8217;s on your mind?\' ); ?>" class="mceEditor" rows="3" cols="15" autocomplete="off"></textarea>
        </div>

        <p class="submit">
            <input type="hidden" name="action" id="quickpost-action" value="post-quickdraft-save" />
            <input type="hidden" name="post_ID" value="<?php echo $post_ID; ?>" />
            <input type="hidden" name="post_type" value="avada_portfolio" />
            <?php wp_nonce_field( \'add-post\' ); ?>
            <?php submit_button( __( \'Save Draft\' ), \'primary\', \'save\', false, array( \'id\' => \'save-post\' ) ); ?>
            <br class="clear" />
        </p>

    </form>
    <?php
    wp_dashboard_recent_drafts();
}

1 个回复
SO网友:Electronic Ink

因此,Quick Draft小部件似乎在三个地方进行了硬编码,没有提供挂钩。

我决定沿着wp\\u insert\\u post路线写我自己的插件:)