阻止使用"自动草稿"标题保存自定义帖子



如何阻止我的自定义文章保存标题为" Auto Draft " ?我已经尝试了下面的代码来保存我的Book_Title自定义字段作为post-title,但没有成功:

if(isset($_POST['Book_Title'])){
update_post_meta($post_id,'post_title', sanitize_text_field($_POST['Book_Title']));
} else {
delete_post_meta( $post_id, 'Book_Title' );
}

请测试停止自动起草:define('WP_POST_REVISIONS', false);//在wp-config.php

如果你使用metabox:

1 -

function add_price_post_meta_box( $post ){ //use get_post_meta} 

2 -

function add_meta_box_price( $post_type, $post ){ 
add_meta_box(
'meta_box_price', 
'price',
'add_price_post_meta_box',//for 1
'post',
'normal',
);

}

3 -

function save_meta_box_price($post_id){//use update or delete post meta}

4 -

add_action( 'add_meta_boxes','add_meta_box_price', 10, 2 );//call function 2 
add_action( 'save_post', 'save_meta_box_price' ); //for save call function 3


如果您只是想更改默认的post_titleWordPress在为您的自定义帖子类型创建自动草稿时使用,下面的示例代码应该在添加到插件或子主题时工作。代码只会为已识别的自定义帖子类型更改默认的Auto Draft帖子标题,同时继续使用"Auto Draft"其他职位类型。如果你想完成更多的任务,请通过更新你的问题或回复评论来进一步解释。

像许多WordPress钩子一样,title_save_pre过滤器钩子还没有在wordpress.org上有一个专门的文档页面。

如果你不熟悉创建自己的插件,你可以参考WordPress插件手册和WordPress插件基础。

function change_auto_draft_default_title( $title ) {
$NEW_TITLE = 'New Default Title';
$CUSTOM_POST_TYPE = 'your_custom_post_type';
$post = get_post();
$post_type = $_GET['post_type'];
if ( is_null( $post ) && 'Auto Draft' == $title && $CUSTOM_POST_TYPE == $post_type ) {
$title = $NEW_TITLE;
}
return $title;
}
add_filter( 'title_save_pre', 'change_auto_draft_default_title', 10, 1 );

您可以根据需要在配置文件中添加此代码。

define( 'AUTOSAVE_INTERVAL',    3600 );     // autosave 1x per hour
define( 'WP_POST_REVISIONS',    false );    // no revisions
define( 'DISABLE_WP_CRON',      true );
define( 'EMPTY_TRASH_DAYS',     7 );        // one week

最新更新