Wie können benutzerdefinierte Felder, die von einem Plugin hinzugefügt wurden, ausgeblendet werden?

Ich möchte unnötige benutzerdefinierte Felder, die vom Plugin “Alle in einem Seo” hinzugefügt wurden, im Post Edit-Bildschirm ausblenden. Dazu habe ich functions.php den folgenden Code hinzugefügt:

function my_remove_meta_boxes() { remove_meta_box('aiosp_noindex_wrapper', 'post', 'normal'); remove_meta_box('aiosp_nofollow_wrapper', 'post', 'normal'); remove_meta_box('aiosp_noodp_wrapper', 'post', 'normal'); remove_meta_box('aiosp_noydir_wrapper', 'post', 'normal'); remove_meta_box('aiosp_disable_wrapper', 'post', 'normal'); remove_meta_box('aiosp_disable_analytics_wrapper','post', 'normal'); } add_action( 'add_meta_boxes_post', 'my_remove_meta_boxes', 10, 2 ); 

Aber das funktioniert nicht wie erwartet. Die $id Parameter, die den remove_meta_box functionen übergeben werden, werden den ID-Attributen der html-div-Elemente der entsprechenden benutzerdefinierten Felder entnommen. Beispielsweise:

 
...

Aktualisieren

Befolgen Sie die statementen von bueltge, hier ist eine Lösung mit jquery:

Setzen Sie die folgende function in functions.php:

 function remove_all_in_one_seo_fields() { $screen = get_current_screen(); if ( $screen->parent_file != "edit.php" ) return; wp_enqueue_script( 'custom', get_template_directory_uri() . '/js/custom.js', array(), null, true ); } add_action( 'admin_footer', 'remove_all_in_one_seo_fields', 10, 2 ); 

Hier ist die Datei js / custom.js:

 ( function( $ ) { // hide "all in one seo" fields ( function() { $('#aiosp_noindex_wrapper').remove(); $('#aiosp_nofollow_wrapper').remove(); $('#aiosp_noodp_wrapper').remove(); $('#aiosp_noydir_wrapper').remove(); $('#aiosp_disable_wrapper').remove(); $('#aiosp_disable_analytics_wrapper').remove(); } )(); })( jQuery ); 

Solutions Collecting From Web of "Wie können benutzerdefinierte Felder, die von einem Plugin hinzugefügt wurden, ausgeblendet werden?"

Ich denke, dass das Plugin diese Metaboxen dynamisch nicht mit den WordPress Core functionen erstellt, wie add_meta_box . Dies ist der Grund, dass Sie diese Boxen nicht mit remove_meta_box . Das Markup ist in den Plugin-Dateien fest codiert und kein Bestandteil der WordPress-API.

Aber einfach können Sie sich über Javascript verstecken. Im Backend von WordPress ist immer die Bibliothek jQuery aktiv und es ist einfach eine kleine Gebotsquelle in der Fußzeile der Seite hinzuzufügen, dort haben diese Meta-Felder und verstecken sich mit der jQuery-function remove() . Ich denke, es ist eine gute Idee, dass Sie die Quelle nur auf der Seite hinzufügen, da diese Meta-Boxen haben. Dies ist möglich über hook admin_footer und überprüfen Sie für den richtigen aktuellen Bildschirm , wie auf bearbeiten Post ist es als $screen->id post .

Alternative ist das Plugin “Adminimize”, das eine Option und auch die Möglichkeit bietet, benutzerdefinierte Optionen zum Ausblenden von Bereichen zu erstellen.