2016-12-20 18 views
1

J'ai écrit un script PHP, qui devait être un WP-Cron-cronjob et qui utilise des fonctions spécifiques au wordpress. En raison de certaines restrictions dans son environnement d'exécution, j'ai besoin de démarrer ce script à partir de la ligne de commande avec /usr/bin/php -q longThing.php au lieu d'un événement WP-Cron. Comment puis-je m'assurer que toutes les fonctions de base de wordpress sont appelables dans mon script?Comment démarrer un script php à partir de cli dans wordpress

+1

Si vous utilisez wp-cli pour gérer votre site Wordpress (ce qui est une bonne idée), vous pouvez l'utiliser pour exécuter PHP arbitraire dans le contexte de WP. Voir http://wp-cli.org/commands/eval-file/ – moopet

Répondre

0

Xaedes solution fonctionne très bien:

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