WordPress实现的首页幻灯片展示功能示例【附demo源码】

所属分类: CMS教程 / WordPress 阅读数: 906
收藏 0 赞 0 分享

本文实例讲述了WordPress实现的首页幻灯片展示功能。分享给大家供大家参考,具体如下:

对于WordPress拓展性这么优秀的程序来说,是没有什么不能实现的。很多在建站的时候,都会选择在首页使用幻灯片,可以展示比较醒目的内容。今天就来一个首页幻灯片的制作教程,相信幻灯片在各种企业包括个人网站上面用处还是很大的,做完之后效果和本站首页的一样。

主要是使用了WordPress的自定义文章字段的功能来判断是否需要显示在首页:

1.创建Post Meta Box

复制代码
代码如下:
/* Fire our meta box setup function on the post editor screen. */
add_action( 'load-post.php', 'sola_post_meta_boxes_setup' );
add_action( 'load-post-new.php', 'sola_post_meta_boxes_setup' );
/* 这是需要修改的两处之一,本功能只需要一个checkbox,将checkbox的title、id等属性填充到$fields数组中,
后面的代码会自动根据数组填充的内容创建Post Meta Box */
$fields = array(
array(
'name' => __('是否在首页幻灯显示'),
'desc' => 'Check this box and make the post a slider',
'id' => 'sola-post-slider',
'type' => 'checkbox',
'default' => ''
)
);
/* Meta box setup function. */
function sola_post_meta_boxes_setup() {
/* Add meta boxes on the 'add_meta_boxes' hook. */
add_action( 'add_meta_boxes', 'sola_add_post_meta_boxes' );
add_action( 'save_post', 'sola_save_post_meta_boxes', 10, 2 );
}
/* Create one or more meta boxes to be displayed on the post editor screen. */
/* 这里也需要改一下,设置需要创建的Post Meta Box叫什么名字,显示在什么位置 */
function sola_add_post_meta_boxes() {
add_meta_box(
'sola-post-slider-class', // Unique ID
__('首页幻灯片'), // Title
'sola_seo_box_format', // Callback function
'post', // Admin page (or post type)
'side', // Context
'default' // Priority
);
}
function sola_seo_box_format(){
global $fields,$post;
// Use nonce for verification
echo '<input type="hidden" name="sola_meta_box_nonce" value="', wp_create_nonce(basename(__FILE__)), '" />';
echo '<table class="form-table">';
foreach ($fields as $field) {
// get current post meta data
$meta = get_post_meta($post->ID, $field['id'], true);
echo '<tr>'.
'<th><label for="'. $field['id'] .'">'. $field['name']. '</strong></label></th>'.
'<td>';
switch ($field['type']) {
case 'text':
echo '<input type="text" name="'. $field['id']. '" id="'. $field['id'] .'" value="'. ($meta ? $meta : $field['default']) . '" size="30" style="width:97%" />'. '
'. $field['desc'];
break;
case 'textarea':
echo '<textarea name="'. $field['id']. '" id="'. $field['id']. '" cols="60" rows="4" style="width:97%">'. ($meta ? $meta : $field['default']) . ''. '
'. $field['desc'];
break;
case 'select':
echo '<select name="'. $field['id'] . '" id="'. $field['id'] . '">';
foreach ($field['options'] as $option) {
echo '<option '. ( $meta == $option ? ' selected="selected"' : '' ) . '>'. $option . '</option>';
}
echo '</select>';
break;
case 'radio':
foreach ($field['options'] as $option) {
echo '<input type="radio" name="' . $field['id'] . '" value="' . $option['value'] . '"' . ( $meta == $option['value'] ? ' checked="checked"' : '' ) . ' />' . $option['name'];
}
break;
case 'checkbox':
echo '<input type="checkbox" name="' . $field['id'] . '" id="' . $field['id'] . '"' . ( $meta ? ' checked="checked"' : '' ) . ' />';
break;
}
echo '<td>'.'</tr>';
}
echo '</table>';
}
function sola_save_post_meta_boxes($post_id) {
global $fields, $post;
//Verify nonce
if (!wp_verify_nonce($_POST['sola_meta_box_nonce'], basename(__FILE__))) {
return $post_id;
}
//Check autosave
if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
return $post_id;
}
//Get the post type object.
$post_type = get_post_type_object( $post->post_type );
//Check permissions
if ( !current_user_can( $post_type->cap->edit_post, $post_id ) )
return $post_id;
foreach ($fields as $field) {
$old = get_post_meta($post_id, $field['id'], true);
$new = $_POST[$field['id']];
if ($new && $new != $old) {
update_post_meta($post_id, $field['id'], $new);
} elseif ('' == $new && $old) {
delete_post_meta($post_id, $field['id'], $old);
}
}
}

