bonne approche pour le style / modèle de sortie du plugin

4

Je crée un plug-in qui doit afficher des éléments sur le front-end du site. J'ai essayé de garder l'apparence par défaut aussi propre que possible, mais j'aimerais également faciliter la modification par les utilisateurs.

Mon idée est d'inclure la possibilité de charger une feuille de style personnalisée au lieu de celle par défaut, si l'utilisateur crée une feuille de style avec un nom particulier dans son thème. Des pointeurs sur la manière de construire cette fonctionnalité?

Dans le cas plus extrême où l'utilisateur souhaite modifier complètement le code HTML / PHP utilisé pour la sortie, j'ai créé une action et attaché ma fonction d'affichage à cette action. De cette manière, un utilisateur est en mesure de détacher ma fonction d’affichage par défaut et d’attacher sa fonction d’affichage personnalisée via le hook disponible.

Est-ce la bonne approche pour y parvenir?

    
posée urok93 17.02.2013 - 18:01

1 réponse

6

Faites-le aussi simple que possible pour les développeurs de thèmes. La plupart ne sont pas des programmeurs. Il existe deux options très simples:

add_theme_support () et get_theme_support ()

Fournissez un identifiant et quelques options. Disons que votre identifiant est drtanz_plugin . Un auteur de thème peut maintenant ajouter ce qui suit au functions.php de son thème:

add_action( 'after_setup_theme', 'prefix_register_theme_support' );

function prefix_register_theme_support()
{
    add_theme_support(
        'drtanz_plugin',
        array (
            'template'   => get_template_directory() . '/templates/drtanz_plugin.php',
            'stylesheet' => FALSE
        )
    );
}

Dans votre plugin, vous pouvez vérifier le support du thème maintenant:

$plugin_options = array (
    'template'      => get_template_directory() . '/templates/drtanz_plugin.php',
    'stylesheet'    => plugins_url( 'default.css', __FILE__ ),
    'show_comments' => TRUE
);

if ( $theme_options = get_theme_support( 'drtanz_plugin' ) )
    $plugin_options = array_merge( $plugin_options, $theme_options );

L'auteur du thème n'a pas modifié le paramètre show_comments . Vous utilisez donc le paramètre par défaut.

Pro: facile à étendre, vraiment puissant.
Con: Peut-être déjà trop difficile pour certaines personnes.

Utilisez Locate_template ()

Je l'ai fait dans mon plug-in Aperçu de numérotation abrégée T5 Opera . Il suffit de vérifier s’il existe un modèle avec un prénom donné dans le thème et d’obtenir le chemin. Si aucun modèle n'a été trouvé, utilisez le vôtre.

$template = 'speed-dial.php';
$path     = locate_template( array ( $template ) );

if ( '' != $path and file_exists( $path ) )
    require $path;
else
    require dirname( __FILE__ ) . "/$template";

Pro: facile à apprendre. Assurez-vous simplement que le nom que vous utilisez est unique. Vous pourrez ajouter *_theme_support de fonctionnalités ultérieurement si vous en avez besoin.
Con: C'est vraiment juste le modèle, pas de fonctionnalités supplémentaires. Et vous ne pouvez pas changer le nom du modèle plus tard, car cela casserait des choses.

Vous pouvez combiner les deux approches, mais je n’en utiliserais qu’une. Il est plus facile d'apprendre.

    
réponse donnée fuxia 17.03.2013 - 05:03

Lire d'autres questions sur les étiquettes