it-swarm-ja.com

見つからないpage.phpを処理する方法?

私はJustin Tadlockによる無料のWordpressテーマ Stargazer を使用しています。

私はプラグイン(WooCommerce)をそれに統合しようとしています、そしてドキュメントを読んだ後、page.phpファイルを見つけ、その内容をwoocommerce.phpと呼ばれる新しいファイルにコピーし、そしてループをwoocommerce_content()関数で置き換える必要があります。

page.phpファイルが見つかりません。それで?

2
hecktor

WordPressテーマの唯一の必須テンプレートはindex.phpです。コメントがサポートされている場合はcomments.phpテンプレート階層 に従って、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();

それはNiceが読みやすいpage.phpになります。 hybrid_get_content_template();woocommerce_content();またはプラグインが必要とするものなら何でも置き換えることができます。

ちょっと待って!テーマを変更しないでください。 代わりに子テーマ を作成し、変更をthatに入れてください。今でもあなたはまだあなたのカスタマイズを失うことなく親テーマを更新することができます。

あなたはすべてのテーマとすべてのプラグインでこれらのステップに従うことができます。 index.phpが機能すれば、それを使用して子テーマに新しいテンプレートを作成できます。

1
fuxia