exibir post várias vezes com base em matrizes de datas

Eu tenho um tipo de postagem personalizado para uma lista de agendamento simples e usando o plugin de metabox eu tenho duas checkboxs meta atribuídas ao tipo de postagem personalizado. 1 para uma imagem e 1 para uma matriz de tempos de data.

insira a descrição da imagem aqui

No meu arquivo functions.php criei um shortcode para recuperar e exibir as informações. No entanto, apenas mostra a publicação uma vez e onde eu exibo a data da data em que ela diz “array”. Quero mostrar a postagem 3 vezes com base no fato de ter armazenado 3 tempos de data com a checkbox de meta. Não tenho certeza de como ajustar minha consulta ou loop para que a publicação mostre 3 vezes em ordem de data. Abaixo está o meu shortcode do meu arquivo functions.php. Qualquer ajuda seria muito apreciada.

// SCHEDULE LIST add_shortcode( 'schedule', 'display_schedule' ); function display_schedule(){ global $paged; $args = array( 'post_type' => 'tbschedule', 'post_status' => 'publish', 'paged' => $paged, 'posts_per_page' => 10 ); $string = ''; $query = new WP_Query( $args ); if( $query->have_posts() ){ $string .= ''; while( $query->have_posts() ){ $query->the_post(); $schedule_image = ""; $schedule_image_url = ""; $images = rwmb_meta( 'tbf_scheduleimage', 'type=image&size=full'); foreach ( $images as $image ){ $schedule_image = ""; $schedule_image_url = $image['url']; } if($schedule_image_url == ""){ $string .= ''; }else{ $string .= ''; } } } $string .= ''; // Paging $q = $query; $big = 999999999; // need an unlikely integer $string .= '

 

'.paginate_links( array( 'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ), 'format' => '?paged=%#%', 'current' => max( 1, get_query_var('paged') ), 'total' => $q->max_num_pages //$q is your custom query ) ); wp_reset_postdata(); return $string; } // END SCHEDULE LIST

Solutions Collecting From Web of "exibir post várias vezes com base em matrizes de datas"

Não sei o que rwmb_meta() faz. Mas se rwmb_meta('tbf_scheduledatetime') retorna array , tente algo assim:

 ... $images = rwmb_meta( 'tbf_scheduleimage', 'type=image&size=full'); $dates = rwmb_meta('tbf_scheduledatetime'); var_dump( $dates ); ... 

Você provavelmente quer se deslocar por $dates e repetir os dados de postagem para cada elemento em $dates .

Eu também não entendo o que rwmb_meta() faz, mas posso ver alguns problemas óbvios no código como escrito.

Aparentemente , você quer que o foreach entregue tantas “postagens” quanto encontrar $ imagem em $ images e ecoar um resultado a cada vez. Se assim for, você removeria o suporte de:

 $schedule_image_url = $image['url']; } 

e coloque-o depois de cada item de $ item sendo adicionado a $ string:

 foreach ( $images as $image ){ $schedule_image = "http://img.flipwordpress.com/metabox/{$image["; $schedule_image_url = $image['url']; // } removing the bracket here if($schedule_image_url == ""){ $string .= ''; } else { $string .= ''; } } //bracket added here means for each $image, you get one of the above two depending on whether $schedule_image_url is found 

Quanto ao que está acontecendo com rwmb_meta('tbf_scheduledatetime') , se “apenas diz array” quando você tenta rwmb_meta('tbf_scheduledatetime') lo, então isso seria porque é uma matriz, como eu acho que o shanebp está recebendo. Sem, como shanebp, sabendo como está configurado, tenho que adivinhar como acessar seu conteúdo, mas, se tbf_sheduledatetime é uma sub-matriz simples com chaves [0], [1] etc., então você poderia usar uma variável incremental . Então, quando você está inicializando variables ​​antes do foreach:

 $i = 0; $datetime_array = rwmb_meta('tbf_scheduledatetime'); 

Então dentro do loop foreach (como acima), a linha $ string deveria ler:

 $string .= ''; $i++; 

então, a primeira vez que encontrar $ datetime_array [‘0’] e a próxima vez $ datetime_array [‘1’], etc.

Espero que ajude, mas oferecido sem muita confiança é realmente o que você está procurando!