La rédaction d'un plugin pour WordPress. Pour créer une configuration du plugin page (partie 4)
Table des matières de cours pour créer un plugin pour WordPress
Afficher la table des matières »
- Introduction, de l'information générale (écrire un plugin pour WordPress. Partie 1.)
- La Théorie générale (écrire un plugin pour WordPress. Partie 2.)
- Préparation à la création des paramètres de la page (écrire un plugin pour WordPress. Partie 3.)
- Pour créer une configuration du plugin page (écrire un plugin pour WordPress. Partie 4.)
- La composante fonctionnelle (écrire un plugin pour WordPress. Partie 5.)
- L'internationalisation et la russification (écrire un plugin pour WordPress. Partie 6.)
- Ajout au référentiel WordPress.org (écrire un plugin pour WordPress. la partie 7.)
- Fichier de code source pour WordPress Plugin
Créer la page des paramètres pour WordPress Plugin
Nous continuons la conversation sur la façon d'écrire un plugin pour WordPress.
Dans la dernière fois que nous avons discuté de pré-configurer le plugin wordpress, et maintenant essayer d'écrire à la page d'administration. Pour un début donnera la possibilité de créer la page, et ensuite se concentrer sur certains points en détail. En principe, l'information de base a été donnée dans une partie précédente du tutoriel, voici le code assez simple avec des commentaires.
Fonction permettant de créer une page des paramètres pour le plugin WordPress
Une 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 | myplugin_options_page function () {/ / Fonction pour créer et le traitement de plug-in page des paramètres mondiale wpdb $, $ myplugin_prefs_table; $ Myplugin_options = array (/ / Créer un tableau de Plug-In Settings 'Myplug_modify_title', 'Myplug_modify_content', ); $ Cmd = $ _POST ['cmd']; / / entrée de l'utilisateur Processus foreach ($ myplugin_options que myplugin_opt $) { $ $ Myplugin_opt = get_option (myplugin_opt $); } if ($ cmd == "del_prefs") {/ / Si elle est pressée "de supprimer le membre de phrase" - nettoyer les paramètres de la table, le plug-in $ Sql = "TRUNCATE TABLE $ myplugin_prefs_table"; $ Wpdb-> query ($ sql); ?> __ ( 'All phrases are removed from the database' , 'example_plugin' ) ; ?> </strong></p></div> /* Сообщаем пользвателю об успешной очистке. <div class="updated"> <p> <php echo __ ('Toutes les phrases sont supprimées de la base de données', 'example_plugin');?> </ strong> </ p> </ div> / * Nous rapportons le polzvatelyu la réussite du traitement. * / <? Php } $cmd == "add_prefs" && $_POST [ 'prefs_base' ] ) { //Если введены новые фразы в соотв. if ($ cmd == "" && add_prefs $ _POST ['prefs_base']) {/ / Si une nouvelle phrase est entré dans l'ACC. domaine - les traitera explode ( " \n " , $_POST [ 'prefs_base' ] ) ; //Ввод разбивается на строки и кладётся в массив, разделитель - перевод строки $ Lignes = explode ("\ n", $ _POST ['prefs_base']); / / entrée est divisé en rangées et placés dans un tableau, séparateur - ligne $lines as $line ) { //Перебираем массив со строками foreach ($ lignes as $ ligne) {/ / parcourir un tableau de chaînes trim ( $line ) ; //Обрезка каждой строки от переводов $ Ligne = trim ($ ligne); / / Couper chaque ligne des transferts ! $line ) continue ; //Если строка отстутствует - переходим к следующей итерации if ($ ligne!) continue; / / Si la ligne Out Date - aller à la prochaine itération $title , $body ) = explode ( "|" , $line ) ; //Разделение строки на две подстроки list ($ titre, $ corps) = explode ("|", $ ligne); / / Scinder une chaîne en deux chaînes / / Mettez une sous-chaîne dans le plugin table. "INSERT INTO $myplugin_prefs_table (title, body) VALUES(' $title ',' $body ')" ; $ Sql = "INSERT INTO $ VALEURS myplugin_prefs_table (titre, corps) ('$ titre', '$ corps')"; query ( $sql ) ; $ Wpdb -> query ($ sql); } ?> __ ( 'Phrases added to the database' , 'example_plugin' ) ; ?> </strong></p></div> /*Сообщаем пользователю об успешной обработке*/ <div class="updated"> <p> <php echo __ ('Phrases ajouté à la base de données', 'example_plugin');?> </ strong> </ p> </ div> / * Nous rapportons l'utilisateur au sujet de la manipulation réussie * / <? Php } $cmd == "myplugin_save_opt" ) { //Обработка нажатия "Сохранить настройки" if ($ cmd == "myplugin_save_opt") {/ / Traitement de cliquer sur "Enregistrer les paramètres" $myplugin_options as $myplugin_opt ) { //Перебор массива с настройками foreach ($ myplugin_options que myplugin_opt $) {/ / Itérer la configuration du réseau $_POST [ $myplugin_opt ] ; //Каждому элементу массива присваиваем введённое пользователем занчение $ $ Myplugin_opt = $ _POST [$ myplugin_opt]; / / attribuer à chaque élément du tableau est entré par la zanchenie utilisateur } $myplugin_options as $myplugin_opt ) { //Обновляем настройки плагина в таблице настроек wordpress foreach ($ myplugin_options que myplugin_opt $) {/ / Mettre à jour les paramètres du plugin dans le tableau des paramètres wordpress , $$myplugin_opt ) ; update_option (myplugin_opt $, $ $ myplugin_opt); } ?> __ ( 'Settings saved' , 'example_plugin' ) ; ?> </strong></p></div> <div class="updated"> <p> <php echo __ ('Paramètres sauvegardés', 'example_plugin');?> </ strong> </ p> </ div> <? Php } ?> <div class="wrap"> <h2> mon plugin </ h2> / plugin Titre * Page paramètres * / __ ( 'Settings' , 'example_plugin' ) ; ?> </h3> /*Название раздела настроек*/ <h3> <php echo __ ('Settings', 'example_plugin');?> </ h3> / * Le nom des réglages de la section * / / * Début des options de traitement pour la forme. Le formulaire contient deux cases à cocher, activer ou désactiver le plug-in approprié la fonction * / $_SERVER [ 'REQUEST_URI' ] ; ?> "> <Méthode formulaire = "post" action = "<echo $ _SERVER ['REQUEST_URI'];?>"> <table class="form-table"> <tr> <th colspan=2 scope="row"> / * La première case - gérera le plug-in d'enregistrement en-tête * / ( $myplug_modify_title ) echo "checked" ; ?> > <?php echo __ ( 'Add random phrase to post title' , 'example_plugin' ) ; ?> Saisissez le nom <= "myplug_modify_title" type = "checkbox" <Si ($ myplug_modify_title) echo "checked";? >> <Php echo __ ('Ajouter phrase aléatoire pour poster title', 'example_plugin');?> </ Th> </ Tr> <tr> <th colspan=2 scope="row"> / * La seconde case - si le plug-in pour gérer le corps des dossiers * / ( $myplug_modify_content ) echo "checked" ; ?> > <?php echo __ ( 'Add random phrase to post content' , 'example_plugin' ) ; ?> Saisissez le nom <= "myplug_modify_content" type = "checkbox" <Si ($ myplug_modify_content) echo "checked";? >> <Php echo __ ('Ajouter phrase aléatoire pour afficher du contenu', 'example_plugin');?> </ Th> </ Tr> </ Table> <input type="hidden" name="cmd" value="myplugin_save_opt"> / * "fonctionnelle" de la bouton Enregistrer les paramètres * / <p class="submit"> 'Save Changes' ) ?> " /> /*Вывод кнопки сохранения настроек в браузер. <Input type = "submit" name = "Submit" value = "<? Php _e ('Save Changes')?>" /> / * Sortie le bouton pour enregistrer votre navigateur. Fonctionnalité standard Wordpress * / </ P> </ Form> / * Fin des options de traitement de formulaires * / / * Affichage des informations sur le plugin. Par exemple - qui a travaillé * / __ ( 'Plugin developed' , 'example_plugin' ) ; ?> </h3> <h3> <php echo __ ('plug-in développé »,« example_plugin');?> </ h3> <table class="form-table"> <tr> <th> <ul> __ ( 'By: <a href="http://www.dimio.org/" target="_blank">dimio</a>' , 'example_plugin' ) ; ?> </li> <li> <php echo __ ('Par: <a href="http://www.dimio.org/" target="_blank"> dimio </ a>', 'example_plugin');?> </ li> </ Ul> </ Th> </ tr> </ table> / * Bloquez l'introduction de nouvelles phrases dans les paramètres de la table, le plug-in. Le premier est la référence pour l'utilisateur * / __ ( 'Adding phrases' , 'example_plugin' ) ; ?> </h3> <h3> <php echo __ ('phrases Ajout »,« example_plugin');?> </ h3> / * Début du formulaire de saisie. Le formulaire contient un champ de texte pour entrer une largeur de 80 caractères et d'une hauteur de 12 lignes * / <table class="form-table" width="300px"> <tr> <td> __ ( 'Format phrases: Title|Body' , 'example_plugin' ) ; ?> <br /> <Php echo __ ('phrases Format: Titre | corps »,« example_plugin');?> <br /> $_SERVER [ 'REQUEST_URI' ] ; ?> "> <Méthode formulaire = "post" action = "<echo $ _SERVER ['REQUEST_URI'];?>"> <textarea cols=80 rows=12 name="prefs_base"> </ textarea> / * Champ pour entrer une nouvelle phrase * / </ Td> </ Tr> </ Table> / * Le bouton pour enregistrer les phrases. Par analogie avec le bouton enregistrer les paramètres, mais sans l'utilisation d'un piano standard, et Wordpress * / <input type="hidden" name="cmd" value="add_prefs"> <p class="submit"> __ ( 'Add phrases' , 'example_plugin' ) ; ?> " /> <Input type = "submit" name = "Submit" value = "<php echo __ ('Ajouter', phrases 'example_plugin');?>" /> </ P> </ Form> / * Le formulaire contient un seul bouton - nettoyer le plugin table de paramètres * / $_SERVER [ 'REQUEST_URI' ] ; ?> "> <Méthode formulaire = "post" action = "<echo $ _SERVER ['REQUEST_URI'];?>"> <input type="hidden" name="cmd" value="del_prefs"> __ ( 'Remove all phrases from the database' , 'example_plugin' ) ; ?> " /> <Input type = "submit" name = "Submit" value = "<php echo __ ('Supprimer toutes les phrases de la base de données', 'example_plugin');?>" /> </ Form> </ Div> <? Php / / Fin des fonctions de création et de la transformation de la page des paramètres. } ?> |
J'ai essayé de commenter dans le code tous les points clés pour la compréhension, en tout cas, il est une valeur d'environ lecture HTML et CGI-programmation en général. Bien qu'en principe - tout est intuitif, et le cas échéant d'ajouter de nouveaux éléments à la page des paramètres - s'il vous plaît, au moins - me dire dans quelle direction à creuser.
Dans le prochain numéro je vais examiner la partie fonctionnelle du plug-in pour WordPress. Je vais vous dire comment écrire quelques fonctions plug-in pour recevoir des données à partir de la base de données et la modification de wordpress-publication.
'Add phrases' , 'example_plugin' ) ; ?> – это как раз задел для будущего грамотного перевода (фактически – интернационализации) плагина). Laissez-nous le plugin russification puis (qui aurait pris soin de prêter attention aux défis de la forme <?php echo __ ( 'Add phrases' , 'example_plugin' ) ; ?> - c'est juste les bases d'un futur transfert de l'alphabétisation (en fait - l'internationalisation) plug-in).
Et enfin - vous montrera la façon de soumettre votre plugin pour la publication de vérification et de la suite dans le référentiel sur WordPress wordpress.org.
Ne manquez pas! ![]()
PS Il est encore disponible pour télécharger le fichier plugin est déjà mis à jour.
Plus d'informations sur des sujets similaires:
Filed under: SEO , blogs , Codage |
Tags: Comment-à , plug-in , WordPress , Blog , programmation , promotion | Les
11 commentaires 

