2017-07-20 4 views
-1

Ich arbeite derzeit an einer neuen (WordPress) -Website, die Stellenangebote aus einer externen Datenbank veröffentlichen sollte. Zu Testzwecken habe ich eine WordPress-Website eingerichtet, die mit einer externen Datenbank verbunden ist. Die Verbindung ist kein Problem und ich konnte auch in Tabellen/Zeilen laden und die Daten anzeigen (zB Titel, Post-Datum, Inhalt etc ..). Aber ich möchte, dass jeder (neue) Artikel in meiner externen Datenbank als neue Posts auf der WordPress-Website eingerichtet wird, damit diese ihre eigene URL/Seite auf der Website bekommen.Erstellen WordPress Post von externen MySQL-Datenbank

Ich habe die DB und angezeigt einige Informationen wie folgt einstellen:

/* Set-up database */ 
$servername  = "xxx.xxx.xxx.xxx"; 
$username  = "db_user_external"; 
$password  = "db_password_external"; 
$database  = "db_name_external"; 

/* Connect to database */ 
$connectdb  = mysql_connect($servername, $username, $password, $database); 

/* Query for retrieving data */ 
$recentposts = 'SELECT * FROM fposts WHERE posts.post_type = "vacancy" AND posts.post_status = "publish" ORDER BY post_date DESC LIMIT 9'; 

mysql_select_db($database); 

$showvacancy = mysql_query($recentposts, $connectdb); 

while($row = mysql_fetch_array($showvacancy, MYSQL_ASSOC)) { 
echo 
    "<p><strong>Vacancy Title:</strong> {$row['post_title']}<br>". 
    "<strong>Date published:</strong> {$row['post_date']}<br>". 
    "{$row['post_excerpt']}</p>"; 
} 

/* Closing databaseconnection */ 
mysql_close($conn); 
+1

** Bitte ** beenden Sie die Verwendung der veralteten mysql_-Datenbankbibliothek. Es wurde vor einigen Jahren aus Sicherheitsgründen eingestellt und komplett in PHP7 entfernt. Um sich vor möglichen Sicherheitslücken in der Bibliothek zu schützen und Maßnahmen wie vorbereitete Anweisungen und parametrisierte Abfragen zu verwenden, um Ihre Daten vor SQL-Injection-Angriffen zu schützen, empfehle ich Ihnen, die Bibliotheken mysqli_ oder PDO zu verwenden so bald wie möglich. Auch wenn Sie jemals auf PHP7 aktualisieren, wird Ihr Code nicht mehr funktionieren. – ADyson

+1

Sie sollten die WP-API, nicht statischen mysql-Aufruf verwenden, um Daten in Ihrer WordPress-Installation zu importieren. Schließen Sie die wp_load.php des Root-Verzeichnisses der WP-Installation ein und verwenden Sie die API wie die Funktion 'wp_insert_post()', um Posts zu erstellen. – bueltge

+0

Danke. Dies ist das erste Mal, dass ich das versuche, also werde ich das untersuchen. – imrafaelhi

Antwort

1

Ich würde Setup diese als cron-Job als here

beschrieben Dann würde ich ein Skript wirte, die die Daten liest und dann speichert das als Beitrag in einem PHP-Skript, wie Sie here finden können.

Verwandte Themen