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

时间:2018-08-29 21:27:27

标签: wordpress wordpress-theming

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

  

http://localhost/movies/ 自动草稿 /

您已经注意到,这仍在导航以发布默认标题,而不是发布自定义元框。如何更新它以使用特定的metabox,例如$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 个答案:

答案 0 :(得分:0)

您必须防止通过save_post-hook(@see https://developer.wordpress.org/reference/hooks/save_post/)自动保存。

首先,您必须确保节省的是您的cpt。 然后您可以通过wp_is_post_autosave检查它是否是自动保存。 您也可以通过功能wp_is_post_revision检查是否正在还原该修订版本(只有在cpt支持的情况下)。

您还可以通过如下代码段注销默认的保存metabox:

function custom_metaboxes(){
/* Remove the publishing metabox */
    remove_meta_box( 'submitdiv', 'your-cpt', 'side' );
...
}
add_action('add_meta_boxes','custom_metaboxes');

对于原始的保存框,请查看wp-admin / includes / meta-boxes.php并搜索post_submit_meta_box。