1つの投稿タイプにYoast SEOメタボックスは必要ないので、remove_meta_box()で削除しました。 manage_edit-custom_post_columnsを使用して列を設定解除して、postテーブル内の不要な列を削除しましたが、ドロップダウンはまだ残っています。それを削除する方法はありますか?
もちろん、それはjQueryとはそれほど難しいことではありませんが、WPに組み込まれているフィルターや何かはあるのでしょうか。
これらの追加のドロップダウンはrestrict_manage_posts
アクションフックを介して追加されます。これはドロップダウン出力がフィルタ処理できないことを意味しますが、あなたはYoast SEOからフックされたアクションを削除することができます。
フィルタドロップダウンはWPSEO_Metabox
クラスのposts_filter_dropdown()
メソッドによって追加されます。優先度10でadmin_init
にフックされている、同じクラスのsetup_page_analysis()
メソッドに追加されています。
そのため、ドロップダウンが表示されないようにするために、そのアクションを削除します。そのためには、10を超える優先順位でadmin_init
にフックするだけです(Yoast SEOが既にadd_action()
を呼び出していることを確認するため)。 Yoast SEOはWPSEO_Metaboxクラスのインスタンスをグローバル変数$wpseo_metabox
に格納するので、簡単にアクセスできます。
add_action( 'admin_init', 'wpse151723_remove_yoast_seo_posts_filter', 20 );
function wpse151723_remove_yoast_seo_posts_filter() {
global $wpseo_metabox;
if ( $wpseo_metabox ) {
remove_action( 'restrict_manage_posts', array( $wpseo_metabox, 'posts_filter_dropdown' ) );
}
}
Yoast SEOのバージョンに対する更新された回答:7.0.2
これはWordPress管理者の投稿リスト編集ページからseoスコアフィルタと読みやすさフィルタの両方を削除します。
add_action( 'admin_init', 'bb_remove_yoast_seo_admin_filters', 20 );
function bb_remove_yoast_seo_admin_filters() {
global $wpseo_meta_columns ;
if ( $wpseo_meta_columns ) {
remove_action( 'restrict_manage_posts', array( $wpseo_meta_columns , 'posts_filter_dropdown' ) );
remove_action( 'restrict_manage_posts', array( $wpseo_meta_columns , 'posts_filter_dropdown_readability' ) );
}
}
読みやすさのドロップダウンも削除するには、上記の関数に次の行を追加します。
remove_action( 'restrict_manage_posts', array( $wpseo_meta_columns, 'posts_filter_dropdown_readability' ) );