之前介紹的這款背景滾動圖Wordpress區塊只是徒有其表,純靜態展示的,但在實際運用中,需要他動態的來展示,該如何做到呢?
方案一
將功能函數寫進functions.php中,把區塊的內容放到合適的位置,例如index.php文件的底部,數據通過功能函數調用。
方案二
同樣的,我們讓后端提供功能函數,前臺獲取到后臺提供的數據即可。可以這樣操作。
我們在相關中添加功能代碼,以提供相關函數,在前臺添加靜態的HTML代碼,通過JS來調用PHP中的內容即可。
方法可參考這個
B2下部署
在B2主題的根目錄的header.php底部添加以下代碼:
<!--底部統計用的代碼-->
<script type="text/javascript" >
<?php
//用戶總數
$users = $wpdb->get_var("SELECT COUNT(ID) FROM $wpdb->users");echo "var jstext="."'$users'";
?>
</script>
<script type="text/javascript" >
<?php
/*
* WordPress獲取今日發布文章數量
* 暖島整理 www.nuandao.cn
*/
function nd_get_24h_post_count(){
$today = getdate();
$query = new WP_Query( 'year=' . $today["year"] . '&monthnum=' . $today["mon"] . '&day=' . $today["mday"]);
$postsNumber = $query->found_posts;
return $postsNumber;
}
$post_24h = nd_get_24h_post_count();
echo "var tj_24h="."'$post_24h'";
?>
</script>
<script type="text/javascript" >
<?php
/*
* WordPress整站文章訪問計數
* 暖島整理 www.nuandao.cn
*/
function nd_get_all_view(){
global $wpdb;
$count=0;
$views= $wpdb->get_results("SELECT * FROM $wpdb->postmeta WHERE meta_key='views'");
foreach($views as $key=>$value){
$meta_value=$value->meta_value;
if($meta_value!=' '){
$count+=(int)$meta_value;
}
}return $count;
}
$post_view = nd_get_all_view();
echo "var tj_view="."'$post_view'";
?>
</script>
<script type="text/javascript" >
<?php
//日志總數
$count_posts = wp_count_posts();
$published_posts =$count_posts->publish;
echo "var tj_rzzs="."'$published_posts'";
?>
</script>
<script type="text/javascript" >
<?php
//穩定運行
$wdyx_time = floor((time()-strtotime("2020-3-21"))/86400);
echo "var tj_wdyx="."'$wdyx_time'";
?>
</script>
在B2主題的模塊中,選擇HTML模塊,添加以下代碼,背景圖片需要自己在模塊中配置。
<div id="nuandao">
<div class="siteCount">
<div class="wrapper">
<ul>
<li>
<span>
<script type="text/javascript" >
document.write(jstext);
</script>
</span>
<b>用戶總數</b>
</li>
<li>
<span><script type="text/javascript" >
document.write(tj_rzzs);
</script></span>
<b>文章總數</b>
</li>
<li>
<span><script type="text/javascript" >
document.write(tj_view);
</script></span>
<b>瀏覽總數</b>
</li>
<li>
<span></span>
<span>
<script type="text/javascript" >
document.write(tj_24h);
</script>
</span>
<b>今日發布</b>
</li>
<li>
<span><script type="text/javascript" >
document.write(tj_wdyx);
</script></span>
<b>穩定運行</b>
</li>
</ul>
<div class="join-vip">
<a class="b2-radius" href="/vips" target="_blank">立即加入</a>
<p>加入Npcink,快速獲取優質資源!</p>
</div>
</div>
</div>
</div>
<style type="text/css">
#nuandao .siteCount {
position: relative;
padding: 60px 0;
}
/*內容*/
#nuandao .siteCount .wrapper {
position: relative;
z-index: 10;
}
#nuandao .siteCount ul {
display: flex;
}
#nuandao .siteCount ul li {
width: 20%;
color: #fff;
text-align: center;
}
/*模塊*/
#nuandao .siteCount ul li span {
font-size: 48px;
font-family: Arial;
}
#nuandao .siteCount ul li b {
display: block;
font-weight: normal;
font-size: 14px;
}
/*按鈕*/
#nuandao .siteCount .join-vip {
text-align: center;
color: #fff;
margin-top: 30px;
}
#nuandao .siteCount .join-vip a {
display: inline-block;
border: 0;
border-radius: 5px;
transition: all 0.3s;
padding: 10px 30px;
font-size: 15px;
letter-spacing: 0.5px;
background-color: #2e4e7e;
box-shadow: 0 5px 10px 0 rgba(16, 110, 253, 0.3);
color: #fff;
}
#nuandao .siteCount .join-vip p {
margin-top: 15px;
font-size: 14px;
color: rgba(255, 255, 255, 0.8);
letter-spacing: 0.5px;
font-family: Arial;
}
.home_row_bg_img::after {
content: '';
z-index: 1;
height: 100%;
width: 100vw;
background: rgba(0, 0, 0, 0.6);
position: absolute;
top: 0;
left: 0;
}
</style>
<script>
document.getElementById("nuandao").parentNode.parentNode.style.backgroundColor="transparent"
</script>
感謝評論區提供的JS代碼。
加這段JS就不用寫這個“.home_row_8”樣式順序了:
document.getElementById("nuandao").parentNode.parentNode.style.backgroundColor="transparent"
感謝大佬貢獻的代碼