Wordpress多站點(diǎn)buddypress首頁(yè)調(diào)用全站文章新方法
來(lái)源:易賢網(wǎng) 閱讀:990 次 日期:2014-09-02 14:45:10
溫馨提示:易賢網(wǎng)小編為您整理了“Wordpress多站點(diǎn)buddypress首頁(yè)調(diào)用全站文章新方法”,方便廣大網(wǎng)友查閱!

今天專門研究了一下wordpress開(kāi)通多站點(diǎn)成為一個(gè)博客群網(wǎng)站之后,安裝buddypress成為社區(qū),怎樣調(diào)用全站最新更新的內(nèi)容到首頁(yè)的問(wèn)題。

在《wordpress多站點(diǎn)調(diào)用全站所有子站點(diǎn)最新文章函數(shù)化》一文中給出一個(gè)使用數(shù)據(jù)庫(kù)進(jìn)行調(diào)用,同時(shí)利用php遍歷和冒泡比較的方法,獲得了一個(gè)可以用來(lái)實(shí)現(xiàn)該功能的方法。但是這種操作還是存在一些不夠全面的問(wèn)題。我們?cè)诎惭bbuddypress插件之后,整個(gè)博客成為一個(gè)社區(qū),bp會(huì)為wordpress多站點(diǎn)建立一些新的數(shù)據(jù)表,以保存社區(qū)的信息,并有一些核心函數(shù),實(shí)現(xiàn)這些信息的調(diào)用。

在buddypress中,使用

if(bp_has_activities(array('action' => 'new_blog_post','max' => get_option('posts_per_page'),'per_page' => get_option('posts_per_page'),'user_id' => 0,'scope' => false,'object' => false,'primary_id' => false ))) :

while(bp_activities()) : bp_the_activity();

endwhile;

endif;

來(lái)實(shí)現(xiàn)如wordpress中query_posts();while(have_posts):the_post();endwhile;一樣的文章循環(huán)功能。在wordpress的LOOP中的$post換成了$activities_template->activity。我們可以利用里面的很多信息。

廢話不多說(shuō),看看我是怎么實(shí)現(xiàn)多站點(diǎn)下全站最新文章調(diào)用的:

$mu_posts = array();

$i = 0;

if(bp_has_activities(array('action' => 'new_blog_post','max' => get_option('posts_per_page'),'per_page' => get_option('posts_per_page'),'user_id' => 0,'scope' => false,'object' => false,'primary_id' => false ))) :

while(bp_activities()) : bp_the_activity();

$mu_posts[$i]['blog_id'] = $activities_template->activity->item_id;

$mu_posts[$i]['post_id'] = $activities_template->activity->secondary_item_id;

$mu_posts[$i]['post_author'] = $activities_template->activity->user_nicename;

$i ++;//執(zhí)行結(jié)束后,i==1表示有一篇文章,第一篇文章的下標(biāo)為[0]

endwhile;

endif;

上面這段代碼利用buddypress的特性,將一些信息記錄在$mu_posts數(shù)組中。

<?php if(!empty($mu_posts)): ?>

<ul id="blog-post-list" class="activity-list item-list">

<?php foreach($mu_posts as $mu_post): ?>

<?php $blog_id = $mu_post['blog_id'];$post_id = $mu_post['post_id'];$post_author = $mu_post['post_author']; ?>

<?php $blog_name = get_blog_option($blog_id,'blogname');$blog_url = get_blog_option($blog_id,'siteurl'); ?>

<?php $post = get_blog_post($blog_id,$post_id);setup_postdata($post); ?>

<li>

<h1 class="activity-title"><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>" target="_blank"><?php the_title(); ?></a></h1>

<div class="activity-content">

<div class="activity-header">

<span><a href="<?php echo get_blog_option(1,'siteurl'); ?>/members/<?php echo $post_author; ?>/"><?php the_author(); ?></a></span>

<span><?php the_date(); ?></span>

發(fā)布在站點(diǎn)

<span><a href="<?php echo $blog_url; ?>" target="_blank"><?php echo $blog_name; ?></a></span>

<?php if($post->comment_count > 0)echo '<span><a href="'.get_permalink().'#comment" target="_blank">有評(píng)論'.$post->comment_count.'條</a></span>'; ?>

</div>

<div class="activity-inner">

<?php

$content = get_the_content();

$content = strip_tags($content,'');

$content = trim(mb_strimwidth($content,0,500,'...'));

//$content = close_html_tags($content);

echo wpautop($content);

?>

<p class="read-more"><a href="<?php the_permalink(); ?>" target="_blank">查看原文</a></p>

</div>

</div>

</li>

<?php endforeach; ?>

</ul>

<?php endif; ?>

這一段代碼可以放在上面那段代碼之后,利用之前獲取的信息,得到文章對(duì)應(yīng)的$blog_id和$post_id,再結(jié)合wordpress多站點(diǎn)函數(shù)就能調(diào)用出各種你想要的內(nèi)容。參考站點(diǎn):南昌大學(xué)“前湖之風(fēng)”周末講壇聯(lián)絡(luò)處博客系統(tǒng)

同時(shí),這個(gè)地方還用到了setup_postdata($post);這個(gè)函數(shù)在wordpress中很少被重視,我們用get_post($post_id)獲取一篇文章之后,可以利用setup_postdata($post);函數(shù)進(jìn)行格式化,它后面就可以像wordpress中利用the_title()、the_content()等這樣在loop循環(huán)中使用的和文章相關(guān)的函數(shù)了。

這一方法我從探索到實(shí)現(xiàn)花費(fèi)了兩天時(shí)間,主要困難在于理解buddypress的數(shù)據(jù)、函數(shù)等,同時(shí)還會(huì)遇到很多系統(tǒng)核心的問(wèn)題,通過(guò)不同算法的嘗試,最終確定了這種有效的調(diào)用方式。

更多信息請(qǐng)查看IT技術(shù)專欄

更多信息請(qǐng)查看CMS教程
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!
相關(guān)閱讀CMS教程

2025國(guó)考·省考課程試聽(tīng)報(bào)名

  • 報(bào)班類型
  • 姓名
  • 手機(jī)號(hào)
  • 驗(yàn)證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡(jiǎn)要咨詢 | 簡(jiǎn)要咨詢須知 | 加入群交流 | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號(hào):hfpxwx
咨詢QQ:526150442(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報(bào)警專用圖標(biāo)