使用WordPress的save_post操作时如何访问帖子ID

时间:2013-11-24 08:29:49

标签: php wordpress

所以我有这个代码,在创建镜像时基本上添加了一个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' );

0 个答案:

没有答案