wordpress スケジュール フックを介して自動的に動作するプラグインに取り組んでいます。しかし、それを行うには、データベースから単一のレコードが必要であり、それを処理して次のスケジュールを実行し、データベースから次の単一のレコードを取得して処理したいと考えています。
データにカスタム テーブルを使用しています。テーブルには、自動インクリメント値を持つ主キーがあります。
ワードプレスのスケジュールフックが実行されるたびに次のレコードを取得するにはどうすればよいですか?
セッション/php ページネーションを試してみましたが、ワードプレスの外部で動作していますが、ワードプレスはセッションのサポートを提供していないため、使用できません。$wpdb グローバル クラスを使用して単一のレコードを取得できますが、次のレコードを取得する方法がわかりません。
私の問題を明確に説明できたことを願っています。
wp スケジュール フックで実行される関数は次のとおりです。
function ACP_poster($n){
global $wpdb,$api_key;
$row = $wpdb->get_results('SELECT a,b,c FROM tbname ORDER BY id DESC LIMIT 1',ARRAY_A);
$url = 'https://example.com';
$headers = array( 'Authorization' => $api_key );
$request = new WP_Http;
$result = $request->request( $url , array( 'method' => 'GET', 'headers' => $headers, 'sslverify' => false ) );
$data = new SimpleXMLElement($result['body']);
$attributes = $data->p->attributes();
foreach ($data->p[0] as $p)
{
// Sanitize data.
$pr = number_format((float)$p->pr, 2, '.', ' ');
$image = '<a href="'.$p->{'url2'}.'"><img src="'.$p->{'url3'} .'" style="float: right"/></a>';
$pd = $image.$p->description .'-- ='.$p->currency.' '.
' ,Retail Price ='.$p->{'retail-price'}.' , '.
$p->{'sale-price'}.'<a href="'.$p->{'url2'}.
'">...</a>';
$v = $c[$no]->child;
$ids = get_term_by('slug', $v, 'category');//wordpress function
$id = (int)$ids->term_taxonomy_id;
$p2 = array('post_title' => $p->name,
'post_content' => $pd,
'post_status' => 'publish',
'post_author' => 1,
'post_category' =>array($id));
$pr = wp_insert_post( $p2, $wp_error );
wp_reset_query(); // Restore global post data stomped by the_post().
}
}
}