2

カスタム ページを自分のサイトに表示しようとして問題が発生しています。私が望むのは、クライアントが Wordpress でコンテンツを編集できるページを作成することです。Wordpressの「新しいページを追加」を使用してページを追加すると表示されませんが、.phpで同じ内容のページを作成すると正常に動作します。これは私がしたことです:

最初に、次のコードを使用して lefthome.php という空の .php テンプレートを作成しました。

    <?php
/*
Template Name: Left Template
*/
?>

        <?php get_template_part( 'loop', 'page' ); ?>

次に、Wordpress に移動し、ページをクリックし、[新規追加] をクリックしました。ページにタイトルを付け、ページに表示したいコンテンツを追加しました。次に、ページ属性のテンプレート オプションから、以前に作成したテンプレート (左のテンプレート) を選択し、[更新] をクリックします。

このテンプレートをホームページに表示したかったので、次のコードを使用して、作成したホームページ テンプレートに追加しようとしました。

    <?php
/*
Template Name: Home
*/

get_header(); ?>

<?php include (TEMPLATEPATH . '/slider.php'); ?>

<div id="content">
    <?php include (TEMPLATEPATH . '/lefthome.php'); ?>
</div>

        <?php get_template_part( 'loop', 'page' ); ?>


<?php get_footer(); ?>

ヘッダー、slider.php、およびフッターはすべて正常に表示されます。lefthome.php の内容は表示されません。表示させる方法がわかりません。表示する唯一の方法は、コンテンツを lefthome.php テンプレートに貼り付けることです。ただし、クライアントはコンテンツ自体を編集できないため、これは行いたくありません。

誰かが私を助けてくれることを願っています。

ありがとう

4

1 に答える 1

2

テンプレート ファイルを直接呼び出すだけでは、ページのコンテンツを表示することはできません。ページ自体にクエリを実行する必要があります。その場合、すでに割り当てられているテンプレートは関係ありません。

<?php
/*
Template Name: Home
*/

get_header(); ?>

<?php include (TEMPLATEPATH . '/slider.php'); ?>

<div id="content">
<?php
global $post;
$page_id =5; // 5 is the id of the page we want to present with Left Template.
$post = get_post( $page_id );

setup_postdata( $post );
include locate_template( 'lefthome.php' );
wp_reset_postdata(); // we are done with that. reset the query so the rest don't mess up
?>
</div>

        <?php get_template_part( 'loop', 'page' ); ?>


<?php get_footer(); ?>
于 2012-07-11T18:26:29.437 に答える