2016-12-20 1 views
1

Ich schrieb ein PHP-Skript, das ein WP-Cron-Cronjob sein sollte und die Wordpress-spezifische Funktionen verwendet. Aufgrund einiger Einschränkungen in der Laufzeitumgebung muss ich dieses Skript über die Befehlszeile mit /usr/bin/php -q longThing.php statt als WP-Cron-Ereignis starten. Wie kann ich sicherstellen, dass alle Wordpress-Kernfunktionen in meinem Skript aufgerufen werden können?So starten Sie ein PHP-Skript von CLI innerhalb von WordPress

+1

Wenn Sie wp-cli benutzen, um Ihre Wordpress-Website zu verwalten (was eine gute Idee ist), können Sie es verwenden, beliebigen PHP im WP Kontext auszuführen. Siehe http://wp-cli.org/commands/eval-file/ – moopet

Antwort

0

Xaedes solution funktioniert recht gut:

<?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'); 
Verwandte Themen