【问题标题】:wp_query for custom category pages自定义类别页面的 wp_query
【发布时间】:2017-11-03 15:24:15
【问题描述】:

我正在使用简单的数字下载插件建立一个电子商务商店。 我不想让我的所有产品都有一个页面,我想要的是每个产品类别都有一个页面。 到目前为止,我有一个模板页面 - 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 显示所有类别 id 为“29”的产品。正如我在代码中所写。 现在,easy-digital downloads 有一些简码,我可以用它们来决定我想展示什么产品(下载)。例如:"[downloads category="29"]" 将显示类别 ID 为“29”的所有产品。 在引用 edd-store-front.php 模板的 wordpress 页面中,短代码不会影响任何东西,只会影响模板文件(出于某种原因?)。 所以,我的问题是我如何使用 wp_query 为商店的所有页面实现一个模板文件,该模板文件将显示一个自定义类别,这将在仪表板中的 wordpress 页面上决定,使用简码?

【问题讨论】:

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


    【解决方案1】:

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

    如果您只想对数字下载产品进行不同的样式/布局,您可以将模板文件命名为“taxonomy-download_category.php”。

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

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

    【讨论】:

    • 感谢@squatchman。我想使用“页面”的原因只是因为我认为这是正确的方法。所有商店页面的行为和样式都应该相同,以及不同的数字下载。例如,如果我的商店中有 3 种不同类型的数字下载,那么每种类型(类别)都有自己的页面,该页面将仅显示相关的数字产品。
    • 您使用的是高级自定义字段插件吗?这将是一种无需太多修改的简单方法。
    • 我没有使用acf插件。现在我检查了这个,但我有点困惑。你的意思是我可以单独使用插件吗?还是通过 taxonomy-download_category.php 来完成?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-17
    • 1970-01-01
    • 1970-01-01
    • 2013-09-29
    相关资源
    最近更新 更多