0

我正在开发一个 Wordpress 插件,它采用PitchEngine JSON 提要,并将每个“Pitch”添加为 Wordpress 帖子。

我能够检索“音高”内容,但是将“音高”添加为帖子的波纹管功能会导致无限循环,从而添加无限数量的帖子。我已经将其追溯到 wp_insert_post 函数。没有它,就没有无限循环,有了它,就有...

function pitchengine_create_post($jsonvals, $post_type = 'post') {

//Create Post



    $post = array(

          'comment_status' =>  'closed',
          'ping_status'    => 'closed', 
                      'post_content'   => $jsonvals->Text, 
          'post_date'      => $jsonvals->PublishDate, 
        'post_excerpt'   => $jsonvals->Summary, 
          'post_status'    =>  'publish',
          'post_title'     => $jsonvals->Headline, 
          'post_type'      => $post_type,           

          );  


    $post_id = wp_insert_post( $post, $wp_error );  

//Add Post Meta

        //pitchengine ID [DisplayUrl]
        add_post_meta($post_id, 'pitch_ID', $jsonvals->DisplayUrl);

        //pitchengine URL (brand Url base) + [DisplayUrl]
        add_post_meta($post_id, 'pitch_URL', $jsonvals->Meta->shorturl);

        //source name (pitchengine) 
        add_post_meta($post_id, 'pitch_name', 'Pitch Engine');




 //If error, return error

 //If success set return post ID
 $response = $post_id;

 return $response;

 }

有什么想法我可能会出错吗?

4

2 回答 2

1

想出了这个:

save_post我通过将其添加到每次运行时调用的操作来测试此功能wp_insert_post()。这创造了我的无限循环。为了解决这个问题,我从save_post钩子中删除了该函数,并将该函数挂钩到与该wp_insert_post函数无关的不同操作。

于 2013-11-05T15:45:59.967 回答
0

save_post 和 publish_post 操作在您发布或更新帖子的任何时候都有效。因此,您每次都调用函数。要解决这个问题,您可以使用 CURL 函数。当您获取提要时,将此数据发布在您为插入帖子编写代码的 php 页面(使用 Curl)上。

我希望它能解决你的问题。

于 2013-11-06T07:05:24.017 回答