获取附件URL而不是ID(Wordpress)
我有一个脚本,允许我从前端上传图像到wordpress。然后我需要它将文件发布到post_meta。现在它工作得很好,但我最终得到了附件ID,需要指向该文件的链接 下面是处理此特定函数的代码获取附件URL而不是ID(Wordpress),wordpress,Wordpress,我有一个脚本,允许我从前端上传图像到wordpress。然后我需要它将文件发布到post_meta。现在它工作得很好,但我最终得到了附件ID,需要指向该文件的链接 下面是处理此特定函数的代码 if ($_FILES) { foreach ($_FILES as $k => $v) { if ($k != 'poster_has_paid' && $k != 'featured_image') { if ($_FILES[$k]
if ($_FILES) {
foreach ($_FILES as $k => $v) {
if ($k != 'poster_has_paid' && $k != 'featured_image') {
if ($_FILES[$k]) {
wpo_poster_insert_attachment($k, $post_id, false, $k);
}
}
}
}
这是wpo_海报_插入_附件的功能
function wpo_poster_insert_attachment($file_handler, $post_id, $setthumb = 'false', $post_meta = '') {
// check to make sure its a successful upload
if ($_FILES[$file_handler]['error'] !== UPLOAD_ERR_OK) {
__return_false();
}
require_once(ABSPATH . "wp-admin" . '/includes/image.php');
require_once(ABSPATH . "wp-admin" . '/includes/file.php');
require_once(ABSPATH . "wp-admin" . '/includes/media.php');
$attach_id = media_handle_upload($file_handler, $post_id);
if ($setthumb) {
update_post_meta($post_id, '_thumbnail_id', $attach_id);
}
if (!$setthumb && $post_meta != '') {
update_post_meta($post_id, $post_meta, $attach_id);
}
return $attach_id;
同样,它正在用attach_id更新字段,我希望它更新attach_url
PS当我有足够的帖子时,我会感谢你。提前谢谢。像这样的东西应该行得通
function wpo_poster_insert_attachment($file_handler,$post_id,$setthumb='false', $post_meta = '') {
// check to make sure its a successful upload
if ($_FILES[$file_handler]['error'] !== UPLOAD_ERR_OK) __return_false();
require_once(ABSPATH . "wp-admin" . '/includes/image.php');
require_once(ABSPATH . "wp-admin" . '/includes/file.php');
require_once(ABSPATH . "wp-admin" . '/includes/media.php');
$attach_id = media_handle_upload( $file_handler, $post_id );
if ($setthumb) {
update_post_meta($post_id,'_thumbnail_id',$attach_id);
// Get the attachment/thumbnail source, and add it to the post meta as well.
$src = wp_get_attachment_image_src($thumbnail_id, 'full');
update_post_meta($post_id,'_thumbnail_src', @$src[0]);
}
if(!$setthumb && $post_meta!=''){
update_post_meta($post_id, $post_meta, $attach_id);
}
return $attach_id;
}
但通常情况下,由于您已经将缩略图id存储在post meta中,因此您可能希望在运行时提取附件源:
if($thumbnail_id = get_post_meta($post->ID, '_thumbnail_id', true)) {
$attachment_size = 'full';
$src = wp_get_attachment_image_src($thumbnail_id, $attachment_size);
if(!$src) {
$src = array('http://mysite.com/path/to/default-image.png', 640, 480);
}
echo '<img src="'.esc_url($src[0]).'" alt="" />';
}
if($thumbnail\u id=get\u post\u meta($post->id,'.\u thumbnail\u id',true)){
$attachment_size='full';
$src=wp\u get\u attachment\u image\u src($thumbnail\u id,$attachment\u size);
如果(!$src){
$src=array('http://mysite.com/path/to/default-image.png', 640, 480);
}
回声';
}