如何处理丢失的Page.php?

时间:2015-01-08 作者:hecktor

我正在使用免费的Wordpress主题Stargazer 贾斯汀·塔洛克。

我正在尝试将插件(WooCommerce)与之集成,阅读文档后,我需要找到page.php 文件,将内容复制到名为woocommerce.php 并将回路替换为woocommerce_content() 作用

我似乎找不到page.php 文件现在怎么办?

1 个回复
SO网友:fuxia

WordPress主题中唯一需要的模板是index.php. 和acomments.php 如果支持注释。遵循template hierarchy, 所有其他文件,包括page.php, 将退回到index.php.

当主题没有page.php, 看看index.php. 在那里,您可以找到其内容的基本结构。在您的示例中index.php 如下所示:

<?php get_header(); // Loads the header.php template. ?>

<main <?php hybrid_attr( \'content\' ); ?>>

    <?php if ( !is_front_page() && !is_singular() && !is_404() ) : // If viewing a multi-post page ?>

        <?php locate_template( array( \'misc/loop-meta.php\' ), true ); // Loads the misc/loop-meta.php template. ?>

    <?php endif; // End check for multi-post page. ?>

    <?php if ( have_posts() ) : // Checks if any posts were found. ?>

        <?php while ( have_posts() ) : // Begins the loop through found posts. ?>

            <?php the_post(); // Loads the post data. ?>

            <?php hybrid_get_content_template(); // Loads the content/*.php template. ?>

            <?php if ( is_singular() ) : // If viewing a single post/page/CPT. ?>

                <?php comments_template( \'\', true ); // Loads the comments.php template. ?>

            <?php endif; // End check for single post. ?>

        <?php endwhile; // End found posts loop. ?>

        <?php locate_template( array( \'misc/loop-nav.php\' ), true ); // Loads the misc/loop-nav.php template. ?>

    <?php else : // If no posts were found. ?>

        <?php locate_template( array( \'content/error.php\' ), true ); // Loads the content/error.php template. ?>

    <?php endif; // End check for posts. ?>

</main><!-- #content -->

<?php get_footer(); // Loads the footer.php template. ?>
您可以剥离所有与多帖子相关的代码和注释模板调用。以及不必要的PHP标记和注释(叹气)。剩下的是:

<?php get_header(); ?>

<main <?php hybrid_attr( \'content\' ); ?>>

    <?php 
    if ( have_posts() )
    {
        while ( have_posts() )
        {
            the_post();
            hybrid_get_content_template();
        }

        locate_template( array( \'misc/loop-nav.php\' ), true ); 
    }
    ?>
</main>

<?php get_footer();
这使得一个很好的可读性page.php. 现在可以替换hybrid_get_content_template(); 具有woocommerce_content(); 或者插件需要的任何东西。

但是等等!不要更改主题,create a child theme 取而代之的是,将您的更改放在该中。现在,您仍然可以更新父主题,而不会丢失自定义设置。

对于每个主题和每个插件,您都可以遵循这些步骤。如果index.php 如果有效,您可以使用它在子主题中创建新模板。

结束

相关推荐