Get not the full path

时间:2017-05-30 作者:NVO

我正在开发一个插件,它可以从FTP服务器下载一个图像,并将该图像放在插件的子文件夹中(例如:wp-content/plugins/ftpdownload/download/:id"/image.jpg, 哪里:id 是从哪个服务器下载映像的id(多服务器支持))

带n个短代码(如[ftpimage id=\'id\']) 图像必须显示在页面/帖子/小部件上。

我使用此代码

$server->image = plugin_dir_path(__FILE__) . "download/" . $server->id ."/" .$server->ftp_file;
获取图像的路径,但这不起作用,因为[image] 包含图像的完整路径,如:\\xampp\\htdocs\\bouwfilm\\wp-content\\plugins\\ftpdownload/download/2/therm.jpg

如何获得图像的正确路径,以便使用它显示图像?

echo \'<img src="\' . $server->image . \'" />\';

1 个回复
SO网友:Johansson

您可能需要使用media_media_sideload_image() 作用此函数将从URL获取图像并为您上载。查看此自定义函数:

function upload_image_from_url($image_url, $post_id, $title) {
    $img_name = basename ($image_url);
    global $wpdb;
    $query = "SELECT post_id FROM {$wpdb->postmeta} WHERE meta_value = \'$img_name\'";
    $id = $wpdb->get_var($query);
    if (is_numeric($id)) {
        return $id;
    } else {
        $attachment_src = media_sideload_image( $image_url, $post_id, $title,\'src\' );
        $query = "SELECT post_id FROM {$wpdb->postmeta} WHERE meta_value = \'$img_name\'";
        $id = $wpdb->get_var($query);
        return $id;
    }
}
上述功能的作用是搜索数据库,查看图像是否已上载。如果没有,它会将图像上载到库中并返回其ID,然后可供以后使用wp_get_attachment_url() 获取URL。

您可以调整此函数,使其不依赖于$post_id$title (上传后将附件从帖子中分离出来)以获取您所需的内容。

这是安全的,并保证工作(如果你不考虑特殊情况)。

结束

相关推荐

php code to shortcode

这是我的php代码:<?php global $royal_profile;?> <div class=\"profile-img\" data-key=\"profilepicture\"> <?php echo get_avatar( get_current_user_id(), 64 ); ?> </div> 然后,我尝试将其转换为一个短代码(以便我可以在菜单中使用,因为我意识到我不能简