sorin
  • 0
Учитель

Как добавить собственные шорткоды?

  • 0

Я хочу повторно использовать некоторые небольшие фрагменты html внутри нескольких страниц/сообщений, но я не знаю, как получить это в WordPress.

Было бы неплохо, если бы у меня был помощник в редакторе, чтобы включить их, но это только приятно иметь функцию, на данный момент мне нужно решение для этого.

Share
  1. Шорткоды работают через Shortcode API. По сути, шорткод — это просто удобная для человека форма записи данных, которые обрабатываются и передаются соответствующей функции PHP.

    Таким образом, добавление собственного шорткода включает в себя:

    1. Написание PHP-функции, которая будет обрабатывать данные, переданные API из шорткода.
    2. Регистрация этой функции в качестве обработчика шорткода.

    Я также помню, что плагин WP Utility Short Codes был рекомендован в качестве ответа на какой-то вопрос, как хороший способ вставлять фрагменты и тому подобное в редактор.

    • 0
    • В зависимости от того, насколько базовым является код, который вы пытаетесь повторно использовать, раскрывающийся список стилей TinyMCE может быть лучшим путем, чем короткие коды. Добавить шорткоды невероятно просто, если вы предоставите пример (в OP) того, что вы пытаетесь сделать, большинство людей здесь не возражали бы дать конкретные советы по реализации.

      • 0
    • Я также хотел бы порекомендовать этот плагин ( Shortcoder ) как один из лучших, которые я нашел для создания пользовательских шорткодов. Очень простой и удобный пользовательский интерфейс и.. все работает. Другой плагин, который я бы порекомендовал для более продвинутых шорткодов, это Post Snippets.

      • 0
    • Я уверен, что вы это знали, но важно отметить, что функция должна возвращать значение, а не повторять его. Со страницы кода API шорткода : «Возвращаемое значение функции обработчика шорткода вставляется в вывод содержимого сообщения вместо макроса шорткода. Не забудьте использовать возврат, а не эхо — все, что отображается, будет выведено в браузер, но он не появится в нужном месте на странице».

      • 0
    • Хороший улов. Прошло почти 2 года с тех пор, как я смотрел на это… так что да.

      • 0
    • хаха ничего страшного. Я активен на этом форуме всего несколько месяцев, и я уже видел ваши сообщения повсюду, поэтому я знаю, что вы знаете, что делаете. Я просто хотел указать на это для других n00bs, таких как я 🙂

      • 0
  2. Пока я нашел плагин Shortcoder, который позволяет мне добавить 20 шорткодов. На данный момент этого достаточно, и я надеюсь, что разработчик скоро решит это ограничение.

    По какой-то причине этот плагин не отображается при поиске по его имени на веб-сайте WordPress.

    Кроме того, я открыт для принятия новых предложений/альтернатив.

    • 0
  3. Я бы не рекомендовал использовать для этого чужой плагин. Просто встройте пользовательские функции в свою тему или добавьте свой собственный плагин (использование чужой системы добавляет накладные расходы с точки зрения пользовательского интерфейса и дополнительной информации, которая вам действительно не нужна).

    Допустим, вы хотите, чтобы пользовательский шорткод добавлял ваше изображение gravatar где-нибудь в контент поста. Не уверен, зачем вам это нужно, но эй… это может быть весело!

    Предположим, вы хотите разместить [user_gravatar user="myemail@domain.com" size="80"] в своих сообщениях и на страницах и динамически заменить его на граватар, связанный с myemail@domain.com любым указанным вами значением (от 1 до 512 пикселей). Это функция, которую вы бы использовали:

    function user_gravatar_sc($atts) {
        extract(shortcode_atts(array(
            'user' => '',
            'size' => '80'
        ), $atts));
    
        if($user != '') {
            $img = 'http://www.gravatar.com/avatar/' . md5($user) . '?size=' . $size;
        } else {
            $img = 'http://www.gravatar.com/avatar/00000000000000000000000000000000' . '?size=' . $size;
        }
    
        return '<img src="' . $img . '" />';
    }
    
    add_shortcode('user_gravatar', 'user_gravatar_sc');
    

    Эта функция будет принимать хэш MD5 любого адреса электронной почты, который вы введете, и использовать этот хэш для запроса изображения пользователя в граватаре. Однако, если вы не укажете адрес электронной почты, он все равно что-то вернет — синий заполнитель G gravatar по умолчанию. Если вы не укажете размер, по умолчанию будет установлено значение 80 пикселей.

    Вы можете поместить этот код в functions.php файл вашей темы или встроить его в тело пользовательского плагина, работающего на вашем сайте. Вы можете видеть, что это не очень много кода, поэтому я говорю, что использование стороннего плагина со сложным пользовательским интерфейсом для добавления шорткода добавляет слишком много ненужных накладных расходов.

    • 0

Оставить ответ

You must login to add an answer.