在我网站的不同部分使用不同大小的缩略图...使用Functions.php?

时间:2011-08-16 作者:javipas

两年前,在StackOverflow中,有一个有趣的问题,关于在站点的不同部分使用特定的缩略图、小型、中型或大型图像。问题是,available here, 是well answered 其中一位用户Doug Neiner建议使用以下代码:

<?php
  function get_attached_images(){
    // This function runs in "the_loop", you could run this out of the loop but
    // you would need to change this to $post = $valid_post or something other than
    // using the global post declaration.
    global $post; 
    $args = array(
      \'post_type\' => \'attachment\',
      \'numberposts\' => 1,
      \'post_status\' => null,
      \'post_parent\' => $post->ID,
      \'order\' => \'ASC\',
      \'orderby\' => \'menu_order\'
      ); 
    $attachment = get_posts($args); // Get attachment
    if ($attachment) {
      $img = wp_get_attachment_image_src($attachment[0]->ID, $size = \'full\'); ?>
      <img alt="<?php the_title(); ?>" src="<?php echo $img[0] ; ?>" width="<?php echo $img[1] ?>" height="<?php echo $img[2] ?>"/>
  <?php }
  }
?>
但这并不是我真正需要的,因为这段代码必须插入到索引上的每个循环中。php或单个。php(例如)来工作。

是否可以在函数上创建该代码。然后从每个循环中调用该代码?我想这会更聪明、更优雅,因为每次在每个循环上使用所有这些代码似乎有点不雅观。。。

还有其他方法吗?

1 个回复
最合适的回答,由SO网友:Chip Bennett 整理而成

您发布的代码是函数定义,函数定义属于functions.php 以开始。只需将代码移动到functions.php, 然后在模板文件中需要的任何位置调用它。

如果需要可变的图像大小,只需将参数传递给函数即可。例如:

<?php
  function mytheme_get_attached_images( $size = \'full\' ){
    // This function runs in "the_loop", you could run this out of the loop but
    // you would need to change this to $post = $valid_post or something other than
    // using the global post declaration.
    global $post; 
    $args = array(
      \'post_type\' => \'attachment\',
      \'numberposts\' => 1,
      \'post_status\' => null,
      \'post_parent\' => $post->ID,
      \'order\' => \'ASC\',
      \'orderby\' => \'menu_order\'
      ); 
    $attachment = get_posts($args); // Get attachment
    if ( $attachment ) {
      $img = wp_get_attachment_image_src( $attachment[0]->ID, $size ); ?>
      <img alt="<?php the_title(); ?>" src="<?php echo $img[0] ; ?>" width="<?php echo $img[1] ?>" height="<?php echo $img[2] ?>"/>
  <?php }
  }
?>
然后,当您调用该函数时,它将如下所示:

<?php mytheme_get_attached_images( \'medium\' ); ?>
(注意:还有其他改进代码的方法;这只是向您展示了如何将现有代码用于您的目的。)

结束

相关推荐

Resizing all images

我刚刚更改了博客的主题,由于页面宽度很小,它打破了布局。我之前的大多数图片(附在帖子中)的宽度都在600px左右,现在我需要按450px的比例调整它们的大小。如何一次性调整它们的大小?有这个插件吗?P、 美国:编写CSS规则是一个很好的选择,我已经做到了。但我认为调整图像大小也会减少每个页面的下载开销!