0

WP サイト用のプラグインを作成していますが、別のディレクトリから大量のファイルを最初にインポートする必要があります。(プラグインがうまくいっているなど) コマンドラインでインポートを実行したい。ローカル (Windows) で実行する場合はすべて問題ありませんが、Linux bash から実行すると、定義された定数は評価されず、文字列として出力されます。

define("ASCOR_RECORDINGS_TBL", $wpdb->prefix . "recordings");

PHP で定義された定数の評価を有効にするために必要な設定はありますか? 私のウェブサイトは Dreamhost サーバーで実行されています。

次の行を実行すると:

[myserver]$ /usr/local/php5/bin/php /home/path/to/import.php

私は得る:

WordPress database error Table 'db_ro.ASCOR_RECORDINGS_TBL' doesn't exist for query INSERT INTO `ASCOR_RECORDINGS_TBL` ...........

私が実行するファイルの内容:

<?php
require_once dirname(dirname(dirname(dirname(__FILE__)))) . "/wp-load.php";

require_once "class/AscorDbHelper.php";


$origin = realpath("/path/to/files");

$upload_dir = wp_upload_dir();
$subdir = $upload_dir['subdir'];


mkdir(ASCOR_UPLOAD_DIR . "/" . $subdir, 777, true);

require_once $origin . "/classes/PConfFiles.inc.php";

$db = new AscorDbHelper();

$cf = new PConfFiles('/^PC_([0-9\-]+)_(.*)\.([a-z0-9]{2,4})$/i', $origin);
$list = $cf->getFilesList();

$catPC = $db->addCategory("Special");
$catOther = $db->addCategory("Other");

if($list){
    $pc = $db->addAuthor("Ciprian V.");

    foreach($list as $rec){
        $fileUrl = $subdir . "/" . $rec[0];
        $desc = str_replace("-", " ", $rec[2]);

        copy(realpath($origin . "/" . $rec[0]), ASCOR_UPLOAD_DIR . "/" . $fileUrl );

        $db->addRecording($fileUrl, $catPC->id, $pc->id, $desc, null, $rec[1]);

        echo "Added: " . $rec[0] . "\n";
    }
}


$cf = new PConfFiles('/^([0-9\-]+)\_([^\_]+)_(.*)\.([a-z0-9]{2,4})$/i', $origin);
$list = $cf->getFilesList();

if($list){
    foreach($list as $rec){
        $authorName = str_replace("-", " ", $rec[2]);
        $date = $rec[1];
        $desc = str_replace("-", " ", $rec[3]);
        $fileUrl = $subdir . "/" . $rec[0];

        $authorId = $db->getAuthorIdOrSaveIt($authorName);

        copy(realpath($origin . "/" . $rec[0]), ASCOR_UPLOAD_DIR . "/" . $fileUrl );

        $db->addRecording($fileUrl, $catOther->id, $authorId, $desc, null, $date);

        echo "Added: " . $rec[0] . "\n";
    }
}

echo "done";

定数は、プラグインのメイン ファイルで定義されます。

define("ASCOR_RECORDINGS_TBL", $wpdb->prefix . "recordings");
define("ASCOR_RECORDINGS_AUTHORS_TBL", $wpdb->prefix . "recordings_authors");
define("ASCOR_RECORDINGS_CATEGORIES_TBL", $wpdb->prefix . "recordings_categories");

define("ASCOR_RECORDS_PER_PAGE", 50);

define("ASCOR_EXTEND_DIR", dirname(__FILE__));
define("ASCOR_EXTEND_URL", plugins_url("", __FILE__));

define("ASCOR_NOTIFY_UPDATED", "updated");
define("ASCOR_NOTIFY_ERROR", "error");

define("ASCOR_UPLOAD_DIR", ABSPATH . "/wp-content/uploads/recordings");
4

1 に答える 1

1

ファイルはロードされていますか?それに解析エラーを導入し、失敗するかどうかを確認します。Windowsでも試してみてください。

于 2013-07-26T16:38:46.890 に答える