【问题标题】:Insert some posts in a loop - wordpress plugin在循环中插入一些帖子 - wordpress 插件
【发布时间】:2014-08-21 20:11:04
【问题描述】:

我写了一个插件,它可以读取 csv 文件并创建新产品。该插件仅在我创建一个产品时有效,但当我在 Insert() 中添加 while 时,该插件不起作用。我想首先创建所有产品。也许它与 add_action 相关...请帮助。

define( 'PLUGIN_DIR', dirname(__FILE__).'/' );

function CreateProduct($line) {    
    $data = explode('";"', $line);  
    define(POST_NAME, $data[2]);
    define(cena_netto_pw, $data[5]);

    $post = get_page_by_title( POST_NAME, 'OBJECT', 'product'  );
    $product_ID = $post->ID;
    $post_data = get_post($product_ID);

    function hbt_create_post() {
        $my_post = array(
          'post_title'    => POST_NAME,
          'post_content'  => '',
          'post_status'   => 'publish',
          'post_author'   => 1,
          'post_type'     =>'product'
        );

        $product_ID = wp_insert_post( $my_post );
    }

    if(!isset($post))
        hbt_create_post();
    return $error_obj;
}

function Import() {
    $file = PLUGIN_DIR.'test.csv';
    $open = fopen($file, 'r');
    while (!feof($open)) {

        $line = fgets($open);
        CreateProduct($line);

    }
    fclose($open); 
}

add_action('admin_init', 'Import' ); 

?>

While循环代码

while (!feof($open)) { $line = fgets($open); CreateProduct($line); }

此代码不起作用。只有

$line = fgets($open); CreateProduct($line);

【问题讨论】:

  • 用 while 循环显示你的代码
  • 是:while (!feof($open)) { $line = fgets($open);创建产品($行);这段代码不起作用。只有 $line = fgets($open); CreateProduct($line);
  • 请使用txt文件而不是csv进行测试。结果如何?

标签: wordpress


【解决方案1】:

试试

fgetcsv($open)

改为

fgets($open)

【讨论】:

    猜你喜欢
    • 2019-05-17
    • 1970-01-01
    • 2017-03-07
    • 1970-01-01
    • 2017-12-04
    • 2010-12-12
    • 2018-01-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多