web-dev-qa-db-ja.com

WordPressでテンプレートへのリンクを正しく挿入する方法

私は、HTML、CSS、JSを使ってWordpress以外のWebサイトを作成することに慣れています。通常、ページへのリンクabout-us.htmlを作成する場合は、単に次のように追加します。

<a href="/about-us.html">About Us</a>

私はFTPを介してワードプレスのテーマに変換したHTMLベースのテンプレートを持っています。私が同じことを達成したいのであれば、about-us.phpを参照するだけです。

<a href="/about-us.php">About Us</a>

About-us.phpは次のとおりです。

<?php
/**
 * Template Name: About Us
 *
 * @package WordPress
 * @subpackage Besa
 * @since Besa HTML5 3.0
 */

get_header(); ?>

<?php include('/about.html');?>

<?php get_footer(); ?>

必要なのはこれだけでしょうか。 includeステートメントを使用するのではなく、HTMLをコピーして貼り付ける必要がありますか?ワードプレスエディタで新しいページを作成する必要がありますか? PAge Attribute Templateを選択する必要がありますか?その場合はなぜですか?

ありがとうございます。

編集:私が私の方法を試みるとき、私はただのエラーを得ます

1
Matthew Sirkin

WordPressはそのようには動作しません。 WordPressでは、あなたが実際に訪れた投稿やページはディスク上のどこにも存在しません。コンテンツがデータベースから取得され、それからテンプレートファイルがそれらで埋められてブラウザに送信されます。

あなたのケースでは、あなたはabout-us.phpの代わりにabout-us.htmlというファイル名を作成し、そしてこれを使ってあなたのテンプレートにそれを含めるべきです:

get_template_part('path/to/this/file/about-us.php');

これで、管理者パネルからページを作成してこのファイルをテンプレートとして使用できるようになります。

リンクについてのあなたの質問に関しては...やはりPHPファイルに直接リンクしないでください。 PHPファイルに直接アクセスしても、ロード時にWordPressのエンジンはロードされません。

そうするために、あなたはナメクジを使うべきです。ページを作成し、スラッグを書き留めてから、次のようにPHPテンプレートに動的リンクを作成します。

<?php echo site_url('/some-path/slug-goes-here'); ?>

上記の関数はあなたのサイトのURLに/some-path/slug-goes-hereを追加して出力します。それがあなたのページのリンクになります。

1
Jack Johansson