Saya memiliki skrip PHP yang harus saya jalankan sebagai tugas cron. Namun skrip ini membutuhkan akses ke WP API ( get_pages()
, get_post_meta()
dan get_permalink()
khususnya). Saya telah mengikuti instruksi di http://codex.wordpress.org/Integrating_WordPress_with_Your_Website , tetapi tidak berhasil.
Kode:
require_once('../../../wp-blog-header.php');
$args = array(
'child_of' => 2083
);
$pages = get_pages($args);
Namun ketika saya menjalankan php -q this_file.php
dari command-line saya mendapatkan output berikut:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Database Error</title>
</head>
<body>
<h1>Error establishing a database connection</h1>
</body>
</html>
Adakah yang punya pemikiran / saran?
sumber
get_pages
, ia memang membutuhkan kelas WP. jadi wp-blog-header.php adalah file yang tepat untuk dipanggil.HTTP_HOST
,SERVER_NAME
danREQUEST_URI
. Juga mencoba dengan keduanyawp-blog-header.php
danwp-load.php
. Pesan kesalahan yang sama seperti yang dinyatakan dalam pertanyaan asli dalam semua kasus. Saya menjalankan ini dari direktori tema saya - apakah itu penting?Anda dapat menggunakan perintah wp-cli
eval-file
:Ini pertama-tama akan memuat lingkungan WP, kemudian jalankan file Anda.
sumber
Jawaban yang diterima oleh @prettyboymp adalah tentang informasi yang paling bermanfaat dan unik tentang mengakses wordpress dari skrip php yang saya temukan di web. Ini bekerja dengan baik untuk saya dengan WP core 3.7.1, lalu 3.9 memecahnya.
Masalahnya adalah bahwa
wp-load.php
mengubah cara mengujiREQUEST_URI
jalur yang valid. Namun untungnya itu juga menambahkan filter baru untuk memungkinkan hubungan pendek tes.Jadi untuk mengembalikan fungsi jawabannya dalam 3,9, saya menambahkan
define('SUNRISE', 'on');
untukwp-config.php
, dan membuat filewp-content/sunrise.php
dengan konten ini:sumber
Variasi jawaban @ prettyboymp dapat berupa:
sumber