1

背景: WordPress のテーマ開発をいじっています。私は初心者です。テーマの開発方法に関する複数のチュートリアルを完了しました。私が現在取り組んでいるテーマは、ページの競合に問題があると思います。私はMAMPでそれを構築しています(それが重要な場合)。現在、この新しいテーマはあまりありません。始めたばかりで、必要だと思うすべてのテンプレート ファイルを作成しました。「index.php」と「style.css」以外はすべて空白です。関数ファイルにも何もありません。現在、ヘッダーとフッター、およびメニューのすべての情報は、"index.php" だけにあります。

問題: "page.php" ファイルをテーマ フォルダーに含めると、ページに何も読み込まれません。そして、私は視覚的にだけという意味ではありません。テンプレートの要素はページにまったく表示されません。テーマフォルダにも「index.php」があります。「page.php」がフォルダーから削除されると、テーマはすべてをロードします。WordPress階層によると、ページテンプレートの前にインデックスが呼び出されることは私の理解です。ページを使用する予定です。したがって、「page.php」が index.php と競合してテンプレートを壊しているように思えます。

質問:「page.php」は「index.php」の競合相手ですか?テーマを壊さないように修正するにはどうすればよいですか? 他のテーマではなく私のテーマでこれを行うのはなぜですか?

私が試したこと:

  • 「index.php」の内容を「page.php」にコピーしました。その後、テーマは期待どおりにロードされましたが、これにより問題が発生することが予想されます.
  • コードでいっぱいのインデックス テンプレートを使用してページ テンプレートを空白のままにすると、何も生成されません。コードでいっぱいのページでインデックスを空白のままにすると、テーマが読み込まれます。
  • 別のテーマから「page.php」をコピーしました。テーマが壊れました。別のテーマからインデックスをコピーしました。まだ壊れています。
  • これらの要素が表示されない原因となっている CSS がないことを確認するためだけに CSS を変更しました。繰り返しになりますが、firebug を使用したり、ソースを表示したりしても、それらは表示されません。

私が読んだこと:スタックで別の質問をすることなく問題を解決しようと宿題をしましたが、この同じ問題を抱えている人を他に見つけることができないようです (これはおそらく明らかなことだと思うだけです)私は間違っていますが、私は初心者なので、それを見逃したか何か)。私はこれらすべてを完全に読みました:

この問題に関するヘルプは大歓迎です。最近、index.php の内容は次のようになります。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
        <title>WordPress Training Wheels</title>

        <link href="<?php bloginfo('stylesheet_url'); ?>" rel="stylesheet" type="text/css" />
        <link href='http://fonts.googleapis.com/css?family=Dancing+Script:400,700' rel='stylesheet' type='text/css'>
    </head>

    <body>

        <div id="container" class="container_16">

            <div id="header" class="grid_16"><!-- Header Begins Here -->
                <h1><a href="<?php bloginfo('url'); ?>"><?php bloginfo('name'); ?></a></h1>
                <h2><?php bloginfo('description'); ?></h2>
                <?php
                wp_nav_menu(
                        array(
                            'theme_location' => 'top_header',
                            'container' => 'div',
                            'container_id' => 'top-menu',
                            'menu_class' => 'top-menu-list',
                            'fallback_cb' => 'false'
                ));
                ?>
            </div>

            <?php
            wp_nav_menu(
                    array(
                        'theme_location' => 'bottom_header',
                        'container' => 'div',
                        'container_id' => 'menu',
                        'menu_class' => 'bottom-menu-list'
            ));
            ?>

            <div id="content">

                <div class="sidebar left grid_3"><!-- Left Sidebar Begins Here -->
                    <h4>Sidebar Header</h4>
                    <?php if (!function_exists('dynamic_sidebar') || !dynamic_sidebar('Left Sidebar') ) : ?> 
                        <h3 class="widget-title">Categories</h3>  
                        <ul>  
                            <?php wp_list_categories(); ?>  
                        </ul>  
                        <h3 class="widget-title">Archives</h3>  
                        <ul>  
                            <?php wp_get_archives(array('type' => 'monthly')); ?>  
                        </ul>  
                    <?php endif; ?> 
                </div>

                <div id="middle-column" class="grid_6"><!-- Main Content Begins Here -->
                    <h3>Training Wheels Lesson 1</h3>
                    <p><img src="<?php bloginfo('template_directory'); ?>/images/training-wheels.jpg" width="426" height="142" alt="Training Wheels" /></p>
                </div>

                <div class="sidebar right grid_3"><!-- Right Sidebar Begins Here -->
                    <h4>Sidebar Header</h4>
                    <?php if (!function_exists('dynamic_sidebar') || !dynamic_sidebar('Right Sidebar') ) : ?>  
                        <h4>No Widgets added</h4>  
                        <p>Please login and add some widgets to this sidebar</p>  
                    <?php endif; ?> 
                </div>

                <div style="clear:both;"></div>

            </div><!-- Content Ends Here -->

            <div id="footer"><!-- Footer Content Begins Here -->
                <p>&copy; Wordpress Training Wheels, by wpbedouine</p>
            </div>

        </div>

    </body>

</html>
4

3 に答える 3

2

多くの検索の後、私は解決策を見つけたと信じています。上部のコメントに重要な行がなかったため、「home.php」はテーマで使用されていませんでした。追加した:

<?php
/*
Template Name: Front Page
*/
?>

「home.php」の上部に移動し、wp-admin に移動して、ページ>すべてのページ>ホームをクリックしました。次に、ページ エディターの右側に「テンプレート」というドロップダウン リスト項目を見つけました。「デフォルトテンプレート」から「フロントページ」に変更しました。

私が階層を読んでいた方法から、WordPress が自動的に "home.php" または "front-page.php" をホームページのテンプレートとして使用すると思い込んでいたと思います。どうやらこれは間違った仮定です。なぜなら、コメントにその行がなく、使用するテンプレートを指定していない場合、WordPress はテンプレートとして page.php を使用するだけだからです。

少なくとも、私にはそう見えます。この回答を改善したい、または修正したい人は誰でもしてください。

于 2012-10-02T17:29:30.290 に答える
0

アイデアですが、ホームページをブログの代わりにページに設定できますか? 設定 > 読書のように。http://codex.wordpress.org/Creating_a_Static_Front_Page

そうしないと、あなたのホームページが index.php ではなく page.php を使用する理由がわかりません。

于 2012-09-29T20:21:02.337 に答える