Должен ли я сделать новый файл PHP для этого кода?

Я настраиваю уже существующую тему. Тема использует header.php и footer.php. Я заметил, что <body> а также </body> теги разделены между двумя файлами PHP, соответственно. Если я хочу сделать <form> элемент, который не будет частью навигационной панели вверху или ссылок нижнего колонтитула внизу, я должен сделать отдельный файл PHP? Для большинства это может показаться здравым смыслом, но я новичок в веб-разработке. Я спрашиваю, потому что также возможно поместить его под кодом navbar в моем файле header.php.

header.php

<!DOCTYPE html>
<html <?php language_attributes(); ?>>

<head>
    <meta charset="<?php bloginfo( 'charset' ); ?>" />
    <meta name="viewport" content="width=device-width, initial scale=1" />
    <title><?php wp_title( ' | ', true, 'right' ); ?></title>
    <link rel="stylesheet" type="text/css" href="<?php echo get_stylesheet_uri(); ?>" />
    <?php wp_head(); ?>

</head>

<body <?php body_class(); ?>>
    <div id="wrapper" class="hfeed">
        <header id="header" role="banner">
            <section id="branding">

            </section>
        <nav class="navbar navbar-default">
          <div class="container-fluid">
            <!-- Brand and toggle get grouped for better mobile display -->
            <div class="navbar-header">
              <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
              </button>
              <a class="navbar-brand" href="http://www.efficientmind.org/?page_id=73&ap_page=ask">MoonLighting</a>
            </div>

            <!-- Collect the nav links, forms, and other content for toggling -->
            <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
              <ul class="nav navbar-nav navbar-right">
                <li><a href="http://www.efficientmind.org/?page_id=73">Side Job</a></li>
                <li class="dropdown">
                  <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">My Account <span class="caret"></span></a>
                  <ul class="dropdown-menu">
                    <li><a href="#">Settings</a></li>
                    <li><a href="#">Add Funds</a></li>
                    <li role="separator" class="divider"></li>
                    <li><a href="#">Sign Out</a></li>
                  </ul>
                </li>
              </ul>
            </div>

          </div><!-- /.container-fluid -->
        </nav>

footer.php

<div class="clear"></div>
</div>
<footer id="footer" role="contentinfo">
<div id="copyright">
<?php echo sprintf( __( '%1$s %2$s %3$s. All Rights Reserved.', 'blankslate' ), '&copy;', date( 'Y' ), esc_html( get_bloginfo( 'name' ) ) ); echo sprintf( __( ' Theme By: %1$s.', 'blankslate' ), '<a href="http://tidythemes.com/">TidyThemes</a>' ); ?>
</div>
</footer>
</div>
<?php wp_footer(); ?>
</body>
</html>

2 ответа

Решение

Общее правило заключается в том, что код, который будет повторно использоваться на нескольких страницах, должен быть разбит на отдельный файл, например header.php а также footer.php, Это делает проект проще в обслуживании. Кроме того, каждый файл должен пытаться выполнить только одну задачу.

В основном, если не все виды использования заголовочного файла нуждаются в этой форме, она должна быть помещена в отдельный файл.

Предполагая две вещи здесь:

  1. Форма будет в верхней части каждой страницы
  2. Там не будет идентичной формы где-то еще (т.е. в содержании или нижнем колонтитуле страницы)

Это определенно будет принадлежать в шапке. если это обычная форма, которую вы использовали бы где-то еще (например, форма входа в систему могла бы использоваться сверху каждой страницы и на странице входа в систему), вы должны добавить ее как функцию в файл templates.php и вызвать эту функцию из шапки.

Другие вопросы по тегам