私が達成しようとしているのはアルファベット順に表示されるリストを設定することです。どのように私はうまくこれを達成することができますかについての任意の考え?
参考のために以下のスニペットを貼り付けました。
<ul class="hotel-list">
<?php while (have_posts()) : the_post(); ?>
<?php
$short_description = get_post_meta(get_the_ID(), 'short_search_description', true);
$destination = get_post_meta(get_the_ID(), 'destination', true);
?>
<li>
<a href="<?php the_permalink(); ?>"><?php the_post_thumbnail(array(250, 9999)); ?></a>
<a href="<?php the_permalink(); ?>"><?php the_title(); echo $destination; ?></a>
<p><?php echo $short_description; ?></p>
<div class="clear"></div>
</li>
<?php endwhile
; ?>
</ul>
受け入れられた答えによって提案されるものとは反対に、あなたは決して使用すべきではありません query_posts
注:この機能は、プラグインやテーマで使用するためのものではありません。後で説明するように、メインクエリを変更するためのより優れた、より高性能なオプションがあります。 query_posts()は、ページのメインクエリを新しいクエリインスタンスに置き換えることによって変更する、非常に単純で問題の多い方法です。これは非効率的で(SQLクエリを再実行する)、状況によっては完全に失敗する可能性があります(特に投稿ページ付けを扱うときによくあります)。
また、あなたのコードを見て、これはあるテンプレートの主な質問です、そしてあなたがOPへの@Roberthueコメントにさえ答えるのに時間をかけなかったので、私はまだどのテンプレートを知りません。これにより、次のようになります。決してアーカイブページまたはホームページ上のカスタムクエリの種類のメインクエリに置き換わることはありません。カスタムクエリは、ページテンプレートのメインクエリのみを置き換えます。この記事を見て 私はそのステートメントを作った理由をすべて説明する必要があります
単に pre_get_posts
を使用して、 条件付きタグ と共に特定のテンプレートの投稿順を変更することもできます。
カテゴリページの掲載順位を変更する例
add_action( 'pre_get_posts', function ( $query ) {
if ( !is_admin() && $query->is_home() && $query->is_main_query() ) {
$query->set( 'orderby', 'title' );
$query->set( 'order', 'ASC' );
}
});
すべてのテンプレートでこれが必要な場合は、次のようにすることができます。
add_action( 'pre_get_posts', function ( $query ) {
if ( !is_admin() && !$query->is_page() && $query->is_main_query() ) { //Exclude page templates
$query->set( 'orderby', 'title' );
$query->set( 'order', 'ASC' );
}
});
あなたはこのプラグインを使うことができます:GR Order Category Post( https://wordpress.org/plugins/gr-order-category-post/ )