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 回答