web-dev-qa-db-fra.com

Comment créer un plugin wordpress avec un élément de menu, etc.

J'ai lu des documents, visionné des vidéos, etc. sur la création d'un plugin Wordpress. J'ai appris à filtrer une publication, à ajouter du texte à une publication, à utiliser des conditions pour voir si la page est une publication unique à ne pas afficher de texte sur tout le site, etc.

La partie que je ne comprends pas, c'est comment créer un plugin, avec son propre élément de menu qui amènera l'utilisateur à ce plugin que je crée.

Disons par exemple que mon plugin devrait être une page blanche (avec en-tête Wordpress, pied de page, etc.) qui affiche simplement "Hello World! - Comment puis-je créer ce plugin très simple, sur sa propre page (pas visible sur tout le site) avec son propre bouton de menu qui amène l'utilisateur à ce plugin?

Est-ce que je crée un modèle et un élément de menu lié au modèle? Je suis tellement confus ... J'ai trouvé comment "Créer une page" dans la section admin, mais cela semble ne créer qu'un élément de menu qui correspond à une page vierge dans laquelle je peux ajouter du HTML.

Je n'arrive même pas à trouver des exemples de plug-ins où cela est fait, mais je pense qu'il serait relativement facile de créer un plug-in avec un élément de menu pour que les visiteurs sachent comment se rendre au plug-in.

Si je voulais créer un simple plugin pour que les visiteurs de mon Wordpress puissent cliquer sur un élément de menu appelé "Courses cyclistes" et être amené sur la page de mon plugin où ils peuvent voir le résultat de mon plugin, une liste des courses cyclistes dans ce cas, comment Est-ce que je pourrais accomplir cela? Est-ce que je crée un plugin simple, ou est-ce que je crée aussi un modèle?

S'il vous plaît, aidez-moi à localiser tous les exemples de plug-ins possibles où cela est accompli.

Merci

2
user1000665

Si vous voulez une page frontale, vous devrez en créer une avec le shortcode de votre plugin comme contenu. Ensuite, vous affichez la sortie de votre plugin à la place de ce shortcode:

/*
Plugin Name: WPSE67438 Page plugin
*/
class wpse67438_plugin {
    const PAGE_TITLE = 'WPSE67438'; //set the page title here.
    const SHORTCODE = 'WPSE67438'; //set custom shortcode here.

   function __construct() {
        register_activation_hook( __FILE__, array( $this, 'install' ) );
        add_shortcode( self::SHORTCODE, array( $this, 'display' ) );
    }

public function install() {
    if( ! get_option( 'wpse67438_install' ) ) {
        wp_insert_post( array( 
                    'post_type' => 'page',
                    'post_title' => self::PAGE_TITLE,
                    'post_content' => '[' . self::SHORTCODE . ']',
                    'post_status' => 'publish',
                    'post_author' => 1
                    )
                );
        update_option( 'wpse67438_install', 1 );
    }
}

public function display( $content ) {
    $my_plugin_output = "Hello World!"; //replace with plugin's output
    return $content . $my_plugin_output;
  }
 }

 new wpse67438_plugin();
3
Abdussamad

vous aurez besoin au minimum de quelques options de plug-in pour permettre aux utilisateurs de décider comment/où votre page de plug-in est consultée. Certains utilisateurs peuvent utiliser wp_list_pages pour afficher un menu, d'autres peuvent utiliser une instance wp_nav_menu pour activer la navigation. Dans ce cas, ils peuvent avoir plusieurs menus enregistrés. Il ne reste alors que dans un menu, ils le voudraient. cette réponse contient le code pour l'ajout automatique d'un élément de menu à un menu de navigation, mais il peut être préférable de simplement donner des instructions à l'utilisateur pour ajouter votre menu de plugin. article.

quant à la "page" elle-même, il y a quelques stratégies différentes que j'ai vues dans différents plugins:

  1. avoir un shortcode que les utilisateurs peuvent insérer dans une page pour afficher la sortie de votre plugin, comme la réponse d'Abdussamad.
  2. une autre version de ce qui précède crée une page lors de l'activation du plug-in, le contenu étant un shortcode. les utilisateurs ont ensuite la possibilité de déplacer le shortcode vers une autre page, de renommer la page, d’ajouter du contenu, etc.
  3. demandez à l'utilisateur de sélectionner une page via une option d'administrateur et filtre the_content sur cette page pour insérer la sortie de votre plugin.
  4. utilisez une règle de réécriture pour créer une "page virtuelle", comme cette réponse . cela ne s'intégrerait pas bien avec un thème, donc ne correspond probablement pas à vos critères.
1
Milo