Ответы пользователя по тегу JavaScript
  • Как правильно разработать структуру плагина для Wordpress?

    dimasmagadan
    @dimasmagadan
    1 используйте API, которые есть в WP
    запрос на сторонний сервер правильнее сделать с помощью через HTTP API
    https://codex.wordpress.org/HTTP_API

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

    если идей, как организовать плагин нет, скачайте любой из гугла по "wp plugin boilerplate".
    чего-то особо уникального там нет, подход везде примерно одинаковый.
    отличаются названием функций/классов, путями и названием папок

    >Как правильно это организовать, чтобы только после получения данных срабатывал шорткод?
    в функции шорткода пропишите условие,
    если данные есть - показывать, если нет - не показывать
    Ответ написан
    Комментировать
  • Полностью ajax сайт на Wordpress?

    dimasmagadan
    @dimasmagadan
    Статья на smashingmagazine, на которую дал ссылку Сергей, устарела, сделать полностью ajax сайт сейчас можно и по другому. У WP появился REST API, появились новые js библиотеки.

    Но алгоритм будет примерно как в статье - получаем данные с сервера, отображаем на сайте.

    Если свой код писать сложно, попробуйте этот плагин
    https://ru.wordpress.org/plugins/ajaxify-wordpress...
    В некоторых случаях его функционала хватает.

    Если вам нужна только ajax подгрузка записей, можете попробовать поставить этот плагин
    https://wordpress.org/plugins/jetpack/
    Ответ написан
    Комментировать
  • Как задавать переменные JS из админки Wordpress?

    dimasmagadan
    @dimasmagadan
    не обязательно использовать произвольные поля.
    если значения хранятся у вас в опциях, выводите их сразу из опций.

    страницу с опциями можно создать тут:
    wpsettingsapi.jeroensormani.com

    если скрипт калькулятора у вас добавлен корректно (через wp_regisrer_script или wp_enqueue_script), то добавить переменную к этому скрипту нужно через wp_localize_script

    добавлять лучше не по одной переменной, а сразу все в одном массиве. например так
    wp_localize_script('main','os',array(
    	'ajaxurl'=>admin_url('admin-ajax.php'),
    	'tClose'=> __('Close (Esc)','text_domain'),
    	'tLoading'=> __('Loading...','text_domain'),
    	'tError'=> __('Unable to load <a href="%url%">link</a>.','text_domain'),
    	'tPrev'=> __('Previous (left)','text_domain'),
    	'tNext'=> __('Next (right)','text_domain'),
    	'tCounter'=> __('%curr% from %total%','text_domain')
    	)
    );

    в этому случае они будут доступны в таком виде
    os.ajaxurl, os.tClose и тп

    если же скрипт вы добавили напрямую, в код, то добавить переменные можно добавив action к wp_header. так делать не правильно, но, если по какой-то причине не можете сделать вывод скрипта через стандартные функции, подойдет.
    Ответ написан
    Комментировать
  • Как исправить конфликт jQuery и Wordpress?

    dimasmagadan
    @dimasmagadan
    попробуйте что-то из этого

    1 использовать strict mode
    ваш код и используемые плагины нужно будет обернуть вот так
    (function( $ ) {
    	"use strict";
    	$(document).ready(function(){
    		// ваш код
    	}); 
    }(jQuery));


    2 заменить все $ на jQuery (не только в вашем коде, но и в плагинах)

    3 заменить идущую с WP библиотеку jQuery на вашу.
    там, где подключаете скрипты добавить такое
    wp_deregister_script('jquery');
    wp_register_script('jquery','ваш путь');
    Ответ написан
    1 комментарий
  • Мультиязычность + документ в контактной форме (Wordpress)?

    dimasmagadan
    @dimasmagadan
    для добавления мультиязычности в WP есть плагины.
    особых проблем с ними нет.

    я использую вот этот https://wordpress.org/plugins/qtranslate-x/

    с добавлением документа в форму так же проблем быть не должно.
    вариантов сделать вывод ссылки на скачивание документа в контактной форме несколько.
    Ответ написан