Maison  >  Article  >  Tutoriel CMS  >  Méthodes et précautions pour établir un site miroir de sauvegarde de contenu WordPress

Méthodes et précautions pour établir un site miroir de sauvegarde de contenu WordPress

藏色散人
藏色散人avant
2019-09-26 09:43:112275parcourir

La colonne suivante du Tutoriel WordPress vous présentera comment créer un site miroir de sauvegarde de contenu WordPress et les précautions à prendre. J'espère que cela sera utile aux amis dans le besoin !

Méthodes et précautions pour établir un site miroir de sauvegarde de contenu WordPress

En tant que webmaster de niveau crevette, je suis en fait un débutant qui ne comprend pas le code puisque mon site est un petit hébergeur de conduites d'eau et que la stabilité est difficile à assurer. garantir, chez de nombreux visiteurs Sous la suggestion, je souhaite également créer un site miroir de contenu afin que lorsque l'hébergeur du site principal est maintenu, il y ait un site de sauvegarde que les visiteurs pourront visiter.

Tout d'abord, je voulais avoir une base de données partagée qui pourrait être utilisée par les deux sites, mais après que Baidu ait vérifié les informations, j'ai découvert que cela ne semblait pas applicable à la création de sites Web d'hébergement virtuel.

En attendant de trouver le code suivant, vous vous rendez compte que lorsque le site source publie un article, celui-ci sera automatiquement publié sur le site miroir.

La première étape consiste à créer un fichier php nommé post.php dans le répertoire racine du site miroir Contenu du code :

//Ce qui suit est le texte du code...

