数週間前に、特定の「フォーマット」のすべての投稿を表示するURLパスが表示されましたが、リンクがなくなりました。誰もがその道を知っていますか?
それはのようなものになります
mywebsitex.com/format/image
標準のWP installで動作します
mywebsitex.com/type/image/
何か案は?
投稿フォーマットはデフォルトの分類法で、次のように登録されています。
register_taxonomy( 'post_format', 'post', array(
'public' => true,
'hierarchical' => false,
'labels' => array(
'name' => _x( 'Format', 'post format' ),
'singular_name' => _x( 'Format', 'post format' ),
),
'query_var' => true,
'rewrite' => $rewrite['post_format'],
'show_ui' => false,
'_builtin' => true,
'show_in_nav_menus' => current_theme_supports( 'post-formats' ),
) );
どこで
$rewrite['post_format'] = $post_format_base ? array( 'slug' => $post_format_base ):false;
そして
$post_format_base = apply_filters( 'post_format_rewrite_base', 'type' );
分類スラッグはpost_format
、書き換えスラグはtype
です。
get_post_format_strings()
関数から利用可能な投稿フォーマットを見ることができます:
/**
* Returns an array of post format slugs to their translated and pretty display versions
*
* @since 3.1.0
*
* @return array The array of translated post format names.
*/
function get_post_format_strings() {
$strings = array(
'standard' => _x( 'Standard', 'Post format' ), // Special case. any value that evals to false will be considered standard
'aside' => _x( 'Aside', 'Post format' ),
'chat' => _x( 'Chat', 'Post format' ),
'gallery' => _x( 'Gallery', 'Post format' ),
'link' => _x( 'Link', 'Post format' ),
'image' => _x( 'Image', 'Post format' ),
'quote' => _x( 'Quote', 'Post format' ),
'status' => _x( 'Status', 'Post format' ),
'video' => _x( 'Video', 'Post format' ),
'audio' => _x( 'Audio', 'Post format' ),
);
return $strings;
}
これらの用語にはスラッグpost-format-{$format}
があります。ここで$format
は次のいずれかです。
aside, chat, gallery, link, image, quote, status, video, audio
standard
は含まれていません。
ここでは、対応する生成された書き換え規則を見ることができます。
Monkeyman Rewrite Analyzerによると。
したがって、次のパブリッククエリを使用できます。
http://example.tld/type/post-format-aside/
http://example.tld/type/post-format-chat/
http://example.tld/type/post-format-gallery/
http://example.tld/type/post-format-link/
http://example.tld/type/post-format-image/
http://example.tld/type/post-format-quote/
http://example.tld/type/post-format-status/
http://example.tld/type/post-format-video/
http://example.tld/type/post-format-audio/
特定の投稿フォーマットですべての投稿を表示します。
@ToddBenrudは、彼がどうにかして手に入れたと言った:
http://example.tld/type/image/
働く。
その理由は、次のrequest
フィルタです。
/**
* Filters the request to allow for the format prefix.
*
* @access private
* @since 3.1.0
*/
function _post_format_request( $qvs ) {
if ( ! isset( $qvs['post_format'] ) )
return $qvs;
$slugs = get_post_format_slugs();
if ( isset( $slugs[ $qvs['post_format'] ] ) )
$qvs['post_format'] = 'post-format-' . $slugs[ $qvs['post_format'] ];
$tax = get_taxonomy( 'post_format' );
if ( ! is_admin() )
$qvs['post_type'] = $tax->object_type;
return $qvs;
}
add_filter( 'request', '_post_format_request' );
これは、クエリ変数を持つリクエストが以下のことを意味します。
Array
(
[post_format] => image
)
正しい用語名に変更されます。
Array
(
[post_format] => post-format-image
[post_type] => Array
(
[0] => post
)
)
だから我々も使用することができます:
http://example.tld/type/aside/
http://example.tld/type/chat/
http://example.tld/type/gallery/
http://example.tld/type/link/
http://example.tld/type/image/
http://example.tld/type/quote/
http://example.tld/type/status/
http://example.tld/type/video/
http://example.tld/type/audio/