How to add a media with PHP

时间:2012-08-16 作者:Christian

我的Web服务器上有1000多张图片,通过FTP上传到本地文件夹(/home/chris/pictures )

有没有办法将它们作为众所周知的媒体添加到PHP中的wordpress中并获取它们的id?

while ( $the_query->have_posts() ) : $the_query->the_post();
    $post_id = get_the_ID();
    $filemakerID = get_post_meta($post_id, \'filemaker_id\', true);

    $file[\'url\']=\'/home/chris/picture_export/\'.$filemakerID.\'.jpeg\';
    $file[\'type\'] = \'image/jpeg\';

    //THE DREAMED FUNCTION WOULD BE USED THIS WAY
    $photo_id = awesome_function( $file, $post_id);

    add_post_meta($post_id, \'photo\', $photo_id );
}
正如您所注意到的,我的照片用于自定义字段photo

在google dans codex上呆了几个小时后,我注意到这些函数的文档记录非常糟糕。也许我就是想不出正确的关键字来搜索。

1 个回复
最合适的回答,由SO网友:pbd 整理而成

如果我理解正确的话,每个帖子都有一个filemaker,而每个filemaker只有一张照片?结构有点不清楚。

总之,一种方法是最常用的media_sideload_image 如下所示。

然而media_sideload_image WON\'T 使用本地文件(文件系统上的路径),因此需要将$文件[\'url\']更改为有效的url(http://yourhomepage.com/chris/pictures,例如)。如果你做不到,你需要使用wp_upload_bitswp_insert_attachment, 但这样做需要付出更多的努力。

function awesome_function($file, $post_id) {

    require_once(ABSPATH . \'wp-admin\' . \'/includes/image.php\');
    require_once(ABSPATH . \'wp-admin\' . \'/includes/file.php\');
    require_once(ABSPATH . \'wp-admin\' . \'/includes/media.php\');

    // upload image to server
    media_sideload_image($file[\'url\'], $post_id);

    // get the newly uploaded image
    $attachments = get_posts( array(
        \'post_type\' => \'attachment\',
        \'number_posts\' => 1,
        \'post_status\' => null,
        \'post_parent\' => $post_id,
        \'orderby\' => \'post_date\',
        \'order\' => \'DESC\',) 
    );

    // returns the id of the image
    return $attachments[0]->ID;
}

结束

相关推荐

images within style sheet

我希望有人能在这方面帮助我,因为这已经开始让我抓狂了。我已经搜索了好几个小时,想找到一种在我的样式表中放置图像路径的方法,但一直没有找到。路径不能是绝对路径或“主题相关”路径。解决问题的唯一方法是在html文件中添加以下内容:<style type=\"text/css\"> #menu .menu-drop .menu-label { background: url(<?php echo get_template_directory_uri().