web-dev-qa-db-ja.com

カスタム投稿タイプのアルファベット順の並べ替え - ページごとに1文字

基本的に私が探しているのはアルファベット順にカスタム投稿タイプをソートして各文字を分離する方法ですので、あなたはページごとに1文字を持っています。イラストを見てください。うまくいけば、これを行うためのプラグインまたは別の本格的な方法があります。

イラストへのリンク - > http://postimg.org/image/5yyhidf7n/

1
Magnus Østrem

ナビゲーションの構築はかなり簡単です。後でいくつかの可能性があります、私はあなたがそれを整理するために1つのページテンプレートを作り、GET-パラメータを使うことを勧めます。

gET変数を使用する

ナビゲーション内のリンクは次のようになります。http://www.example.com/yourpage?letter=a

ページテンプレートのwpdbで簡単なクエリを作成します。

global $wpdb;
$yourposts = $wpdb->get_results( 
    $wpdb->prepare( 
        "
            SELECT * FROM $wpdb->posts
            WHERE post_title LIKE %s
            AND post_type = 'yourposttype'
        ",
            $_GET['letter'] . '%' 
        )
);

ここに返された配列をループするだけです。

カスタム投稿タイプを使用する

また、カスタム投稿タイプalphabetなどを作成することもできます。アルファベットの文字( 'a'、 'b'、...)を使用してこのCPTに各投稿を作成します。

これはhttp://www.example.com/alphabet/aのようなURLになります、そしてそれを使ってアルファベット順ナビゲーションを構築することも本当に簡単です。

single-alphabet.phpでは上記のコードを使用しますが、$_GET['letter']get_the_title()に置き換えます。もちろん、メタデータを使用してこれを達成することもできますが、カスタム投稿タイプを使用するソリューションは、URL構造を手間をかけずにうまく配信できるため、非常にエレガントです。

分類法を使用する

最後に、これは別の方法ですが、タイトルに従って分類を割り当てる必要があるため、実際的ではありません(投稿 'banana'は分類 'b'を取得する必要があります)。

あなたが達成しようとしていることに応じて、私はカスタム投稿タイプのバージョンを使います。

1
fischi