显示一个随机图像,但仅当横向显示时

时间:2018-07-26 作者:Tomasch

我想随机抽取一幅图像,并将其用作背景图像——但前提是它是一幅风景图像。

我找到了以下帖子:

https://stackoverflow.com/questions/37537577/wordpress-query-by-attachment-meta-image-size

这很好地解释了如何从这里开始。

就我的目的而言,景观可以简单到宽度>高度(任何纵横比大于1)。

但我不完全确定如何将其添加为元数据的一部分,然后查询它(基于上述答案)

谢谢

1 个回复
SO网友:Andrea Somovigo

好的,下面是评论:

//from https://stackoverflow.com/questions/37537577/wordpress-query-by-attachment-meta-image-size

add_filter(\'wp_generate_attachment_metadata\', \'add_metac\', 10, 2);


function add_metac($meta, $id){

update_post_meta($id, \'height\', (int) $meta[\'height\']);
update_post_meta($id, \'width\', (int) $meta[\'width\']);
update_post_meta($id, \'ratio\', round ($meta[\'width\']  / $meta[\'height\'] , 2 ));
return $meta;

}
此时,对于新上传的图像,您将在Posteta表中获得所有信息enter image description here比率>1=水平

编辑了一些打字错误并完成了循环

function stack_309636_get_horizontal_bg( $width=900 , $ratio=1 ){
  $types = array( \'image/jpeg\', \'image/gif\', \'image/png\');
  $args= array(
    \'post_type\'         => \'attachment\',
    \'post_status\'    => \'inherit\',
    \'posts_per_page\' =>   1,
    \'orderby\'      =>\'rand\',
    \'post_mime_type\'    => $types,
    \'meta_query\' => array(
        \'relation\' => \'AND\', 
        array(
                \'key\'     => \'width\',
                \'value\'   => $width, //the minimum required
                //\'type\'    => \'numeric\',
                \'compare\' => \'>\',
        ),
        array(
                \'key\'     => \'ratio\',
                \'value\'   => $ratio,  //eventually 1.5 or higher
                //\'type\'    => \'numeric\',
                \'compare\' => \'>\',
        ),
    )

  );

  $query= new WP_Query($args);

  if ( $query->have_posts() ) {
    while ( $query->have_posts() ) {
        $query->the_post();
        $img = wp_get_attachment_image_src( $query->post->ID,\'full\');                            
        $return=$img[0];
        break;
      }
  }
  else 
    $return="your_default_image_url"; // in case no images match 
  wp_reset_query();

  return $return;
}

echo stack_309636_get_horizontal_bg(1200, 1.5);

结束

相关推荐

Remove P tags from images

我使用的是WordPress 4.2.2,每次我向wysiwyg添加图像时,它都会将输出的图像包装在段落标记中。我需要去掉这些标签。我在网上找到的所有东西都是从2011年开始的,而且似乎都不起作用。我试着把东西放在函数中。php类:function filter_ptags_on_images($content){ return preg_replace(\'/<p>\\s*(<a .*>)?\\s*(<img .* \\/>)\\s*(<\\/a&g