如何在帖子URL中使用自定义元字段代替CPT标题()

我有一个自定义帖子类型, 它不使用任何WP内置支持(例如” 标题” , “ 编辑” , “ 作者” , “ 缩略图” , “ 摘录” , “ 评论” )。相反, 我使用自己的metabox发布CPT。现在, 在创建CPT并发布后, 当我单击View Post时, 它会导航到以auto-draft结尾的URL, 在第二个CPT上为auto-draft-2等, 依此类推

http:// localhost / movies / auto-draft /
如你所见, 这仍在导航以发布默认标题, 而不是发布自定义元框。如何更新它以使用特定的元框, 例如$ name?
$we_movieMetas = get_post_custom( $post-> ID ); $name = isset( $we_movieMetas['name_box'] ) ? esc_attr( $we_movieMetas['name_box'][0] ) : ''; $boxOffice = isset( $we_movieMetas['boxOffice_box'] ) ? esc_attr( $we_movieMetas['boxOffice_box'][0] ) : '';

#1你必须通过save_post-hook阻止自动保存(@see https://developer.wordpress.org/reference/hooks/save_post/)。
首先, 你必须确保节省的是你的cpt。然后你可以通过wp_is_post_autosave检查它是否是自动保存。你也可以通过功能wp_is_post_revision检查它是否是正在还原的修订版(仅在cpt支持的情况下)。
你也可以通过如下代码段注销默认的保存元框:
function custom_metaboxes(){ /* Remove the publishing metabox */ remove_meta_box( 'submitdiv', 'your-cpt', 'side' ); ... } add_action('add_meta_boxes', 'custom_metaboxes');

【如何在帖子URL中使用自定义元字段代替CPT标题()】对于原始的保存框, 请查看wp-admin / includes / meta-boxes.php并搜索post_submit_meta_box。

    推荐阅读