Transiente Schleife Problem

Ich habe die folgenden, die gut funktioniert, aber nur den ersten Wert für den ersten Beitrag zwischenspeichern und speichert keine Daten für alle Film Beiträge in der database. Wie kann ich dieses Problem lösen? Ich habe auch eine Live-Sicht auf dieses Thema.

$cinemamoviename = get_post_meta( $post->ID, "cinama_moviename", true ); $cinemamovieyear = get_post_meta( $post->ID, "cinama_movieyear", true ); $cinemamovienames = urlencode( $cinemamoviename ); $json = file_get_contents( 'http://www.omdbapi.com/?t=' . $cinemamovienames . '&y=' . $cinemamovieyear . '&plot=short&r=json' ); $obj = json_decode( $json ); $movies_title = $obj->Title; $movies_year = $obj->Year; $movies_datas = array( $movies_title, $movies_year ); set_transient( 'get_movies_data_intrans', $movies_datas, 365 * DAY_IN_SECONDS ); $movies_details = get_transient( 'get_movies_data_intrans' ); if( false === $movies_details ){ set_transient( 'get_movies_data_intrans', $movies_datas, 365 * DAY_IN_SECONDS ); } ?> 
  • Title :
  • Relase Date :

Solutions Collecting From Web of "Transiente Schleife Problem"

Der Grund, warum es nur die ersten Post-Daten speichert, liegt darin, dass Sie für jeden Post den gleichen transienten Namen verwenden. Wenn Sie mehrere Filmübergänge speichern möchten, benötigen Sie eindeutige Namen für jeden Film.

Auch die Art und Weise, wie du den Transient bekommst, vereitelt den Zweck der Verwendung von Transienten. Sie möchten zuerst versuchen, die Transiente zu erhalten, und wenn sie nicht verfügbar ist, dann erzeugen Sie einen Wert und setzen diesen als Transient.

So würde ich Ihren Code ändern:

 < ?php $cinemamoviename = get_post_meta( $post->ID, "cinama_moviename", true ); $cinemamovieyear = get_post_meta( $post->ID, "cinama_movieyear", true ); $cinemamovienames = urlencode( $cinemamoviename ); $transient_name = "get_movies_data_intrans_$cimemamoviename_$cinemamovieyear"; if( false === ( $movies_details = get_transient( $transient_name ) ) ) { $args = array( 't' => $cinemamovienames, 'y' => $cinemamovieyear, 'plot' => 'short', 'r' => 'json', ); $url = add_query_arg( $args, 'http://www.omdbapi.com/' ); $json = wp_remote_get( $url ); $obj = json_decode( $json ); $movies_title = $obj->Title; $movies_year = $obj->Year; $movies_datas = array( $movies_title, $movies_year ); set_transient( $transient_name, $movies_datas, 365 * DAY_IN_SECONDS ); } ?>