WooCommerce:更改单一产品页面的模板

时间:2015-06-03 作者:user3751508

我知道有可能通过编辑文件来更改产品页面的结构/设计single-product-php - 在子主题中。

对该文件所做的更改将影响所有产品页面。

但是如何更改特定产品页面的模板文件?就像我可以使用自定义页面模板一样?从零开始,在单个产品页面上没有像页面(图像)那样的模板下拉列表。

如何更改特定产品页面的模板?

2 个回复
SO网友:Brad Dalton

Woo Commerce作为一个插件,与WordPress无关,但你可以做的是复制单个产品。php模板到子主题中的WooCommerce文件夹。更改文件名并修改文件,然后使用single_templatetemplate_include 使用正确的条件标记。

single_template

function get_custom_post_type_template($single_template) {
 global $post;

 if ($post->post_type == \'product\') {
      $single_template = dirname( __FILE__ ) . \'/single-template.php\';
 }
 return $single_template;
}
add_filter( \'single_template\', \'get_custom_post_type_template\' );

template_include

add_filter( \'template_include\', \'portfolio_page_template\', 99 );

function portfolio_page_template( $template ) {

    if ( is_page( \'slug\' )  ) {
        $new_template = locate_template( array( \'single-template.php\' ) );
        if ( \'\' != $new_template ) {
            return $new_template ;
        }
    }

    return $template;
}

SO网友:sohan

你需要检查WordPresstemplate-hierarchy 工作原理。

单立柱#

单篇文章模板文件用于渲染单篇文章。WordPress使用以下路径:

1.single-{post-type}.php – First, WordPress looks for a template for the specific post type. For example, post type is product, WordPress would look for single-product.php.
2.single.php – WordPress then falls back to single.php.
3.index.php – Finally, as mentioned above, WordPress ultimately falls back to index.php.
第页#

用于呈现静态页面(页面帖子类型)的模板文件。请注意,与其他帖子类型不同,页面是WordPress专用的,并使用以下补丁:

   1. custom template file – The page template assigned to the page. See get_page_templates().
   2. page-{slug}.php – If the page slug is recent-news, WordPress will look to use page-recent-news.php.
   3.page-{id}.php – If the page ID is 6, WordPress will look to use page-6.php.
   4. page.php
   5. index.php
对于您可以使用的特定idpage-{id}.php 样板

结束

相关推荐

Custom Post Templates

The Issue: 我正在寻找定制的单篇文章模板,以添加或删除单个元素作为普通单篇文章的功能。有很多方法可以在WordPress中为单个帖子创建自定义帖子模板。尤其是post格式是使用默认模板处理默认情况的绝佳机会;然而,我需要真正的自定义模板。The Idea: 我的第一种方法是根据post ID添加if/else语句:// check if custom post if ( is_single(\'999\') ) // check if there is a custom