'post_mime_types'フィルタを使って新しいMIMEタイプを追加しました。 PDF、doc、mp3など.
メディアグリッド表示のupload.phpページのカスタムMIMEタイプによるフィルタリングは期待どおりに機能しますが、リスト表示では機能しません。
問題は、WordPressがhtmlを構築するときにurlencode
を介してMIMEタイプを渡すことです( wp-admin/includes/class-wp-media-list-table.php:73 )など
post_mime_type:application/pdf
になる
post_mime_type:application%2Fpdf
ドロップダウン値です。
フィルタフォームが送信されると、エンコードされた「/」は無視され、正しくフィルタ処理されません。
JSで '%2F'を '/'に戻すことはできますが、文字列を処理してページをリロードする前にその文字列をデコードする方法があるかどうかを知りたいです。
これがプラグインまたはテーマのfunctions.phpファイルに入れることのできる回避策です。これまでのところ問題ありません。
/*
* Workaround Bug 30123
* Affects WP 4.0+, should be fixed in WP 4.1
* https://core.trac.wordpress.org/ticket/30123
*/
function bugfix30123__action__admin_init() {
if ( isset( $_GET['attachment-filter'] ) && is_string( $_GET['attachment-filter'] ) ) {
$_GET['attachment-filter'] = $_REQUEST['attachment-filter'] = str_replace( '%2F', '/', $_GET['attachment-filter'] );
}
}
add_action( 'admin_init', 'bugfix30123__action__admin_init' );