Hinzufügen von Embed.ly-API-Objekten zu post_meta beim Aktualisieren

Ich habe einen neuen Beitragstyp fr_news zum Hinzufügen von Nachrichten zu einer Site erstellt. Der Benutzer gibt eine URL ein, und ich möchte, dass er die Embed.ly-API verwendet, um die Nachrichten anzuzeigen. Ich habe die API-Seite herausgefunden.

Hier ist der funktionierende API-Code:

 global $embedly_options; $embedly_options = get_option('embedly_settings'); $api = new Embedly\Embedly(array( 'key' => $embedly_options['key'], 'user_agent' => 'Mozilla/5.0 (compatible; mytestapp/1.0)' )); $fr_news_url = $post->fr_news_url; $embedly_resp = $api->oembed( $fr_news_url ); 

Was gibt es wenn wenn print_r( $embedly_resp ) es:

 stdClass Object ( [provider_url] => http://www.ibtimes.com [description] => House Minority Leader Nancy Pelosi, D-Calif., said there will be strong opposition if House Republicans don't make their recent concurrent resolution favorable to achieving a compromise. [title] => Pelosi: 'Strong Negative' Reaction If GOP Won't Compromise [author_name] => Laura Matthews [thumbnail_width] => 770 [url] => http://www.ibtimes.com/government-shutdown-2013-pelosi-warns-strong-negative-reaction-if-republicans-dont-go-compromise [thumbnail_url] => http://img.daswordpress.com/post-meta/pelosi-2013.jpg [author_url] => http://www.ibtimes.com/reporters/laura-matthews [version] => 1.0 [provider_name] => Ibtimes [type] => link [thumbnail_height] => 506 ) 

Anstatt jedoch beim Laden der Seite zu ziehen, möchten Sie jedes Mal, wenn sich die URL ändert, die API hinzufügen und zu post_meta hinzufügen:

 add_action( 'transition_post_status', 'get_fr_news_embedly', 9 ); function get_fr_news_embedly( $new_status, $old_status, $post ) { if ( $new_status != 'trash' && $post->type == 'fr_news' ) { // Post is not in trash and is fr_news global $embedly_options; $embedly_options = get_option('embedly_settings'); $api = new Embedly\Embedly(array( 'key' => $embedly_options['key'], 'user_agent' => 'Mozilla/5.0 (compatible; mytestapp/1.0)' )); $fr_news_url = $post->fr_news_url; $embedly_resp = $api->oembed( $fr_news_url ); if ( ! update_post_meta ( $post->id, 'fr_news_objs', $embedly_resp ) ) add_post_meta( $post->id, 'fr_news_objs', $embedly_resp ); } } 

Ich ziehe und zeige es so:

    

umsonst.

Solutions Collecting From Web of "Hinzufügen von Embed.ly-API-Objekten zu post_meta beim Aktualisieren"