Hallo, suche eine Möglichkeit bei den entstandenen Listen von wp_liste_pages(); die Klassen page_item und page-item-NUMMER zu entfernen.
Am besten wäre noch das ich deem ersten Element noch eine ID zuweisen könnte, dies ist aber zweitrangig.
Habe etwas herum gesucht und folgendes gefunden:
PHP
<?
function strip_non_current_classes($content)
{
/* possible class values include *
* pagenav
* page_item
* page-item-#
* current_page_ancestor
* current_page_parent
* current_page_item
*/
$pattern = '# class=(\'|")([-\w ]+)(\'|")#';
$needle = 'current_page_';
$cls_rplcmt_val = 'current-page';
preg_match_all($pattern, $content, $class_attrs);
echo "\n<!-- BEGIN SHOW ARRAY CONTENTS FOR DEBUGGING -->\n<pre>\n";
var_dump($class_attrs);
echo "\n</pre>\n<!-- END SHOW ARRAY CONTENTS FOR DEBUGGING -->\n\n";
$num_class_attrs = (isset($class_attrs)) ? count($class_attrs[0]) : 0;
for ($i = 0; $i < $num_class_attrs; $i++)
{
if ( strpos($class_attrs[2][$i], $needle) === false )
{
$content = preg_replace("#{$class_attrs[0][$i]}#",
'',
$content);
}
else
{
$content = preg_replace("#{$class_attrs[0][$i]}#",
" class={$class_attrs[1][$i]}$cls_rplcmt_val{$class_attrs[3][$i]}",
$content);
}
}
return $content;
}
add_action('wp_list_pages', 'strip_non_current_classes'); ?>
Alles anzeigen
Jedoch scheint es nicht zu funktionieren, wenn ich es in die functions.php einsetze.
Jemand so was schon mal gemacht?