Ещё один дикий новомодный культ... Когда я первый раз увидел название "мануала" "Как сверстать тему на ACF" меня чуть удар не хватил. А теперь эта хрень так расплодилась... И ACF пихают где ни попадя.
И да - по телодвижениям это ничуть не проще чем даже те же мышевозки. Скорее даже сложнее, тк нужно не только кодить, но и учить как "это" вывести, да с обработкой ошибок (что для нуба совсем не очевидно).
Что там сложного?
Могу предложить тогда carbon fields. Возможностей еще больше, бесплатно, но нужно уметь кодить хотя бы на начальном уровне, скопировать/вставить, что-то отредактировать.
Элементор это тормоз, потом будете решать проблему со скоростью загрузки страницы. И вообще я не вижу преимущества или простоты редактирования контента используя любые пейджбилдеры. Чтобы что-то отредактировать нужно 100 500 каких-то настроек сделать.
Самое оптимальное это сверстать блоки лендинга вручную и установить плагин произвольных полей, например acf pro. Pro потому, что там есть повторяемые поля(хотя и для бесплатной версии есть дополнение для повторяемых полей).
Настройку каждой секции лендинга в админке можно сделать внутри табов для удобства, секция 1, секция 2 и т.д. Слайдеры, раздел faq, список товаров сделать через повторяемые поля.
Скинули бы весь код, может кто, что подскажет как сократить.
Дело же не только в if, а в самих условных тегах, они могут делать запросы к базе для проверки.
Ты вообще не понимаешь что у тебя написано. Функции is_ - это уже if.
Как впрочем и has_.
Как это может быть if?
Это true или false
отключение редиректа на похожие адреса
remove_action( 'template_redirect', 'redirect_canonical' );
'has_archive' => true,
Это влияет на основной запрос, тоесть включение страниц архива и пагинации. WP_Query и add_rewrite_rule тогда вообще не стоит использовать.
Для изменения основного запроса нужно использовать хук pre_get_posts, например кол-во записей на странице изменить и т.д.
add_action('template_redirect', 'is_correct_url');function is_correct_url() {global $wp_query, $post;$current_url = ((!empty($_SERVER['HTTPS'])) ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; if (is_single() || is_page()) { $page_url = get_permalink($post); if ($current_url != $page_url) { $wp_query->set_404(); status_header(404); include (get_query_template('404')); exit(); } } if (is_tax() && !is_paged()) { $page_url = get_term_link(get_queried_object_id()); if ($current_url != $page_url) { $wp_query->set_404(); status_header(404); include (get_query_template('404')); exit(); } } }
Спасибо! Это то, что нужно!!! Вылетает моя 404 страница и ответ сервера 404.👍
Но на рубриках, если ввести на конце URL, например, @@@, то она все равно открывается с этими символами))Что можно добавить?:)
На рубриках можно сделать только если нет каких либо фильтров, где добавляются параметры в урл.
Еще способ
//проверка корректности урл страниц и записейadd_action('template_redirect', 'is_correct_url');function is_correct_url() {global $wp_query, $post;$current_url = ((!empty($_SERVER['HTTPS'])) ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; if (is_single() || is_page()) { $page_url = get_permalink($post); if ($current_url != $page_url) { $wp_query->set_404(); status_header(404); include (get_query_template('404')); exit(); } } }
Эта функция не подойдет.
На страницах категорий используйте
global $wp_query;$count = $wp_query->found_posts;