Задать вопрос
  • Как в wordpress получить урл или id поста из function.php, если старица обрабатывается ajax?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    <script>
      let baseFilterData = JSON.parse('<?= json_encode($filtersData); ?>');
      let ajaxFilterUrl = '<?= admin_url('admin-ajax.php?action=filter_apartments&'); ?>';
      let ajaxUrl = '<?= admin_url('admin-ajax.php'); ?>';
    </script>
    <div class="load" data-obj-city-str="" data-max-page="" data-ajax-url="" data-current-page="1">
    /* контейнер куда генерятся карточки */
    </div>


    Тут не ясно что в $filtersData, зачем два admin-ajax.php и почему все data-атрибуты пустые. Js обработчика в вашем вопросе вообще нет

    У меня так работает, в html формируются параметры текущего запроса из $wp_query->query

    global $wp_query;
    
    // Parameters for the ajax handler.
    $ajax_localize = array(
    	'url'   => admin_url( 'admin-ajax.php' ),
    	'query' => $wp_query->query,
    	'lang'  => determine_locale(),
    	'nonce' => wp_create_nonce( 'ajax-nonce' ),
    );
    
    $ajax_localize = apply_filters( 'ajax_localize_params', $ajax_localize );
    
    wp_localize_script( 'jquery', 'ajax_obj', $ajax_localize );


    Это шаблон клика в js, данные подтягиваются из ajax_obj.query, их же можно отредактировать на фильтре ajax_localize_params в php

    $( '#primary' ).on( 'click', '.loadmore', function( e ) {
    
    	$.ajax( {
    		url: ajax_obj.url, // Ajax url from function ajax_localize_params().
    		type:'POST',
    		data: {
    			'action': 'loadmore_handler', // Handler name.
    			'query': ajax_obj.query, // Query from function ajax_localize_params().
    		},
    		beforeSend: function() { },
    		complete: function() { },
    		success:function( response ) { }
    	} );
    
    	e.preventDefault();
    } );
    Ответ написан
    2 комментария
  • Ошибка базы данных при обновление Bitrix, как исправить?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Illegal mix of collations (utf8_unicode_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT)

    Вот причина ошибки.

    bst.NAME != CONCAT('Лендинг', ' (', bls.TITLE, ')')

    А это - выражение, в котором она возникает.

    Вы сравниваете значение поля, которое в структуре имеет COLLATE utf8_unicode_ci, и выражение, которое получает значение collation = utf8_general_ci из свойств поля bls.TITLE.

    Выполните следующие запросы и внимательно изучите результат:
    SHOW CREATE TABLE b_sale_tp;
    SHOW CREATE TABLE b_landing_site;


    Так что либо измените структуру таблиц, либо указывайте требуемый COLLATE явно в тексте запроса.

    Пример
    Ответ написан
    1 комментарий
  • Vue.js, с чего начать?

    и вперёд!
    Да.
    Выдумывать какие-то дополнительные шаги до того, как вы откроете документацию и попробуете по ней написать hello world — это просто прокрастинация. Спустя несколько минут вы уже самостоятельно поймёте, где у вас проблемы возникают.
    Ответ написан
    Комментировать
  • Какой sata ssd максимально быстрый?

    @Drno
    любой подходящий sata ssd
    топовые самсунги просто надежнее чем WD green

    прироста нет где? какой был предыдущий диск?? разница между ssd и hdd даже для системы огромна, это заметно сразу...
    Ответ написан
    2 комментария
  • Какой sata ssd максимально быстрый?

    посмотри поддерживается ли у тебя в принципе прошивка биос на Nvme диски и купи себе переходник на PCIe
    он дешевый или купи сразу диск формата pcie не забывай что m.2 это pci-e без каких-либо костылей.
    просо в другом формате, как они тебе будут продавать ультрасовременный порт 30 летней давности, тогда же ты задашь вопрос нах... вы мне продавали никому не нужный тормозной сата, когда у вас все это время был pcie, по этому они его перевернули уменьшели и сказали новый порт.
    Обрати внимание что загрузка с этого устройства потребует прошивки соответствующей на биос.
    Если е он посто под файлы то без проблем 100%
    Ответ написан
    4 комментария
  • Почему modx после смены тарифа на хостинге упал в 504?

    an-tar
    @an-tar Куратор тега MODX
    Full stack web developer
    покопался в конфигах MODX

    А конфиги NGINX проверили? Кеш MODX чистили? больше нигде прежний IP не "зашит"? Какое-нибудь неочевидное место типа index.php в корне, настройки контекстов и пр, где могли осесть прежние настройки.
    Ну и смотрите логи - веб-сервера прежде всего, из-за чего ошибка.
    Ответ написан
    6 комментариев
  • Как настроить vpn на роутере для определённых доменных имён?

    @kest70
    Человеку свойственно ошибаться
    Покупаешь роутер с OpenWrt, там есть прошивки для обхода блокировок. Я беру российский роутерыч примерно за 5к. можешь погуглить, может и тебе подойдёт для твоих целей.
    Ответ написан
    Комментировать
  • Как настроить vpn на роутере для определённых доменных имён?

    SignFinder
    @SignFinder
    Wintel\Unix Engineer\DevOps
    Keenetic + Entware + Квас
    Ответ написан
    Комментировать
  • Как настроить vpn на роутере для определённых доменных имён?

    @dronmaxman
    VoIP Administrator
    Ответ написан
    Комментировать
  • Как настроить vpn на роутере для определённых доменных имён?

    @AlexVWill
    Либо роутер с поддержкой OpenWRT и сделать как написано выше, либо любой Mikrotik который влезет в бюджет и настроить его штатно через маркировку пакетов по любой инструкции: вот например первое что нагуглил https://pikabu.ru/story/nastroyka_vpn_na_mikrotik_...
    Ответ написан
    2 комментария
  • Как настроить vpn на роутере для определённых доменных имён?

    На Openwrt пакет называется PBR, policy based routing. Соответственно нужен Openwrt в любом виде: роутер, виртуалка, одноплатник
    Ответ написан
    Комментировать
  • Как настроить vpn на роутере для определённых доменных имён?

    @Drno
    Если роутер то кинетик, и можете там поднять проект Антизапрет. как раз то что нужно по идее...
    Либо одноплатник + sing-box туда, и так же прописать раздельную маршрутизацию
    Ответ написан
    Комментировать
  • Обновляю посты по расписанию. Через wp_insert_post, но не добавляются таксономии в tax_input, почему?

    @techkiller
    Привет!
    Твоя проблема с добавлением таксономий через `tax_input` при использовании функции `wp_insert_post` в запланированных задачах может быть связана с различиями в правах пользователя, которые действуют при выполнении функций по расписанию и при активации по кнопке.
    По умолчанию, функция `wp_insert_post` не устанавливает таксономии, если она выполняется от пользователя, у которого нет прав на редактирование этих таксономий. Когда ты выполняешь добавление поста по кнопке, скорее всего, ты залогинен как администратор или другой пользователь с достаточными правами. Однако, когда операция выполняется в фоновом режиме по расписанию, она может запускаться от имени пользователя, у которого нет необходимых прав.
    Чтобы решить эту проблему, можно попробовать следующие шаги:
    1. Использование хуков: Перед вызовом `wp_insert_post`, применяй хук `wp_set_current_user` для временной смены текущего пользователя на администратора:

    php
       wp_set_current_user(1); // 1 - это обычно ID администратора
       $post_ID = wp_insert_post($post_data);

    Это позволит выполнять добавление постов с таксономиями с правами администратора, независимо от контекста вызова функции.
    2. Добавление таксономий после создания поста: Иногда более надёжным решением может быть отдельное добавление таксономий после создания поста с помощью функции `wp_set_object_terms`:

    php
       wp_set_object_terms($post_ID, $departmentsTags, 'department');
       wp_set_object_terms($post_ID, $officesTags, 'location');

    Этот метод также гарантирует, что таксономии будут добавлены независимо от прав текущего пользователя.
    3. Проверка прав: Удостоверься, что задачи по расписанию запускаются с правами пользователя, который имеет возможность редактировать посты и таксономии.

    Попробуй эти решения, и, надеюсь, одно из них поможет тебе решить проблему с добавлением таксономий в отложенных задачах. Удачи!
    Ответ написан
    1 комментарий
  • Как устранить цепочку редиректов (http на https)?

    @dodo512
    RewriteRule ^(.*[^/])$ $1/ [L,R=301]

    Тут нужно указать полный адрес с https и доменом.
    RewriteRule ^(.*[^/])$ https://site.ru/$1/ [L,R=301]
    Ответ написан
    1 комментарий
  • Как сделать редирект на Сontact form7 при успешной отправки сообщения если отключен JS?

    Ivseti
    @Ivseti Автор вопроса
    Фронтенд HTML, CSS и немного JS с PHP
    Вроде получилось. Посмотрел документацию на WP Kama. Написал простенькое условие, сработало.

    add_action('wpcf7_mail_sent', 'wpcf7mailsent_redirect');
    function wpcf7mailsent_redirect() {
        if ( 'wpcf7_mail_sent' == true ) {
    		$new_url = 'https://ya.ru';
    		header('Location: '.$new_url);
    		exit();
        }
    }
    Ответ написан
    Комментировать
  • Как из админки запустить php-скрипт по клику?

    Mike_Ro
    @Mike_Ro Куратор тега WordPress
    Python, JS, WordPress, SEO, Bots, Adversting
    Я бы использовал плагин, с личной админкой и кнопкой на панели меню:
    /*
    Plugin Name: Супер плагин
    Description: Невероятный плагин, взламывает пентагон по клику!
    Version: 0.1
    Author: Михаил Р.
    */
    
    function super_plugin_menu() {
        add_menu_page('Супер плагин', 'Супер плагин', 'manage_options', 'custom-php-executor', 'super_plugin');
    }
    
    function super_plugin() {
        if(isset($_POST['custom_php_code'])) {
            $code = stripslashes($_POST['custom_php_code']);
            update_option('super_plugin_custom_code', $code);
        } else {
            $code = get_option('super_plugin_custom_code', '');
        }
    
        ?>
        <div class="wrap">
            <h2>Супер плагин</h2>
            <form method="post">
                <textarea
                    name="custom_php_code"
                    style="width:100%;height:200px;"
                ><?php echo htmlspecialchars($code); ?></textarea>
                <input type="submit" value="Выполнить, как следует!" class="button button-primary">
            </form>
        </div>
    
        <?php
        if(!empty($code)) {
            eval($code);
        }
    }
    
    add_action('admin_menu', 'super_plugin_menu');

    КартинкО

    65ca1aaf1a6e2384036131.png
    65ca1ab6114ec549148365.png
    65ca1abcca92b540993230.png
    65ca1ac2ceaff186880778.png
    Ответ написан
    2 комментария
  • Centos 7: почему после обновления php c 7.4 на 8.0 не стартует httpd?

    SignFinder
    @SignFinder
    Wintel\Unix Engineer\DevOps
    Apache по умолчанию не работает с php-fpm, ему нужен mod-php, который вам и нужно установить
    Ответ написан
    1 комментарий
  • BITRIX: региональность intec. Почему запоминается регион основного домена?

    смотрите что записывается в куки и к какому домену эта кука привязывается
    Ответ написан
    1 комментарий
  • Как настроить редирект одновременно и с index и с www?

    @dodo512
    RewriteCond %{REQUEST_URI} ^(.*/)index\.(php|html)
    RewriteRule ^  https://site.name%1 [R=301,L]
    
    RewriteCond %{HTTP_HOST}   ^www\. [NC]
    RewriteRule ^(.*)$ https://site.name/$1 [R=301,L]
    Ответ написан
    1 комментарий
  • Почему у php недостаточно прав на перезапись файлов?

    Stalker_RED
    @Stalker_RED
    Запускается через php скрипт.
    как именно запускается? Через SSH-консоль, через вебсервер, может через крон? Это все может быть под разными пользователями.

    Для начала разобраться какие пользователи вообще замешаны. Для этого на боевом сервере делаешь эксперимент:
    создаешь файлик от имени обычного скрипта, от имени вашего опртимизатора, и от имени фтп-заливки.
    Вот прям создай папочку "test" и залей в нее hello_ftp.txt через ftp
    Затем из php скрипта сделай file_put_contents('test/hello_php.txt', 'foo');
    И в оптимизатор тоже добавь похожее file_put_contents('test/hello_optimizator.txt', 'foo');

    Затем зайди через SSH в папку test, напиши ls -l
    Если SSH нет, то можно опять-же сделать скриптом
    $files = glob('/path/to/test/*');
    foreach ($files as $fn) {
        echo $fn . ' | ' . fileowner($fn) . '<br>' . PHP_EOL;
    }

    Скорее всего найдутся отличия. Останется придумать как изменить способ запуска, чтобы проблема не поворялась в будущем, ну и поправить владельца у уже существующих файлов (chown).
    Ответ написан
    3 комментария