<?php
//文章接收
define(&#39;WP_USE_THEMES&#39;, false);
require_once("wp-load.php");
$key=&#39;123456&#39;; //设置启动 API 的密钥
if($_POST[&#39;key&#39;]==$key){
$categorys=explode(&#39;,&#39;,$_POST[&#39;category&#39;]);
$category=array();
for($x=1;$x<count($categorys);$x++) {
$category[$x-1]=get_cat_ID($categorys[$x]);
}
$info = array(
&#39;post_title&#39; => $_POST[&#39;title&#39;],
&#39;post_content&#39; => $_POST[&#39;content&#39;],
&#39;post_status&#39; => &#39;publish&#39;,
&#39;post_author&#39; => 1, //发布文章的作者 ID,1 为管理员
&#39;post_date&#39; => $_POST[&#39;date&#39;],
&#39;tags_input&#39; => $_POST[&#39;tags&#39;],
&#39;post_category&#39; => $category,
&#39;post_type&#39; => $_POST[&#39;type&#39;]
);
wp_insert_post( $info );
}

La deuxième étape consiste à ajouter le code téléchargé avant le dernier ?> dans le fichier function.php du thème principal du site Web, à définir la clé et à modifier l'adresse API.

//文章推送
add_action(&#39;publish_post&#39;, &#39;fanly_sync_post&#39;); //钩子,在文章发布时执行
function fanly_sync_post($post_ID) {
$key=&#39;123456&#39;; //输入你设置的密钥
$url=&#39;http://3838521.com/post.php&#39;;//API地址,就是接受数据的那个站点,修改为自己站点
$post_info = get_post($post_ID);
if ( $post_info->post_status == &#39;publish&#39; && $_POST[&#39;original_post_status&#39;] != &#39;publish&#39; ) {
$title=$_POST[&#39;post_title&#39;];
$content=$_POST[&#39;content&#39;];
$date=$_POST[&#39;aa&#39;].&#39;-&#39;.$_POST[&#39;mm&#39;].&#39;-&#39;.$_POST[&#39;jj&#39;].&#39; &#39;.$_POST[&#39;hh&#39;].&#39;:&#39;.$_POST[&#39;mn&#39;].&#39;:&#39;.$_POST[&#39;ss&#39;];
$category=&#39;&#39;;
for($x=1;$x<count($_POST[&#39;post_category&#39;]);$x++) {
$category.=&#39;,&#39;.get_cat_name($_POST[&#39;post_category&#39;][$x]);
}
$type=$_POST[&#39;post_type&#39;];
$tags=str_replace(&#39;、&#39;,&#39;,&#39;,$_POST[&#39;tax_input&#39;][&#39;post_tag&#39;]);
if($_POST[&#39;newtag&#39;][&#39;post_tag&#39;]){
$tags.=&#39;,&#39;.str_replace(&#39;、&#39;,&#39;,&#39;,$_POST[&#39;newtag&#39;][&#39;post_tag&#39;]);
}
$data = &#39;key=&#39;.$key.&#39;&title=&#39;.$title.&#39;&content=&#39;.$content.&#39;&date=&#39;.$date.&#39;&category=&#39;.$category.&#39;&type=&#39;.$type.&#39;&tags=&#39;.$tags;
$ch = curl_init (); //cURL 模拟 POST
curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, TRUE );
curl_setopt ( $ch, CURLOPT_POST, TRUE );
curl_setopt ( $ch, CURLOPT_POSTFIELDS, $data );
curl_setopt ( $ch, CURLOPT_URL, $url );
curl_setopt ( $ch, CURLOPT_SSL_VERIFYPEER, FALSE);
$ret = curl_exec ( $ch );
curl_close ( $ch );
return $ret;
}
}

De cette façon, après la publication d'un article sur le site principal, le site miroir publiera également un article, mais il y aura aussi des situations inattendues, comme ne pas publier immédiatement, mais afficher le plan, il sera normalement publié après quelques minutes, mais il peut également y avoir des échecs de publication. Vous devez sélectionner l'article qui n'a pas pu être publié dans la gestion des articles en arrière-plan, changer le statut en publié et mettre à jour.

Résolution de certaines situations inattendues :

Problème 1. Une fois le thème mis à niveau, le code function.php sera remplacé. La mise en miroir de contenu implémentée à l'aide de la méthode ci-dessus nécessite de modifier le code function.php à chaque mise à niveau du thème, ce qui entraînera des problèmes.

Il y a donc la solution suivante, le code est le suivant :

Copiez le code ci-dessus, il est préférable d'utiliser Notepad++ et d'autres outils pour l'enregistrer sous forme de fichier php, emballez-le dans un document zip et installez-le dans le plug-in wordpress Téléchargez, installez et activez en arrière-plan.

De cette façon, il existe sous forme de plug-in, et il n'aura plus aucun impact une fois le thème mis à jour.

Question 2. Certains éditeurs de thèmes prennent en charge les codes courts tels que la visibilité du mot de passe, la visibilité des paiements, etc., mais le code court est différent en mode édition et en mode sortie. le mode de sortie, ce qui est possible. Une exception sera émise.

Ma solution est aussi d'utiliser un petit plugin pour modifier automatiquement ces codes. Le code est le suivant :

<?php
/*
Plugin Name: 小插件
Description: 给主题添加点小功能
Author: 云落
*/
//内容文字替换
function wpdaxue_replace_text($text){
$replace = array(
// &#39;原始文字&#39; => &#39;替换为这些&#39;
&#39;\"20\"]&#39; => &#39;"20"]&#39;,
&#39;\"10\"]&#39; => &#39;"10"]&#39;,
&#39;\"50\"]&#39; => &#39;"50"]&#39;
);
$text = str_replace(array_keys($replace), $replace, $text);
return $text;
}
add_filter(&#39;the_content&#39;, &#39;wpdaxue_replace_text&#39;); //正文
add_filter(&#39;the_excerpt&#39;, &#39;wpdaxue_replace_text&#39;); //摘要
add_filter(&#39;comment_text&#39;, &#39;wpdaxue_replace_text&#39;); //评论
?>

Dans cet article, les codes utilisés sont tous fournis par des blogueurs tout-puissants, je viens d'en faire une intégration efficace pour répondre à mes besoins. Merci pour le partage. les blogueurs !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer