Разделы сайта
Выбор редакции:
- Рекомендации по подаче обратной связи сотрудникам Аж обратная связь копию обращения
- Новое в законе о торговле Законодательство в сфере торговли рф от
- Как тебе про артек рассказать
- Британская ост-индская компания Ост индская компания акционеры
- Как рассчитать среднесписочную численность работников: формулы, примеры
- Договор купли-продажи: общая характеристика
- Михаил Пришвин — Птицы под снегом: Сказка
- Конкурентная стратегия фирмы Виды стратегии по м портеру
- Возможно ли назначение специалиста, который не имеет высшего образования, на должность директора или заместителя директора научно-исследовательского института?
- Теоретические основы закупочной логистики
Реклама
Шорткоды. Шорткоды WordPress: примеры использования От чего зависит заработок на adsense |
Шорткод — это очень полезная вещь для вебмастера, шорткод реально облегчает рутинные работы по вставке однотипной информации на сотни страниц сайта. При этом удобно потом МАССОВО заменять информацию в нужном шорткоде. Если вы не знаете еще что такое шорткод, то коротко объясню. Представим, что вам нужно в статью вставить какой-то код, пусть это будет ссылка: 10 полезных коротких кодов для WordPress Представим, что вы хотите ее вставить в 10 статей в произвольных местах. В принципе не сложно, поставили. А теперь представьте, что ссылка оказалась битой и вам нужно ее заменить в 10 местах? А если это 100 страниц? Вручную это сделать будет сложно, разве только , но для многих это сложная задача. А теперь представьте, что у вас есть плагин, при помощи которого можно создать на каждый код короткую ссылку, типа , которую можно вставлять прямо в текст в режиме редактора, что чаще всего намного удобнее, чем в режиме html. Теперь, если вам нужно изменить ссылку, то вы заходите в админку плагина и меняете ссылку, и код автоматически изменится на всех страницах сайта, где стоит наш шорткод. Под каждую ссылку, банер, скрипт или изображение можно создать свой шорткод и управлять этим массивом из единого центра управления. А если у вас интернет магазин, то для вас это еще более полезная вещь, так как используя шорткоды woocommerce можно массово менять цены, курс валют, название товаров и все что угодно. Как же все это осуществить? В wordpress существует немало плагинов для создания шорткодов, но не один из них мне не пришелся по душе: то все на английском, то слишком навороченный, то слишком мало функциональный… Но вот как раз на днях я прочитал, что известный seo блоггер Виталий Бургомистров анонсировал бесплатный плагин для этих целей — sCode by mojWP . Если вы вставите в html код шаблона шорткод, то и увидите то, что вставили — шорткод. Чтобы все заработало, нужно ваш шорткод заключить в функцию: Теперь вы увидите на сайте именно то, что прячете за вашим шорткодом. Ничего сложного, правда? В админке есть небольшая инструкция к плагину и видео, которое я вставил в статью. Я лучше покажу вам, как его можно применить на практике для . Давно хотел это осуществить и теперь кажется самое время. Чтобы понять суть моей задумки отмечу лишь один момент. От чего зависит заработок на adsense?
На первое мы уже не сможем повлиять, если статья написана и на нее уже идет хороший трафик. А вот кликабельность мы поднять можем и при этом значительно. Как вы понимаете, я буду говорить лишь о блоках рекламы, которые находятся в статье. Блоки в сайдбаре, в подвали и тем более в шапке самые бестолковые и я давно все их убрал. А вот в статье совсем другое дело. Человек начинает читать статью и натыкается на рекламу — кликнет или нет? Вот тут все зависит от одного фактора: тема рекламы ПОЛНОСТЬЮ совпадает с вопросом, который разбирается НА ДАННОМ этапе статьи. Пример: Вот читает человек о том, какой хостинг ему выбрать. Читает, читает, и подходит к вопросу, который вы написали в статье и выделили его жирным шрифтом — какой же хостинг выбрать лучше всего ? Кстати, я уже применил этот плагин и вставил после моего вопроса шорткод с рекламой adsense — что у вас показывает? Если поставить блок рекламы в другом месте, то такого эффекта уже не будет. Вы понимаете к чему я клоню? Да, нужно ВРУЧНУЮ вставить шорткод с рекламой В НУЖНОЕ МЕСТО! Если этого места нет, то его нужно СОЗДАТЬ! Можно сделать так: открываем google.com и в поиск вводим название нашей статьи. Ищем в выдаче нашу статью и заходим на нее. Смотрим, какую рекламу показывает adsense. Ищем место в статье, где ей будет самое место, дописываем статью используя слова из этой рекламы и вставляем туда шорткод. Теперь реклама в статье будет МАКСИМАЛЬНО подходит ее содержанию, как минимум тому куску текста, где она будет стоять. Да, это долго и муторно, но ведь мы не ищем легких путей, правда? Легкий путь — это религия неудачников… Не нашли ответ? Воспользуйтесь поиском по сайту WordPress — мощная издательская система, одинаково удобная как для начинающих блогеров, так и для создания любых , форумов, соцсетей, магазинов и т.д. Обычно для каждого применения подбирается соответствующий шаблон (template), но иногда его возможностей не хватает. Вот тут на помощь приходят шорткоды, с помощью которых можно внести в Вордпресс собственную «изюминку». Шорткод — это короткий код (shortcode), который вставляется непосредственно в текст страницы, заголовка, виджета — то есть в контент и расширяет возможности Вордпресса. С его помощью можно красиво оформить текст, разбить его на колонки, вставить на страницу содержание, кнопку, аудиоплеер, форму для заказа и множество других возможностей, которые отличают ваш Вордпресс от всех других. Если отсутствует обработчик конкретного шорткода, то его вызов на странице будет выглядеть как обычный текст. В данной статье намерено использованы имена несуществующих шорткодов, чтобы вы видели, как выглядит вызов шорт кода, а не результат его работы. Типы шорткодов по структуреОни бывают без параметров, с параметрами и с контентом. Шорткоды без параметровИногда достаточно только вызвать шорткод, чтобы он выполнил строго определённую функцию. Никаких параметров ему передавать не нужно. Например, такой код выводит горизонтальную линию. Её вид определяется в таблице стилей. Этот вызов выводит текущий год. Удобно, чтобы не редактировать тексты каждый год. Шорткоды с параметрамиПорой нужно передать параметры, чтобы получать разные результаты. Например, вот так вставляется красивая кнопка, стиль которой должен быть прописан в таблице стилей. Он содержит два параметра: title — это надпись на кнопке, например, Заказать, Подписаться и т.д. url — это адрес перехода по клику. Вот так можно вставлять цену в рублях, которая автоматически переводится из цены в долларах по текущему курсу ЦБ.
Здесь параметр s — это цена в долларах. Шорткоды с контентомОни состоят из двух частей, между которыми может быть любой контент поста, виджета и т.д. Вот так можно выделить фрагмент текста или часть поста, «подложив» под него цветную подложку: Тут какой-то текст, который будет отображаться на цветном фоне. Параметр color задаёт цвет подложки в привычном 16-ричном коде. А вот так можно выводить текст в две колонки одинаковой ширины: Шорткод в коде php состоит из функции, которая его обрабатывает, и из команды, которая назначает коду соответствующую функцию. Вот типичный шорткод для кнопки: function ha_but
($atts,$content=NULL) { $output="’.$title."’; return $output; В данном примере функция имеет имя ha_but . Ей передаются два параметра — title и url . Причём для title назначено значение по умолчанию Перейти . Если при вызове кода параметр title пропустить, то на кнопке по умолчанию будет надпись Перейти. Внутри функции могут вызываться другие функции, подключаться файлы и т.д. Функционал шорткода ограничивается только вашей фантазией и навыками в программировании. Затем функция возвращает результат свой работы с помощью return . Функция add_shortcode назначает для шорткода по имени but функцию-обработчик по имени ha_but . А вот стили для кнопки жёлтого цвета во всю ширину страницы: Btn { } Как вставить шорткод в шаблон WordPressВставить функцию — обработчик шорткода можно прямо в файл, ответственный за вывод одиночных постов — обычно это single.php . Тогда данный шорткод будет работать только в постах. Лучше вставить его в файл functions.php, который есть в любой теме Вордпресса. Тогда шорткод будет работать на всех страницах, виджетах и т.д. Однако, если вы обновите или смените шаблон — шорткоды обрабатываться перестанут. Если планируется в будущем менять дизайн блога, то код всех шорткодов лучше разместить в одном файле, например, shortcodes.php, а его разместить в папке my в корне сайта. В этом случае нужно организовать вызов, вставив в файл functions.php команду require_once(‘my/shortcodes.php’); После смены или обновления темы Вордпресса не забудьте заново прописать эту команду. Как вставить шорткод в страницу WordPressЧтобы шорткод сработал, в нужное место контента нужно вставить его вызов, состоящий их квадратных скобок, имени шорткода и параметров. При этом можно оформить его любыми стилями, как и обычный текст поста.
Надеюсь, примеров достаточно, чтобы вы могли сами создать шорткод wordpress, который решает нужные вам задачи. Видео урок по созданию более сложных шорткодов смотрите здесь:
Всем привет. Возник общий вопрос, но знаний английского не хватает, чтобы спросить в форуме поддержки темы. Вообщем есть свежая версия вордпреса и тема с кучей возможностей, включая возможность добавлять php-код в контент или создавать шорткоды с кодом. Так вот, обнаружил, что при вставке в контент простого кода — проблем нет, более менее сложного, то не срабатывает, но работает, если создать шорткод. Например, Но, например, при использовании скрипта share42, все работает, кроме php-кода (the_permalink()) и т.д. Код курочить нельзя, другие возможности пока осваиваю. нет. Нашел обходной способ, сделать простейший плагин, в котором только функции и создание шорткода для этой функции, без всяких других возможностей. Так работает. Собственно вопрос 1, так нормально? Не будет каких подводных камней? И вопрос 2, как лучше, сделать отдельно плагин на каждый шорткод или один плагин на все шорткоды? Это называется велосипед велосипедистый на костылях. Зачем? Есть же правильный вариант — написать свой шорткод. Не умеете, или сложно разобраться? — наймите специалиста и пусть вам сделает правильно. Задача у вас простая — такса большой быть не должна. На том же кворке за 500р вам сделают
Например, Function my_title_shortcode($atts) { return get_the_title(); } add_shortcode("my_title", "my_title_shortcode"); и затем использовать вместо the_title() . Также, можно воспользоваться плагинами для создания шорткодов, например, . Ну и бонусом можно прикрутить, например, выпадающее меню для шорткодов с помощью плагина . P.S. Выводить the_title() в атрибут не стоит, рискуете поломать верстку. Либо пользуйтесь экранированием esc_attr(get_the_title()), либо сразу выводите экранированный заголовок с помощью the_title_attribute(). Плагином для шорткодов мне смысла пользоваться нет, тема сама позволяет их создавать. Просто при вставке share42 с помощью шорткодов или через тему — php код не срабатывает. Наверное потому, что он как-то обрабатывается через javascript share42. Собственно, чтобы не курочить код темы, я сделал простейший плагин для создания шорткода. Так работает. Думаю, что если сделать дочернюю тему и там создать шорткод — тоже будет работать. Собственно вопрос, как лучше, создавать дочернюю тему или сделать плагин? И если плагин, то лучше в одном плагине создать все шорткоды или отдельный плагин для каждого. Под плагином я имею введу код "; return $SB42Str; } add_shortcode("sb42", "InsertSB42"); ?>
P.S. Даже для ваших share42 есть плагин. Правда он такой же древний, как и сам способ share42 Не получилось у меня понятно задать вопрос. Такое ощущение, что его вообще никто не прочитал. Разобью вопрос на два. Кто знает, помогите плиз. Задача создать простейший шорткод без плагина. Типа
Реализация через дочернюю тему или через плагин? Какой вариант лучше? Если через плагин, и необходимо сделать несколько шорткодов, то какой вариант лучше, сделать один плагин со всеми шорткодами или отдельные плагины на каждый шорткод? Какой вариант производительнее и требует меньше памяти.
Потому что в каждом вашем сообщении сразу по нескольку вопросов. Например:
Теперь вы понимаете для чего существуют правила этого форума?
Точно такое же ощущение создается что вы не читаете ответов. Лично я рекомендовал вам самое главное — вместо того чтобы изобретая велосипед по вставке кнопок соц сетей от почти умершего share42 плясать с бубном и теряя время морочить голову себе и другим — воспользоваться правильными и готовыми решениями. Хорошо, в самом начале первого поста я написал, что это общий вопрос. Шара42 чисто как пример. Реально мне поставлена задача выводить инфу через шорткоды. Таких плагинов не существует в природе вообще, ибо инфа берется с самописной программы заказчика. PHP-код вставленный через плагин для создания шорткодов не всегда работает. Там где виджеты обрабатываются javascript php-код не работает. Я в тестовом сайте вставил нужный код в functions.php и все заработало. Но заказчик запрещает изменять файлы темы. Значит нужно использовать дочернюю тему. Или оформить код в виде простого плагина. Собственно один вопрос. Если нужно несколько шорткодов, их лучше сделать в одном плагине или по плагину на шорткод? Для конкретного проекта пойдет вариант плагина (может даже MU плагина — чтобы его случайно не отключили). В одном плагине коллекция из нескольких шорткодов. Когда случится неладное — вы будете знать что у вас все шорткоды отрабатывают из одного плагина. Просмотр 9 ответов - с 1 по 9 (всего 9)
Что такое шорткодыНачиная с версии 2.5, разработчики WordPress ввели понятие «Shortcodes API». Этот функционал позволяет создавать и использовать макрокоды в страницах сайта или в записях блога. Например, простая и короткая запись добавит на странице целую фотогалерею.В статье хочу показать, как правильно создавать более сложные шорткоды и решить наиболее распространенные проблемы при их создании:
Подготовка почвыПрежде чем начать создавать что-либо, предлагаю свой вариант размещения файлов:/ Практически в каждом руководстве предлагают создавать шорткоды прямо в файле functions.php. Скажу сразу: я - противник такого подхода. Вместо этого настоятельно рекомендую вынести все шорткоды в отдельный файл (includes/shortcodes.php) и подключить его в functions.php одной строкой. Это значительно разгрузит functions.php и сделает код более читабельным. Заметка : WordPress, конечно, поддерживает подключение файлов через require, но очень не рекомендует делать этого. Вместо этого предлагается использовать get_template_part() . Подключение скриптовМногие начинающие разработчики очень часто совершают эту ошибку - подключают скрипты, необходимые для работы того или иного шорткода, сразу при объявлении шорткода. Т. е. скрипты загружаются всегда, даже если этого шорткода нет на странице.Пример такой реализации: Function foobar_func($atts) { return "foo and bar"; } add_shortcode("foobar", "foobar_func"); function foo_script () { wp_register_script("foo-js", get_template_directory_uri() . "/includes/js/foo.js"); wp_enqueue_script("foo-js"); } add_action("wp_enqueue_scripts", "foo_script"); Это полностью рабочий вариант, но скрипт будет загружаться на каждой странице, даже если он там не нужен (т. е. нет шорткода). Во избежание таких ситуаций, предлагаю пользоваться следующим подходом:
Вот и все… Пример такой реализации: Class foobar_shortcode { static $add_script; static function init () { add_shortcode("foobar", array(__CLASS__, "foobar_func")); add_action("init", array(__CLASS__, "register_script")); add_action("wp_footer", array(__CLASS__, "print_script")); } static function foobar_func($atts) { self::$add_script = true; return "foo and bar"; } static function register_script() { wp_register_script("foo-js", get_template_directory_uri() . "/includes/js/foo.js"); } static function print_script () { if (!self::$add_script) return; wp_print_scripts("foo-js"); } } foobar_shortcode::init(); В отличие от предыдущего варианта реализации, этот шорткод инициализируется, но все скрипты подгружаются только при наличии шорткода на странице. Вложенные шорткодыЕсть еще пара проблем, с которыми могут столкнуться начинающие разработчики:
Теперь - более детально. Создание многоуровневого шорткода Возьмем к примеру, шорткод, который создает прайсинг таблицу. Для этого необходимо подготовить три отдельных шоркода:
В данном примере используется три шорткода: . add_shortcode("price", "price_code"); Для предотвращения использования внутренних шорткодов в качестве отдельных предлагается следующая схема: Price -> вывод кода на страницу Т. е. вывод кода на страницу происходит только во внешнем шорткоде, внутренние же просто возвращают полученные данные. Пример такой реализации приведен ниже. Function price_code ($atts, $content) { // инициализация глобальных переменных для прайс планов $GLOBALS["plan-count"] = 0; $GLOBALS["plans"] = array(); // чтение контента и выполнение внутренних шорткодов do_shortcode($content); // подготовка HTML кода $output = " ";
if(is_array($GLOBALS["plans"])) {
foreach ($GLOBALS["plans"] as $plan) {
$planContent = " ";
// вывод HTML кода
return $output;
}
";
$planContent .= $plan;
$planContent .= " ";
$output .= $planContent;
}
}
$output .= "Описание функций внутренних шорткодов: Function plan_code ($atts, $content) { // получаем параметры шорткода extract(shortcode_atts(array("title" => "", // Plan title name "price" => "0", // Plan price), $atts)); // Подоготавливаем HTML: заголовок плана $plan_title = " ";
$plan_title .= " ";
$plan_title .= " ";
// Подоготавливаем HTML: стоимость
$f_price = round(floatval($price), 2);
$f_price = ($f_Price > 0) ? $f_Price: 0;
$s_price = "$".$f_Price;
$price_plan = "";
$price_plan .= " ";
// инициализация глобальных переменных для опций
$GLOBALS["plan-options-count"] = 0;
$GLOBALS["plan-options"] = array();
// читаем контент и выполняем внутренние шорткоды
do_shortcode($content);
// Подоготавливаем HTML: опции
$plan_options = " ";
// Подоготавливаем HTML: компонуем контент
$plan_div = $plan_title;
$plan_div .= $price_plan;
$plan_div .= $plan_options;
// сохраняем полученные данные
$i = $GLOBALS["plan-count"] + 1;
$GLOBALS["plans"][$i] = $plan_div;
$GLOBALS["plan-count"] = $i;
// ничего не выводим
return true;
}
function option_code ($atts, $content) {
// Подоготавливаем HTML
$plan_option = "".$s_price." "; $price_plan .= " ".$text.""; $price_plan .= "";
$plan_option .= " ";
// сохраняем полученные данные
$i = $GLOBALS["plan-options-count"] + 1;
$GLOBALS["plan-options"][$i] = $plan_option;
$GLOBALS["plan-options-count"] = $i;
// ничего не выводим
return true;
}
".do_shortcode($content)." "; $plan_option .= "При этом подходе шорткод будет работать только в сборе, т. е. при правильном использовании, в других случаях ничего не будет выведено на экран (соответственно, ничего не сломается). Конечно же, вы можете еще оптимизировать и усовершенствовать этот шорткод, но все же, думаю, основную идею продемонстрировать мне удалось. Повторяющиеся шорткодыПроблема заключается в следующем: нужно внутри шорткода использовать такой же шорткод. Наиболее частым примером в моей практике был шорткод для создания колонки. Т.е., к примеру, нужно реализовать разделение страницы на 2 части с помощью колонок и в первую колонку разделить еще на 2 колонки.
К сожалению, для WordPress уже такая вложенность “не по зубам”. Верстка разлетится уже на втором контенте. Происходит это потому что при открытии шорткода WordPress сразу же ищет вторую (закрывающую) часть этого шорткода, т.е. в данном примере первая колонка будет закрыта на первом же вложенном шорткоде. Для решения этой проблемы, к сожалению, нет других вариантов, нежели просто добавить новые шорткоды. Но, переписывать функции нет смысла, можно просто инициализировать шорткод на уже имеющиеся функции: Add_shortcode("column_half", "column_half_code"); add_shortcode("column_half_inner", "column_half_code"); function column_half_code ($atts, $content) { return " ".do_shortcode($content)." ";
}
В этом случае исходный синтаксис станет:
Content
Content
Content
ЗаключениеВ данной статье я рассмотрел наиболее частые проблемы, с которыми сам когда-либо сталкивался. Если же у вас есть что добавить, исправить, либо предложить свой вариант решения той или иной проблемы, не стесняйтесь писать в комментариях к этой статье.Использование шорткодов в вордпресс позволяет создавать в текстовом редакторе оригинальное «сложное» оформление для контента без HTML или специальных знаний. Вы сможете добавлять кнопки, табы, слайдеры типа «аккордеон», разбивать тексты на колонки или выделять их определенным цветом, вставлять красивые списки или , таблицы с ценами, галереи/видео и т.д. и т.п. Шорткоды помогут сделать ваш сайт более функциональным, а контент — выразительным и эффективным. Данное решение подходит для многих задач и весьма полезно в работе. Вопрос подключения шорткодов в вордпресс имеет определенные нюансы, о которых я расскажу в отдельной статье. Сегодня же предлагаю ознакомиться с соответствующими плагинами — это самый простой способ получить уже готовый набор функций без каких-либо дополнительных настроек. В данной заметке рассмотрим наиболее популярные модули. По аналогии с (лучших WP плагинов) расположу выбранные плагины шорткодов в виде рейтинга. Критерием отбора будет оценка пользователей и число скачиваний. WP Shortcode by MyThemeShop70000+ загрузок, оценка — 5.
Здесь присутствуют все классические элементы — от табов, раскрывающихся списков до кнопок и разного рода уведомлений. Итого. Если вы ищете максимально простой shortcode wordpress плагин, то последние два варианта (Arconix Shortcodes, Simple Shortcodes) вам вполне подойдут. Хотите создавать свои уникальные шорткоды с параметрами? — посмотрите детальнее модуль Shortcoder. Самые функциональные решения — Shortcodes Ultimate и Easy Bootstrap Shortcode. Но из этих двух первый, мне кажется, все равно получше будет. Я бы начал именно с него. А какой плагин шорткодов в вордпресс вы используете? |
Популярное:
Новое
- Новое в законе о торговле Законодательство в сфере торговли рф от
- Как тебе про артек рассказать
- Британская ост-индская компания Ост индская компания акционеры
- Как рассчитать среднесписочную численность работников: формулы, примеры
- Договор купли-продажи: общая характеристика
- Михаил Пришвин — Птицы под снегом: Сказка
- Конкурентная стратегия фирмы Виды стратегии по м портеру
- Возможно ли назначение специалиста, который не имеет высшего образования, на должность директора или заместителя директора научно-исследовательского института?
- Теоретические основы закупочной логистики
- Как отправить письмо по почте России