2017-04-04 5 views
0

Ich verwende https://wordpress.org/plugins/if-menu/, um eine Bedingung zu erstellen, um eine Eltern- und Unterseiten auf bestimmten Seiten anzuzeigen.WordPress if-menü Bedingung

add_filter('if_menu_conditions', 'my_new_menu_condition'); 

function my_new_menu_condition($conditions) { 

global $post; 

$conditions[] = array(
    'name' => 'Condition Name', // name of the condition 
    'condition' => function($item) {   // callback - must return TRUE or FALSE 
     return is_page('Parent Page') || is_page('Parent Page') && $post->post_parent > 0; 
    } 
); 

    return $conditions; 
} 

Ich habe nicht viel Glück. Hat jemand Erfahrung mit diesem Plugin und weiß, ob das möglich ist?

Danke

+0

http://wordpress.stackexchange.com/ – mkaatman

+0

Aus der Bedingung schwer es ist zu sagen, was Sie überprüfen wollen? Es wird immer eine Seite mit dem Namen "Parent Page" ausgewertet. Was ist der Zustand, den Sie beabsichtigen? Weil es so aussieht, dass das Problem besteht. –

+0

Danke für Ihre Antwort. Ich habe mehrere Seiten, die Stadtnamen darstellen. Jeder dieser Stadtnamen hat Community-Unterseiten. Ich möchte die Stadt im Nav nur auf den entsprechenden Seiten anzeigen lassen. Ich habe es auf dem Eltern derzeit ohne Problem angezeigt, aber wenn Sie auf eine Unterseite gehen, wird der Eltern Link in der Navigation nicht angezeigt. Macht Sinn? –

Antwort

0

Für jeden anderen, der darauf stößt. Hier ist, was bei mir funktioniert hat.

Fügen Sie diese auf Ihre functions.php

add_filter('if_menu_conditions', 'my_new_menu_condition'); 


function my_new_menu_condition($conditions) { 
    $conditions[] = array(
    'name' => 'insertpagename', // name of the condition 
    'condition' => function(){ 
     global $post; 
     $pages = get_pages(); 
     $post_parent = get_post($post->post_parent); 
     foreach ($pages as $page) { 
      if (is_page('insertpagename') || $post_parent->post_name == 'insertpagename') { 
       return is_page(); 
      } 
     } 
     } 
); 

    $conditions[] = array(
     'name' => 'insertpagename2', // name of the condition 
     'condition' => function(){ 
      global $post; 
      $pages = get_pages(); 
      $post_parent = get_post($post->post_parent); 
      foreach ($pages as $page) { 
       if (is_page('insertpagename2') || $post_parent->post_name == 'insertpagename2') { 
        return is_page(); 
       } 
      } 
      } 
); 
    return $conditions; 
} 
Verwandte Themen