Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从Wordpress媒体库获取单个特定图像_Php_Html_Wordpress_Image - Fatal编程技术网

Php 从Wordpress媒体库获取单个特定图像

Php 从Wordpress媒体库获取单个特定图像,php,html,wordpress,image,Php,Html,Wordpress,Image,我已经将图片上传到Wordpress媒体库 我知道我可以查看am图像,然后获取该特定图像的URL,然后使用imghtml标记将其显示在页面上 但是,这不会获得图像的alt,标题,标题和说明 img未附加到帖子或页面字段,因此我假设您无法使用获取附件功能等 我之所以希望使用函数而不是编写静态imghtml代码,是为了更好地缓存它们,更易于维护,并且图像的所有数据都已在媒体库中更新,而不必编辑最终用户不熟悉的html代码 提前谢谢。我想你有附件ID吧?您是否尝试过使用附加函数 来自法典: 请注意,媒

我已经将图片上传到Wordpress媒体库

我知道我可以查看am图像,然后获取该特定图像的URL,然后使用
img
html标记将其显示在页面上

但是,这不会获得图像的
alt
标题
标题
说明

img
未附加到帖子或页面字段,因此我假设您无法使用获取附件功能等

我之所以希望使用函数而不是编写静态
img
html代码,是为了更好地缓存它们,更易于维护,并且图像的所有数据都已在媒体库中更新,而不必编辑最终用户不熟悉的html代码


提前谢谢。

我想你有附件ID吧?您是否尝试过使用附加函数

来自法典:

请注意,媒体项本身也是“帖子”,可以 通过WordPress模板层次结构显示。主题可以 利用此功能循环媒体项或创建库

以下功能应该让您开始使用:

您可以使用以下方法检索图像src:

您可以使用以下方法获取图像标题:

您可以使用以下方法获取alt标记:

首先获取图像

function get_images_from_media_library() {
    $args = array(
        'post_type' => 'attachment',
        'post_mime_type' =>'image',
        'post_status' => 'inherit',
        'posts_per_page' => 5,
        'orderby' => 'rand'
    );
    $query_images = new WP_Query( $args );
    $images = array();
    foreach ( $query_images->posts as $image) {
        $images[]= $image->guid;
    }
    return $images;
}
并显示图像

function display_images_from_media_library() {

    $imgs = get_images_from_media_library();
    $html = '<div id="media-gallery">';

    foreach($imgs as $img) {

        $html .= '<img src="' . $img . '" alt="" />';

    }

    $html .= '</div>';

    return $html;

}
函数显示来自媒体库()的图像{
$imgs=从媒体库()获取图像;
$html='';
foreach($imgs作为$img){
$html.='';
}
$html.='';
返回$html;
}
并使用php fire事件

<?php echo display_images_from_media_library(); ?>

或者使用这个功能

<?php

if ( $attachments = get_children( array(
'post_type' => 'attachment',
'post_mime_type'=>'image',
'numberposts' => 1,
'post_status' => null,
'post_parent' => $post->ID
)));
foreach ($attachments as $attachment) {
echo wp_get_attachment_link( $attachment->ID, '' , true, false, 'Link to image attachment' );
}

?>

请尝试输入以下代码:

<?php
      $attachmentID = 1875;
      $imageSizeName = "thumbnail";
      $img = wp_get_attachment_image_src($attachmentID, $imageSizeName);
      //print_r($img);
?>

<img src="<?php echo $img[0]; ?>" alt="image">

“alt=”image“>

这么多复杂且我认为是错误的答案,而答案非常直截了当:

<?php
$url_to_my_attachment = "http://example.com/wp-content/uploads/image.png";

$attachment_id = attachment_url_to_postid($url_to_my_attachment);

print wp_get_attachment_image($attachment_id);

但是您从哪里获得附件的实际id?当您在媒体库中查看图像时,可以在浏览器栏的URL中看到附件id。
<?php

if ( $attachments = get_children( array(
'post_type' => 'attachment',
'post_mime_type'=>'image',
'numberposts' => 1,
'post_status' => null,
'post_parent' => $post->ID
)));
foreach ($attachments as $attachment) {
echo wp_get_attachment_link( $attachment->ID, '' , true, false, 'Link to image attachment' );
}

?>
<?php
      $attachmentID = 1875;
      $imageSizeName = "thumbnail";
      $img = wp_get_attachment_image_src($attachmentID, $imageSizeName);
      //print_r($img);
?>

<img src="<?php echo $img[0]; ?>" alt="image">
<?php
$url_to_my_attachment = "http://example.com/wp-content/uploads/image.png";

$attachment_id = attachment_url_to_postid($url_to_my_attachment);

print wp_get_attachment_image($attachment_id);