La sortie de la fonction add_settings_field()
de l'API de configuration est la suivante:
<tr>
<th scope="row">Your title</th>
<td> Your field output </td>
</tr>
Je sais que je ne peux pas changer la façon dont cela est produit, mais je me demandais s'il était possible de mettre un display:none;
sur le <tr>
avec PHP? Je ne veux pas le faire avec Javascript car il y a alors un flash de contenu non-stylé.
En gros, je veux un moyen de masquer une ligne générée via add_settings_field()
, car j'en ai besoin sur le front-end - mais plus tard dans mon flux.
Vous pouvez le cacher en utilisant jQuery qui sera inséré dans l'en-tête wp-admin
:
add_action( 'admin_head', 'wpse_239421_hide_section' );
function wpse_239421_hide_section() {
?>
<script type="text/javascript">
jQuery(document).ready(function($) {
$('[scope=row]').closest('tr').hide();
} );
</script>
<?php
}
Cela supprimera les bases tr
du placard sur le scope=row
.
Le sixième paramètre ($args
) de la fonction add_settings_field
peut contenir une valeur class
qui sera ajoutée au <tr>
.
Vous pouvez l'utiliser avec la classe d'admin css intégrée .hidden
add_settings_field(
'field_id',
'Useless Field Label',
'render_hidden_field_function',
'some_settings_page',
'a_section_slug',
[
'class' => 'hidden'
]
);
jQuery(document).ready(function(){
jQuery('.my_add_settings_field_class').find('[scope=row]').hide();
});