本来想要实现的功能是,获取wp特色图片地址,用于做背景图片。
上网搜索,没搜到,只有一个
[code]
<?php
$url = wp_get_attachment_url(get_post_thumbnail_id($post->ID));
echo $url;
?>
[/code]
这个可以获取第一个附件图片地址。这样就可以了。还有一些其他的,网络上搜索到的。如下:
自动获取 WordPress 缩略图:
首先,我们将以下代码复制到你主题的 functions.php 中
[code]
function the_image($size = ‘medium’ , $class = ”){
global $post;
//setup the attachment array
$att_array = array(
‘post_parent’ => $post->ID,
‘post_type’ => ‘attachment’,
‘post_mime_type’ => ‘image’,
‘order_by’ => ‘menu_order’
);
//get the post attachments
$attachments = get_children($att_array);
//make sure there are attachments
if (is_array($attachments)){
//loop through them
foreach($attachments as $att){
//find the one we want based on its characteristics
if ( $att->menu_order == 0){
$image_src_array = wp_get_attachment_image_src($att->ID, $size);
//get url – 1 and 2 are the x and y dimensions
$url = $image_src_array[0];
$caption = $att->post_excerpt;
$image_html = ‘<img class="%s" src="%s" alt="%s" />’;
//combine the data
$html = sprintf($image_html,$url,$caption,$class);
//echo the result
echo $html;
}
}
}
}
[/code]
以上代码会自动列出 WordPress 文章中的所有附件图片,并显示第一张图片的缩略图。
接下来,我们只需在 index.php 等文件中添加以下代码,获取 WordPress 缩略图
1
[code]
<?php the_image(‘thumbnail’,’post-thumb’); ?>
[/code]
当然,我们也可以显示中等尺寸的缩略图
1[code]
<?php the_image(‘medium’,’post-image’); ?>[/code]
当然,以上代码还有一点点效率问题,如果你有更好的 idea 只匹配第一张图片并显示其缩略图,请 share with us!!!
WordPress主题特色图片调用方法
WordPress是目前应用最多的博客系统,WordPress有很多好的主题可以下载,也可以自己制作一些漂亮的主题,下面给给大家介绍一下在制作WordPress主题的时候积累下的一些经验技巧,希望对大家有所帮助。
1. 获取文章”特色图片”的地址
有时候主题需要可以获得文章原尺寸”特色图片”的地址,只需要将代码放在WordPress的循环(loop)中,得到的$url就是该文章的原尺寸”特色图片”的地址。如果不在循环中,也可以将$post->ID换成某篇文章的ID,也可以获得该篇文章原尺寸”特色图片”的地址。也可以用 get_post_thumbnail_id这个函数获取该篇文章”特色图片”的附件ID,以及用wp_get_attachment_url函数获得该附件的的地址。
[code]<?php
global $post;
$url = wp_get_attachment_url( get_post_thumbnail_id($post->ID) );
?>[/code]
2. 显示文章的第一幅图
有些客户希望不用设置”特色图片”,而在首页的文章列表中显示出文章的第一幅图。只要将下面的函数添加进主题的function.php里, 然后再在主题里调用就可以啦。
[code]<?php
function get_firstImage($id, $size){
$images = get_children(array(
‘order’=> ‘ASC’,
‘orderby’ => ‘ASC’,
‘post_type’ => ‘attachment’,
‘post_mime_type’ => ‘image’,
‘post_parent’ => $id
)
);
if ($images) {
$image = array_pop($images);
$imageSrc = wp_get_attachment_image_src($image->ID,$size);
$imageUrl = $imageSrc[0];
}
else{
$imageUrl = bloginfo(‘template_url’) . ‘/images/defaultpic.jpg’;
}
return $imageUrl;
}
?>[/code]
这个函数接受两个参数,一个是文章的id($id),一个是缩略图的尺寸($size),如果文章内没有图片的话,将会显示主题的images文件夹内的defaultpic.jpg。
3. 显示文章中所有图片的数量
大家看到论坛上的帖子内容中如果有图的话,文章列表上就会显示出一个图片的图标。如何在WordPress里实现这种效果呢,下面的代码就行。
[code]<?php
global $post;
$images = get_children(array(
‘order’=> ‘ASC’,
‘orderby’ => ‘ASC’,
‘post_type’ => ‘attachment’,
‘post_mime_type’ => ‘image’,
‘post_parent’ => $id
)
);
$count = (count($images));
?>
$count就是该文章内容中图片的数量。
<?php
if( $count>0 ){
?>
<img src=”<?php bloginfo(‘template_url’); ?>/images/pic.gif” alt=”有图” />
<?php
}
?>[/code]
这样,如果该篇文章内容中有图片的话,就会显示主题的images文件夹内的pic.gif这个图标了。
4.为菜单的第一个元素和最后一个元素添加class
[code]<?php
function nav_menu_add_classes( $items ) {
$pos = strrpos($items, ‘class=”menu-item’, -1);
$items=substr_replace($items, ‘menu-item-last ‘, $pos+7, 0);
$pos = strpos($items, ‘class=”menu-item’);
$items=substr_replace($items, ‘menu-item-first ‘, $pos+7, 0);
return $items;
}
add_filter( ‘wp_nav_menu_items’, ‘nav_menu_add_classes’ );
?>[/code]
将此段代码加入主题的function.php里,就可以看得菜单的第一个元素多了一个menu-item-first的class,最后一个元素多了一个menu-item-last的class。