Les options sont les données les plus importantes dans WordPress, elles stockent divers paramètres de configuration (voir plus). Elles sont également contenues dans la base de données, à l'instar d'autres données importantes telles que des publications, des pages, etc. Jour après jour, ces options peuvent être modifiées par WordPress lui-même ou par les utilisateurs. Alors, comment les restaurer à un état antérieur sans mémoriser chaque valeur exacte?
Dans ce tutoriel, je vais vous montrer comment créer une simple fonctionnalité de sauvegarde / restauration pour votre blog WordPress. Avec cette fonctionnalité, vous pouvez sauvegarder toutes les options à un autre endroit, à partir duquel vous pouvez les restaurer à tout moment sans les configurer à nouveau..
En général, notre fonctionnalité aura deux sections, l’une est une section Export pour la sauvegarde des données et une section Import pour la restauration des données. Je vais donc les démontrer en créant un simple plugin.
Tout d'abord, je dois écrire quelques lignes pour informer WordPress de notre plugin.
/ * Nom du plug-in: URI du plug-in d'option I / E: http://wp.tutsplus.com/ Description: Ceci est un exemple de plug-in avec la fonctionnalité d'options de sauvegarde et de restauration. Auteur: Lee Pham Version: 1.0 URI de l'auteur: http://twitter.com/leephamj * /
Et voici notre résultat:
Nous avons maintenant besoin d’un emplacement pour insérer notre interface de plug-in. Elle présente deux fonctionnalités clés mentionnées ci-dessus (dont les fonctionnalités d’importation et d’exportation). Je génère donc une page dans la section admin:
function register_ie_option () add_menu_page ('IE Option Page', 'IE Option', 'activate_plugins', 'ie-option', 'ie_option_page', ", 76); add_submenu_page ('ie-option', 'Importer', ' Import ',' activate_plugins ',' ie-import-option ',' ie_import_option_page '); add_submenu_page (' ie-option ',' Export ',' Export ',' activate_plugins ',' ie-export-option ',' ie_export_option_page '); function ie_option_page () // Nous sommes ici function ie_import_option_page () // Fonction d'importation de contenu function ie_export_option_page () // Fonction d'exportation de contenu add_action (' admin_menu ',' register_ie_option ');
Voici quelques points:
add_menu_page
comme fonction WordPress intégrée pour ajouter une nouvelle section de menu de niveau supérieur dans la barre latérale du menu ie_option_page
paramètre est la fonction de rappel pour la sortie du contenu de la page.add_submenu_page
pour les ajouter au menu de niveau supérieur que nous venons de créer ci-dessus. Comme vous le voyez, chaque fonction possède également une fonction de rappel permettant d’afficher le contenu de sortie comme le add_menu_page
la fonction fait. Peu importe si vous les fusionnez en un seul endroit, j'essaie juste de rester clair.register_ie_option
sur la admin_menu
action afin de déclencher notre objectif chaque fois que cette action est appelée.Je prévois de créer une page d'exportation comme celle-ci:
fonction ie_export_option_page () if (! isset ($ _ POST ['exportation'])) ?>Exportation
Quand vous cliquez Sauvegarder toutes les options bouton, le système générera un fichier JSON que vous pourrez sauvegarder sur votre ordinateur.
Ce fichier de sauvegarde contient toutes les options de configuration et de configuration de notre site Web. Notez que ça le fait NE PAS contient des articles, des pages ou des données pertinentes, uniquement toutes vos options.
Après l'exportation, vous pouvez utiliser le fichier de sauvegarde pour restaurer vos paramètres sur ce site ou un autre site WordPress..
Nous créons simplement un formulaire avec un bouton et vérifions si le bouton est cliqué ou non. De plus, nous ajoutons du texte d’instruction en utilisant une classe CSS WordPress disponible. Pour faire un contrôle de sécurité, j'utilise un
wp_nonce_field ()
et lecheck_admin_referer ()
fonction, en savoir plus sur WordPress Nonces.Nommer le nom de fichier à générer
$ blogname = str_replace ("", "", get_option ('blogname')); $ date = date ("m-d-Y"); $ json_name = $ blogname. "-". $ date;Nommez simplement le fichier pour pouvoir facilement voir où et quand il a été exporté.
Obtenir des options de sauvegarde et encoder des données JSON
$ options = get_alloptions (); foreach ($ options en tant que $ key => $ value) $ value = Maybe_unserialize ($ value); $ need_options [$ key] = $ valeur; $ json_file = json_encode ($ need_options);Voici l'étape importante, faisons attention:
get_alloptions ()
est une fonction qui récupère toutes les options de votre site et les renvoie sous forme de tableau, $ options
dans ce cas.json_encode
nous aide à atteindre cet objectif.ob_clean (); echo $ json_file; en-tête ("Content-Type: text / json; charset =". get_option ('blog_charset')); en-tête ("Content-Disposition: attachment; nomfichier = $ nom_json.json"); sortie();
Ensuite, nous intégrons le contenu de nos données JSON dans deux fonctions importantes., ob_clean ()
et sortie()
pour nous assurer que notre fichier JSON généré ne contient que des données JSON qui json_file
détient sans aucune autre donnée. À propos, nous envoyons une demande d’en-tête au client qui affiche une boîte de dialogue de téléchargement. Pour que cela fonctionne correctement, nous devrions mettre le ob_start ()
fonctionne en haut de notre code de plugin, cela évite les erreurs d’en-tête, peut-être qu’il existe des espaces ou des lignes supplémentaires quelque part dans le code WordPress qui pourraient causer ce problème..
"JSON (JavaScript Object Notation) est un format léger d'échange de données. Il est facile à lire et à écrire pour les utilisateurs. Il est facile à analyser et à générer par les machines."
Donc, voici le code de fonction d'exportation complet:
fonction ie_export_option_page () if (! isset ($ _ POST ['exportation'])) ?>$ valeur) $ valeur = Maybe_unserialize ($ valeur); $ need_options [$ key] = $ valeur; $ json_file = json_encode ($ need_options); // Encode les données dans les données json ob_clean (); echo $ json_file; en-tête ("Content-Type: text / json; charset =". get_option ('blog_charset')); en-tête ("Content-Disposition: attachment; nomfichier = $ nom_json.json"); sortie();Exportation
Quand vous cliquez Sauvegarder toutes les options bouton, le système générera un fichier JSON que vous pourrez sauvegarder sur votre ordinateur.
Ce fichier de sauvegarde contient toutes les options de configuration et de configuration de notre site Web. Notez que ça le fait NE PAS contient des articles, des pages ou des données pertinentes, uniquement toutes vos options.
Après l'exportation, vous pouvez utiliser le fichier de sauvegarde pour restaurer vos paramètres sur ce site ou un autre site WordPress..
La tâche de cette page est assez simple, elle affiche un formulaire de téléchargement et analyse les données du fichier JSON pour sauvegarder nos options..
fonction ie_import_option_page () ?>Importation
Cliquez sur le bouton Parcourir et choisissez un fichier json que vous sauvegardez avant.
Appuyez sur le bouton de restauration, WordPress fait le reste pour vous.
Comme pour la page d'exportation, nous créons un formulaire, mais cette fois-ci, nous ajoutons un bouton Parcourir afin que l'utilisateur puisse choisir le fichier qu'il souhaite et l'envoyer..
Validation et mise à jour du fichier JSON
if (isset ($ _ FILES ["import"])) if ($ _FILES ["import"] ["erreur"]> 0) wp_die ("Une erreur se produit"); else $ nom_fichier = $ _FILES ['import'] ['nom']; $ file_ext = strtolower (end (explode (".", $ nom_fichier))); $ file_size = $ _FILES ['import'] ['size']; if (($ file_ext == "json") && ($ file_size < 500000)) $encode_options = file_get_contents($_FILES['import']['tmp_name']); $options = json_decode($encode_options, true); foreach ($options as $key => $ valeur) update_option ($ key, $ valeur); écho ""; else echo"Toutes les options sont restaurées avec succès.
";Fichier non valide ou taille de fichier trop grande.
Si le processus de téléchargement génère des erreurs, il suffit de renvoyer le message "Une erreur est survenue". Sinon, obtenez l'extension et la taille du fichier, stockez-les dans des variables et vérifiez-les. Nous n'acceptons que les fichiers ayant l'extension ".json" et une taille inférieure à 500 000 octets. Si le fichier ne convient pas, affichez simplement le message d'erreur "Fichier ou taille de fichier non valide trop volumineux".. Remarque: Vous pouvez modifier cette taille selon vos besoins.
Puis le
$ encode_options
variable obtiendra tout le contenu de ce fichier. Comme le fichier contient des données JSON, nous devons d’abord le décoder avant de l’utiliser. Pour ce faire, nous utilisonsjson_decode
avec un deuxième paramètre qui a une valeur vraie, cette fonction renvoie donc une valeur de tableau. Avec une valeur de tableau, nous commençons à le parcourir en boucle. À chaque itération, nous mettrons à jour les données avec la même clé et sa valeur. En fin de compte, toutes nos options seront restaurées exactement comme elles étaient, et un message réussi sera affiché..Et voici le code de fonction d'importation complet:
fonction ie_import_option_page () ?>Importation
0) wp_die ("Une erreur survient"); else $ nom_fichier = $ _FILES ['import'] ['nom']; // Récupère le nom du fichier $ file_ext = strtolower (end (explode (".", $ Nom_fichier))); // Récupère l'extension du fichier $ file_size = $ _FILES ['import'] ['size']; // Obtenir la taille du fichier / * Assurez-vous que le fichier téléchargé est de type JSON et que sa taille ne dépasse pas 500 000 octets * Vous pouvez modifier la taille souhaitée * / if (($ file_ext == "json") && ($ file_size < 500000)) $encode_options = file_get_contents($_FILES['import']['tmp_name']); $options = json_decode($encode_options, true); foreach ($options as $key => $ valeur) update_option ($ key, $ valeur); écho ""; else echo"Toutes les options sont restaurées avec succès.
";?>Fichier non valide ou taille de fichier trop grande.
Cliquez sur le bouton Parcourir et choisissez un fichier json que vous sauvegardez avant.
Appuyez sur le bouton de restauration, WordPress fait le reste pour vous.
Créez votre propre fonctionnalité de sauvegarde pour vos modèles ou plug-ins
Dans l'exemple de plug-in, j'ai sauvegardé toutes les options du site en utilisant le
get_alloptions
Fonction WordPress. Si vous souhaitez appliquer cela à vos propres options spécifiques, procédez comme suit:$ options = array ('votre_option1_name' => get_option ('votre_option1_name'), 'votre_option2_name' => get_option ('votre_option2_name'); $ json_file = json_encode ($ options);Et passez à l'étape suivante comme ci-dessus. Vous choisissez librement les options que vous souhaitez sauvegarder!
Conclusion
Dans ce didacticiel, nous présentons un aperçu de la création d’une fonctionnalité simple de sauvegarde / restauration. Vous devriez remarquer que mon plugin est juste un simple exemple, pas un officiel. Mon but n'est pas d'écrire un plugin parfait, mais de vous montrer le principe de base de cette fonctionnalité. En le comprenant, vous pouvez créer votre propre fonctionnalité sur vos modèles ou plug-ins, vous pouvez également le rendre aussi flexible que vous le souhaitez. Par conséquent, vous pouvez isoler cette fonctionnalité pour vos templates / plugins.
J'espère que ce tutoriel vous sera utile, dites-moi ce que vous en pensez. Vos idées le rendent meilleur, ou même me montrent mes erreurs, votre feedback nous aidera beaucoup. Merci d'avoir lu!
Préférence:
add_menu_page
Fonction WordPressadd_submenu_page
Fonction WordPressget_alloptions
Fonction WordPress