3

I wrote a PHP script, which was meant to be a WP-Cron-cronjob and which uses wordpress specific functions. Due to some restrictions in its runtime enviroment, I need to start this script from the command line with /usr/bin/php -q longThing.php instead of as a WP-Cron event. How can I ensure that all the wordpress core functions are callable in my script?

1
  • 1
    If you use wp-cli to manage your Wordpress site (which is a good idea), you can use it to run arbitrary PHP in the WP context. See wp-cli.org/commands/eval-file Commented Dec 21, 2016 at 15:34

1 Answer 1

1

Xaedes solution works quite well:

<?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');
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.