如何阻止我的自定义文章保存标题为" 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 );
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