वर्डप्रेस वातावरण को कमांड लाइन स्क्रिप्ट में उपयोग करने के लिए आरम्भ करें


25

मेरे पास एक वर्डप्रेस प्लगइन बनाए रखने के लिए एक कमांड लाइन स्क्रिप्ट है और वर्डप्रेस फ़ंक्शन को एक्सेस करने में सक्षम होने के लिए वर्डप्रेस कोर को लोड करना है।

यह समस्या वास्तविक क्रोन लिपि में उपयोग करने के लिए आरंभिक वर्डप्रेस वातावरण के समान है । यद्यपि यह इससे भिन्न है क्योंकि संदर्भित प्रश्न एक (वास्तविक) क्रोन लिपि के उपयोग के लिए है जिसे एक कमांड लाइन php स्क्रिप्ट शुरू करके अन्यथा पूरा किया जा सकता है। जैसा कि संदर्भित प्रश्न पहले ही उत्तर दिया जा चुका है और यह उत्तर मेरी जरूरतों को पूरा नहीं कर रहा है।

तो वर्डप्रेस पर्यावरण को इनिशियलाइज़ करने के लिए कमांड लाइन स्क्रिप्ट में क्या आवश्यक है?

सम्बंधित

जवाबों:


27

मैं निम्नलिखित समाधान के साथ आया था। स्क्रिप्ट को निम्न कोड से शुरू करना होगा।

<?php
    if( php_sapi_name() !== 'cli' ) {
        die("Meant to be run from command line");
    }

    function find_wordpress_base_path() {
        $dir = dirname(__FILE__);
        do {
            //it is possible to check for other files here
            if( file_exists($dir."/wp-config.php") ) {
                return $dir;
            }
        } while( $dir = realpath("$dir/..") );
        return null;
    }

    define( 'BASE_PATH', find_wordpress_base_path()."/" );
    define('WP_USE_THEMES', false);
    global $wp, $wp_query, $wp_the_query, $wp_rewrite, $wp_did_header;
    require(BASE_PATH . 'wp-load.php');

सम्बंधित


बस इसे जोड़ने के लिए, आप ob_end_clean();उसके बाद भागना चाहेंगे क्योंकि अन्यथा वर्डप्रेस आपके सभी आउटपुट को कैप्चर करता है और बहुत अंत तक कुछ भी नहीं दिखाता है।
होश सादिक

13

आप मैन्युअल रूप से वर्डप्रेस लोडिंग के गन्दा प्रक्रिया से निपटने के लिए नहीं करना चाहते हैं, तो आप सिर्फ उपयोग कर सकते हैं WP-CLI के eval-fileआदेश:

wp eval-file my-script.php

my-script.phpफ़ाइल किसी भी WP समारोह कॉल हो सकते हैं। उदाहरण के लिए:

<?php
global $wpdb;

echo implode( ' ', $wpdb->tables() ) . "\n";

तो eval-fileबिना requireकुछ किए ही सभी वर्डप्रेस फ़ंक्शंस उपलब्ध करा देता है? यह उत्तर इस तरह के PHP स्क्रिप्ट के त्वरित उदाहरण के साथ अधिक स्पष्ट होगा।
१०:२० पर केलीन कोलक्लासुर

2
@KaelinColclasure हां; जोड़ा गया उदाहरण।
scribu
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.