2016-10-19 28 views
1

私のWordpressウェブサイトは2つのプッシュメニューを使用していますが、どちらも最初はheader.phpファイルにあります。私がこれらのメニューの一つでたくさんのPHPコードを使用する必要が始まるまで、私はそれらを別々のファイルに入れ、それらをPHPコマンドでページ構造に呼び出すことにしました。私はこれについての最善の方法が何であるか疑問に思っており、私が正しくそれをやっているかどうかに関する助言を感謝するでしょう。以下は、2つのメニューのうちのより単純なコードです。これをmobile-menu.phpという名前で保存しました。Wordpressの他のテンプレートをpage.phpに呼び出す最も信頼性の高い方法は何ですか?

<div class="mobile-menu"> 

     <nav class="main-menu" id="mobile"> 

      <?php wp_nav_menu(array('theme_location' => 'header')); ?> 

     </nav> 

</div> 

これは、コードの特に長いリストではありませんが、それは私がインストールしたプラグインからPHPを使用していますように、他のメニュー(shopping-basket.php)がたくさん長く、私は、コードの質量をしたくありません私のヘッダーに。私はその後、私は、ヘッダーとフッターを持っているように、コマンドを「含める」を使用して、私のpage.phpに両方のメニューを呼び出しました

- 例えば:

<?php get_header(); ?> 

<?php include("mobile-menu.php"); ?> 

<?php include("shopping-basket.php"); ?> 

は、この推奨されていますか?大丈夫だと思われますが、ファイルを.phpのPHPテンプレートとして保存しているにもかかわらず、自分のFTPアカウントで見たときにHTMLファイルとして表示されています。これはなぜでしょうか?私は本当にこのオンライン上の任意の具体的な情報を見つけることができませんやフォーラムを検索して、私がでてるステージに持っているよう

何かアドバイスや情報などをいただければ幸いです

答えて

2

あなたは最高のオフになりますinclude()の代わりにget_template_part()を使用してください。

ロードテンプレート部分テンプレート

https://developer.wordpress.org/reference/functions/get_template_part/

にあなたは(私は特定のmost-するleast-の名前を並べ替えてきたことに注意してください)templates/menu-mobile.phpmobile-menu.phpの内容を置く必要がありますおよびtemplates/shoppingbasket.php。そのように呼び出す:

get_template_part('templates/menu','mobile'); 
get_template_part('templates/shoppingbasket'); 
+0

こんにちは、ありがとうございます。私は子供のテーマを使用していないと私の質問で言及することを忘れていました。私は私が最初から作った自分の非常に基本的なテーマを使用しています - これは結果に影響を与えますか?私はまだテンプレートフォルダを持っていません。子テーマを使用していない場合はテンプレートを作成するか、 'header.php'や' functions.php'のような他のすべてのファイルで緩めてください。 – Jack1991

+1

私はこのテーマを最初からやっています。私は 'templates'ディレクトリを作成してそこにテンプレートを置くのが最善の方法です。 – dotancohen

+0

ありがとう、これは素晴らしいを働いている:) – Jack1991

関連する問題