установить пост на страницу, используя get_post_meta - PullRequest
0 голосов
/ 02 октября 2018

У меня есть код для отображения get_meta_post на странице, это мой код

if ( have_posts() ) : 
while ( have_posts() ) : the_post();  
$metas = get_post_meta(get_the_ID(),'value_gallery',false);
//var_dump($metas); ==> will output array(1) { [0]=> string(29) "1434,1402,1434,1435,1398,1434" }
foreach ($metas as $key ) {
$key_val =  explode(",", $key);
$page = get_query_var('page');
$page = $page > 1 ? $page - 1 : 0 ;
 if (isset($key_val[$page])) {
echo "<div class='col-lg-4'>". 
wp_get_attachment_image($key_val[$page],"cherry-thumb-a") ."</div>";  
  }

}

endwhile; 
else : 
_e('Sorry, no posts matched your criteria.'); 
endif;

, поэтому этот код будет показывать мое изображение с использованием

wp_get_attachment_image($key_val[$page],"cherry-thumb-a")

и будетразбить на страницы со ссылкой

https://yourpage.com/post-name/2

, но этот код просто показывает изображение 1 на страницу, моя проблема в том, как показать 4 изображения на странице и как изменить ссылку на страницу на
https://yourpage.com/post-name/page/2

я буду рад, если кто-нибудь сможет мне помочь

Обновление

спасибо за внимание, я пытался добавить array_chunk и добавление нумерации страниц, но все равно не работает, мой полный код:

$paged = ( get_query_var( 'paged' ) ) ? absint( get_query_var( 'paged' ) ) : 1;
$args = array('posts_per_page' => 1, 'paged' => $paged );
$the_query = new WP_Query( $args );
if ( $the_query->have_posts() ) :
        while ( $the_query->have_posts() ) : $the_query->the_post();
            $metas = get_post_meta(get_the_ID(),'value_gallery',false);
            foreach ($metas as $meta) {
                $key_val = explode(",", $meta);
                $image_chunk = array_chunk($key_val, 4);

                $page = get_query_var('page');
                $page = $page > 1 ? $page - 1 : 0 ;
                if (isset($key_val[$page])) {
                    foreach ($image_chunk[$page] as $image) {
                        echo "<div class='col-lg-4'>".
                        wp_get_attachment_image($image,"cherry-thumb-a") ."</div>";
                    }
                }
            }
        endwhile;
$big = 999999999;
echo paginate_links( array(
'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
'format' => '?paged=%#%',
'current' => max( 1, get_query_var('paged') ),
'total' => $the_query->max_num_pages
  ) );
    endif;

большое спасибо за внимание

1 Ответ

0 голосов
/ 02 октября 2018

use array_chunk ()

        if ( have_posts() ) :
            while ( have_posts() ) : the_post();
                $metas = get_post_meta(get_the_ID(),'value_gallery',false);
                foreach ($metas as $meta) {
                    $key_val = explode(",", $meta);
                    $image_chunk = array_chunk($key_val, 4);

                    $page = get_query_var('page');
                    $page = $page > 1 ? $page - 1 : 0 ;
                    if (isset($key_val[$page])) {
                        foreach ($image_chunk[$page] as $image) {
                            echo "<div class='col-lg-4'>".
                            wp_get_attachment_image($image,"cherry-thumb-a") ."</div>";
                        }
                    }
                }
            endwhile;
        endif;

Добавление нумерации страниц для отдельных страниц сообщений

Поместите эту функцию в свои functions.php

add_action('redirect_canonical', 'single_pagination_fix');
public static function single_pagination_fix( $redirect_url ) {
  if ( is_paged() && is_singular() ) {
    $redirect_url = false;
  }
  return $redirect_url;
}
...