Поддержка Проблемы и решения Что за переменная и откуда она берется?

  • Уважаемые форумчане, подскажите, вот такой код плагина добавляющий кнопки расшаривания от Яндекса.

    Все работает.

    Но подскажите — что за переменная $content и откуда она берется?

    <?php
    /*
    Plugin Name: YandexShareLite
    Description: Добавление кнопок «поделиться» разных социальных сетей
    */
    
    // подключим фильтр, срабатывающий перед выводом содержимого страницы (поста)
    add_filter( 'the_content', 'yandexshare_run' );
    
    // функция добавляет кнопки расшаривания перед постом
    function yandexshare_run($content) {
        // код со страницы https://tech.yandex.ru/share/
        $data = '
            <script type="text/javascript" src="//yastatic.net/es5-shims/0.0.2/es5-shims.min.js" charset="utf-8"></script>
            <script type="text/javascript" src="//yastatic.net/share2/share.js" charset="utf-8"></script>
            <div class="ya-share2" data-services="vkontakte,facebook,odnoklassniki,gplus,twitter"></div>
        ';
        
        // возвращаем новое содержимое — код от Яндекса + старое содержимое
        return $data . $content;
    }
    ?>
Просмотр 3 ответов — с 1 по 3 (всего 3)
  • Модератор Юрий

    (@yube)

    Но подскажите — что за переменная $content и откуда она берется?

    Из применения хука внутри функции the_content()

    $content = apply_filters( 'the_content', $content );
    

    Спасибо понятно

    хуки (фильтры/экшены) могут передавать в функцию от 0 до бесконечности (как правило так не делают — загоняют в массив/объект) переменных.
    На каждый хук надо смотреть в доках — сколько аргументов передает он в функцию.

    Часто 2-й аргумент содержит доп информацию для проверок и т.д.

    Например это число 3 в конце add_action( 'save_post', 'action_function_name_85245', 10, 3 ); — когда последний не нужен, можешь указывать 2 в конце и будешь иметь доступ к 2-м переменным.

    wp-kama.ru/hook/save_post — этот 3 «переменных» передает и можно по двум дополнительным выполнять различные проверки — без доп запросов на их получение.
    Удобный механизм.

Просмотр 3 ответов — с 1 по 3 (всего 3)