所以我有这个代码,在创建镜像时基本上添加了一个post meta字段。我遇到的唯一问题是如何访问刚刚创建的镜像的帖子ID?我从这个链接获得了以下代码:http://codex.wordpress.org/Plugin_API/Action_Reference/save_post包含示例代码,并根据我的需要进行调整。镜子使用表格在前端创建。使用下面的代码,post meta字段值在创建时不会添加到镜像中。这可能是因为$post_id
没有任何内容。
从上面提供的链接中,我说我可以访问$_GET
和$_POST
,我应该使用哪一个,如何获取帖子的ID?我应该使用$_POST->ID
吗?
// Order mirrors when they are created
function order_mirror_create($post_id) {
$slug = 'mirror';
if ( $slug != $_POST['post_type'] ) {
return;
}
if ($videohost == "UploadAnime") {
add_post_meta(get_the_ID(), 'video_display_order', 1, true);
} else {
add_post_meta(get_the_ID(), 'video_display_order', time(), true);
}
}
add_action( 'save_post', 'order_mirror_create' );
编辑:使用$post->ID
更新了我的代码并添加了global $post
,但是,这仍然不起作用。
// Order mirrors when they are created
function order_mirror_create($post_id) {
global $post;
$slug = 'mirror';
if ( $slug != $_POST['post_type'] ) {
return;
}
if ($videohost == "UploadAnime") {
add_post_meta($post->ID, 'video_display_order', 1, true);
} else {
add_post_meta($post->ID, 'video_display_order', time(), true);
}
}
add_action( 'save_post', 'order_mirror_create' );
编辑2:定义$videohost
并使用$post_id
,但仍无效。
// Order mirrors when they are created
function order_mirror_create($post_id) {
$slug = 'mirror';
if ( $slug != $_POST['post_type'] ) {
return;
}
$videohost = get_post_meta($post_id, 'video_provider', true);
if ($videohost == "UploadAnime") {
add_post_meta($post_id, 'video_display_order', 1, true);
} else {
add_post_meta($post_id, 'video_display_order', time(), true);
}
}
add_action( 'save_post', 'order_mirror_create' );