使用图像媒体库标题在循环中显示Wordpress媒体

时间:2017-02-23 19:41:08

标签: php wordpress image media

我正在尝试根据自定义多选下拉列表中的选项输出标记图标,用户可以选择(最多4种)可以说的语言。我已将图标上传到我的媒体库,并将其标题为“english.png”,“german.png”等等。是否可以根据标题显示媒体文件?理想情况下,我可以做如下的事情,但我找不到任何有关如何操作的文档。欢迎任何输入(或替代建议)!谢谢:)

//example dropdown selection values: "german", "english"

if ( get_job_field( 'language' ) ) :

   $languages = get_job_field( 'language' );
   foreach ($languages as $language) {
      echo '<image src="'.$language.'.png">';             
  }
 endif;

//example output: <img src="german.png"><img src="english.png">

2 个答案:

答案 0 :(得分:1)

试试这个

$lans = array();
if ( get_job_field( 'language' ) ) :
   $languages = get_job_field( 'language' );
   foreach ($languages as $language) {
       $lans[] = $language . '.png';                  
  }
endif;

$args = array(
    'post_type'      => 'attachment',
    'post_mime_type' => 'image',
    'post_status'    => 'inherit',
    'posts_per_page' => - 1,
);
$query = new WP_Query( $args );
foreach ( $query->posts as $img ) {
    $filename = basename ( get_attached_file( $img->id ) );
    if( in_array( $filename, $lans )) {
        echo '<image src="'. wp_get_attachment_url( $img->ID ); .'">';
    }
}

可能会帮助你

答案 1 :(得分:0)

我找到了一个(虽然不完美)解决方案:

foreach ($languages as $language) {

   echo "<img src='https://www.wgeil.de/wpcontent/uploads/2017/02/".$language.".png'>";

 }