我正在尝试扩展媒体模式,但我找不到任何关于它的文档/教程。我也不是骨气大师;-)
我想为附加到附件帖子类型的每个分类添加一个选择框。目前只显示一个选择框。
这就是我想到的。它工作得很好,只是它取代了默认工具栏。
代码
/**
* 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() );
}
});
});
原始
我的结果
我想要什么
完整代码
https://github.com/Horttcore/Media-Taxonomies
最合适的回答,由SO网友:Wyck 整理而成
脊梁骨的奇妙世界。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;
.