¿Cómo ocultar campos personalizados añadidos por un plugin?

Quiero ocultar campos personalizados innecesarios añadidos por el plugin 'todo en uno seo' a la pantalla editar el Post. Para ello he añadido el siguiente código a functions.php:
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 );
Pero esto no funciona como se esperaba. El
$id
parámetros dados a
remove_meta_box
las funciones anteriores son tomadas de atributos de identificación de los elementos div html de los correspondientes campos personalizados.

Por ejemplo:
<div id="aiosp_keywords_wrapper" class="aioseop_wrapper aioseop_text_type">
<div class="aioseop_input">
...
</div>
Actualizar siguiendo el instructions por bueltge, aquí está una solución utilizando jquery: poner la siguiente función en 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 );
Aquí está el archivo 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 );
( 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 );
.



Solución

Creo que el plugin crear esta meta cajas refiltrado no con el WordPress funciones básicas, como
add_meta_box
. Por esta razón, que no puede ocultar esta cajas con
remove_meta_box
. El marcado es difícil codificado en los archivos del plugin y no como parte de la API de WordPress.

Pero fácilmente puede ocultar mediante javascript. En el back-end de WordPress está siempre activo la biblioteca jQuery y es fácil de añadir una oferta un poco en el pie de la página de origen, hay cajas de esta meta y ocultar con la función de jQuery remove().

Creo que es una buena idea que agrega la fuente solamente en la página, hay cajas de esta meta. Esto es posible a través de gancho
remove()
y verifique que el derecho current screen, como editar el post es
admin_footer
como
post
.

Alternativa es el plugin 'Adminimize', que le dan una opción y también la posibilidad de crear la opción personalizada para ocultar áreas..





Problemas relacionados

Fuerza ocultar campo personalizado metaboxes

Número de campos personalizados

MF2 y qTranslate problema con custom post tipos post títulos

¿La lógica condicional sólo funciona para mostrar u ocultar?

¿Cómo establecer orden para campo de formulario adjunto?

Mostrar campos comentario personalizados al editar en admin

Edición importada avanzada campos personalizados de wordpress Dashboard

Cómo ocultar campos de mis perfiles de usuario

No publicar\/actualizar un post cuando un plugin encuentra errores en campos personalizados

campos personalizados plugin lista Categoría post

¿Cómo ocultar completamente la Visual y un Editor Html?

¿Es posible utilizar get_post_meta() para control HTML?

Source: Stack Exchange Inc; License: cc by-sa 3.0 Contacto / Contact