web-dev-qa-db-ja.com

Wp_list_pagesにタイトルの代わりにナメクジを印刷させる

デフォルトでは、wp_list_pagesは投稿タイトルの番号なしリストを吐き出します。サイドバーメニューのスペースを節約するために、ページタイトルの代わりにスラッグのリストを作成しようとしています。

私はカスタムウォーカーを書く必要があると思います。誰かがもっと簡単な解決策やコードスニペットで私を助けてくれることを願っていました。

1
Mattvic

この目的のためにget_pages()ではなく wp_list_pages() を使うことをお勧めします。

get_pages()関数はPagesのオブジェクトの配列を返します、そしてあなたはあなた自身のHTMLリストを構築するために配列データを使うことができます。例えば。:

<?php
// Wrap in a function, for later output;
function wpse47989_list_pages() {
    // Get an array of pages using default arguments
    // See Codex for list of arguments
    $wpse47989_pages = get_pages();

    // Open the unordered list
    $page_list = '<ul>';

    // Loop through the results, and output an HTML list
    foreach ( $wpse47989_pages as $wpse47989_page ) {
        // Open the list item
        $page_list .= '<li>';
        // Open the link
        $page_list .= '<a href="' . $wpse47989->permalink . '">';
        // Link anchor text (post slug)
        $page_list .= $wpse47989_page->post_name;
        // Close the link
        $page_list .= '</a>';
        // Close the list item
        $page_list .= '</li>';
    }

    // Close the unordered list
    $page_list .= '</ul>';
}
?>

そして、もちろん、リストを表示したい場所に関数を出力するだけです。 (注:これはカスタムWidgetの候補として適しています。関数のget_pages()引数をWidgetオプションとして渡すこともできます。)

スタイル設定などのためにforeach出力を操作する必要があるかもしれません。

2
Chip Bennett