如何在保留菜单栏的同时将所有页面合并为一个页面?

时间:2015-02-09 作者:Inès Joubert

我目前有一个网站,有一个基本的组织:5个不同的页面(“关于我们”,“项目”…等等),有一个典型的菜单栏。

我现在想把所有的页面合并成一个页面。1) 如何将我的所有页面带入主页?

我还想保留一个(某种)菜单栏:例如,单击菜单栏中的“项目”将使读者进入主页的项目部分。2) 如何构建这样的菜单栏?

我(很遗憾!)对Wordpress和;编码。非常感谢您的详细回答:)

谢谢,伊内斯

1 个回复
最合适的回答,由SO网友:Duane 整理而成

你可以通过两种方式来实现这一点。

1) 在WordPress仪表板中将这些页面保留为单独的页面,并创建一个列出这些页面内容的自定义页面模板。将此自定义模板分配到主页。

2) 将这些页面的内容移动到主页编辑器中。

Option 1:

一个更简洁的选项,允许您在稍后阶段还原到各个页面。它还使编辑页面变得更加容易。

设置acustom page template, 我将称之为主页。php,但您可以随意调用它。

您需要在主题文件夹中创建此模板。路径(在WordPress的标准安装中)应该是/wp-content/themes/your-theme/,其中“your-theme”是主题的名称。

NB: If you\'re theme is updated you will probably lose this template. To prevent this, I\'d suggest creating a child theme.

复制页面内容可能是最简单的方法。php并将其粘贴到新创建的主页中。php保留主题标记。在主页顶部。php插入以下内容。

<?php
/*
 * Template Name: Home Page
 */
?>
查找最有可能是这样的默认循环。

<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

    <!-- Loop HTML/PHP -->

<?php endwhile; endif; ?>
现在,您想用以下代码替换默认循环。

<?php
    $pages = get_pages( array(
        \'sort_column\' => \'menu_order\', // allows you to order pages using menu order under page attributes
        \'exclude\' => 3, // the home page ID
    ) );
?>

<?php
    foreach ( $pages as $page ) {
        $content = $page->post_content;
        if ( ! $content ) // Check for empty page
            continue;

            $content = apply_filters( \'the_content\', $content );
            ?>
        <div id="page-<?php echo $page->ID; ?>">
            <?php echo $content; ?>
        </div>
        <?php
    }
?>
在主题中保存此模板后,请编辑主页。(如果它还不存在,请创建一个,然后转到您的仪表板>设置>阅读,并将首页显示选项更改为静态页面,然后选择新创建的主页。)和select the template.

Option 1 Menu

每个部分都有一个如下所示的IDpage-34 其中34是页面ID。如果您不确定如何查找页面ID,check out this video.

按照通常在“外观>菜单”下创建菜单。使用链接代替插入页面。例如,假设我想添加一个ID为34的名为Dummy的页面。我会转到菜单并切换到链接下拉列表。在URL字段中输入“#page-34”,在链接文本字段中输入您喜欢的内容,但我的是“Dummy”。然后单击“添加到菜单”。

冲洗并重复所有要添加到菜单中的页面。保存菜单后,您应该拥有标准的WordPress菜单,其中每个菜单项都链接到相关部分。

Option 2:

编辑主页并切换到所见即所得编辑器的文本视图。

对于每个“页面”,添加一个具有如下唯一ID的div。

<div id="page-about">
    <!-- about page content here -->
</div>
在这些div标记之间插入页面内容。对要添加到主页的每个页面重复此操作。例如:

<div id="page-contact">
    <!-- contact page content here -->
</div>

Option 2 Menu

按照通常在“外观>菜单”下创建菜单。使用链接代替插入页面。要链接到关于页面部分,您需要添加一个新的链接,URL设置为“#page about”。要链接到联系人页面部分,请添加URL设置为“#page contact”的新链接。对所有其他页面重复冲洗。

结束

相关推荐

Get_Pages--父级对子级?

我正在一个非常干净和层次结构的网站上使用get\\u页面。作为模板的一部分,我想将子页面显示为模板“样板”的一部分。正在读取Codex documentation, 有两个似乎相关的参数:parent 和child_of.我一直在摆弄它们,用一个简单的转储到页面的主体,就像这样,但我看不出这两个参数有什么根本不同。。。除了给他们带来冲突的风险。例如,如果我设置child_of 至17(有效页)和parent 除了17或1。。。我得到一个空数组。这很有道理。。。但是为什么有两个参数?在扫描文档和代码时找不到