WordPress實(shí)現(xiàn)的首頁(yè)幻燈片展示功能示例【附demo源碼】

本文實(shí)例講述了WordPress實(shí)現(xiàn)的首頁(yè)幻燈片展示功能。分享給大家供大家參考,具體如下:
對(duì)于WordPress拓展性這么優(yōu)秀的程序來(lái)說(shuō),是沒(méi)有什么不能實(shí)現(xiàn)的。很多在建站的時(shí)候,都會(huì)選擇在首頁(yè)使用幻燈片,可以展示比較醒目的內(nèi)容。今天就來(lái)一個(gè)首頁(yè)幻燈片的制作教程,相信幻燈片在各種企業(yè)包括個(gè)人網(wǎng)站上面用處還是很大的,做完之后效果和本站首頁(yè)的一樣。
主要是使用了WordPress的自定義文章字段的功能來(lái)判斷是否需要顯示在首頁(yè):
1.創(chuàng)建Post Meta Box
add_action( 'load-post.php', 'sola_post_meta_boxes_setup' );
add_action( 'load-post-new.php', 'sola_post_meta_boxes_setup' );
/* 這是需要修改的兩處之一,本功能只需要一個(gè)checkbox,將checkbox的title、id等屬性填充到$fields數(shù)組中,
后面的代碼會(huì)自動(dòng)根據(jù)數(shù)組填充的內(nèi)容創(chuàng)建Post Meta Box */
$fields = array(
array(
'name' => __('是否在首頁(yè)幻燈顯示'),
'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. */
/* 這里也需要改一下,設(shè)置需要?jiǎng)?chuàng)建的Post Meta Box叫什么名字,顯示在什么位置 */
function sola_add_post_meta_boxes() {
add_meta_box(
'sola-post-slider-class', // Unique ID
__('首頁(yè)幻燈片'), // 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);
}
}
}
這段代碼會(huì)在文章創(chuàng)建和編輯頁(yè)面創(chuàng)建如下所示的Post Meta Box :

寫文章時(shí),勾選在首頁(yè)顯示幻燈片,這篇文章就會(huì)自動(dòng)推送到首頁(yè)幻燈片中。
2.讀取幻燈片文章
接下來(lái)修改slider.php,使用post meta box實(shí)現(xiàn),就需要根據(jù)post的meta信息搜索幻燈片,代碼如下
'posts_per_page' => 4,
'meta_key' => 'sola-post-slider',
'meta_value' => 'on',
);
query_posts($args);
用get_posts()和meta_query參數(shù)結(jié)合,就可以達(dá)到目的,有了數(shù)據(jù),直接循環(huán)輸出就行
3.源代碼點(diǎn)擊此處本站下載
希望本文所述對(duì)大家基于wordpress的程序設(shè)計(jì)有所幫助。
相關(guān)文章
wordpress靜態(tài)化首頁(yè)及去除url中的index.html
使用wordpass博客程序的朋友都知道他的默認(rèn)首頁(yè)是index.php,然而地球人都知道index.html的太首頁(yè)能夠提高網(wǎng)站首頁(yè)的訪問(wèn)速度。原因的話。地球人都知道的2016-08-24WordPress實(shí)現(xiàn)登錄或退出后直接跳轉(zhuǎn)回首頁(yè)的方法
這篇文章主要為大家介紹了WordPress實(shí)現(xiàn)登錄或退出后直接跳轉(zhuǎn)回首頁(yè)的方法,可實(shí)現(xiàn)對(duì)跳轉(zhuǎn)頁(yè)面的控制,是非常實(shí)用的技巧,需要的朋友可以參考下2014-12-29WordPress首頁(yè)顯示多個(gè)圖片及文字友情鏈接的方法
這篇文章主要為大家介紹了WordPress首頁(yè)顯示多個(gè)圖片及文字友情鏈接的方法,可實(shí)現(xiàn)對(duì)原有文字友情鏈接的靈活控制功能,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2014-12-24- 這篇文章主要為大家介紹了wordpress截取首頁(yè)摘要內(nèi)容的方法,利用自定義函數(shù)add_filter實(shí)現(xiàn)該功能,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2014-12-23
- 這篇文章主要為大家介紹了wordpress首頁(yè)不顯示指定分類文章的方法,通過(guò)簡(jiǎn)單的方法即可實(shí)現(xiàn)針對(duì)特定內(nèi)容的顯示功能,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2014-12-19
wordpress設(shè)置友情鏈接只在首頁(yè)顯示的方法
這篇文章主要介紹了wordpress設(shè)置友情鏈接只在首頁(yè)顯示的方法,需要的朋友可以參考下2014-05-08wordpress首頁(yè)文章限制顯示字?jǐn)?shù)的方法
有的時(shí)候,你希望你的首頁(yè)輸出的摘要字?jǐn)?shù)是可控的,那么怎么才能可控呢?本文通過(guò)一段簡(jiǎn)短的代碼來(lái)實(shí)現(xiàn),大家參考使用吧2014-02-26WordPress簡(jiǎn)單三步實(shí)現(xiàn)首頁(yè)文章顯示縮略圖(無(wú)插件)
想在首頁(yè)文章中顯示縮略圖,有插件可以實(shí)現(xiàn),不過(guò)不方便操作和控制,畢竟代碼是人家寫的,今天與大家分享一下,無(wú)插件,純代碼是怎么實(shí)現(xiàn)首頁(yè)文章縮略圖的2013-09-11wordpress首頁(yè)顯示摘要的幾種方法小結(jié)
大部分人的習(xí)慣都是在首頁(yè)顯示文章的摘要,本文總結(jié)了幾種在首頁(yè)顯示摘要的方法。2011-04-21WORDPRESS文章中微信打賞功能的2種實(shí)現(xiàn)方法
這篇文章主要介紹了WORDPRESS文章中微信打賞功能的2種實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了2種簡(jiǎn)單的微信打賞實(shí)現(xiàn)技巧,涉及針對(duì)手機(jī)端的判斷與微信支付二維碼的調(diào)用技巧,需要的朋友2016-09-23