Wordpress自定义类别字段返回匹配的帖子类别

时间:2017-07-31 13:40:11

标签: php wordpress categories

所以,我有以下查询来显示页面模板上的帖子。

        $wp_query = new WP_Query(); $wp_query->query('category_name=specials&posts_per_page=2' . '&paged='.$paged);

category_name = specials 的位置我希望 特价 成为动态字段通知/从页面上的自定义字段中获取...因此页面可能具有自定义字段'类别'例如,我可以输入它作为特价的价值。因此,该页面将显示所有与我在客户字段值中输入的类别相匹配的帖子...这可能吗?

3 个答案:

答案 0 :(得分:1)

是,将自定义字段的值分配给变量并在查询中使用它,如下所示:

out

答案 1 :(得分:1)

如何使用以下代码获取类别明智的帖子?

在参数

中添加类别ID和分类法slug
    <?php
$post_type = 'post';
$page_paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args = array(
    'type'          => $post_type,
    'post_status'   => 'publish',
    'posts_per_page' => 6,
    'paged'          => $page_paged, 
    'caller_get_posts' => -1,
    'orderby'       => 'name',
    'order'         => 'DESC',
    'pad_counts'    => false,
    'hierarchical'  => 1,
    'hide_empty'    => 0,
    'tax_query'                => array(
        array(
            'taxonomy' => 'your taxonomy slug',
            'field' => 'id',
            'terms' => 'your category id'
        )
    ),
);

$loop = new WP_Query( $args );

while ( have_posts() ) : the_post();
    the_title('<h2>', '</h2>', true);
    the_content();
endwhile; // end of the loop. 

wp_reset_query();
?>

答案 2 :(得分:0)

感谢Neil快速回答

这是完整的代码块。

在页面上,添加自定义字段“类别”,然后确保此自定义字段的值与将在页面上返回这些帖子的帖子类别相匹配。

<?php // Display blog posts with category filter from custom field
    $temp = $wp_query; $wp_query= null;
    $custom_field = get_post_meta( get_the_ID(), 'category', true);
    $wp_query = new WP_Query(); $wp_query->query('category_name='.$custom_field.'&posts_per_page=2' . '&paged='.$paged);

    $wp_query = new WP_Query(); $wp_query->query('category_name=specials&posts_per_page=2' . '&paged='.$paged);
    while ($wp_query->have_posts()) : $wp_query->the_post(); ?>

    <h2><a href="<?php the_permalink(); ?>" title="Read more"><?php the_title(); ?></a></h2>
    <?php the_excerpt(); ?>

    <?php endwhile; ?>

    <?php if ($paged > 1) { ?>

    <nav id="nav-posts">
        <div class="prev"><?php next_posts_link('&laquo; Previous Posts'); ?></div>
        <div class="next"><?php previous_posts_link('Newer Posts &raquo;'); ?></div>
    </nav>

    <?php } else { ?>

    <nav id="nav-posts">
        <div class="prev"><?php next_posts_link('&laquo; Previous Posts'); ?></div>
    </nav>

    <?php } ?>

    <?php wp_reset_postdata(); ?>