web-dev-qa-db-fra.com

Comment autoriser l'ajout de champs personnalisés masqués à partir de wp-admin/post.php?

Je sais que l'utilisation d'un trait de soulignement devant un nom de champ personnalisé le masque pour l'affichage sur le front-end, par exemple. _custom_field_name. D'après mon expérience, WordPress empêche également d'ajouter un tel champ personnalisé au front-end.

Avant de commencer la spéléologie autour du noyau, je voulais demander: existe-t-il un moyen "facile" d'autoriser l'ajout de _custom_fields à partir de wp-admin/post.php?

La raison est la suivante: nous nous basons sur des champs personnalisés masqués, mais lors du dépannage de problèmes de production dans prod, il serait utile de pouvoir injecter certaines méta-messages cachés. Je ne suis pas fan de toucher la base de données de production à la main.

what i get

5
editor

J'ai trouvé le filtre suivant , ici déverrouillant toutes les métadonnées protégées:

add_filter( 'is_protected_meta', '__return_false' ); 

Ou il peut être ajusté:

add_filter( 'is_protected_meta', function( $protected, $meta_key, $meta_type )
{
    $allowed = array( '_edit_lock', '_test', '_wp_page_template' );
    if( in_array( $meta_key, $allowed ) )
        return false;

    return $protected;
}, 10, 3 );

Il permet d'afficher les métadonnées et d'en insérer de nouvelles (globalement ou avec précision).

11
brasofilo

Les champs personnalisés commençant par un trait de soulignement sont masqués de l'éditeur. C’est ainsi que d’autres méthodes peuvent y accéder, mais elles ne seront pas affichées en tant que "champs personnalisés". Par exemple, voici comment fonctionnent la plupart des plugins Custom Fields.

http://codex.wordpress.org/Function_Reference/add_post_meta#Hidden_Custom_Fields

Si vous souhaitez éviter cela, vous devriez pouvoir:

http://www.wpbeginner.com/wp-tutorials/how-to-show-hidden-custom-fields-in-wordpress/

1
GhostToast