Правильно создать одностраничную тему WordPress - PullRequest
0 голосов
/ 07 февраля 2020

Я спрашивал об этом вчера на 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();

Живой пример

1 Ответ

0 голосов
/ 07 февраля 2020

Проблема с WordPress заключается в том, что их главная цель - поддерживать совместимость со старыми ресурсами. Это означает, что более 10 лет технологии, над которыми мы работаем. WordPress никогда не реализовывал ни одного шаблона проектирования программного обеспечения, и даже не было выпущено никаких руководств по «наилучшим методам».

Официальные учебные материалы - это руководство по разработке тем, доступное по адресу https://developer.wordpress.org/themes/getting-started/, которое было впервые опубликовано примерно в 2007 году и не сильно изменилось.

Работа с WordPress никогда не будет похожа на ту, к которой вы привыкли после использования PHP Frameworks. К сожалению, вам нужно разработать свою собственную структуру на основе упомянутого выше руководства и сделать ее максимально прозрачной из всех возможных.

Один совет, однако, попробуйте придерживаться некоторого стиля кодирования, например, PSR-12. Это поможет вам управлять даже сложным кодом в удобочитаемой форме. https://www.php-fig.org/psr/psr-12/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...