it-swarm.com.de

entfernen von <li> -Tags von wp_list_pages () mit PHP

wie der Titel besagt, versuche ich, die <li></li>-Tags aus der Liste zu entfernen, die mit wp_list_pages() generiert wird.

Mein Gedanke ist, irgendwie eine for/foreach-Schleife durch die Menüelemente zu führen und die <li></li> -Tags mit str_replace() zu entfernen, aber zuerst müsste ich die zurückgegebene Liste in ein Array oder etwas anderes zerlegen, um die Listenelemente zu durchlaufen ...

Irgendwelche Ideen, wie ich das erreichen kann? oder vielleicht eine bessere Methode?

Vielen Dank im Voraus!

1
Odyss3us

Sie könnten versuchen, sie zu entfernen, aber vielleicht ist es einfacher, sie gar nicht erst zu generieren. Die Seitenliste wird von einem Walker angezeigt. Dies ist eine Klasse, die über alle Elemente im Baum "geht" und sie anzeigt. wp_list_pages() standardmäßig (über walk_page_tree() ) verwendet die Walker_Page Klasse , die alles in <li> Elementen anzeigt. Sie können diese Klasse jedoch duplizieren, alles entfernen, was Sie nicht benötigen, und diese Klasse an wp_list_pages() übergeben (mit dem Argument walker).

6
Jan Fabry

Ich habe die Funktion strip_tags verwendet:

$args = array('child_of' => $parent, 'echo' => false, 'title_li' => false, 'depth' => 0);

$output .= strip_tags(wp_list_pages($args), "<a>");
1
user990717

wenn Sie keinen eigenen Walker erstellen möchten, verwenden Sie einfach str_replace(array('<li>', '</li>', '<ul>', '</ul>'), '', wp_list_pages('echo=0'));

1
onetrickpony

Vielen Dank für die Antworten, Leute, ich habe meine Antwort so bearbeitet, dass sie Jan Fabrys Kommentar zum Argument echo=0 widerspiegelt. Vielen Dank auch an One Trick Pony, der mich anfangs darauf aufmerksam gemacht hat.

$lookfor = array('<li','</li>');
$replacewith = array('<div', '</div>');

$args = array(
    'echo'          => 0,
    'sort_column'   => 'menu_order',
    'title_li'      => __('')
);

$output = wp_list_pages( $args ); 

echo str_replace($lookfor,$replacewith,$output);

Ich werde auf jeden Fall versuchen, einen benutzerdefinierten Walker zu erstellen, da dies der bessere Weg ist, um das Ergebnis zu erzielen.

Nochmals vielen Dank für Ihre Hilfe!

1
Odyss3us