Heim  >  Artikel  >  CMS-Tutorial  >  Methoden und Vorsichtsmaßnahmen zum Einrichten einer WordPress-Content-Backup-Mirror-Site

Methoden und Vorsichtsmaßnahmen zum Einrichten einer WordPress-Content-Backup-Mirror-Site

藏色散人
藏色散人nach vorne
2019-09-26 09:43:112275Durchsuche

In der folgenden Spalte des WordPress-Tutorials erfahren Sie, wie Sie eine WordPress-Content-Backup-Spiegelseite einrichten und welche Vorsichtsmaßnahmen Sie ergreifen können.

Methoden und Vorsichtsmaßnahmen zum Einrichten einer WordPress-Content-Backup-Mirror-Site

Als Webmaster auf Shrimps-Niveau bin ich eigentlich ein Neuling, der Code nicht versteht, da es sich bei meiner Website um einen kleinen Wasserpfeifen-Host handelt und die Stabilität schwierig ist Garantiert, in vielen Besuchern Im Rahmen des Vorschlags möchte ich auch eine Content-Spiegel-Site erstellen, damit bei der Wartung des Hosts der Haupt-Site eine Backup-Site für Besucher vorhanden ist, die sie besuchen können.

Zunächst wollte ich eine gemeinsame Datenbank haben, die von beiden Websites genutzt werden kann, aber nachdem Baidu die Informationen überprüft hatte, stellte ich fest, dass dies für die Erstellung virtueller Host-Websites nicht anwendbar zu sein schien.

Bis Sie den folgenden Code finden, können Sie erkennen, dass, wenn die Quellseite einen Artikel veröffentlicht, dieser automatisch auch auf der Spiegelseite veröffentlicht wird.

Der erste Schritt besteht darin, eine PHP-Datei mit dem Namen post.php im Stammverzeichnis der Spiegelseite zu erstellen:

//Das Folgende ist der Text des Codes...

<?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 );
}

Der zweite Schritt besteht darin, den heruntergeladenen Code vor dem letzten ?> in die Datei „functions.php“ des Hauptwebsite-Themas einzufügen, den Schlüssel festzulegen und die API-Adresse zu ändern.

//文章推送
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;
}
}

Auf diese Weise veröffentlicht die Mirror-Site nach der Veröffentlichung eines Artikels auf der Hauptseite auch einen Artikel, es kann jedoch auch zu unerwarteten Situationen kommen, z. B. nicht sofort veröffentlichen, sondern den Plan anzeigen. Normalerweise wird er nach einigen Minuten veröffentlicht, es kann jedoch auch zu Veröffentlichungsfehlern kommen. Sie müssen den Artikel, der nicht veröffentlicht werden konnte, in der Hintergrundartikelverwaltung auswählen, den Status auf „Veröffentlicht“ ändern und aktualisieren.

Lösung einiger unerwarteter Situationen:

Problem 1. Nach dem Upgrade des Themes wird der Code „functions.php“ ersetzt. Die mit der oben genannten Methode implementierte Inhaltsspiegelung erfordert bei jedem Upgrade des Themes eine Änderung des Codes „functions.php“, was zu Problemen führen kann.

Es gibt also die folgende Lösung, der Code lautet wie folgt:

Kopieren Sie den obigen Code. Verwenden Sie am besten Notepad ++ und andere Tools, um ihn als PHP-Datei zu speichern. Packen Sie es in ein ZIP-Dokument und installieren Sie es im WordPress-Plug-in. Laden Sie es hoch, installieren Sie es und aktivieren Sie es im Hintergrund.

Auf diese Weise liegt es in Form eines Plug-Ins vor und hat nach einem Upgrade des Themes keine Auswirkungen mehr.

Frage 2. Einige Theme-Editoren unterstützen Funktionscodes wie Passwortsichtbarkeit, Zahlungssichtbarkeit usw. Der Bearbeitungsmodus und der Ausgabemodus des Funktionscodes sind jedoch unterschiedlich. Der Inhalt auf der Mirror-Site wird im angezeigt Ausgabemodus, der möglich ist.

Meine Lösung besteht auch darin, ein kleines Plug-in zu verwenden, um diese Codes automatisch zu ändern. Der Code lautet wie folgt:

rrree

Die in diesem Artikel verwendeten Codes wurden alle von allmächtigen Bloggern bereitgestellt, um meine Bedürfnisse zu erfüllen Blogger!

Das obige ist der detaillierte Inhalt vonMethoden und Vorsichtsmaßnahmen zum Einrichten einer WordPress-Content-Backup-Mirror-Site. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:aliyun.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen