如何在一个页面中显示带有自定义字段的页面

时间:2013-01-24 作者:DigitalElise

我正在尝试显示具有特定值的自定义字段的所有页面。我想做的是使用当前页面标题作为自定义字段的值,并获取定义了该值的所有页面。

例如:

当前页面为“Surgery“自定义字段名为”Section“自定义字段值为”Surgery“我已经能够使用以下代码对post进行处理,但我似乎无法解决如何处理页面。

<?php woo_loop_before(); ?>

<?php
    if ( get_query_var( \'paged\') ) { 
        $paged = get_query_var( \'paged\' ); 
    } elseif ( get_query_var( \'page\') ) { 
        $paged = get_query_var( \'page\' ); 
    } else { 
        $paged = 1; 
    }

    $query_args = array(
                        \'post_type\' => \'post\', 
                        \'paged\' => $paged
                    );

    // Do not remove. Used to exclude categories from displaying here.
    $query_args = apply_filters( \'\', $query_args ); 

    remove_filter( \'pre_get_posts\', \'woo_exclude_categories_homepage\' );

    query_posts( $query_args );
query_posts(\'category_name=\'.get_the_title().\'&post_status=publish,future\');    
    if ( have_posts() ) {
        $count = 0;
        while ( have_posts() ) { the_post(); $count++;

            /* Include the Post-Format-specific template for the content.
             * If you want to overload this in a child theme then include a file
             * called content-___.php (where ___ is the Post Format name) 
             * and that will be used instead.
             */
            get_template_part( \'content\', get_post_format() );

        } // End WHILE Loop

    } else {
?>
    <article <?php post_class(); ?>>
        <p><?php _e( \'Sorry, no posts matched your criteria.\', \'woothemes\' ); ?></p>
    </article><!-- /.post -->
<?php } // End IF Statement ?> 

<?php woo_loop_after(); ?>

1 个回复
SO网友:Mike Madern

您可以使用get_pages(), 在参数中,可以提供搜索查询post_meta, 例如:

$args = array(
    \'post_type\'  => \'page\',
    \'meta_key\'   => \'section\',
    \'meta_query\' => array( array(
        \'key\'     => \'section\'
        \'value\'   => \'surgery\' // here you could place get_the_title()
        \'compare\' => \'=\'
    ) )
);

$pages = get_pages( $args );
这将返回中的所有页面(或任何其他帖子类型post_type) 使用meta\\u key section和meta\\u value手术。

如果使用这种方式,则必须更改循环,请按以下方式构建循环:

foreach( $pages as $page ) : setup_postdata( $page );
...
endforeach; wp_reset_postdata();
希望这对你有帮助。

结束

相关推荐

Organizing Your Pages

我在创建子页时遇到问题。到目前为止,我遵循了正确的方向:转到新页面,单击“页面父级”下拉菜单</从下拉菜单中选择适当的父页面,使当前页面成为子页面</准备就绪后单击发布当我发布页面时,会导致找不到页面。例如:假设我有一个南美页面,我添加了“儿童”页面:南美洲当我访问www.mywebsite时,我会看到阿根廷、巴西。com/南美/阿根廷它说找不到页面。但是:www.mywebsite。com/南美洲/(works)</www.mywebsite。com/阿根廷/(works) </