En général, la description froide. Mais continuons à recommander l'utilisation de l'une des «cas» - ou la construction de "si ... ifelse ... else"
Pourquoi pas? Eh bien, purement à saisir.
Il est clair que vous avez un processus variable $ cmd est - mais vous savez, être plus clair si tous ces traitements sera une entité unique plutôt qu'en termes individuels. Soit dit en passant là encore, il ya une chose: la performance
Parce que dans votre cas, le code de barybyr (encore) va vérifier toutes les conditions. Mais en appliquant la conception proposée du code pour atteindre le résultat souhaité, il suffit de cesser de la recherche en outre de la conformité. Cette réduction du temps de CPU. Un autre point positif. Cette lisibilité. Quand vous regardez le cas de conception ou de "si ... ifelse ... else" vous savez qu'il s'agit d'un traitement commun, puis sur ou. Et vous pouvez marquer un lieu commun de ce bloc à l'endroit voulu
Désolé pour le texte un peu vague dire jamais normalement ne pouvait pas.
L'idée est claire dans son principe. Réécrite sous la forme d'if {} {} elsif sera raisonnable.
Afin de réduire le temps CPU nécessaire pour parcourir les options pour créer la séquence la plus probable, et non pas, sous leur forme actuelle.
Y compris.
Eh bien, vous avez vraiment zhzhosh! Tellement de code, mais toujours pas d'explication décente!
Alors que 3 + est le maximum
Astuce: Vous écrivez que les gens puissent comprendre et intéressant, non seulement vous, cher auteur!
En vain. Je suis d'accord que le code n'est pas le meilleur - mais les commentaires sont très clairs.
Eh bien, ce n'est pas si mauvais code, non! Juste une fois qu'il est allé trop vite, comme on dit, pas de préliminaires
. Nous avons dû en quelque sorte partager des messages précédents cette information pour égaliser la bouilloire (dont je ne suis pas), il était clair du tout. Mais j'ai des questions et des enjeux ...
Bien sûr, seul l'auteur au début d'un bordereau de ce qu'il avait appris php c'est à cause de l'envie d'écrire un plugin. A mon humble avis pour le programmeur inexpérimenté - aucun article.
Avez-totalité des exemples pour créer la page. J'ai décidé de vérifier. Lorsque vous activez le plug-in message d'erreur: "Plugin produite par l'activation de 292 caractères conclusion inattendue. ... "
Notepad + +, UTF-8 sans BOM
WP 3.1.1
3.1.1 je n'ai pas. Dernière chose vérifié - 2.9.2.
Dans le processus de rédaction de ces notes que j'ai fait un plugin que j'ai travaille actuellement sur la version 3.1. ( .) Vous pouvez comparer avec lui, il ya une erreur ou non.
C'est beaucoup plus facile. CR LF après?>
Doit être soigneusement