web-dev-qa-db-ja.com

投稿に添付された画像のページ区切りを設定する

画像の投稿をページ分割する方法を見つけようとしています。私はカスタム投稿タイプをギャラリーのように機能するように設定しています - 画像のみ。そして、画像をページ付けしたいと思います。私はこれでどこから始めればいいのかを突き止めようとして苦労しています。

投稿に添付された画像を取得するために、ループ内でget_posts()を使用しています。 1ページに30枚の画像が表示されるように設定します。

どこから始めればいいのでしょうか。それとも、このギャラリー機能をWPで設定する方法を変更する必要がありますか?

前もって感謝します!

2
dkmojo

あなたは paginate_links() を使って総ギャラリーをページ分割することができます。これはパーマリンクの設定に大きく依存します。最善の方法は、このトピックに関する他の回答をWPSEで確認すること です

添付ファイルのリンクを投稿します。

単一の添付ファイル表示をナビゲートするタスクもあります。

デフォルトのAPI関数/テンプレートタグ

次の投稿または前の投稿にリンクできる adjacent_post_link() 関数があります - 添付ファイルは "attachment"タイプの投稿です。フィルタされた出力をエコーし​​ます

apply_filters( "{$adjacent}_post_link", $format, $link );

$adjacentpreviousまたはnextです。

adjacent_post_link( 
     '%link'        // format
    ,'%date/%title' // link
    ,false          // in_same_cat
    ,''             // excluded_categories
    ,false          // next/previous (previous = true)
);

内部の詳細

添付ファイルの投稿タイトルが空の場合は、 "Previous/Next Post"というテキストに置き換えられます。このタイトルにはすべてのthe_titleフィルタコールバック関数が添付されています。これを望まないのであれば、それらを削除する必要があります。

function wpse66660_attachment_remove_title_cbs( $title, $id )
{
    is_attachment() AND remove_all_filters( current_filter() );

    return $title;
}
add_filter( 'the_title', 'wpse66660_attachment_remove_title_cbs', 100, 2 );

タグ

↑上で見たように、%link%date%titleの3つのタグがあります。

関数の出力は次のようになります。

'<a href="'.get_permalink($post).'" rel="prev/next">' . $link . '</a>'

%titleは投稿のタイトルに置き換えられ、%dateは投稿の日付に置き換えられます。これにより、HTMLアンカータグに任意のカスタム値を追加できます。

%linkを使用すると、最後の文字列(HTMLアンカー+リンク+ rel +値)に含まれるすべてのものを、パーマリンク設定に合わせたカスタムのものに置き換えることができます。

1
kaiser