Wie bestelle ich Seiten und Kategorien nach ID oder Name in derselben Abfrage?

Ich möchte die meisten meiner Seiten und Kategorien auf der Homepage abfragen. Bis jetzt bin ich in der Lage, die Seiten und die Kategorie (Beiträge) zu bekommen, aber ich kann die Liste nicht so ordnen, wie ich es möchte. Ich möchte eine benutzerdefinierte Bestellung wie Seite, Beiträge aus einer Kategorie, eine andere Seite und Beiträge aus einer anderen Kategorie erhalten.

Ich benutze folgendes:

 $current, 'post_type' => array( 'page', 'post'), 'orderby' => 'ID' && array(2,4,1), ); query_posts( $args ); while ( have_posts()) : the_post(); ?>   

übrigens verwende ich twentyfourteen und ich möchte nicht mehrere Abfragen zu diesem Job haben, es sei denn es belastet den Webserver nicht. Ich möchte so viel Speicher wie möglich speichern.

Solutions Collecting From Web of "Wie bestelle ich Seiten und Kategorien nach ID oder Name in derselben Abfrage?"

query_posts niemals query_posts , niemals. Meine Betonung. Es ist eigentlich gar nicht dafür gedacht und sollte in zukünftigen WordPress-Versionen entfernt werden. Gesamtleistung weise würde ich sagen, es ist noch schlimmer als eine benutzerdefinierte Abfrage. Sie sollten WP_Query wirklich für die WP_Query Aufgabe verwenden

Hinweis: Diese function ist nicht für Plugins oder Themes vorgesehen. Wie später erläutert, gibt es bessere, performantere Optionen zum Ändern der Hauptabfrage. query_posts () ist eine zu einfache und problematische Möglichkeit, die Hauptabfrage einer Seite zu ändern, indem sie durch eine neue Instanz der Abfrage ersetzt wird. Es ist ineffizient (führt SQL-Abfragen erneut aus) und wird unter bestimmten Umständen sogar fehlschlagen (besonders häufig, wenn es um die Paginierung von Posts geht).

Sie können dies leider nicht in einer Abfrage durchführen, da Sie nicht innerhalb der Schleife sortieren können, und es gibt auch keine native orderby function in WordPress, um dies zu erreichen. orderby ist deine Verwendung von orderby falsch. Sehen Sie sich die orderby Parameter in WP_Query

Sie müssen mindestens zwei, vielleicht sogar mehr benutzerdefinierte Abfragen ausführen, um zu erreichen, was Sie wollen. Sobald Sie die Abfragen haben, müssen sie zusammengeführt werden, und hier beginnen Ihre wirklichen Kopfschmerzen.

Wenn Sie Paginierung benötigen, wird dies leider ziemlich kompliziert.

Ich denke nicht, dass dies eine Frage ist, die hier beantwortet werden muss, da es viel Code usw. beinhalten würde. Ich mag es nicht, eine Frage auf diese Weise zu beantworten, aber es wäre wirklich besser, einen Profi zu engagieren, der dir hilft mit diesem. Außerdem müssen Sie selbst recherchieren und Code testen, um zu sehen, was funktioniert und was nicht.

Danke für die vorherige Antwort. Es könnte ein Missverständnis geben. Ich glaube nicht, dass dein Kommentar unhöflich war. @Pieter Goosen und meiner war auch nicht mit Absicht. Sowieso. Ich konnte die Fragen beantworten. Ich frage Kategorien in Seiten. Ich weiß nicht, ob es wirklich der richtige Weg ist, aber es funktioniert für mich. Ich muss noch mehr graben, um aufzuräumen und zu sehen, ob es irgendwelche negativen Auswirkungen gibt. Aber bis jetzt bekomme ich genau das, was ich brauche, und mit zusätzlichen Verbesserungen werde ich in der Lage sein, meine Seiten und Kategorien so anzupassen, wie ich es brauche.

  < ?php $pages = get_pages(array ( 'post_type' => 'page', 'sort_column' => 'menu_order', )); foreach ($pages as $page) { $apage = $page->post_name; ?> < ?php if ( $apage =='about') { ?> 
< ?php if ( (function_exists('has_post_thumbnail')) && (has_post_thumbnail()) ) { the_post_thumbnail(); } ?>

< ?php echo $page->post_title; ?>

< ?php echo apply_filters('the_content', $page->post_content); ?>
< ?php // get all the categories from the database $cats = get_categories(); // loop through the categries foreach ($cats as $cat) { // setup the cateogory ID $cat_id= $cat->term_id; // Make a header for the cateogry /* if ( in_category('reviews') ) : */ echo '
'.$cat->name.'
'; // create a custom wordpress query $args = array('cat=$cat_id&posts_per_page=5'); $the_query = new WP_Query( $args ); // start the wordpress loop! if ($the_query->have_posts()) : while ($the_query->have_posts()) : $the_query->the_post(); // create our link now that the post is setup ?> < ?php if ( (in_category('reviews')) /*& ( category_slug == 'reviews' )*/ ) : ?>
< ?php if ( (function_exists('has_post_thumbnail')) && (has_post_thumbnail()) ) { the_post_thumbnail(); } ?>

< ?php the_title(); ?>

< ?php the_excerpt(); ?>
< ?php endif; ?> < ?php endwhile; endif; // done our categories loop. /* endif; // done specific category */ } // done the foreach statement /* * getting back to our page query */ } elseif ( $apage =='contact') { ?>

< ?php echo $page->post_title; ?>

< ?php echo apply_filters('the_content', $page->post_content); ?>
< ?php } // end if } // end foreach ?>

Ja, ich muss die Abfrage zurücksetzen!