繁体   English   中英

按字段名称过滤页面(高级自定义字段和Wordpress)

[英]Filter a page by a field name (Advanced Custom Fields & Wordpress)

我正在使用Wordpress和高级自定义字段。

我希望能够创建显示不同页面摘录或对其进行过滤的页面。

示例:我有10个不同的页面,每个页面与一个酒店有关,它们在有关酒店,酒店名称,位置,设施等的字段(高级自定义字段)中存储了各种信息。

这10家酒店是主页的子页面,主页上显示所有酒店,但是仅显示有关酒店的某些详细信息,例如描述和图像的摘录。

我创建了另一个名为“类别”的高级自定义字段,以尝试测试是否可以使它正常工作,我只在“酒店”字段中填写了一些实际的酒店相关页面。

我正在努力做的是编写一些代码,因此该页面仅显示“酒店”类别下的酒店,我将代码编写在模板文件中,因此列出所有酒店的“酒店”主页面正在使用此代码。模板。

所有这些都使用页面而不是帖子,所有信息都通过“高级自定义字段”插件存储在字段中。

我认为代码应该使用ifelse函数正常工作。

如果有人可以帮助我解决这个问题,将不胜感激。

看来您想查询将某些自定义字段设置为特定值的页面。 为此,您可以在页面模板中使用元查询,如下所示:

<?php
$args = array(
    'post_type' => 'page',
    'meta_query' => array(
        array(
            'key' => 'Category',
            'value' => 'Hotel',
            'compare' => 'LIKE'
        )
    ),
        'posts_per_page' => get_option('posts_per_page')
 );
$hotel_query = new WP_Query( $args );
?>

有关自定义字段的更高级查询,请查看WP_Query中有关自定义字段参数的文档

提取自定义查询后,您可以像正常情况一样遍历结果:

<ul>
<?php if ( $hotel_query->have_posts() ) : while ( $hotel_query->have_posts() ) : $hotel_query->the_post(); ?>
    <li><?php the_title(); ?></li>

<?php endwhile; endif; ?>
</ul>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM