Dmitriy_2014

Dmitriy_2014
Рейтинг
370
Регистрация
01.07.2014
Интересы
Веб-технологии
Немного неудачный пример с кодом из Twenty Twenty, но надеюсь вы поняли, меньше открывающих и закрывающих тегов <?php ?>, но в моем случае будет много echo

Не не я не про альтернативные теги PHP типа там короткий echo-тег <?= или открывающий короткий тег <? и т.п.

Я хотел спросить про альтернативный синтаксис у некоторых управляющих конструкций типа if и как бы было бы быстрее.

<?php if (is_single()) : ?>

<?php  ?>

<p><?php the_author_posts_link(); ?></p>

<div></div>

/*

Куча HTML тегов и вставок PHP с отступами, лишними строками и всякой фигней...

*/

<?php endif; ?> 

Вот про двоеточие : и endif как я понимаю все что между ними попадает в исходный код страницы, включая отступы, лишние строки и т.п.

ИЛИ

Как в шаблоне Twenty Twenty 1.0 (кусочек):

<?php

wp_link_pages(

array(

'before'      => '<nav class="post-nav-links bg-light-background" aria-label="' . esc_attr__( 'Page', 'twentytwenty' ) . '"><span class="label">' . __( 'Pages:', 'twentytwenty' ) . '</span>',

'after'       => '</nav>',

'link_before' => '<span class="page-number">',

'link_after'  => '</span>',

)

);


edit_post_link();


// Single bottom post meta.

twentytwenty_the_post_meta( get_the_ID(), 'single-bottom' );


if ( post_type_supports( get_post_type( get_the_ID() ), 'author' ) && is_single() ) {


get_template_part( 'template-parts/entry-author-bio' );


}

?> 

Или вот лучше все чтоб одним PHP блоком было например как кусочек из шаблона Twenty Twenty.
2on2 #:
Нужно ответ заверить у нотариуса, чтобы вы не повторяли свои вопросы?
Не надо ни у кого ничего заверять :-), я все понял, спасибо!
Sitealert #:
Здесь ключевое слово "если". Походу, нихрена ты не понимаешь в алгоритмах разработки.
Так я и не разработчик, я просто любитель, и да не шарю в алгоритмах, но знаешь ты походу прав создатели плагина то разработчики и шарят в алгоритмах и именно для этого делают эту проверку предостерегая недалеких пользователей таких как я, но по факту я думаю это лишняя проверка (Для меня.). Вы бы лучше подсказал сильно ли она влияет на скорость с ней или без неё?

Я там вначале не досказал…

В целом о чем я:

Вот есть допустим плагин хлебных крошек для WordPress Breadcrumb NavXT, авторы говорят включи плагин и вставь в свой шаблон этот код:

<?php if(function_exists('bcn_display'))

{

bcn_display();

}?>

И будут у тебя хлебные крошки, ну это к примеру. Они рекомендуют выполнять эту проверку if function_exists.

Но я ведь и так знаю, что если плагин включен, то функция работает, собственно почему не вызывать её без проверки напрямую.

<?php bcn_display(); ?>
foxi #:
Если знаете что функция есть то проверять ее не обязательно. А если ее вдруг не окажется - увидите ошибки в браузере или в логах и поставите недостающую функцию.

Так я вот и думаю, нужна ли эта проверка если я точно знаю, что эта функция работает и будет работать постоянно, зачем она… Мне кажется это делают разработчики тем и шаблонов чтобы если чё не было ошибки и функция просто не вызывалась, но мне это зачем если я точно знаю, что и зачем вызываю текущей функцией…

Было бы интересно узнать сильно ли напрягается интерпретатор при сравнении есть эта функция или нету этой функции. Ну то есть лучше вызывать напрямую или без разницы можно оставить и сравнение.
lealhost #:

Да, все будет работать.

Хорошо, спасибо, а то без этого файла сайт просто так работать не будет, там и редиректы и от WordPress что-то и еще куча всякой лабуды.
lealhost #:

Будет при условии проксирования на Apache.

Просто покажите конфигурацию NGINX блок server { } , замените адрес сайта, если не хотите его здесь палить.

Надо только понимать, что все это настраивал не я, а специалисты из хостенговой компании.


server {
                server_name site.ru www.site.ru;
                listen XXX.XX.XX.XX;
                charset UTF8;
                index index.php;
                set $root_path /var/www/www/site.ru;
                location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf)$ {
                        root $root_path;
                        access_log /var/nginx-logs/user isp;
                        access_log /var/httpd-logs/site.ru.access.log ;
                        error_page 404 = @fallback;
                }
                location / {
                        proxy_pass http://XXX.XX.XX.XX:8080;
                        proxy_redirect http://XXX.XX.XX.XX:8080/ /;
                        proxy_set_header Host $host;
                        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                        proxy_set_header X-Forwarded-Proto $scheme;
                        proxy_set_header X-Real-IP $remote_addr;
                }
                location ~* ^/(webstat|awstats|webmail|myadmin|pgadmin)/ {
                        proxy_pass http://XXX.XX.XX.XX:8080;
                        proxy_redirect http://XXX.XX.XX.XX:8080/ /;
                        proxy_set_header Host $host;
                        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                        proxy_set_header X-Forwarded-Proto $scheme;
                        proxy_set_header X-Real-IP $remote_addr;
                }
                location @fallback {
                        proxy_pass http://XXX.XX.XX.XX:8080;
                        proxy_set_header Host $host;
                        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                        proxy_set_header X-Forwarded-Proto $scheme;
                        proxy_set_header X-Real-IP $remote_addr;
                }
                location ^~ /webstat/ {
                        auth_basic "Restricted area";
                        auth_basic_user_file /var/www/user/data/etc/5126789.passwd;
                        try_files $uri @fallback;
                }
                include /usr/local/ispmgr/etc/nginx.inc;
        }

Как я понимаю раз много слов proxy есть в конфиге :), значит он проксируется на Апач.

lealhost #:
Оставьте у апача только HTTP-порт и проксируйте на него, никаких 443 портов в конфиге апача быть не должно.
То есть допустим оставить Apache на 8080 порту, а виртуальный хост с 443 убрать, и включить в NGINX 443, а файл то .ahtaccess будет работать?
LEOnidUKG #:
Да установите себе уже панель, хоть бесплатную VestaCP или уж лучше FastPanel и ничего не надо делать и задавать уж такие вопросы.
Да есть у меня панель управления сервером, не хватает администратора и отдела IT :)
Всего: 2000