wp query - WP_query only displays one of my custom post type entries

I create a custom post type and wrote a shortcode to display the posts on the front end of my website, but the code only

I create a custom post type and wrote a shortcode to display the posts on the front end of my website, but the code only displays one (1) post, and the most recent one. See front-end page here -> . The CPT is the "jobs board".

Here is my code. Any advice for cleaning this code up and making sure all of my posts display on the front end? Thank you!

function locg_view_jobs($atts) {
    $atts = shortcode_atts(
                array( //default values
                'post_type' => 'locg_jobs',
                'post_status' => 'publish',
                ), 
                $atts, 'locgviewjobs' );

    global $post;

    $posts = new WP_query($atts);
    $output = '';
    $terms = get_the_terms( get_the_ID(), 'job_cat'); foreach ($terms as $term) { $job_cat_links[]=$term->name; }
    $job_cat_go = join(",", $job_cat_links);

        if ($posts->have_posts())
            while ($posts->have_posts()):
                $posts->the_post();
                $out = '<div class="job_post"><h4><a href=" ' . get_the_permalink() . '" title="Apply Now" />' . get_the_title() . '</a></h4>
                        <div class="jobs_meta">
                        <span class="meta">Posted Date:</span> ' . get_the_date() . '</span> | <span class="meta">Open Until:</span> ' . get_post_meta($post->ID, 'expiredate', true) . ' | <span class="meta">Department:</span> ' . get_post_meta($post->ID, 'Department', true) . ' </div>
                        <p>' . get_the_excerpt() . '</p>
                        <a class="red_link" target="_blank" href=" ' . get_the_permalink() . '" /><button class="red" style="margin-right: 10px;"/>Learn More</button></a>
                        <a class="red_link" target="_blank" href="" /><button class="red"/>Apply Now</button></a>
                        </div>';

    endwhile;
    else return( 'Sorry, there are no jobs available at this time. Check back often! In the meantime, you can fill out a blank application for us to hold on file. <a href="" target="_blank" />Click here</a>.' );
    wp_reset_query();
    return html_entity_decode($out);
}
add_shortcode( 'locgviewjobs', 'locg_view_jobs');

I create a custom post type and wrote a shortcode to display the posts on the front end of my website, but the code only displays one (1) post, and the most recent one. See front-end page here -> https://www.800goldlaw/careers. The CPT is the "jobs board".

Here is my code. Any advice for cleaning this code up and making sure all of my posts display on the front end? Thank you!

function locg_view_jobs($atts) {
    $atts = shortcode_atts(
                array( //default values
                'post_type' => 'locg_jobs',
                'post_status' => 'publish',
                ), 
                $atts, 'locgviewjobs' );

    global $post;

    $posts = new WP_query($atts);
    $output = '';
    $terms = get_the_terms( get_the_ID(), 'job_cat'); foreach ($terms as $term) { $job_cat_links[]=$term->name; }
    $job_cat_go = join(",", $job_cat_links);

        if ($posts->have_posts())
            while ($posts->have_posts()):
                $posts->the_post();
                $out = '<div class="job_post"><h4><a href=" ' . get_the_permalink() . '" title="Apply Now" />' . get_the_title() . '</a></h4>
                        <div class="jobs_meta">
                        <span class="meta">Posted Date:</span> ' . get_the_date() . '</span> | <span class="meta">Open Until:</span> ' . get_post_meta($post->ID, 'expiredate', true) . ' | <span class="meta">Department:</span> ' . get_post_meta($post->ID, 'Department', true) . ' </div>
                        <p>' . get_the_excerpt() . '</p>
                        <a class="red_link" target="_blank" href=" ' . get_the_permalink() . '" /><button class="red" style="margin-right: 10px;"/>Learn More</button></a>
                        <a class="red_link" target="_blank" href="http://gld.la/2GciVF4" /><button class="red"/>Apply Now</button></a>
                        </div>';

    endwhile;
    else return( 'Sorry, there are no jobs available at this time. Check back often! In the meantime, you can fill out a blank application for us to hold on file. <a href="http://gld.la/2GciVF4" target="_blank" />Click here</a>.' );
    wp_reset_query();
    return html_entity_decode($out);
}
add_shortcode( 'locgviewjobs', 'locg_view_jobs');
Share Improve this question asked Apr 8, 2019 at 13:28 tommycopelandtommycopeland 33 bronze badges
Add a comment  | 

2 Answers 2

Reset to default 1

Try adding 'posts_per_page' => -1, to your default atts. This will make the query return all of the posts instead of limiting it. Also you're overriding $out each loop instead of adding to it. Change $out = '<div class to $out .= '<div class

Try this

function locg_view_jobs($atts) {
    $atts = shortcode_atts(
                array( //default values
                'post_type' => 'locg_jobs',
                'post_status' => 'publish',
                ), 
                $atts, 'locgviewjobs' );

    global $post;

    $posts = new WP_query($atts);
    $out = '';

    $terms = get_the_terms( get_the_ID(), 'job_cat');

    foreach ($terms as $term) { 
         $job_cat_links[]=$term->name;
    }

    $job_cat_go = join(",", $job_cat_links);

        if ($posts->have_posts())
            while ($posts->have_posts()):
                $posts->the_post();
                $out .= '<div class="job_post"><h4><a href=" ' . get_the_permalink() . '" title="Apply Now" />' . get_the_title() . '</a></h4>
                        <div class="jobs_meta">
                        <span class="meta">Posted Date:</span> ' . get_the_date() . '</span> | <span class="meta">Open Until:</span> ' . get_post_meta($post->ID, 'expiredate', true) . ' | <span class="meta">Department:</span> ' . get_post_meta($post->ID, 'Department', true) . ' </div>
                        <p>' . get_the_excerpt() . '</p>
                        <a class="red_link" target="_blank" href=" ' . get_the_permalink() . '" /><button class="red" style="margin-right: 10px;"/>Learn More</button></a>
                        <a class="red_link" target="_blank" href="http://gld.la/2GciVF4" /><button class="red"/>Apply Now</button></a>
                        </div>';

    endwhile;
    else return( 'Sorry, there are no jobs available at this time. Check back often! In the meantime, you can fill out a blank application for us to hold on file. <a href="http://gld.la/2GciVF4" target="_blank" />Click here</a>.' );
    wp_reset_query();
    return html_entity_decode($out);
}
add_shortcode( 'locgviewjobs', 'locg_view_jobs');

发布者:admin,转转请注明出处:http://www.yc00.com/questions/1745614652a4636158.html

相关推荐

  • wp query - WP_query only displays one of my custom post type entries

    I create a custom post type and wrote a shortcode to display the posts on the front end of my website, but the code only

    6小时前
    30

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信