Задать вопрос
Ответы пользователя по тегу WordPress
  • Как вывести картинку в повторителе (ACF) на главной странице?

    wppanda5
    @wppanda5 Куратор тега WordPress
    WordPress Mедведь
    скорее всего это из за того что вы не указали контекст поста, для которого нужно получить данные повторителя

    <?php
    $page_id = get_option('page_on_front'); // или конкретный ID, например 123
    
    if( have_rows('main-categories', $page_id) ): ?>
    	<section class="main-categories">
    		<ul class="main-category-list">
    			<?php while( have_rows('main-categories', $page_id) ) : the_row(); ?>
    				<li class="main-category-item">
    					<a href="<?php the_sub_field('main-category-url'); ?>">
    						<img src="<?php the_sub_field('main-category-img'); ?>" alt="<?php the_sub_field('main-category-title'); ?>" />
    						<h3><?php the_sub_field('main-category-title'); ?></h3>
    					</a>
    				</li>
    			<?php endwhile; ?>
    		</ul>
    	</section>
    <?php endif; ?>
    Ответ написан
    4 комментария
  • WordPress как вывести фото до и после в записях?

    wppanda5
    @wppanda5 Куратор тега WordPress
    WordPress Mедведь
    из коробки последние версии
    официальный WPBakery Page Builder c Envato
    и из wp репы Twenty20 Image Before-After

    все работает 68c42a8398c9f577229215.png
    68c42aa3e50c4979772160.png
    Ответ написан
  • Сильно ли влияет использование элементора на скорость загрузки сайта?

    wppanda5
    @wppanda5 Куратор тега WordPress
    WordPress Mедведь
    1) Самописный сайт — это очень размытое и зависит от навыка самописца, можно собрать лютого франкенштейна, который будет ползать и просить его убить, а можно ультра-мега шустрый сайт, буквально залетающий в клиент.

    2) Элементор — мусор, без дикого кэширования и кучи работ по оптимизации и микрооптимизации и грамотной
    настройки сервера более-менее серьезный сайт на нём не собрать. Все хвалёные билдеры — фигня, из них наиболее легкий — Бобер (Beaver Builder), но это не значит, что он хороший. Все они — куча инлайна и лютая вложенность, огромное, адски огромное количество подтягивающихся на фронт ресурсов, для даже вывода контента, в отличии от Гутенберга, требует от движка закатать рукава, обновления Элементора — это отдельная песня и боль, билдеры дырявые, как гей-парад.
    Они имеют право на жизнь для всяких там личных бложиков, ну или в качестве инструмента прототипирования.

    3) Гутенберг - ему не может не хватать возможностей, если не хватает каких-то готовых блоков, полно плагинов даже в офф репе WP, которые добавляют их практически не ограниченное количество, и ничего не мешает написать свои блоки, такие как надо. вот пример довольно толковой либы под него https://wordpress.org/plugins/kadence-blocks/
    Он во всём лучше сторонних билдеров.
    Ответ написан
    1 комментарий
  • Как лучше перенести сайт с CMS - Joomla! 3.10.12 на WordPress?

    wppanda5
    @wppanda5 Куратор тега WordPress
    WordPress Mедведь
    Подобрать / написать тему подходящую.
    установить woo и прочее что надо

    переносить контент руками - тупо
    1) у вас есть доступ к выгрузкам
    2) у вас есть доступ к базе
    мигрировать даже стандартными инструментами дело не сложное

    Элементор и прочие билдеры - мусор, хотя изначально так может не казаться.
    1) Есть иерархия шаблонов + custom_fields + template_redirect // классика
    2) Есть Гуттенберг // он крутой, но повозиться придется с написанием нужных модулей
    Ответ написан
    3 комментария
  • Как сделать сниппет с отзывами?

    wppanda5
    @wppanda5 Куратор тега WordPress
    WordPress Mедведь
    Ответ написан
    Комментировать
  • Как изменить страницу входа wordpress?

    wppanda5
    @wppanda5 Куратор тега WordPress
    WordPress Mедведь
    <?php
    /**
     * Plugin Name: Habr Q&A Custom Login Page
     * Description: Кастомизация страницы входа WordPress - заменяет логотип на название и описание сайта, скрывает ссылку на главную
     * Version: 1.0.0
     * Author: WP_Panda
     * Author URI: https://wp-panda.pro
     * Email: panda@wp-panda.pro
     * License: GPL-2.0+
     * License URI: http://www.gnu.org/licenses/gpl-2.0.txt
     */
    
    if (!defined('ABSPATH')) {
    	exit; // Запрет прямого доступа
    }
    
    function wpp_habr_custom_login_styles() {
    	// Убираем стандартный логотип WordPress
    	add_filter('login_headerurl', function() { return home_url(); });
    	add_filter('login_headertext', function() { return get_bloginfo('name'); });
    
    	// Добавляем свои стили
    	echo '<style>
            #login h1 a {
                display: none !important;
            }
            .login #backtoblog {
                display: none !important;
            }
        </style>';
    }
    add_action('login_head', 'wpp_habr_custom_login_styles');
    
    function wpp_habr_custom_login_header() {
    	echo '<div id="login">
            <h1>'.esc_html(get_bloginfo('name')).'</h1>
            <p style="text-align:center">'.esc_html(get_bloginfo('description')).'</p>';
    }
    add_action('login_header', 'wpp_habr_custom_login_header');
    Ответ написан
    1 комментарий
  • Проблема с плагином Wordpress?

    wppanda5
    @wppanda5 Куратор тега WordPress
    WordPress Mедведь
    да проблема в плагине они используют не существующую функцию wp_json_sanitize возможно она была в старых версиях движка, не уверен в этом, но сейчас такой нет совершенно точно
    689273d4be8f4356768245.png

    Рекомендую использовать другой плагин или сделать/ заказать свое решение под задачу, посмотрел интереса ради код этого плагина, это творение Аi - весьма кривое
    Ответ написан
    7 комментариев
  • Как перетащить отзывы с другого сайта на сайт на WP?

    wppanda5
    @wppanda5 Куратор тега WordPress
    WordPress Mедведь
    У Авито нет публичного API для отзывов
    Что за сторонний сайт агрегатор хз, но скорее всего тоже, они это не любят

    Соответственно писать парсер или попробовать настроить плагины типа Content Egg или WP Scraper, но с ними не факт что выйдет
    Ответ написан
    Комментировать
  • Acf pro github уже нету?

    wppanda5
    @wppanda5 Куратор тега WordPress
    WordPress Mедведь
    Вот его однояйцевый близнец Secure Custom Fields
    Ответ написан
    Комментировать
  • Как удалить данные о работе imagify?

    wppanda5
    @wppanda5 Куратор тега WordPress
    WordPress Mедведь
    Удалить плагин, затем выполнить
    DELETE FROM wp_postmeta WHERE meta_key LIKE 'imagify_%';
    DELETE FROM wp_options WHERE option_name LIKE 'imagify_%';


    эти черти не чистят свои опции при удалении плагина
    Ответ написан
    2 комментария
  • Как реализовать вывод и управление списком в Wordpress?

    wppanda5
    @wppanda5 Куратор тега WordPress
    WordPress Mедведь
    не надо городить велосипед
    создаете в базе таблицу, дальше работаете

    в админке через wp_list_table в гугле полно туторов как его пользовать

    на морде простой wpdb get_results
    Ответ написан
    7 комментариев
  • Купил тему the7 для wordpress на themeforest, но не дают активировать из-за санкций?

    wppanda5
    @wppanda5 Куратор тега WordPress
    WordPress Mедведь
    тема будет работать и без лицензии обновлять только руками качая дистрибутивы
    Ответ написан
    2 комментария
  • Как настроить ограничение по количеству отправки с Contact Form 7 для одного пользователя?

    wppanda5
    @wppanda5 Куратор тега WordPress
    WordPress Mедведь
    как то так
    со сменой браузера или IP отправит еще раз конечно, но рядовой юзер теоретически отправить не сможет, для большего контроля можно добавить fingerprint
    ну и опцию можно одну , и по ней искать, но направление вам дал, дальше уже доработаете
    // Хуки для Contact Form 7
    add_action('wpcf7_before_send_mail', 'wpp_limit_cf7_submissions');
    add_filter('wpcf7_display_message', 'wpp_block_cf7_form_display', 10, 2);
    
    function wpp_limit_cf7_submissions($contact_form) {
    	$form_id = $contact_form->id();
    	$user_ip = $_SERVER['REMOTE_ADDR'];
    	$user_agent = $_SERVER['HTTP_USER_AGENT'];
    
    	// Создаем уникальный ключ для пользователя
    	$user_key = md5($user_ip . $user_agent);
    	$option_key = 'cf7_submission_' . $form_id . '_' . $user_key;
    
    	// Проверяем, отправлял ли пользователь форму за последние 24 часа
    	$last_submission = get_option($option_key);
    	$current_time = time();
    
    	if ($last_submission && ($current_time - $last_submission) < 86400) { // 24 часа
    		// Блокируем отправку
    		$submission = WPCF7_Submission::get_instance();
    		if ($submission) {
    			$submission->add_status('aborted', 'Вы уже отправляли заявку. Пожалуйста, подождите 24 часа.');
    		}
    		return false;
    	}
    
    	// Записываем время отправки
    	update_option($option_key, $current_time, false);
    	return $contact_form;
    }
    
    function wpp_block_cf7_form_display($message, $status) {
    	if ($status === 'aborted') {
    		return 'Вы уже отправляли заявку. Пожалуйста, подождите 24 часа перед повторной отправкой.';
    	}
    	return $message;
    }
    Ответ написан
    5 комментариев
  • Существует ли скрипт поддерживающий несколько уровней тегов?

    wppanda5
    @wppanda5 Куратор тега WordPress
    WordPress Mедведь
    Тэги не иерархическая таксономия
    Хочется иерархических тэгов, заведите отдельную кастюмную таксономию, над стандартными лучше не измываться, это может обернуться непонятным.

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

    function wpp_make_tags_hierarchical() {
    
    	$tag_args = get_taxonomy('post_tag');
    	$tag_args->hierarchical = true;
    	$tag_args->rewrite['hierarchical'] = true;
    }
    add_action('init', 'wpp_make_tags_hierarchical', 999);
    Ответ написан
    2 комментария
  • Как создать плиточное меню WP с различным кеглем, по мере варьирования числа постов в категориях?

    wppanda5
    @wppanda5 Куратор тега WordPress
    WordPress Mедведь
    как ни будь так

    $categories = get_categories(array(
            'orderby' => 'count',
            'order' => 'DESC',
            'hide_empty' => true
        ));
    
            $counts = wp_list_pluck($categories, 'count');
            $max_count = max($counts);
            $min_count = min($counts);
            $count_range = ($max_count - $min_count) ? ($max_count - $min_count) : 1;


    дальше проходите категории циклом


    $normalized = ($category->count - $min_count) / $count_range;
        
                $font_size = 14 + round($normalized * 10, 2);


    ну а дальше стилизуете как надо
    Ответ написан
    Комментировать
  • Как изменить кнопку ADD TO CART на сайте WooCoomerce?

    wppanda5
    @wppanda5 Куратор тега WordPress
    WordPress Mедведь
    add_filter('woocommerce_product_add_to_cart_text', 'change_add_to_cart_text');
    add_filter('woocommerce_product_single_add_to_cart_text', 'change_add_to_cart_text');
    
    function change_add_to_cart_text() {
        return 'КУПИТЬ'; // Замените на нужный текст
    }
    Ответ написан
    1 комментарий
  • Как отключить все cookie в вордпрес кроме админки?

    wppanda5
    @wppanda5 Куратор тега WordPress
    WordPress Mедведь
    как ни будь так

    if (!is_admin() && !defined('DOING_AJAX')) {
      
        add_filter('send_auth_cookies', '__return_false');
        
        function disable_frontend_cookies() {
            return;
        }
        add_action('set_logged_in_cookie', 'disable_frontend_cookies');
        add_action('set_security_cookie', 'disable_frontend_cookies');
        add_action('set_remember_me_cookie', 'disable_frontend_cookies');
    }
    Ответ написан
  • Выключение кэширование для части кода(на php)?

    wppanda5
    @wppanda5 Куратор тега WordPress
    WordPress Mедведь
    1 ) Добавьте define('W3TC_DYNAMIC_SECURITY', 'my_code'); в ваш файл wp-config.php

    2) В настройках W3TC включаете "Fragment Cache"
    Page Cache → Advanced → "Enable fragment cache".

    3)Сам код который надо исключить из кэша вызываете так
    <!-- mfunc my_code -->
    <?php //Your  Code ; ?>
    <!-- /mfunc -->
    Ответ написан
    1 комментарий
  • Почему не получается вытащить значение переменной из функции наружу?

    wppanda5
    @wppanda5 Куратор тега WordPress
    WordPress Mедведь
    Ваш код ломает мозг
    register - ничего не возвращает
    add - пытается отправит в акшен саму себя
    $hook_suffix не существует
    Ответ написан
    Комментировать
  • Как изменить заголовок на конкретной странице в WordPress?

    wppanda5
    @wppanda5 Куратор тега WordPress
    WordPress Mедведь
    Как-нибудь так
    add_filter( 'pre_get_document_title', 'wpp_change_the_document_title', 100 );
    function wpp_change_the_document_title( $title ) {
    	if ( ! empty( $_GET['location_location1'] ) ) :
    		$title = 'The title for  GET location_location1';
    	endif;
    
    	return $title;
    }
    Ответ написан
    2 комментария