問題描述
我試圖擴展媒體模式,但是我不能找到任何有關它的文檔/教程。我也不是骨幹的主人;-)
我想添加附件到附件帖子類型的每個分類法的選擇框。目前只顯示一個選擇框。
所以這是我想出來的。它的工作原理很好,除了它替換了默認的工具欄。
Code
/**
* Extended Filters dropdown with taxonomy term selection values
*/
jQuery.each(mediaTaxonomies,function(key,label){
media.view.AttachmentFilters[key] = media.view.AttachmentFilters.extend({
className: key,
createFilters: function() {
var filters = {};
_.each( mediaTerms[key] || {}, function( term ) {
var query = {};
query[key] = {
taxonomy: key,
term_id: parseInt( term.id, 10 ),
term_slug: term.slug
};
filters[ term.slug ] = {
text: term.label,
props: query
};
});
this.filters = filters;
}
});
/**
* Replace the media-toolbar with our own
*/
media.view.AttachmentsBrowser = media.view.AttachmentsBrowser.extend({
createToolbar: function() {
media.model.Query.defaultArgs.filterSource = 'filter-media-taxonomies';
this.toolbar = new media.view.Toolbar({
controller: this.controller
});
this.views.add( this.toolbar );
this.toolbar.set( 'terms', new media.view.AttachmentFilters[key]({
controller: this.controller,
model: this.collection.props,
priority: -80
}).render() );
}
});
});
Original
我的結果
我想要的是
全代碼
https://github.com/Horttcore/Media-Taxonomies
最佳解決方案
Backbone.js 和 WP 的美妙世界 (我幾乎沒有任何知道) 。
我認為問題是你只是調用相同的默認 media.view,而我相信你需要初始化一個新的。
例如:
/**
* Replace the media-toolbar with our own
*/
var myDrop = media.view.AttachmentsBrowser;
media.view.AttachmentsBrowser = media.view.AttachmentsBrowser.extend({
createToolbar: function() {
media.model.Query.defaultArgs.filterSource = 'filter-media-taxonomies';
myDrop.prototype.createToolbar.apply(this,arguments);
this.toolbar.set( key, new media.view.AttachmentFilters[key]({
controller: this.controller,
model: this.collection.props,
priority: -80
}).render() );
}
});
會給你下面的東西 (我沒有做任何徹底的錯誤檢查,但它的工作) 。
您還應考慮使用 media.view.AttachmentFilters 和任何關於 window.wp.media; 的定製。
參考文獻
注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。



