• Пропала верхняя панель в Wordpress, что делать?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    В файлах header.php и footer.php все на менсте, в профиле галочка стоит.

    header.php & footer.php не имеют отношения к adminbar.
    Вероятнее всего, у вас установлен какой-либо плагин или тема, которая отключила панель.
    Например, ищите в functions.php
    show_admin_bar(false);
    или
    add_filter('show_admin_bar', '__return_false');
    Читаем - https://wp-kama.ru/function/show_admin_bar

    Также поочередно отключайте плагины и проверяйте видимость adminbar. Например, плагины clearfy, wp recall обладают подобным функционалом (если память не изменяет)
    Ответ написан
    3 комментария
  • Как задать ширину кнопки WordPress?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Вот, ваш исходный код:
    И как вы заметили тут есть ошибки - незакрытый тег <a>
    <div class="wp-block-buttons"> 
    	<div class="wp-block-button is-style-fill"> <a class="wp-block-button__link has-background has-vivid-green-cyan-background-color" href="www.makety.top/search-tenders" style="border-radius:10px" target="_blank" rel="noreferrer noopener"> Найти объявления </div>
    </div>

    Вот, исправленный вариант:
    <div class="wp-block-buttons"> 
    	<div class="wp-block-button is-style-fill"> 
    		<a class="wp-block-button__link has-background has-vivid-green-cyan-background-color" href="www.makety.top/search-tenders" style="border-radius:10px" target="_blank" rel="noreferrer noopener"> Найти объявления</a> 
    	</div>
    </div>

    Вы можете разными способами добавить CSS. Например, добавить класс и добавить стили или инлайном вставить нужный стиль и т.д.

    Было бы неплохо понять, что именно является кнопкой в данном случае, тег <a> или тег <div>
    Попробуйте 2 варианта:
    <div class="wp-block-buttons"> 
    	<div class="wp-block-button is-style-fill" style="width:150px;"> 
    		<a class="wp-block-button__link has-background has-vivid-green-cyan-background-color" href="www.makety.top/search-tenders" style="border-radius:10px" target="_blank" rel="noreferrer noopener"> Найти объявления</a> 
    	</div>
    </div>


    <div class="wp-block-buttons"> 
    	<div class="wp-block-button is-style-fill"> 
    		<a class="wp-block-button__link has-background has-vivid-green-cyan-background-color" href="www.makety.top/search-tenders" style="width: 150px; border-radius:10px" target="_blank" rel="noreferrer noopener"> Найти объявления</a> 
    	</div>
    </div>
    Ответ написан
    Комментировать
  • Как сделать калькулятор JS + HTML + WORDPRESS?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Если вы не хотите, чтобы ваш код был виден на клиентской стороне, то js вам не подходит.
    Лучше используя технологию ajax, отправляйте на сервер введенные пользователем данные, а затем обрабатывайте их на сервере и отправляйте результат вычислений обратно
    Ответ написан
    1 комментарий
  • Как избавиться от таких дублей товаров?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Попробуйте экспортировать товары при помощи Wp ALl Export, а затем импортируйте их при помощи Wp All Import + Woocommerce Addon.
    Ответ написан
  • Как создать суб аккаунт в WordPress?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Довольно нетривиальная задача, тем более для CMS WP.
    Что является субаккаунтом в вашем понимании?
    Чем он отличается от обычного аккаунта пользователя?
    Какой признак будет являться признаком того, что это субаккаунт?

    Вот, мое видение всего этого:
    - Необходимо разработать функционал (например, плагин), который даст возможность пользователям обладающим определенными ролями добавлять пользователя через форму. Для формы можете использовать возможности acf_form()
    - Когда форма заполнена и отправлена на backend, то вы также получаете id текущего пользователя и записываете его значение в мета поле для нового пользователя, которого создаете из отправленной формы. Т.е. признаком того, что это субаккаунт будет id реферрера (пользователя создавшего субаккаунт).

    Чем-то напоминает, партнерскую (реферральную программу) "приведи друга и получи ...", когда каждый пользователь может пригласить пользователя по ссылке и в случае, если оный зарегистрируется, то ему дополнительно присваивается id реферрера.

    Не думаю, что есть готовое решение для вашей задачи. Если не умеете кодить, то рекомендую обратиться во фриланс биржу. А если умеете, то алгоритм работы я указал выше.
    Ответ написан
    Комментировать
  • Не грузит код в wordpress, через openserver. В чем дело?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    при редактирование кода

    Где и как редактируете код?
    Уверены, что редактируете там, где нужно?
    Уверены, что ваши правки сохраняются?
    Имеется ли плагин кэширования сайта и отключен ли он после переноса?
    Чистили ли вы кэш браузера, сайта и т.д.
    Ответ написан
  • Как сделать вот такой сервис на Wordpress?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Здравствуйте!

    1) Глоссарий можно создать при помощи обычной кастомной таксономии. Создаете таксономию, далее категории (А, Б, В .... Ю, Я)
    2) Установите плагин ACF. В нем есть такое поле, как Google Map.
    А далее следуйте этой статье, чтобы добавить объекты на карту
    https://wpbeaches.com/create-multiple-marker-map-f...

    Или как вариант можете поискать готовые плагины, что-то из категории wordpress director plugin, wordpress listing plugin
    Ответ написан
  • Как устранить ошибку 403 при работе с блоком HTML в Elementor Pro?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Здравствуйте!
    1) Ошибки начинающиеся на 4хх - это ошибки происходящие на клиенте, в отличие от серверных ошибок (5хх).
    2) Ошибка 403 - forbidden (она же доступ запрещен). Эта ошибка может происходить по разным причинам и не типична для какого-либо плагина или темы или чего-либо еще.
    Вот, поиск по форумам для данного плагина дал этот результат:
    https://wordpress.org/support/topic/server-error-4...
    This issue is due to WordFence.
    We received an answer from WordFence and a solution to get rid of this false positive:
    .”Putting the firewall into learning mode and then attempting the action that is blocked

    Говоря проще, если у вас установлен плагин Wordfence или любой другой файрвол, то он может блокировать ссылку и тем самым стать причиной 403. Действительно, работая с этим плагином (Wordfence) некоторые плагины выдавали ошибку 403.
    Другие причины, и-за которых это может происходить
    https://docs.elementor.com/article/185-the-update-...

    Исключите ошибки по вышеуказанным ссылкам. Также попробуйте сделать откат к предыдущей версии плагина или наоборот обновить до актуальной версии. Попробуйте отключить все плагины, кроме Elementor Pro и поочередно включать до обнаружения конфликтующего плагина.
    Ответ написан
    2 комментария
  • Как выгрузить медиафайлы с сайта?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    1) Если у вас есть доступ по фтп, то по фтп
    2) Если у вас нет доступа к фтп, то пишем парсер и скачиваем фотографии
    3) Или как вариант, можно скачать весь сайт через wget
    Посмотрите как установить wget на компьютер
    wget -r -k -l 10 -p -E -nc http://site.com/
    4) Если есть доступ к сайту, то можно использовать REST API Wordpress для скачивания данных
    Ответ написан
    Комментировать
  • Что за баг с плагином кеширования?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Вам нужно включить сжатие, а это зависит от ПО, который вы используете. Apache, IIS, Nginx и др.
    nginx - https://docs.nginx.com/nginx/admin-guide/web-serve...
    apache - https://knackforge.com/blog/karalmax/how-enable-gz...
    IIS - https://support.winhost.com/kb/a1583/enable-gzip-c...
    Ответ написан
    Комментировать
  • Как разрешить пользователю редактировать только собсвенные комментарии?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    У меня есть несколько идей по решению данной задачи. Какая из них корректная не скажу, но тем не менее решит ваши задачи.

    Итак,
    Для начала создадим controllerAdvice

    @RequiredArgsConstructor
    @ControllerAdvice
    public class GlobalControllerAdvice {
    private final UserServiceImpl userServiceImpl;
    
    @ModelAttribute("currentUser")
        public User getUserProfile(
                @AuthenticationPrincipal UserDetails currentUser
        ) {
            if (currentUser != null)
                return (User) userServiceImpl.findUserByEmail(currentUser.getUsername());
            return null;
        }
    
    }


    Теперь, нам доступна переменная ${currentUser} (текущий авторизованный пользователь)

    Далее, допустим, что мы хотим на клиенте отобразить иконку редактирования по клику на которую пользователь сможет отредактировать комментарий.
    Когда вы в html (в шаблонизаторе) циклом выводите список комментариев, то просто сравните текущего авторизованного пользователя и автора каждого комментария. Если equals(), то показываем иконку редактирования, а если нет, то не показываем.

    Например, для thymeleaf
    <div class="comments" th:each="comment : ${comments}"> 
    <input th:if="${comment.author} eq ${currentUser}" type="button" value="Отредактировать комментарий"/>
    </div>

    Или вы можете вместо сравнения объектов сравнить их id и т.д.

    А если нужно проверить автора в методе контроллера, то получаем текущего пользователя:
    @GetMapping("/edit/{commentId}")
    public String editComment(
    @PathVariable("commentId") Long commentId,
    @AuthenticationPrincipal UserDetails currentUser,
    ) {
    User user = (User) userServiceImpl.findUserByEmail(currentUser.getUsername());
    /*
    Далее находим комментарий по его id. находим его автора и сравниваем с user.
    */
    
    }
    Ответ написан
    2 комментария
  • Как пережать большие фото и после этого удалить оригиналы?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Здравствуйте!
    1)
    база недвижимости откуда выгружаются объекты

    Если вы используете API сервиса, откуда забирается информацию из БД, то вы можете тем же скриптом-парсером обработать фотографии. Например, если у вас VPS, то скриптом пропустите изображение через jpegoptim, jpegtran, pngtran и подобные консольные утилиты.

    2) Если вам нужен именно плагин, то:
    EWWW Image Optimizer
    В нем есть ф-ция
    - Optimize the original version of images that have been scaled down by WordPress. (Настройки плагина - Advanced)
    а еще:
    Delete originals: Удалить оригинал изображения с сервера после успешного конвертирования. (Вкладка Convert)
    Ответ написан
    Комментировать
  • Почему не получается спарсить это значение через Jsoup?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день!
    1) То что вы видите в консоли браузера (при инспектировании элементы) и то что отображается в исходном коде ctrl + u разнятся.
    В исходном коде нет этих элементов, так как предположительно они добавляются в DOM динамически (средствами js). Вроде бы фреймворк react.
    Соответственно, спарсить при помози jsoup не получится.
    Смотрите в сторону
    selenium + jbrowserdriver - https://github.com/MachinePublishers/jBrowserDriver
    selenium + chrome || firefox
    Ответ написан
    1 комментарий
  • Отличаются версия сайта в админ панели и в файловом менеджере, с чем может быт связанно?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Здравствуйте!
    Задам тупой вопрос, но порой помогает...
    А вы уверены, что смотрите там? Может ли быть, что у вас несколько копий сайта и например, подключаясь по фтп (а точнее просматривая сайт через файловый менеджер) вы подключаетесь к "другому" сайту. Другое, что еще бывает, это когда хостеры без уведомлений могут откатить сайт (восстановить из существующего бекапа). Но при этом версии сайтов не должны разнятся и должны совпадать.
    Подозреваю, что вы просто не там смотрите.
    Ответ написан
  • Стоит ли покупать acf на http://acf.wp-book.ru/? Не кидают ли?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    1) Настоятельно рекомендую купить ACF PRO на оф. сайте - https://www.advancedcustomfields.com/pro/

    2) Если вы все же хотите купить его по уцененке, то можете глянуть в https://www.nobuna.com/deals/advanced-custom-field...
    Весь комплект со всеми дополнениями будет стоить около 10-15 долларов с обновлениями на 1 год. Для получения обновлений необходимо установить сторонний (их плагин), который будет "обновлять" плагин с их репо.
    Ответ написан
    Комментировать
  • Можно ли ускорить процесс загрузки изображений в медиатеку вп?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Здравствуйте!
    А что насчет этих методов:
    1) загружаете ваши медиафайлы по фтп, а далее импортируете их в библиотеку
    Media from FTP - https://wordpress.org/plugins/media-from-ftp/

    2) загружаете ваши файлы через фтп или через ftps, а далее при помощи wp cli импортируете их в библиотеку
    https://developer.wordpress.org/cli/commands/media...

    3) Использование REST API.
    Аналогично загружаете по доступному вам протоколу ваши медиафайлы, а далее при помощи REST API создаете медиа.
    Например, https://gist.github.com/ahmadawais/0ccb8a32ea795ff...
    С REST APİ я работал на языке Java и скажу, что там все прекрасно работает. С рнр наверное, код из гита указанный выше подойдет
    Ответ написан
    Комментировать
  • Как установить java на ubuntu?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Здравствуйте!
    С учетом того, что вам Java нужна не для разработки и jre будет достаточно, то sdkman вам не понадобится.
    Однако, обратите внимание на следующее:
    1) установлена ли java
    2) корректно ли прописаны системные переменные

    Для начала:
    Набираем и узнаем версию
    java -version
    Если показывает версию, то все ок. А если нет, то значит у вас скорее всего java не установлена.
    Идем дальше (установка java):
    sudo apt update
    sudo apt install openjdk-11-jre


    Также иногда может быть установлена несколько jre и jdk.
    Наберите в консоли:
    sudo update-alternatives --config java

    В консоли вы увидите путь до директории java. Если их несколько, то копируем нужный путь, а далее:
    Открываем редактор:
    sudo nano /etc/environment
    Добавляем:
    JAVA_HOME="{путь, который скопировали, включая директорию bin}"

    Закрываем редактор и заново загружаем файл
    source /etc/environment

    Набираем в консоли:
    echo $JAVA_HOME
    Если путь отобразился, то все ок.

    Ссылка на источник - https://www.digitalocean.com/community/tutorials/h...
    Ответ написан
    2 комментария
  • Как создать новую страницу с контентом?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    1) Необязательно для каждой страницы создавать свой шаблон, если вы не желаете кастомизировать вывод содержимого этой страницы. Соответственно, созданный вами шаблон, в который вы кстати добавили только заголовок (комментарий) и забыли вывести цикл - не нужен. У вас наверняка, согласно иерархии шаблонов ВП есть index.php page.php и другие шаблоны, котоые и выведут содержимое вашей страницы. Выбирать эти шаблоны не нужно. Они "схватываются" автоматически. Для получения информации об используемом шаблоне скачате плагин Query Monitor
    2) Если вы все же решили создать шаблон, то рекомендую прочитать кодекс ВП, ознакомиться с иерархией шаблонов и по корректному их наименованию. Например, page-{ID}.php page-{slug}.php и т.д. Ну и конечно же не забыть не просто создать шаблон, но и вывести основной цикл.

    Простой пример:
    <?php
    /*
    Template Name: Мой шаблон страницы
    Template Post Type: post, page, product
    */
    ?>
    <?php if (have_posts()) :  while (have_posts()) : the_post(); ?>
    	    <?php the_content (); ?>
    <?php endwhile; ?>
    <?php endif; ?>
    Ответ написан
    Комментировать
  • Как сделать так, чтобы информация по шорткоду выводилась туда, куда вставлен сам шорткод?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Все верно...

    $the_query = new WP_Query( 'page_id='.$id );
    while ( $the_query->have_posts() ) {
    $the_query->the_post();
    the_content();
    }
    wp_reset_postdata();

    тут вы вставляете контент, а необходимо исопльзовать return, чтобы выводить содержимое шорткода только в указанном месте.

    Вот, простой пример - https://wordpress.stackexchange.com/questions/7555...

    I have had this problem before: shortcodes shouldn't display any content (using print or echo), instead return the content to be outputted.

    If it's too much trouble converting all of your output statements, or you need to use a function that will always display the output, you can use output buffering. A buffer will 'catch' any echo'd or print'd content and allow you to write it to a variable.
    Ответ написан
    Комментировать