Я спрашивал об этом вчера на WordPress Exchange, но на него не обращали внимания, поэтому я сейчас пишу здесь.
Я создал одностраничную тему WordPress, чтобы изучить процесс создания темы. , и все это прекрасно работает и все такое, но это сделано очень хакерским способом, где, если бы я хотел распространить это, у меня были бы люди, задающиеся вопросом, как, черт возьми, это работает.
Короче Вы создаете страницы так же, как любая другая тема, а затем добавляете их в главное меню. Затем мой код читает содержимое меню и загружает содержимое страницы в том порядке, в котором страницы находятся в меню. (См. Код ниже)
Очевидно, что это не так, как это должно быть сделано. То, что я хотел бы знать, как я должен это сделать? Я еще не нашел хорошего руководства для одностраничных тем и как они должны работать. Любая помощь будет принята с благодарностью.
А теперь мой весь 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();
Живой пример