web-dev-qa-db-fra.com

Ajouter une interface utilisateur d'options de site dans Sites multisites> page Infos

Je souhaite ajouter des méta-champs aux sites de mon réseau (une vignette et une catégorie, par exemple). Je sais comment faire cela en utilisant get / add / update_site_option , mais je me demande où je pourrais mettre l'interface utilisateur pour gérer ces méta-champs.

Le meilleur endroit serait dans la page Sites> Infos , juste après les attributs du site, mais je ne trouve aucun crochet à accrocher. Je peux ajouter ces champs dans l'onglet "Paramètres" du même écran, mais il faut beaucoup le faire défiler pour le trouver, et cela se mélange aux paramètres avancés.

Toute suggestion ?

3
Fabien Quatravaux

J'ai enfin trouvé un moyen d'ajouter plus de lignes au tableau Sites> Infos: My own option in the Sites > Infos table

C'est un peu moche, mais ça marche. J'utilise simplement l'action admin_footer pour ajouter un tas de code HTML à la fin de la page, puis jQuery pour la déplacer au bon endroit.

add_action('admin_footer', 'user16975_custom_options');
function user16975_custom_options(){
    global $pagenow;
    if( 'site-info.php' == $pagenow ) {
        ?><table><tr id="user16975_custom_options">
            <th scope="row">My own option</th>
            <td><input type="text"/></td>
        </tr></table>
        <script>jQuery(function($){
            $('.form-table tbody').append($('#user16975_custom_options'));
        });</script><?php
    }
}

La bonne partie est que dès que le hook sera disponible, je pourrai l’utiliser sans grands changements dans mon code.

3
Fabien Quatravaux

Tout d’abord - j’ai convenu, il n’existait pas de crochets spécifiques dans cette partie du noyau permettant de créer des champs de paramètres personnalisés à cet endroit. Mais de toute façon c'est possible.

WordPress a un crochet de filtre network_edit_site_nav_links qui permet de créer votre onglet personnalisé.

Mais pas de crochets pour la page pour le nouvel onglet, mais ce n'est pas un problème car vous pouvez obtenir le résultat avec une simple page d'options et un peu de code CSS.

Dans ce tutoriel, tout est décrit en étapes https://rudrastyh.com/wordpress-multisite/custom-tabs-with-options.html (Je pense que ce n'est pas une raison pour copier tout le code de cet endroit vers ce fil ).

1
Misha Rudrastyh

Le code de la page d'administration Informations sur le site est à l'adresse: http://core.trac.wordpress.org/browser/trunk/wp-admin/network/site-info.php

Malheureusement, il ne semble pas y avoir de crochets ou de filtres dans le code site-info.php.

Il semble que vous deviez créer votre propre page administrative - peut-être dans le menu wp-adminSettings/ - pour gérer votre code {$verb}_site_option.

0
Pat J