Задать вопрос
  • Как посадить сайт созданный с помощью webpack на wordpress?

    Mike_Ro
    @Mike_Ro Куратор тега WordPress
    Python, JS, WordPress, SEO, Bots, Adversting
    Возможно ли это?

    Оо, это Вы по адресу, чего изволите?
    - Обычная статика без шаблонизатора.
    - Статика с шаблонизатором.
    - Статика с шаблонизатором и внедрением react.
    - React фронт без api.
    Как мне это сделать я очень сильно запутался и ничего не понимаю. Возможно ли это?

    Возможно, необходимо:
    1. Собрать статику.
    2. Перебить пути до изображений (если используется шаблонизатор).
    3. Срезать шапку и подвал у каждого html из п1.
    4. Конвертировать п1 и п3 в php файлы.
    5. Врезать wp/php код из п4.
    6. Врезать wp/php код с метатегами в header.php.
    7. (опционально) встряхнуть (tree-shaking) css и js файлы, вырезав весь не используемый код.
    8. (опционально) произвести оптимизацию статики, не только вес, но и размер изображений под разные размеры дисплеев устройств.
    Мне хочется посадить сайт созданный с помощью webpack

    Webpack не создаёт сайт, а собирает.

    Эта тема очень обширна, нужен более точный вопрос.
    Ответ написан
    5 комментариев
  • Индексация страниц с переадресацией в гугле?

    pro100taa
    @pro100taa
    Гугл может выпендриваться. Писать, что переадресация, а на самом деле он считает страницы малозначительными т. к. нет контента и они по сути являются метками разводящими. Хотя очень часто он метки индексирует.

    Попробуйте тексты какие-нибудь добавить.

    И надо определиться: вы хотите продвижения этих страниц чтобы они трафик привлекали? Если не собираетесь их продвигать, то лучше закрыть от индексации.
    Ответ написан
    Комментировать
  • Индексация страниц с переадресацией в гугле?

    я бы сделал так:
    1) проверил ответ сервера для подборок - вдруг там на самом деле переадресация используется, должен быть ответ "200", естественно.
    2) добавил бы ссылки на подборки в google вручную - то есть заставил бы его переиндексировать их.
    обычно на до подождать пару недель. и потом посмотреть - может страницы будут уже в индексе.
    Ответ написан
    Комментировать
  • Как и откуда формируются страницы ?postID в wordpress?

    Mike_Ro
    @Mike_Ro Куратор тега WordPress
    Python, JS, WordPress, SEO, Bots, Adversting
    1. При переходе на https://easyvisavdk.ru/stranica-vizy/ - выдает пустую страницу, но с кодом 200.
    2. При переходе на https://easyvisavdk.ru/stranica-vizy/?postID=1238:
    2.1. Вначале сервер отдает страницу "Процесс оформления визы в Германию" (да да, мы загружали Мексику).
    2.2. Затем, происходит динамическая замена контента на Мексику. Для этого, в п2.1. предусмотрен div#usa_visa, который заменяется контентом в скрипте https://easyvisavdk.ru/wp-content/themes/visa-lend... на 189 строке. Данные запрашиваются из API WP по адресу https://easyvisainc.ru/wp-json/wp/v2/posts/1238.
    КартинкО

    66b0aaddb8e90296004489.png

    66b0ab0c45c81425402865.png

    Т.к. не видно самих постов в админке, то предположу один из вариантов:
    - Используется всего 1 страница со слагом stranica-vizy, где с помощью ACF полей созданы данные под каждую страну, которые потом динамически заменяют основной контент страницы.
    - Используется какой то CPT (Custom Post Types) со своими записями, тогда надо искать плагин, который взаимодействует с такими записями.
    - Данные зашиты в файлы, без возможности изменения из админки.

    P.S. SEO будет хромать!

    P.P.S. Точно нужно писать в консоль все данные о записи?
    КартинкО
    66b0ab4881c55369561823.png

    Ответ написан
    1 комментарий
  • Как изменить текст вукомерс при предложении войти в личный аккаунт на сайте (скрин прикрепляю)?

    @Refguser
    Решения для бизнеса: от создания ИМ до...
    Все фразы на не английском - это переводы. Соответственно изменять их можно в переводах.
    Loco Translate в руки и.. кастомное расположение лангпака (Индивидуальный в loco)
    Ответ написан
    Комментировать
  • Как добавить плитку тегов в записи wordpress?

    @Kypidon4ik
    Фрилансер, Wordpress developer
    Привет.
    Тебе нужно их выводить через the_tags()
    Ну а далее стилизовать так, как в макете
    Ответ написан
    1 комментарий
  • Как вывести определенный пост на страницу?

    Mike_Ro
    @Mike_Ro Куратор тега WordPress
    Python, JS, WordPress, SEO, Bots, Adversting
    Ответ написан
    Комментировать
  • Как воспроизвести видео с youtube в wordpress?

    Zettabyte
    @Zettabyte
    Проф. восстановление данных ▪ Вопрос? См. профиль
    https://github.com/MuhammadSaim/tubecatcher - a wordpress plugin to download videos from youtube.
    Ответ написан
    Комментировать
  • Как сделать тайтл записи в формате: Название - Рубрика?

    Mike_Ro
    @Mike_Ro Куратор тега WordPress
    Python, JS, WordPress, SEO, Bots, Adversting
    Попробуйте так:
    add_filter('document_title_parts', 'test', 10, 1);
    
    function test($title) {
        if (is_single()) {
            $categories = get_the_category();
            if (!empty($categories)) {
                $title['title'] .= ' — ' . $categories[0]->name;
            }
        } elseif (is_category()) {
            $title['title'] = single_cat_title('', false);
        }
    
        return $title;
    }
    Ответ написан
    Комментировать
  • Перезд разных сайтов к одному провайдеру. Организация инфраструктуры?

    Mike_Ro
    @Mike_Ro Куратор тега WordPress
    Python, JS, WordPress, SEO, Bots, Adversting
    Всего пока 4 сайта, на разных CMS (Wordpress, Joomla).

    1. С чего нужно начинать, чтобы подготовить сайт(ы) к переезду?

    Любой хостинг (shared с поддержкой MySQL и PHP) или VDS/DS.
    2. Что нужно подготовить на новом пустом сервере?

    Что такое "пустой сервер"? Если это VDS/DS, то гуглим, если это shared хостинг, то "создать сайты" (так обычно называется манипуляция у хостера, которая регистрирует место для расположения файлов для сайта) и MySQL БД для сайтов.
    3. Нужен ли для каждого сайта (их четыре) свой виртуальный сервер (VM)?

    Не нужен.
    Или как эти сайты вообще размещать чтобы в случае чего они не упали все вместе?

    Падение хостера достаточно редкое явление, чаще происходит дедос, который как раз и блокирует доступ к сайтам. Если критически важно, чтобы одновременно не легли все сайты, то нужны физически разные сервера и возможно, у разных хостеров.
    5. ... какие советы дадите

    Задавать более конкретные вопросы.
    Ответ написан
    Комментировать
  • Перезд разных сайтов к одному провайдеру. Организация инфраструктуры?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Алгоритм примерно следующий:
    1. Изучить возможности создания бэкапов, предоставляемые хостерами на всех сайтах
    2. Сделать бэкапы сайтов и БД как возможностями хостеров, так и отдельно таким образом, чтобы в случае чего можно было все восстановить
    3. Изучить настройки DNS и SSL для каждого сайта, а так же настройки регистраторов доменов этих сайтов
    4. Изучить структуру, механизмы работы и настройки каждого сайта, а так же какие там используются утилиты, средства, зависимости, веб-серверы и их настройки, БД и всё прочее
    5. Сформировать требования к серверам или серверу для размещения сайтов (диски, памяти, процессоры, порты, ОС, ПО и прочее)
    6. Для каждого сайта подготовить список необходимого ему ПО и настроить образ для докера (просто потому что у разных сайтов могут быть требования к разным версиям одного и того же или могут быть конфликты, в случае размещения на одном сервере)
    7. Подготовить систему развертывания сайтов из их репозиториев (напоминаю, что весь исходный код сайтов должен быть размещен в соответствующих репозиториях и минимально задокментирован, а так же настроена система автоматического тестирования)
    8. На основе требований подготовить оборудование - сервер, ОС, ПО, административные инструменты типа мониторинга (заббикс - топ), систему бэкапов и прочее
    9. Провести развертывание сайтов с нуля на новом сервере/серверах и проверить, что все работает как надо
    10. Провести дополнительные работы над ошибками и недостатками, а так же исправить обнаруженные недоработки
    11. Добавить сайты, БД и всё остальное в систему мониторинга
    12. Подготовить и протестировать скрипты синхронизации БД и дополнительных данных на новые серверы
    13. Подготовить перенос доменов сайтов с разных регистраторов к одному регистратору
    14. Провести перенос доменов к одному регистратору и убедиться, что всё работает как надо
    15. Для каждого сайта:
      1. В нерабочее время перевести сайт в режим обслуживания либо полностью остановить веб-сервер и вывести заглушку, что сервер в обслуживании
      2. Провести синхронизацию БД и всего остального нужного
      3. Проверить, что на новом сервере сайт полностью работающий и провести все требуемые тесты
      4. Привязать новый сервер к домену
      5. Настроить letsencrypt сертификат


    В целом алгоритм общий и у всех что-то где-то может отличаться. Если что забыл - пишите в комментах, докину в список.

    Или как эти сайты вообще размещать чтобы в случае чего они не упали все вместе?

    Автоматизацией развёртывания и всего остального по максимуму, а так же дублирование серверов в другом ЦОД, хостинге, городе, регионе, континенте - по бюджету и требованиям.
    Ответ написан
    2 комментария
  • Что делать с пайтоном на телефоне?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    Что делать с пайтоном на телефоне?

    Ничего.
    Ответ написан
    Комментировать
  • Как по api получать поля Carbon Fileds?

    Mike_Ro
    @Mike_Ro Куратор тега WordPress
    Python, JS, WordPress, SEO, Bots, Adversting
    Все верно, CF по умолчанию не возвращает данные из своих полей (только имена полей). Чтобы CF возвращал данные, необходимо явно разрешить это для каждого созданного поля, например так:
    use Carbon_Fields\Field;
    
    Field::make('text', $key, $this->meta_labels[$key])
        ->set_visible_in_rest_api(true);
    Ответ написан
    1 комментарий
  • Как создать и вывести текстовое поле в Carbon Fileds?

    Mike_Ro
    @Mike_Ro Куратор тега WordPress
    Python, JS, WordPress, SEO, Bots, Adversting
    как создать поле с обычным текстовым редактором

    Rich Text:
    use Carbon_Fields\Container;
    
    Container::make('post_meta', 'Наименование группы полей')
        ->where('post_type', '=', 'page') // условие, только для страниц
        ->add_fields([Field::make('rich_text', 'rich_text_field', '');

    и потом его вывести в шаблоне?

    Как вариант:
    $fields = apply_filters('fields_name', [], get_the_ID());
    echo esc_html($fields['rich_text_field'] ?? '') ?>
    Ответ написан
    1 комментарий
  • Что изучать python backend разработчику?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    Что изучать python backend разработчику?

    Вы не совсем верно ставите задачу, не "что изучать", а "какие инструменты выбрать для этой задачи". Если под "python backend разработчику" понимается классическая backend разработка, по типу сервера, для каких либо приложений, то:
    1. Как сделать, чтобы по указанному url отдавалась html страница с таким то данными? Django Writing views. В процессе работы Вы начнете понимать, для чего нужны какие то вьюхи и модели.
    2. Оказалось, что в п1. неудобно вставлять всю страницу, что делать, если мне нужно сделать более сложную html страницу? Используем один из самых популярных шаблонизаторов Jinja for Server-Side Rendering in Django.
    3. Как и где хранить данные? Пробуем SQLite. В процессе работы Вы начнете понимать, для чего нужны какие то ORM.
    4. Выяснилось, что п3 не подходит для моего проекта (почему конкретно?), где еще хранить данные? Пробуем PostgreSQL.
    5. Как сделать простое API на Django? Используем Django REST framework (DRF) или Django Ninja.
    6. Как создать возможность аутентификации пользователей и показ им именно их личной информации? How to use sessions, JWT.
    7. Как быть, если мне приходит запрос с фронта и мне нужно быстро вернуть ответ, а не ждать, пока бэк все обработает? Django Background Tasks.
    8. Задач стало очень много, Django не тянет, надо выполнять все в фоне, п6. уже не подходит (почему конкретно?), что делать? Django Celery.
    9. Как развернуть мой мега сайт на хостинге? Shared хостинг (если VDS много, это жестко конечно, но хозяин - барин). Для VDS идем гуглить, в каком порядке и что надо ставить.
    10. Как сделать автоматическое развертывание несколько проектов на удаленном сервере и нужно ли оно мне (описываем, что, где и в каком порядке нужно развернуть)? Docker + CI/CD.

    В процессе может и админка для бэка понадобиться и много чего еще по мелочи. Опять же - вначале задача, затем поиск инструмента.

    Так же можно гуглить по типу Django Roadmap 2024.
    Ответ написан
    2 комментария
  • Как лучше учить node.js?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    Решил перейти с фронтенд разработки на бэк

    Как лучше учить node.js?

    Если в будущем цель зарабатывать с Nodejs (и в отрыве от фронта) - то никак не учить, а выбрать более подходящий ЯП, который непосредственно конкурирует с Nodejs, например Python или PHP.

    Данные о вакансиях на 12.08.2024:
    - Back js/ts: 138.
    - PHP: 739.
    - Python: 795.

    P.S. помимо того, что вакансий на backend js/ts мало, так еще и соискателей гораздо больше на место, в соотношение с Python или PHP.

    P.P.S. Python в замере выше имеет 795 вакансий, но это чисто backend разработка, но Python так же часто используется в скрэпинге, ботах, ml, дата-инженерами, qa итп. PHP так же имеет рядом с собой целый пласт различных CMS, куда можно свичнуться, если прижмет, а куда свичнуться с Nodejs? На фронт..?
    Ответ написан
    9 комментариев
  • Как запаролить сайт?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Пароль найдите самостоятельно (хранение пароля на клиенте не самая безопасная идея):
    Ответ написан
    4 комментария
  • Почему не работает callback второй раз?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    - Зачем светить своим токеном?
    - Зачем 2 раза объявлять одну и туже функцию callback_message?
    - Внутри функции callback_message Вы использовали callback.message.chat.id для отправки сообщений, но callback.message является ссылкой на сообщение, которое инициировало callback, а не на сообщение, которое нужно отправить.
    - А как же обработка callback_data cadastral?
    - message.message_id минус 0?
    import telebot
    from telebot import types
    
    bot = telebot.TeleBot('token')
    file = open('./start1.jpg', 'rb')
    
    @bot.message_handler(commands=['start'])
    def start(message):
        markup = types.InlineKeyboardMarkup()
        markup.add(types.InlineKeyboardButton('Оценка', url='https://google.com'))
        markup.add(types.InlineKeyboardButton('Кадастровые работы', callback_data='cadastral'))
        markup.add(types.InlineKeyboardButton('Строительные экспертизы', callback_data='expertise'))
        bot.send_photo(message.chat.id, file, 
                       caption='Здравствуйте, это Бот-помощник группы компаний "Стандарт Оценка", я помогу Вам определиться с нужной услугой, оформить заявку и связаться с администратором. Выберете желаемую услугу', 
                       reply_markup=markup)
    
    @bot.callback_query_handler(func=lambda call: True)
    def callback_message(call):
        if call.data == 'cadastral':
            bot.delete_message(call.message.chat.id, call.message.message_id)
            bot.send_message(call.message.chat.id, 'Введите свое ФИО')
            bot.register_next_step_handler(call.message, message_input_step)
        elif call.data == 'expertise':
            bot.send_message(call.message.chat.id, 'Вы выбрали Строительные экспертизы')
        elif call.data == 'all':
            bot.send_message(call.message.chat.id, 'Все данные верны')
    
    def message_input_step(message):
        global name
        name = message.text
        bot.send_message(message.chat.id, 'Введите свой номер телефона')
        bot.register_next_step_handler(message, phone)
    
    def phone(message):
        global phone
        phone = message.text
        markup = types.InlineKeyboardMarkup()
        markup.add(types.InlineKeyboardButton('Все верно✅', callback_data='all'))
        markup.add(types.InlineKeyboardButton('Начать сначало❌', callback_data='cadastral'))
        bot.send_message(message.chat.id, f'Ваше ФИО: {name}\nВаш номер телефона: {phone}', reply_markup=markup)
    
    if __name__ == "__main__":
        bot.polling(none_stop=True)
    Ответ написан
    3 комментария
  • Какой сервис выбрать для структуризации идей?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Дополню вариантом, который не зависит от облаков: https://thebrain.com/products/thebrain - отличное десктопное приложение без всяких тяжелых браузеров. Впрочем, мобильные приложения тоже есть, как и поддержка облачной синхронизации. И плюс еще и открытый формат для файлов (экспорт/импорт).
    Ответ написан
    Комментировать