• 解決済 nogud

    (@nogud)


    いつもお世話になっております。

    記事一覧ページにて、画面下までスクロールした際に、ajaxをつかって指定した投稿数を表示するという実装をやっております。

    そこで、$wpdbをつかって下記をどうやって取得するのかご教授頂きたく立てさせていただきました。

    ・カスタムフィールド名xxxの値を取得
    ・カスタムフィールド名xxxに値が入っているかどうかの判定
    ・該当投稿記事のターム名の取得

    ajaxとphpはこちらのサイトを参考にさせて頂いております。
    http://hijiriworld.com/web/wp-ajax-loading/

    □ajaxでアクセスするPHP

    require_once("../../../wp-config.php");
    
    $now_post_num = $_POST['now_post_num'];
    $get_post_num = $_POST['get_post_num'];
    
    $sql = "SELECT
            $wpdb->posts.ID,
            $wpdb->posts.post_title,
            $wpdb->postmeta.meta_key,
            $wpdb->postmeta.meta_value
        FROM
            $wpdb->posts,
            $wpdb->postmeta,
            $wpdb->terms
        JOIN $wpdb->term_taxonomy
        ON $wpdb->terms.term_id = $wpdb->term_taxonomy.term_id
        WHERE
            $wpdb->posts.post_type = 'works' AND $wpdb->posts.post_status = 'publish'
        ORDER BY
            $wpdb->posts.post_date ASC
        LIMIT $now_post_num, $get_post_num";
    
    $results = $wpdb->get_results($sql);
    
    $html = "";
    
    foreach ($results as $result) {
        $html .= '<li><a href="'.get_permalink($result->ID).'" data-pjax>';
        $html .= '<div><img src="'.カスタムフィールド名thumbの値を取得.'" alt="'.apply_filters('the_title', $result->post_title).'"></div>';
        $html .= '<div>';
        $html .= '<p>'if(.カスタムフィールド名title_enに値が入っていたら.){.xxxx.}else{.xxxx.}'</p>'
        $html .= foreach($results as $term){
    				if ($term === reset($terms)){
    					'<p class="cate">'.$term->name;.'</p>'
    				}
    			};
        $html .= '</div>';
        $html .= '</a></li>';
    }
    echo $html;

    □元々表示させているarchive-xxx.php

    <?php
    	global $post;
    	$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
    	$args= array(
    		'post_type' => array('works'),
    		'posts_per_page' => 10,
    		'order' => 'ASC',
    		'paged' => $paged
    	);
    	$postslist = query_posts( $args );
    
    	foreach($postslist as $post):setup_postdata($post);
    	?>
    		<?php $terms = get_the_terms( $post->ID, 'workscat', $args02); ?>
    		<li><a href="<?php the_permalink(); ?>" data-pjax>
    			<div><img src="<?php the_field('thumb'); ?>" alt="<?php the_title(); ?>"></div>
    			<div>
    			<p><?php if(get_field('title_en')): ?><?php the_field('title_en'); ?><?php else: ?><?php the_field('title'); ?><?php endif; ?></p>
    			<?php foreach($terms as $term): ?>
    			<?php if ($term === reset($terms)): ?>
    			<p class="cate"><?php echo $term->name; ?></p>
    			<?php endif; ?>
    			<?php endforeach; ?>
    			</div>
    		</a></li>
    	<?php endforeach; ?>

    ご教授の程よろしくお願いいたします。

1件の返信を表示中 - 1 - 1件目 (全1件中)
1件の返信を表示中 - 1 - 1件目 (全1件中)

トピック「ajaxを使った投稿記事の取得」には新たに返信することはできません。