Hallo,
Ich habe bedingt durch mein gewähltes Style, in dem ich einen Teil der wichtigstens Unterseiten im Header anzeige so gelöst (header.php)
<!-- navigation ................................. -->
<div id="navigation">
<ul>
<li<?php if (is_home()) echo " class=\"selected\""; ?>><a href="<?php bloginfo('url'); ?>">Home</a></li>
<?php
$pages = my_get_navi();
if ($pages) {
foreach ($pages as $page) {
$page_id = $page->ID;
$page_menuorder = $page->menu_order;
$page_title = $page->post_title;
$page_name = $page->post_name;
if ($page_name == "artikel-schreiben" || $page_name == "impressum" || $page_name == "konzept" || $page_name == "nutzungsbedingungen" || $page_name == "schreibservice") {
(is_page($page_id))?$selected = ' class="selected"':$selected='';
echo "<li".$selected."><a href=\"".get_page_link($page_id)."\">$page_title</a></li>\n";
}
}
}
?>
</ul>
</div><!-- /navigation -->
Alles anzeigen
Einen Teil der angelegten Unterseiten (pages) filtere ich hier aus und zeig sie entsprechend an. Ok, "etwas" umständlich vielleicht wenn ich jede gewünschte Unterseite aufführen muss, fiel mir aber nichts besseres ein.
Das bringt nun aber das Problem mit sich, dass der Aufruf:
in der sidebar.php diese ausgefilterten Unterseiten nochmals aufruft. Jetzt wollte ich hergehen, und die Funktion "wp_link_pages" aus der Datei post-template.php so ändern (bzw. ich hab die Funktion in my_functions.php kopiert und hab sie in "sidebar_list_pages" umbenannt, und den Aufruf aus der Sidebar.php entsprechend umbenannt.
Scriptteil der Funktion:
function sidebar_list_pages($args = '') {
if ( is_array($args) )
$r = &$args;
else
parse_str($args, $r);
$defaults = array('depth' => 0, 'show_date' => '', 'date_format' => get_option('date_format'),
'child_of' => 0, 'exclude' => '', 'title_li' => __('Pages'), 'echo' => 1, 'authors' => '');
$r = array_merge($defaults, $r);
$output = '';
// sanitize, mostly to keep spaces out
$r['exclude'] = preg_replace('[^0-9,]', '', $r['exclude']);
// Allow plugins to filter an array of excluded pages
$r['exclude'] = implode(',', apply_filters('wp_list_pages_excludes', explode(',', $r['exclude'])));
// Query pages.
$pages = get_pages($r);
if ( !empty($pages) ) {
if ( $r['title_li'] )
$output .= $r['title_li'] . '<ul class="categories">';
global $wp_query;
$current_page = $wp_query->get_queried_object_id();
$output .= walk_page_tree($pages, $r['depth'], $current_page, $r);
if ( $r['title_li'] )
$output .= '</ul>';
}
$output = apply_filters('wp_list_pages', $output);
if ( $r['echo'] )
echo $output;
else
return $output;
}
Alles anzeigen
Leider scheitern jetzt alle meine Versuche die Funktion so umzuschreiben (aufgrund nur weniger PHP-Kenntnisse), dass es mir die im Header bereits angezeigten Unterseiten ausfiltert, damit diese in der Sidebar nicht nochmal dort stehen.
Kann mir da Jemand bei helfen?