2014-09-11 2 views
2

Я разрабатываю плагин WordPress и не могу условно добавлять фильтры на основе условных тегов.Как добавить фильтр условно на основе связанных страниц Связанные теги

Это мой код:

add_Action('init', 'determine_location'); 

function determine_location() { 
$d = get_option('display_locations'); //this is a checkbox field in the plugins settings with 7 options 
    if (isset($d)) { 
     if ($d[0] == 'home') { 
      if (is_home()) { 
       add_filter('the_excerpt', 'insert_buttons_to_post_top'); 
       add_filter('the_content', 'insert_buttons_to_post_top'); 
      } 
     } else if ($d == 'post' || $d == 'post') { 
      if (is_single()) { 
       add_filter('the_content', 'insert_buttons_to_post_top'); 
      } 
     } else if ($d[0] == 'page' || $d == 'page' || $d == 'page') { 
      if (is_page()) { 
       add_filter('the_content', 'insert_buttons_to_post_top'); 
      } 
     } else if ($d[0] == 'category' || $d[1] == 'category' || $d[2] == 'category' || $d[3] == 'category') { 
      if (is_category()) { 
       add_filter('the_excerpt', 'insert_buttons_to_post_top'); 
       add_filter('the_content', 'insert_buttons_to_post_top'); 
      } 
     } else if ($d[0] == 'tag' || $d[1] == 'tag' || $d[2] == 'tag' || $d[3] == 'tag' || $d[4] == 'tag') { 
      if (is_tag()) { 
       add_filter('the_excerpt', 'insert_buttons_to_post_top'); 
       add_filter('the_content', 'insert_buttons_to_post_top'); 
      } 
     } else if ($d[0] == 'archive' || $d[1] == 'archive' || $d[2] == 'archive' || $d[3] == 'archive' || $d[4] == 'archive' || $d[5] == 'archive') { 
      if (is_archive()) { 
       add_filter('the_excerpt', 'insert_buttons_to_post_top'); 
       add_filter('the_content', 'insert_buttons_to_post_top'); 
      } 
     } 
    } 
} 

function insert_buttons_to_post_top(){ 
    return "<div>Output</div>" 
} 

В настоящее время этот код ничего не выводит. Что здесь не так?

ответ

2

ли это так, просто добавляя отдельные действия для каждого из ваших пользовательских функций:

add_action('wp', 'custom1'); 

    function custom1() { 

      if ($d == 'post'){ 
      if (is_single()) { 
       add_filter('the_content', 'insert_buttons_to_post_bottom'); 
      } 
      } 

    } 

    add_action('wp', 'custom2'); 

    function custom2(){ 
     if ($d == 'page'){ 
      if (is_page()) { 
       add_filter('the_content', 'insert_buttons_to_post_bottom'); 
      } 
      } 
    } 

    add_action('wp', 'custom3'); 

    function custom3(){ 
    if ($d == 'archive'){ 
      if (is_archive()) { 
       add_filter('the_content', 'insert_buttons_to_post_bottom'); 
      } 
      } 
    } 

function insert_buttons_to_post_bottom(){ 
return "something"; 
} 
Смежные вопросы