web-dev-qa-db-fra.com

Comment rendre mon plugin indépendant du thème?

J'ai besoin d'un peu d'aide et/ou de conseil pour mes prochaines étapes. (Je suis un débutant!)

J'ai travaillé sur mon plug-in, en utilisant un type de message personnalisé "Projet", une aide du plug-in "Champs personnalisés avancés" - et maintenant j'ai réussi dans la fonctionnalité générale. Regardez les images ici et http://www.project22.org/project/ pour voir la fonctionnalité. J'admets qu'il existe peut-être des plugins faisant quelque chose de similaire, mais je ne suis pas encore assez avancé pour comprendre et adapter leur code à mes besoins spécifiques; (.

J'ai travaillé dans un thème enfant de Twentytwelve et avais besoin de travailler avec des fichiers modèles, par exemple. J'ai créé single-project.php et project_loop.php à utiliser avec get_template_part ().

Problème:

  • Je ne suis plus si content de Twentytwelve - je voudrais garder une certaine souplesse pour changer de thème.
  • Peut-être qu'un jour je veux partager mon plugin avec quelqu'un, qui sait?

Alors maintenant, mon objectif est de déplacer toutes les parties de la fonctionnalité dans un plugin ...

Des questions:

  • Comment puis-je afficher ces petites informations liées à divers messages sur n'importe quel thème? Je ne pouvais pas trouver les crochets ni les filtres appropriés.
  • Comment puis-je éviter de créer des fichiers de gabarit de thème, qui pourraient par la suite bousiller de nouveaux thèmes?

Je suis vraiment confus, où je devrais utiliser [] -Shortcodes, créer des fichiers de modèle ou des extraits, où je peux m'accrocher ou filtrer.

J'apprécie vos conseils, merci Flo

1
Flow

Shortcode est certainement un bon début. Il est très flexible quant à l'endroit où vous exportez le contenu (widget, publication, page, dans la fonction php, etc.).

Vous pouvez également remplacer facilement la sortie du modèle en utilisant des crochets d'action et un type de publication personnalisé que vous créez:

add_action('the_content', 'add_project_content');

function add_project_content($content) {
    // Only override the content of project custom post type page
    if (is_singular('project')) {
        // You can re-use original content stored in $content and simply add things before and after, or you can simply override them with something new
        $content = "whatever you want";
        $content .= somefunction_output();
    };

    return $content;
}

Cela vous évitera d'avoir à traiter des fichiers de modèles et de vous inquiéter des modifications correspondantes apportées aux mises à jour de thèmes. Avec ces méthodes, je peux créer des fichiers modèles supplémentaires dans mon dossier de thèmes enfants.

2
Elisha Terada