捕获并显示有关SAVE_POST操作的错误

时间:2013-04-08 作者:MF1

我编写了这个函数,每当创建一个名为“event”的自定义post时,它都会将数据添加到外部db中。如果此函数返回错误,如何防止发生保存?目前,信息没有添加到外部db中,并且没有显示任何错误,即使我有一个尝试/捕获。

 function add_campaign_to_SF( $post_id) {

    if (\'event\' == $_POST[\'post-type\']) {
        try {

              $sObject = new stdclass();
              $sObject->Name = get_the_title( $post_id );
              $sObject->StartDate = date("Y-m-d", strtotime($_POST["events_startdate"]));
              $sObject->EndDate = date("Y-m-d", strtotime($_POST["events_enddate"]));
              $sObject->IsActive = \'1\';

              $createResponse = $mySforceConnection->create(array($sObject), \'Campaign\');

              $ids = array();
                    foreach ($createResponse as $createResult) {
                        print_r($createResult);
                        array_push($ids, $createResult->id);
                    }


                } catch (Exception $e) {
                        echo $mySforceConnection->getLastRequest();
                        echo $e->faultstring;

                    }
    }
  }

 add_action( \'save_post\', \'add_campaign_to_SF\');

1 个回复
SO网友:s_ha_dum

WordPress post通过发布、处理和重定向回原始页面来“保存”工作。放置die 在您的错误之后,您应该在适当的时候看到您的错误。否则,页面会在看到错误消息之前重定向。

在我看来,你最好还是打开debugging 写信给error log.

catch (Exception $e) {
    error_log($mySforceConnection->getLastRequest());
    error_log(echo $e->faultstring);
}
vancoder是正确的,这主要是一个PHP问题,但考虑到我认为这个问题与WordPress的post/process/redirect模式有关,我认为答案是正确的。如果我是对的,那应该可以消除混乱。

而且save_post 在保存大多数post数据后运行,因此如果需要中断主保存,则这不是挂钩。

结束