Задать вопрос
  • Как указать путь к картинкам шаблона страницы wordpress? Ajax подгрузка на wordpress?

    Вопрос 1:
    В админке WordPress -> Настройки -> Медиафайлы - снимите чекбокс "Помещать загруженные мной файлы в папки по месяцу и году". Далее Вам нужно сделать следующее:
    1. Изменить стандартную папку загрузок медиафайлов на /images/ - путем написания небольшой функции и использования ее как фильтра для хука 'upload_dir'
    2. Изменить все пути для всех вложений в MySQL на требуемый путь /images/
    Вопрос 2:
    Все стандартно. Если говорить кратко: в functions.php нужно зарегистрировать и подключить файл с js функцией, а также определить константы:
    wp_register_script( 'ajax-api-script', get_template_directory_uri() . '/js/ajax.js', array() );  // путь до файла с JS функцией
            wp_enqueue_script( 'ajax-api-script' );
            wp_localize_script( 
                'front-ajax-api-script', 
                'ajax_api_object', 
                array( 
                    'ajaxurl' => admin_url( 'admin-ajax.php' ),
                    'ajax_nonce' => wp_create_nonce( $NONCE )
                )
            );


    После этого написать php функцию, которая будет отдавать на фронт нужные данные согласно параметру, переданному из селекта. Функцию обязательно зарегистрировать для 2 случаев использования - private и no_private.

    Написать JS функцию - обработчик селекта с вызовом функции php через ajax:
    jQuery.ajax({
            type: "POST",
            dataType : "json",
            url: ajax_api_object.ajaxurl,
            data: {
                action: "НАЗВАНИЕ_PHP_ФУНКЦИИ",
                nonce: ajax_api_object.ajax_nonce,
                param: ТУТ_ПАРАМЕТР_ИЗ_СЕЛЕКТА,
            },
            beforeSend: function() {
               /* какие-то действия перед отправкой ajax запроса */
            },        
            success : function(result){           
               /* какие-то действия после получения ответа от бекенда */
            },
            error : function(result){
               /* какие-то действия если с ajax случилось страшное */
            },
            complete: function() {
               /* какие-то действия после всех операций отправки запроса и получения ответа от бекенда */
            }
        });
    Ответ написан
    Комментировать
  • Как правильно обработать кастомную форму wordpress с админки?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Хукайте в admin_post_*

    Еще почитать: https://www.sitepoint.com/handling-post-requests-t...
    Ответ написан
    Комментировать
  • Найти в строке подстроку, которая содержит максимальное количество последовательных символов в этой строке?

    sergiks
    @sergiks Куратор тега PHP
    ♬♬
    Надо двигать концы отрезка: правый R и левый L. Изначально оба на нуле.
    Держим текущий набор символов, чтобы проверять на повторы. Помним найденный максимальный отрезок.
    Двигаем правый конец на 1. Если символа нет в наборе, добавляем. Если есть, двигаем L вправо за найденный символ. Перед этим проверяем, а не нашли ли мы очередной максимум.

    Очень кривая спать-хочу реализация, вроде, работает: Ideone

    Старый ответ, please ignore: Двигаться по одному символу. Помнить найденную макс. длину. Сравнивать символ с предыдущим.
    Равен – длина текущего сегмента растёт.
    Не равен – закончился предыдущий сегмент и начался новый. Если длина больше найденного максимума – найден очередной кандидат. Запомнить его длину и начало. Запомнить начало очередного сегмента и считать длину с 1.

    Итого один раз пройтись. Не надо регулярок.
    Ответ написан
    Комментировать