0

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().
                }
            }
}
4

0 に答える 0