質問: ページ内のすべてのカテゴリとタグを一覧表示する方法 カテゴリ、タグ、カスタム投稿タイプおよび分類法がほとんどないとします。ページ内のすべてのカテゴリ、タグを一覧表示する方法を教えてください。何かのようなもの; ページ カテゴリサムネイルとカテゴリ名1(カテゴリページへのリンク)説明 カテゴリサムネイルとカテゴリ名2(カテゴリページへのリンク)説明 カテゴリサムネイルとカテゴリ名3(カテゴリページへのリンク)説明 仕切り タグサムネイルとタグ名1(タグページへのリンク)説明 タグサムネイルとタグ名2(タグページへのリンク)説明 タグサムネイルとタグ名3(タグページへのリンク)説明 カスタム投稿タイプと分類法と同じです。 説明とサムネイルが不可能な場合は、リンク付きの名前だけで十分です。 これのほとんどはこれらのプラグインによって達成可能です。 https://wordpress.org/plugins/multi-column-taxonomy-list/ / https://wordpress.org/plugins/multi-column-tag-map/ / 今私は私が欲しいものを達成するためにプラグインコードを探しています。
回答: 期間メタデータ 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 );