这段代码会在文章创建和编辑页面创建如下所示的Post Meta Box :

写文章时,勾选在首页显示幻灯片,这篇文章就会自动推送到首页幻灯片中。

2.读取幻灯片文章

接下来修改slider.php,使用post meta box实现,就需要根据post的meta信息搜索幻灯片,代码如下

复制代码
代码如下:
$args = array(
'posts_per_page' => 4,
'meta_key' => 'sola-post-slider',
'meta_value' => 'on',
);
query_posts($args);

用get_posts()和meta_query参数结合,就可以达到目的,有了数据,直接循环输出就行

3.源代码点击此处本站下载

希望本文所述对大家基于wordpress的程序设计有所帮助。

更多精彩内容其他人还在看

开发者应该留意的WordPress2.9新功能小结

WordPress是一款成熟的开源CMS平台,新推出的2.9版本依然保持了以往良好的口碑。这篇文章从WordPress 2.9的codex文档里摘录出几个开发者应该留意的功能进行简析。
收藏 0 赞 0 分享

允许 WordPress 上传任意文件的方法

从 WP 2.8.5 开始文件上传使用预定义的文件扩展名列表过滤,管理员也不例外。
收藏 0 赞 0 分享

WordPress 插件直接将服务器文件导入媒体库

WordPress 插件 直接将服务器文件导入媒体库
收藏 0 赞 0 分享

WordPress博客SEO更加完美的6个技巧

wordpress在搜索引擎优化方面做的也十分不错,在搜索引擎优化方面它基本上给我们解决了80%左右的问题,但余下的20%左右的SEO工作,还是需要人工要去做的,而且也是非常有必要的,怎么才能做好这余下的20%左右的工作呢?
收藏 0 赞 0 分享

WordPress 图片用单独域名储存方法

Yslow 提高网站加载速度里有这么一条:Used Cookie Free Domains , 大意是浏览器会对作用域内每个加载的对象传递 Cookie,在加载图像或者JS、CSS的时候最好用 Cookie-free 域名。如果没有多余的域名可以用一个子域实现,但是要设置 Coo
收藏 0 赞 0 分享

WordPress 文章摘要功能实现代码

在首页显示大量的文章内容,不但影响加载速度,而且用户体验很差。
收藏 0 赞 0 分享

Wordpress 解决注册登录死循环问题

网站(Wordpress)注册登录死循环问题解决.
收藏 0 赞 0 分享

WordPress的6种主题框架对比分析

我们大多数人都经常会碰到赶工期的问题,为了提高工作效率节省宝贵的时间, 减少不必要的重新发明新轮子的时间,WordPress各种主题框架应运而生使得主题开发变得更加快捷。
收藏 0 赞 0 分享

WordPress的.htaccess优化技巧

大家都知道页面加载速度对博客流量有非常重要的影响。最近越来越多人也在讨论页面加载速度很可能成为谷歌和其他搜索引擎一个重要的SEO因素。
收藏 0 赞 0 分享

WordPress 实现简单的企业网站

当朋友拜托你给他的公司或产品做一个简单的网站。或者你刚刚发布了一个软件,需要一个官网。或者想给你的WP blog加一个首页。
收藏 0 赞 0 分享
查看更多