• Как выйти в интернет через свой роутер удаленно?

    Energoblock
    @Energoblock
    Geek
    Есть несколько способов. Расположил от самого простого к самому сложному:

    1. Временно сделать прокси через ssh-подключение:
    ssh -D 8080 user@router.ip -p22
    Так как у вас статический адрес, то выбросить наружу ssh-порт роутера не составит труда.
    После установки соединения не закрываем консоль до окончания сеанса работы.
    В браузере прописываете прокси SOCKS 127.0.0.1 порт 8080 и весь трафик браузера будет идти через ваш роутер.
    Плюсы: очень быстро, не требует особой настройки, прокси не торчит постоянно в сети.
    Минусы: торчащий наружу ssh. Надо дополнительно обеспокоиться его безопасностью (сменить порт, сделать авторизацию по ключам или сделать доступ к SSH только с определённых ip)

    2. Установить на роутере SOCKS-прокси:
    Не знаю есть ли у Zyxel в репозиториях прокси-серверы для их роутеров. В openwrt, например, точно есть. Либо прокси можно настроить на любом устройстве за роутером в вашей внутренней сети в дать к нему доступ.
    Плюсы: можно настроить авторизацию, прокси будет доступен всегда.
    Минусы: опять же нужно обеспечить безопасность либо ограничением доступа к порту прокси только с определенных ip, либо с помощью установки логина и пароля на прокси.

    3. VPN:
    Установить на роутер любой vpn-сервер. Например, openvpn.
    Плюсы: можно завернуть весь трафик через ваш роутер и не прописывать прокси, авторизация по ключам и шифрование трафика.
    Минусы: настройка долгая и сложная относительно первых пунктов.
    Ответ написан
    2 комментария
  • Почему tag.php не видит записи по тегу?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Потому что основной $query по умолчанию грузит только записи типа post_type='post'. Чтобы добавить к ним ваши post_type='blog' (или вообще использовать их вместо стандартных постов), необходимо захукаться в pre_get_posts и модифицировать основной запрос:
    function my_pre_tag_query( $query ) {
    
    	if ( $query->is_admin || ! $query->is_main_query() ) {
    		return;
    	}
    
    	if ( $query->is_tag() ) {
    		$query->set( 'post_type', array( 'post', 'blog' ) );
    	}
    
    }
    add_action( 'pre_get_posts', 'my_pre_tag_query' );
    Ответ написан
    3 комментария
  • Как работает the_posts_pagination в WordPress?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    А в каком шаблоне вы вызываете эту функцию?
    Дело в том, что эта функция использует главный объект WP_Query (он же Main Query), вы же пытаетесь применить ее к своему кастомному объекту, который данная функция не видит.
    А начались у вас проблемы еще тогда, когда вы не совсем поняли логику WP_Query. Если я правильно понимаю, у вас есть шаблон, который вы хотите использовать для вывода архива вашего custom post type. Так вот, если шаблон создан в соответствии с иерархией шаблонов WordPress, то его Main Query уже будет содержать последние посты этого типа. Все, что вам остается - модифицировать основной запрос, изменив в нем количество постов на страницу. Для этого есть хук pre_get_posts. Подробнее тут.
    Ответ написан
    3 комментария
  • Как перевести произвольные строчки с помощью Polylang?

    aerohorn
    @aerohorn Автор вопроса
    Учусь фронтендить
    Разобрался. Использовал pll_register_string().
    Добавил вот такую строку в function.php:

    pll_register_string('social1', 'social2');

    Далее в админ панели добавил в новых появившихся строчках перевод фразы, после чего прописал в шаблоне (header.php) вот это:

    <?php pll_e('social2'); ?>

    И все заработало.
    Спасибо @HeadOnFire
    Ответ написан
    4 комментария