カテゴリ、タグ、カスタム投稿タイプおよび分類法がほとんどないとします。ページ内のすべてのカテゴリ、タグを一覧表示する方法を教えてください。何かのようなもの;
ページ
カテゴリサムネイルとカテゴリ名1(カテゴリページへのリンク)説明
カテゴリサムネイルとカテゴリ名2(カテゴリページへのリンク)説明
カテゴリサムネイルとカテゴリ名3(カテゴリページへのリンク)説明
仕切り
タグサムネイルとタグ名1(タグページへのリンク)説明
タグサムネイルとタグ名2(タグページへのリンク)説明
タグサムネイルとタグ名3(タグページへのリンク)説明
カスタム投稿タイプと分類法と同じです。
説明とサムネイルが不可能な場合は、リンク付きの名前だけで十分です。
これのほとんどはこれらのプラグインによって達成可能です。
今私は私が欲しいものを達成するためにプラグインコードを探しています。
期間メタデータ
4.4の新しい用語メタデータを使用して用語のサムネイルを取得することは可能です。あなたも自分でそれらを前もって定義する必要があります。
add_term_meta( int $term_id, string $meta_key, mixed $meta_value, bool $unique = false )
get_term_meta( int $term_id, string $key = '', bool $single = false )
update_term_meta( int $term_id, string $meta_key, mixed $meta_value, mixed $prev_value = '' )
_カテゴリ_
get_categories() クエリパラメータに一致するカテゴリオブジェクトの配列を返します。
echo "Categories:<br/>";
$args = array(
'orderby' => 'name',
'order' => 'ASC',
'public' => true,
);
$categories = get_categories( $args );
foreach ( $categories as $category ) {
echo '<a href="' . get_category_link( $category ) . '">' . $category->name . '</a><br/>';
}
echo "<hr>"; // divider
_タグ_
get_tags() post_tagタクソノミの各用語のオブジェクトの配列を取得します。
echo "Tags:<br/>";
$args = array(
'orderby' => 'name',
'order' => 'ASC',
'public' => true,
);
$tags = get_tags( $args );
foreach ( $tags as $tag ) {
echo '<a href="' . get_tag_link( $tag ) . '">' . $tag->name . '</a><br/>';
}
_分類法_
get_taxonomies() 登録済みの分類法オブジェクトのリストを取得します。
echo "Taxonomies:<br/>";
$args = array(
'_builtin' => false,
'public' => true,
);
$taxonomies = get_taxonomies( $args, 'objects' );
foreach ( $taxonomies as $taxonomy ) {
echo '<p>' . $taxonomy->labels->name . '</p>';
}
POSTタイプ
get_post_types() $ wp_post_typesにあるような 登録された投稿タイプ を返します。 get_posts() は一連のパラメータに基づいて投稿の配列を作成するので、post_type_listと共に使用します。
echo "Post Types:<br/>";
$args = array(
'public' => true,
'_builtin' => false,
);
$output = 'names'; // names or objects, note names is the default
$operator = 'and'; // 'and' or 'or'
$post_types = get_post_types($args, $output, $operator);
// get all the posts for all post_types
$posts = get_posts(array(
'post_type' => $post_types,
'numberposts' => - 1,
'orderby' => 'post_type',
'order' => 'ASC',
'post_status' => array( 'publish' ),
'public' => true,
));
foreach($posts as $post) {
$link = get_permalink($post);
$title = $post->post_title;
if($post_type !== $post->post_type) {
$post_type = $post->post_type;
echo '</br/><p>' . $post_type . '</p></br/>';
}
// show link to post
echo "<p><a href=\"$link\">$title</a></p>";
}
一時的なキャッシング
これらすべてのクエリの結果をキャッシュしたい場合は、 Transients API を検討してください。これは限られた時間(あなたが〜request〜)データベースに結果を保存するでしょう。 WP Optimize のようなプラグインはいつでもキャッシュをクリアできるので、それは一定の時間枠ではありません。
// check if the value exists using the key -- if it fails then we'll generate the content
if(false === ($trans_value = get_transient($trans_key = 'my_transient_key'))) {
print_r('NO CACHE FOR ' . $trans_key); // (debug output)
// start the output buffer to capture our generated content
ob_start();
// run your expensive operations -- data sent to the screen will be captured
print_r('This is an expensive operation!');
// using ob_get_clean we'll store the results and set the value variable.
// double check the amount of time you want to keep the data cached
// set to 0 for auto loading on every page hit.
set_transient($trans_key, $trans_value = ob_get_clean(), 1 * MINUTE_IN_SECONDS);
}
else {
print_r('THIS IS A CACHED RESULT FOR ' . $trans_key); // (debug output)
}
// value is ready and cached
print_r("<pre>$trans_value</pre>");
値をクリアするには、キーを使って削除するだけです。
delete_transient ( $trans_key );