web-dev-qa-db-ja.com

カルセルに写真を動的に添付する方法

私は個々のポートフォリオのピースごとに単一のページを作成しようとしています。カスタム投稿とフィールドタイプを作成しましたが、投稿ごとにおすすめの写真が1つしか表示されないようです。別の方法で写真を追加する必要がありますか?それとももっと注目の画像を追加するオプションはありますか?

また、私はこれらの画像でカルーセルを作ろうとしています。個々のポートフォリオ作品のさまざまな画像を通して、最終結果をカルーセル化したいと思います。この引数を新しいWP_Queryで書き込もうとしていますが、うまくいかないようです。これが私の主張です。

 <?php
        $args = array(
            'post_type' => 'attachment',
            category_name =>'single-portfolio'

            );
        $the_query = new WP_Query ($args);

       ?>
       <?php if (have_posts ()) : while ($the_query->have_posts()) : $the_query -> the_post(); ?>
<h1><?php the_title();?>

   <?php endwhile; endif;?>

これは私の特集画像を引き込んでいません。何がおかしいのですか?通過するより良い議論がありますか?

私のウェブサイトはwww.angelina-marie.comです。

1

面白い仕事です。 DashboardでカスタムのSlider Menuを作成してから、そこから注目のイメージをアップロードして、それらのイメージをスライダーで動的に呼び出すことができます。

最初のテーマのサポートを行い、関数の投稿タイプを登録する必要があります。

add_theme_support( 'post-thumbnails', array( 'post', 'slider' ) );
add_image_size( 'slider-image', 1024, 550, true );

function create_post_type() {
   register_post_type( 'slider', 
      array(
         'labels' => array(
                         'name' => __( 'Slides' ),
                         'singular_name' => __( 'Slide' ),
                         'add_new' => __( 'Add New' ),
                         'add_new_item' => __( 'Add New Slide' ),
                         'edit_item' => __( 'Edit Slide' ),
                         'new_item' => __( 'New Slide' ),
                         'view_item' => __( 'View Slide' ),
                         'not_found' => __( 'Sorry, we couldn\'t find the Slide you are looking for.' )
                     ),
          'public' => true,
          'publicly_queryable' => false,
          'exclude_from_search' => true,
          'menu_position' => 14,
          'has_archive' => false,
          'hierarchical' => false,
          'capability_type' => 'page',
          'rewrite' => array( 'slug' => 'Slide' ),
          'supports' => array( 'title', 'thumbnail' )
      )
    );
  }
add_action( 'init', 'create_post_type' );

スライダー画像が実行されるファイルで、データベースから画像を取得し、クエリ結果を呼び出すには、ループを作成し、ループ内でクエリを実行する必要があります。

<?php
    if(!is_paged())
    {
        $args = array('post_type' => 'slider', 'posts_per_page' => 4);
        $the_query = new WP_Query( $args );
            if ( $the_query->have_posts() ) 
            {
                while ( $the_query->have_posts() ) 
                {
                    $the_query->the_post();
                    $image = wp_get_attachment_url( get_post_thumbnail_id($post->ID), 'slider-image' );             
?>

                    <div data-src="<?php echo $image; ?>"> </div> 

<?php               }
            }
    } 
?>

それでおしまいです。スライドメニューからアップロードされた画像がスライダーに表示されます。

3
perfectionist1

あなたが実際にテンプレートの中であなたの注目の画像を要求したのは分かりません。 the_post_thumbnail()endwhileの間に the_post() の呼び出しを入れて、運が良いかどうかを確認します。

0
Justin Bell

あなたはジャスティンが提案したことをする必要があるでしょう。しかし、あなたの質問にも多くの問題があります。カスタムクエリに投稿があるかどうかも確認していません。あなたはこのようなクエリを使うべきです。

<?php

    $args = array(
        'post_type'      => 'attachment',
        'category_name'  => 'single-portfolio'
    );

    $the_query = new WP_Query ( $args );

    if ( $the_query->have_posts() ) :

        while ( $the_query->have_posts() ) : $the_query->the_post();

        ?>

            <h1><?php the_title(); ?></h1>
            <?php the_post_thumbnail(); ?>

        <?php

        endwhile;

    endif;

    wp_reset_postdata();

?>

また、カスタムクエリを実行している場合は、最後に投稿データをwp_reset_postdata()でリセットできます。

0
Robert hue