开发人员
我有一个WP cronjob正在运行,它应该导入一些图片并将它们设置为特定帖子的附件。但当我将其作为WP cronjob运行时,我显然无法做到这一点——例如,当我在“init”上运行它时,它工作得很好。但只要我尝试在WP cronjob中运行它,它就会失败。
register_activation_hook( __FILE__, \'OA_FeedManager_activated\' );
function importpicture_activated()
{
if (! wp_next_scheduled( \'import_feed\' ) )
{
wp_schedule_event( time(), \'hourly\', \'import\' );
}
}
add_action( \'import\', \'call_import\' );
function call_import()
{
//lots of code, where i get data from a XML feed, and creates a new post. no need to include it.
foreach($oDataXML->Media->Fotos->Foto as $key => $value)
{
$filename = wp_upload_dir()[\'path\'].\'/\'.$oDataXML->SagsNr->__toString().\'_\'. $value->Checksum->__toString() . \'.jpg\';
$sPicture = $value->URL->__toString();
copy($sPicture, $filename);
$filetype = wp_check_filetype( basename( $filename ), null );
$wp_upload_dir = wp_upload_dir();
$attachment = array(
\'guid\' => $wp_upload_dir[\'url\'] . \'/\' . basename( $filename ),
\'post_mime_type\' => $filetype[\'type\'],
\'post_title\' => preg_replace( \'/\\.[^.]+$/\', \'\', basename( $filename ) ),
\'post_content\' => \'\',
\'post_status\' => \'inherit\'
);
$attach_id = wp_insert_attachment( $attachment, $filename, $iPost_ID );
$attach_data = wp_generate_attachment_metadata( $attach_id, $filename );
wp_update_attachment_metadata( $attach_id, $attach_data );
}
}
据我所知,这是因为wp_generate_attachment_metadata()
在执行wp-cronjob
, 我应该require_once(\'wp-load.php\')
.但遗憾的是,在运行cron作业时,我无法要求这样做(我尝试了两者wp-load.php
&;wp-includes/post.php
) - 但技巧也不一样。
因此,WPSE上可能有一位智者可以启发我如何正确运行WP cronjob。