web-dev-qa-db-ja.com

WordpressのメディアのMIMEタイプフィルタの問題4.0

'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'を '/'に戻すことはできますが、文字列を処理してページをリロードする前にその文字列をデコードする方法があるかどうかを知りたいです。

2
chris

これがプラグインまたはテーマの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' );
1
kitchin