Wordpress-发布帖子时获取附件url



我有个问题。我想在发布帖子时获得特色图片的url。

它在我更新帖子时有效,但在第一次发布时无效,因为此时元数据似乎没有存储在数据库中。即使我使用"wp_insert_post"而不是"save_post",它也不起作用。

在我的functions.php中,我用检查新的/更新的帖子

add_action( 'save_post', 'my_function' );

当一篇帖子更新时,我使用读取了特色图片的url

 $image_url = get_post_meta( get_post_meta( $post_id, "_thumbnail_id", true ), "_wp_attached_file", true );

你能帮我吗?

好吧,如果你想从你发布的帖子中获取附件,save_post是不可行的。

尝试publish_post

当publish_post被激发时,该帖子及其附件已经存在于数据库中,并且可以访问。

save_post操作挂钩在数据保存到数据库(wordpress codex)后运行,因此应该这样做,它适用于发布后和更新后。代码中注释了几个有用的链接。

// http://codex.wordpress.org/Plugin_API/Action_Reference/save_post
add_action( 'save_post', function ( $post_id ) {
    if ( wp_is_post_revision( $post_id ) ) return;
    if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) return;
    // save_post action is executed on all post actions like publish, trash, auto-draft, etc.
    // http://codex.wordpress.org/Post_Status_Transitions
    if ( get_post_status( $post_id ) == 'publish' ) {
        // http://codex.wordpress.org/Function_Reference/get_post_thumbnail_id
        $thumb_id = get_post_thumbnail_id( $post_id );
        // http://codex.wordpress.org/Function_Reference/wp_get_attachment_image_src
        $thumb_url = wp_get_attachment_image_src( $thumb_id, 'full' );
        $thumb_url = $thumb_url ? $thumb_url[0] : false;
    }
});

相关内容

  • 没有找到相关文章

最新更新