HTML вместе с PHP или HTML внутри PHP. О красоте кода.

Admin HTML, PHP, WordPress

Во время работы над обновлением сайтов, обратил внимание на свою старую вёрстку, когда ещё плохо был знаком с php. С учетом приобретённого опыта видны недостатки старого метода вёрстки, когда HTML обрамляет PHP, а не находится внутри него.

К сожалению, я так и не нашёл ничего интересного на этот счёт, чтобы почитать, как же всё-таки лучше верстать. Однако рассматривая современный код вёрстки всё чаще замечал, что html практически всегда находится внутри php конструкций. И в этом есть значительные преимущества.

Рассмотрю преимущества нахождения HTML внутри PHP на примере вывода заголовка в WordPress.

Ниже конструкция из кода следующего типа: если имеются данные в определенном произвольном поле, то выводим заголовок с этими данными. Я взял код верстки в его первозданном виде, такой какой он был раньше. Выглядел он так:

<!-- Title -->
<h3 class="archive-entry-title" itemprop="name"><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>"><?php if (get_post_meta($post->ID, 'name_rus', true) ) : ?><?php echo get_post_meta($post->ID, 'name_rus', true); ?><?php endif; ?></a></h3>

<?php edit_post_link(__('...', 'ploshadka')); ?>
<!-- Title End -->

В такой конструкции кода есть несколько недостатков. Во-первых он не наглядный – всё написано в одну строчку. Сделано это специально, для того чтобы не было пустых пробелов между тегами H1, H2, H3. Ведь ничего хорошего нет в том, если в тегах заголовка будут пробелы. Нельзя предсказать, как в этом случае, среди поисковых систем, подобное скажется на сайте. Будут ли лишние пробелы уменьшать силу заголовка или нет. Учитывая что ответов на такой вопрос нет, следует предположить худшее. А потому писать слитно.

Иначе, в продолжении сказанного, если сделать вышеприведенный код наглядным:

<!-- Title -->
<h3 class="archive-entry-title" itemprop="name">

    <a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>">

        <?php if (get_post_meta($post->ID, 'name_rus', true) ) : ?>

            <?php echo get_post_meta($post->ID, 'name_rus', true); ?>

        <?php endif; ?>

    </a>

</h3>

<?php edit_post_link(__('...', 'ploshadka')); ?>
<!-- Title End -->

То при просмотре в браузере HTML кода страницы в заголовке тегов h3 увидим следующее:

Нам же нужно и чтобы код читался легко при редактировании и чтобы потом он также слитно отображался при загрузке сайта. А именно чтобы он выглядел таким образом:

Для этого следует воспользоваться PHP и завернуть весь html код в него. И получаем следующий вид php кода для заголовка WordPress:

<!-- Title -->

<?php if ( get_post_meta($post->ID, 'name_rus', true) ) {

    echo '<h3 class="archive-entry-title" itemprop="name">';

    echo '<a href="' . get_permalink() . '" title="'. the_title('', '', false ) .'" rel="bookmark">';

    echo get_post_meta($post->ID, 'name_rus', true);

    echo '</a></h3>';

    edit_post_link(__('...', 'ploshadka'));

}?>

<!-- Title End -->

В таком формате кода есть и ещё одно преимущество. Он выдержан в едином стиле, а потому легко читается.

Кроме того если if не сработает в качестве true, то обрамляющие теги (H3) тоже не будут выведены. И тем самым не будет нарушен стиль сайта. Что обязательно было бы в первом примере кода.

У сайта нет цели самоокупаться, поэтому на сайте нет рекламы. Но если вам пригодилась информация, можете лайкнуть страницу, оставить комментарий или отправить мне подарок на чашечку кофе.

Добавить комментарий

Напишите свой комментарий, если вам есть что добавить/поправить/спросить по теме текущей статьи:
"HTML вместе с PHP или HTML внутри PHP. О красоте кода."