久久99国产精品片久久99蜜桃_久久精品99国产精品蜜桃_久久久亚洲AV成人网站_欧美精品色婷婷五月综合_亚洲精品乱码久久久久久蜜桃图片_夜夜高潮夜夜爽国产伦精品_69无人区乱码一二三四区别_日产一码二码三码区别_大香区一二三四区2021_国产精品爱久久久久久久,日本高清视频成人网www,国产亚洲一二三区精品免费视频观看,久久久精品国产SM调教网站

推廣 熱搜: 后臺(tái)  帝國cms  位置  網(wǎng)站  Wordpress教程  帝國cms建站  內(nèi)容  DESTOON  郵箱  destoon7.0 

WordPress獲取當(dāng)前日志的所有附件的方法

   日期:2019-04-20     瀏覽:175    違規(guī)舉報(bào)
 
騰訊云服務(wù)器優(yōu)惠

WordPress 3.6 推出了一個(gè)新的函數(shù):get_attached_media(),使得獲取一個(gè)指定日志的所有附件文件變得異常簡單,。

以前如果我們要獲取指定日志的所有圖片:我們需要通過類似如下的代碼:

$args = array('post_parent' => $post->ID,'post_type' => 'attachment','post_mime_type' => 'image','posts_per_page' => -1,'orderby' => 'menu_order','order' => 'ASC',);$attachments = get_posts( $args );

WordPress 3.6 新增的get_attached_media()函數(shù)使得這個(gè)過程更加簡潔: 獲取所有附件,,不管什么類型:

$attachments = get_attached_media( '', $post->ID );

獲取所有的音頻附件:

$attachments = get_attached_media( 'audio', $post->ID );

獲取所有圖片附件:

$attachments = get_attached_media( 'image', $post->ID );

獲取所有視頻附件:

$attachments = get_attached_media( 'video', $post->ID );

上述wordpress官方的第一段代碼是通過查詢wp_posts表中所有post_parents字段為post_ID,,并且post_type為attachment的數(shù)據(jù),這樣就會(huì)造成兩個(gè)問題

1,、只統(tǒng)計(jì)插入的圖片,,不統(tǒng)計(jì)刪除的圖片

2,、post_parents的字段類型為BIGINT,這樣只能統(tǒng)計(jì)一次,,比如你在日志A插入了圖片I,,之后在日志B中再插入圖片I,這樣就沒辦法同時(shí)統(tǒng)計(jì)了

這樣看來wordpress統(tǒng)計(jì)當(dāng)前日志附件相當(dāng)不準(zhǔn),。 如何修正呢 修正之前思考這么幾個(gè)問題:

1,、用什么來記錄當(dāng)前日志的附件?

2,、在什么地方進(jìn)行統(tǒng)計(jì)

3,、該如何取出

關(guān)于記錄日志的附件,選擇了postmeta這個(gè)表來記錄,,增加一個(gè)meta_key,;至于在什么地方統(tǒng)計(jì),選擇鉤子save_post,,整體代碼如下:

add_action('save_post', 'save_post_my_func', 10 , 2);function save_post_my_func() {global $wpdb;$content = $post->post_content;if (!stristr($content, '/wp-content/uploads/')){// 如果說當(dāng)前日志中沒有任何附件鏈接,,我將這個(gè)字段更新為空update_post_meta($post_id, '_wp_post_attach_total_', '');return ;}$data = array();if (preg_match_all('/(href|src)=[^>]+\/wp\-content\/uploads\/(sites\/\d+\/)?([^"\'>\s]+)["\'>\s]/is', $content, $match)){// 統(tǒng)計(jì)所有帶有附件鏈接的img還有l(wèi)ink$files = array_flip(array_flip($match[3]));$sql = sprintf("SELECT `post_id` FROM `%s` WHERE `meta_key`='_wp_attached_file' AND (`meta_value`='%s');",$wpdb->postmeta, implode("' OR `meta_value`='", $files));(FALSE != ($row = $wpdb->get_col($sql))) && $data = $row;}// 統(tǒng)計(jì)日志中的相冊(cè)if (preg_match_all('/\?)([^"\'\]]*)\1\s*\]/is', $content, $gallery)){$where = array();$gallery = explode(',', implode(',', $gallery[2]));foreach ($gallery as $val){$where[] = '`post_id`='.trim($val);}$sql = sprintf("SELECT `post_id` FROM `%s` WHERE `meta_key`='_wp_attached_file' AND (%s);", $wpdb->postmeta, implode(' OR ', $where));(FALSE != ($row = $wpdb->get_col($sql))) && $data = array_merge($data, $gallery);}// 統(tǒng)計(jì)當(dāng)前日志中的縮略圖if (FALSE != ($thumb_id = get_post_meta($post_id, '_thumbnail_id'))){$data[] = $thumb_id[0];}// 為了后續(xù)擴(kuò)展,以及向其他應(yīng)用開放擴(kuò)展,,這里我創(chuàng)建了一個(gè)過濾鉤子$data = apply_filters('wp_post_attach_total', $data, $post_id);if (!empty($data)){$data = array_flip(array_flip($data));update_post_meta($post_id, '_wp_post_attach_total_', implode(',', $data));}}

大家可以通過下面的代碼獲取當(dāng)前日志附件

get_post_meta($post_id, '_wp_post_attach_total_');

注:最后代碼參考自亂燉,。

免責(zé)聲明:
1、本站所收集的部分公開資料來源于互聯(lián)網(wǎng),,轉(zhuǎn)載的目的在于傳遞更多信息及用于網(wǎng)絡(luò)分享,,并不代表本站贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé),也不構(gòu)成任何其他建議,。
2,、本站部分作品內(nèi)容是由網(wǎng)友自主投稿和發(fā)布、編輯整理上傳,,對(duì)此類內(nèi)容本站僅提供交流平臺(tái),,不為其版權(quán)負(fù)責(zé),更不為其觀點(diǎn)承擔(dān)任何責(zé)任,。
3,、因行業(yè)及專業(yè)性有限,故未能核驗(yàn)會(huì)員發(fā)布內(nèi)容的真實(shí)性及有效性,,不為其負(fù)責(zé),,如有虛假或違規(guī)內(nèi)容敬請(qǐng)準(zhǔn)備材料圖片發(fā)郵件到info@n#舉報(bào),本站核實(shí)后積極配合刪除,。
4、如果您發(fā)現(xiàn)網(wǎng)站上有侵犯您的知識(shí)產(chǎn)權(quán)的作品,,請(qǐng)與我們?nèi)〉寐?lián)系,,我們會(huì)及時(shí)處理或刪除,。
 
打賞
 
更多>同類網(wǎng)站技術(shù)
0相關(guān)評(píng)論

推薦圖文
推薦網(wǎng)站技術(shù)
點(diǎn)擊排行
網(wǎng)站首頁  |  關(guān)于我們  |  聯(lián)系方式  |  使用協(xié)議  |  免責(zé)聲明  |  版權(quán)隱私  |  信息發(fā)布規(guī)則  |  網(wǎng)站地圖  |  排名推廣  |  廣告服務(wù)  |  積分換禮  |  網(wǎng)站留言  |  RSS訂閱  |  違規(guī)舉報(bào)  |  粵ICP備2020081222號(hào)
Powered By DESTOON