ashwinprabhu
  • 0
Новичок

Можно ли изменить порядок отображения плагинов на странице?

  • 0

В настоящее время в моей установке WordPress активированы следующие плагины:

ряд 1:

Outbrain

ряд 2:

Подпишитесь через Feedburner RSS/email

ряд 3:

Виджет для твитов Topsy, виджет FB Like, виджет WP-Email для друга

Я хочу изменить порядок их появления.

Я хочу, чтобы виджеты в строке 3 отображались первыми, виджет outbrain отображался последним в строке 3. Как мне этого добиться?

Хотя я могу немного повозиться с PHP, если этого требует решение, я предпочитаю, чтобы независимый плагин позаботился об упорядочении, если он существует!

Спасибо!

Share
  1. Приоритеты забитого фильтра, наверное.

    • 0
  2. Судя по твоему комментарию, ты почти понял,

    Плагины, которые добавляют что-то под ваш контент, обычно use the_content фильтруют, вызывая функцию, add_filter например, плагин outbarin вызывает это так:

    add_filter('the_content', 'outbrain_display');
    

    поэтому вы можете заказать их, передав параметр приоритета

    add_filter('the_content', 'outbrain_display',99); 
    

    Но изменять его непосредственно в файлах плагина — неправильный путь, так как в следующий раз, когда вы обновите плагин, вы потеряете эти изменения, поэтому правильный способ сделать это — добавить действие после загрузки плагинов с помощью plugins_loaded хука действия и удалить фильтры, которые они добавили, а затем повторно добавьте эти фильтры, используя желаемый порядок:

    add_action('plugins_loaded','my_content_filters_order');
    function my_content_filters_order(){
        //first remove the filter call of the plugin
        remove_filter('the_content', 'outbrain_display');
        //... Do that for all filters you want to reorder
        //... ex: remove_filter('the_content', 'FB_like');
    
        //then add your own with priority parameter
        add_filter('the_content', 'outbrain_display',99);
        //... Do that for all filters just removed and set
        //... the priority accordingly 
        //...  Lower numbers correspond with earlier execution
        //... ex: add_filter('the_content', 'FB_like',98);
        //... this will run first then outbrain
    }
    

    надеюсь это поможет

    • 0

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

You must login to add an answer.