【发布时间】:2020-02-07 07:35:13
【问题描述】:
我昨天在 WordPress Exchange 上问过这个问题,但没有引起注意,所以我现在在这里发帖。
我创建了一个单页 WordPress 主题来学习创建主题的过程,一切都很好,但它是以一种非常 hack-ish 的方式完成的,如果我想分发这个,我会有人想知道它到底是怎么工作的。
简而言之,您可以像创建任何其他主题一样创建页面,然后将它们添加到主菜单中。然后我的代码读取菜单内容并按照页面在菜单上的顺序加载页面内容。 (见下面的代码)
显然这不是应该的做法。我想知道的是我应该怎么做?我还没有找到一个很好的单页主题指南以及它们应该如何工作。任何帮助将不胜感激。
现在我的整个 index.php 文件:
<?php
/**
* @author Spedwards
* Date: 2020-01-20
*/
get_header();
$menu_slug = 'header-menu';
$locations = get_nav_menu_locations();
if (isset($locations[$menu_slug])) {
$menu = get_term($locations[$menu_slug]);
$menu_items = wp_get_nav_menu_items($menu->term_id);
if ($menu_items) {
foreach ($menu_items as $item) {
$page = get_page_by_title($item->title);
?>
<section class="section-page" id="<?= $page->post_title ?>">
<div class="container">
<h2 class="page-section-heading text-center text-uppercase mb-0"><?= $page->post_title ?></h2>
<div class="divider">
<div class="divider-line"></div>
<div class="divider-icon">
<div class="fas fa-crown"></div>
</div>
<div class="divider-line"></div>
</div>
<?= $page->post_content ?>
</div>
</section>
<?php
}
}
}
get_footer();
【问题讨论】:
-
Wordpress 最初是一个博客平台,它的默认模板具有简单但有限的功能。但是你可以用它做任何你想做的事情,我看不出你的方法有什么问题,除了你用你的方法创建了多个重复的内容,因为所有的帖子和页面都有自己的实际前端页面。但是您应该可以通过重定向或将其设置为私有来隐藏这些原始页面
-
@silver 这就是问题所在。这种方法不存在单个页面。如果我创建一个新页面并转到它,它只会显示索引页面。不过,这可能与此无关。
-
它是因为你没有page.php模板,不同的页面会有不同的模板,它们会默认加载,归档页面会寻找archive.php,页面会寻找page.php,如果这些都不存在,帖子将查找 single.php,它将回退到索引。 php,结帐模板层次结构developer.wordpress.org/themes/basics/template-hierarchy
标签: php wordpress wordpress-theming