我拼凑了下面的代码并且它可以工作,但感觉太乱了:
function get_my_img() {
if($imgs = get_posts(array(
'post_parent' => get_the_ID(),
'post_type' => 'attachment',
'numberposts' => 1,
'post_mime_type' => 'image',
'orderby' => 'menu_order',
'order' => 'DESC'
))){
foreach($imgs as $img) {
$img_med = wp_get_attachment_image($img->ID,'medium');
}
foreach($imgs as $img) {
$img_larg = wp_get_attachment_image($img->ID,'large');
}
if (preg_match('/<img.+?src(?: )*=(?: )*[\'"](.*?)[\'"]/si', $img_larg, $img_r)){
echo '<a class="myimage" href="' . $img_r[1] .'">' . $img_med .'</a>';}
}
}
我很确定有一个更简单的方法可以做到这一点我完全忽略了。
本质上,当在循环中调用此函数时,它会输出当前帖子中的最后一个图像(附加),其中 medium 大小包含在链接中它的大大小。
任何见解将不胜感激。
答案 0 :(得分:1)
更容易做到:
function get_my_img() {
if($imgs = get_posts(array(
'post_parent' => get_the_ID(),
'post_type' => 'attachment',
'numberposts' => 1,
'post_mime_type' => 'image',
'orderby' => 'menu_order',
'order' => 'DESC'
))){
$img_med = wp_get_attachment_image($imgs[0]->ID,'medium');
$img_larg = wp_get_attachment_image_src($imgs[0]->ID,'large');
echo '<a class="myimage" href="' . $img_larg[0] .'">' . $img_med .'</a>';
}
}
答案 1 :(得分:1)
preg_match()内容不是必需的。如果你打印$ img_med和$ img_larg,你会看到它们是数组,包含三个元素:图像的路径,宽度和高度。所以你可以输出你需要的html。