如何在wordpress帖子中动态分配图像

时间:2012-05-31 06:14:38

标签: wordpress wordpress-theming

我正在开发一个wordpress网站。我在其中发了一个帖子。现在我想在那篇文章中分配图像。为此,我已在媒体上传了一张图片,并将该图片附加到我的帖子中。

但如何在帖子中分配上传的图片?我需要手动提供路径吗?或者我可以提供动态路径,这样即使我在服务器上传这个站点或更改主文件夹名称,路径也会自动更改..

任何帮助将不胜感激.. 谢谢

1 个答案:

答案 0 :(得分:1)

您应该考虑在帖子中使用Post Thumbnails(也称为精选图片)。为此,您需要做的就是将以下内容添加到functions.php文件中:

add_theme_support('post-thumbnails');

这将在您的帖子编辑器中添加一个控件,通过上传或设置URL来添加图像,以您查找的方式有效地将图像“附加”到您的帖子。要在模板中显示图像:

<?php
if(have_posts()) : while(have_posts()) : the_post();
    if(has_post_thumbnail())
        echo '<div class="post_thumb">'.get_the_post_thumbnail().'</div>';
?>
<div class="post_content"><?php the_content(); ?></div>
<?php
endwhile;endif;
?>

至于更改文件夹名称,路径等,您需要小心这种方法。请记住,您正在提供资产的路径。服务器不知道您想要什么,只知道您的代码请求的内容。如果您期望在很大程度上改变资产的路径,那么您总是可以放弃Post Thumbnails以支持聪明的命名约定。像这样:

<?php
if(have_posts()) : while(have_posts()) : the_post();
$imgPath = get_bloginfo('stylesheet_directory').'/images/featured_'.$post->post_name.'.jpg';
?>
<div class="post_thumb"><img src="<?php echo $imgPath; ?>" /></div>
<div class="post_content"><?php the_content(); ?></div>
<?php
endwhile;endif;
?>

在主题目录的images文件夹中查找名为featured_ {post_slug} .jpg

的图像

此方法的好处是Wordpress将始终知道主题文件夹的位置,而不管URL更改。只要您的主题目录中有图像文件夹,Wordpress就会知道在哪里查看。

缺点是此代码在显示之前没有首先检查图像的存在性,如果图像没有正确命名或根本不存在,则可能导致图像损坏。此方法还需要使用一个文件扩展名

最后一个选项是考虑使用Custom Fields来定义图像路径。好处是,这不需要您实际上传图像到您的服务器。但是,这种方法在所有选项中仍然是最不活跃的,如果资产路径发生变化,可能会中断。

使用您认为最适合工作的工具。希望这有帮助!