自定义类别页面的wp_query

时间:2017-11-03 15:24:15

标签: php wordpress wordpress-theming easy-digital-downloads

我正在建立一个带有简易数字下载插件的电子商务商店。 我不希望有一个页面包含我的所有产品,我想要的是每个产品类别一个页面。 到目前为止我所拥有的是一个模板页面 - edd-store-front.php,其中包含以下wp_query代码:

 $per_page = intval( get_theme_mod( 'bwpy_store_front_count', 9 ) );
$offset = $current_page > 0 ? $per_page * ( $current_page-1 ) : 0;
$product_args = array(
    'post_type'     => 'download',
    'posts_per_page'    => $per_page,
    'offset'        => $offset,
    'tax_query' => array(
     array(
     'taxonomy' => 'download_category',
     'field' => 'id',
     'terms' => '29'
     ),
        ),
);
$products = new WP_Query( $product_args );

在这种情况下,edd-store-front.php显示类别为“29”的所有产品。正如我在我的代码中写的那样。 现在,简易数字下载有一些短代码,我可以决定我想要显示哪些产品(下载)。例如:“[downloads category =”29“]”将显示类别为“29”的所有产品。 在引用edd-store-front.php模板的wordpress页面中,短代码不影响任何东西,只影响模板文件(出于某种原因?)。 所以,我的问题如何使用wp_query为商店的所有页面实现单个模板文件,这将显示一个自定义类别,该类别将在仪表板的wordpress页面中决定,使用短代码?

1 个答案:

答案 0 :(得分:0)

您是否有理由尝试使用“页面”?即想要一些特定的页面行为?

如果您只想以不同方式设置/布局Digital Download产品,您可以将模板文件命名为“taxonomy-download_category.php”。

在这种情况下,您可以使用the_pre_get_posts过滤器更改posts_per_page之类的内容。或者该模板中的自定义循环。

如果您需要使用“页面”,可以考虑为要显示的类别添加自定义字段。你是对的,短代码在这种情况下不会做任何事情。