特定帖子类型中的默认文本,但不可见?

时间:2018-03-05 作者:jockebq

我想做两件事。对于特定的帖子类型,我希望有一个默认文本。我可以使用此代码执行以下操作:

add_filter( \'default_content\', \'my_editor_content\', 10, 2 );

function my_editor_content( $content, $post ) {

    switch( $post->post_type ) {
        case \'posttypehere\':
            $content = \'mydefaultposttextgoeshere\';
    }

    return $content;
}
这很好,我可以看到文本并将其保存到数据库中。但是现在我想完全禁用这个特定帖子类型的文本框。我可以使用此代码执行以下操作:

add_action(\'init\', \'init_remove_support\',100);
function init_remove_support(){
    $post_type = \'posttypehere\';
    remove_post_type_support( $post_type, \'editor\');
}
这将禁用文本框。

但现在的问题是,当我发布帖子时,默认文本不会保存到帖子中。那么,我如何实现这两个目标呢?

非常感谢。

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

您可以手动挂接到save_post 保存时操作并更新帖子内容。下面是一段简单的代码:

add_action( \'save_post\', \'update_post_content\' );
function update_post_content($post_id) {

    // If this is a revision, get real post ID
    if ( $parent_id = wp_is_post_revision( $post_id ) ) {
        $post_id = $parent_id;
    }

    // Get the current post type
    $post_type = get_post_type($post_id);

    // Check if it\'s a custom post type
    if ( \'posttypehere\' != $post_type ) return;

    // unhook this function so it doesn\'t loop infinitely
    remove_action( \'save_post\', \'update_post_content\' );

    // update the post, which calls save_post again
    wp_update_post( 
        array( 
            \'ID\'            => $post_id, 
            \'post_content\'  => \'content here\' 
        ) 
    );

    // re-hook this function
    add_action( \'save_post\', \'update_post_content\' );
}

结束

相关推荐

Admin Theme customization

我遵循wordpress codex网站上关于通过插件创建管理主题的说明。我激活了插件,但我的样式表没有包含在<head>.. 这是我的代码:add_action( \'admin_init\', \'kd_plugin_admin_init\' ); add_action( \'admin_menu\', \'kd_plugin_admin_menu\' ); function kd_plugin_admin_init() { /* Register