Hallo.
Als erstes empfehle ich dir die Hausmittel von WP zu benutzen.
als Einstiegshilfe hier eine Grafik:
https://developer.wordpress.org/reference/functions/query_posts/#more-information
In den wp_query brauchts du dann ganz einfach die gewünschte Cat angeben, siehe:
https://codex.wordpress.org/Class_Reference/WP_Query#Category_Parameters
Den SQL-Befehl müsste ich jetzt selber erstmal zusammenbasteln. Aber wieso nimmst du nicht die Funktionen, dir WordPress dir zur Verfügung stellt? Das ist einfacher und sicherer.
Mit dem Query Generator kannst du dafür ganz flott eine Abfrage erstellen:
// WP_Query arguments
$args = array(
'post_type' => array( 'post' ),
'post_status' => array( 'published' ),
'posts_per_page' => '3',
'cat' => '2,6,17,38'
);
// The Query
$query = new WP_Query( $args );
// The Loop
if ( $query->have_posts() ) {
while ( $query->have_posts() ) {
$query->the_post();
// do something
}
} else {
// no posts found
}
// Restore original Post Data
wp_reset_postdata();
Mehr Infos zum Objekt WP_Query()
und den Kategorie-Parametern findest du hier:
https://codex.wordpress.org/Class_Reference/WP_Query#Category_Parameters
PS: Diesmal ist mir Espiat zuvor gekommen, während ich noch die Links zusammengesucht habe. Seine Antwort geht in die gleiche Richtung und ist genauso richtig.
-
Diese Antwort wurde geändert vor 6 Jahren, 4 Monaten von Bego Mario Garde. Grund: Nachtrag: Espiat war schneller
vielleicht versteh ich oder Ihr es falsch – deswegen noch mal genauer ^^
Die BLog-Einträge möchte ich gerne auf einer Webseite anzeigen lassen, welche mit WordPress überhaupt nix zu tun hat.
Die Webseite ist mit PHP aufgebaut, baut eine Verbindung zur Datenbank von WordPress auf und liest via SQL den Post aus.
WP_Query kann ich ja nur innerhalb von WordPress nutzen, oder nicht?
WP_Query kann ich ja nur innerhalb von WordPress nutzen, oder nicht?
Nicht. 🙂
require($_SERVER['DOCUMENT_ROOT'].'/wp-load.php');
Damit solltest du dann auch die WP-Query nutzen können.
Direkte Abfragen per SQL-Statement sind unsicherer.
ahh okay, habe die wp-load.php nun eingebunden und deinen Code verwendet.
// do something noch etwas machen muss, damit die Abfrage auch ausgeben wird, denn aktuell gibt mir das Resultat nicht zurück. Wie müsste ich deinen Code noch weiter anpassen?
Anstelle // do something
zum Beispiel:
<?php the_title(); ?>
Kommt jetzt ganz drauf an, welche Daten du da ausgeben möchtest.
Titel und den eigentlich text.
gibt es eine Liste mit den Klassen?
Weil ich stelle mir die Frage, woher soll ich wissen das es the_title() gibt 🙂
Vielen Dank 🙂
habe es mit dem Code realisiert:
// WP_Query arguments
$args = array(
'page_id' => '2',
'post_type' => array( 'page' ),
'order' => 'DESC',
'orderby' => 'date',
);
// The Query
$query = new WP_Query( $args );
// The Loop
if ( $query->have_posts() ) {
while ( $query->have_posts() ) {
$query->the_post();
echo get_the_content();
}
}
// Restore original Post Data
wp_reset_postdata();
-
Diese Antwort wurde geändert vor 6 Jahren, 4 Monaten von undusted1364.
-
Diese Antwort wurde geändert vor 6 Jahren, 4 Monaten von undusted1364.
Mit Shortinit
könnte man das noch bechleunigen, wenn ich mich nicht irre. Wenn du nur die Daten willst, musst du ja nicht WordPress komplett laden lassen:
http://kynatro.com/blog/2012/12/11/finally-a-practical-use-for-wordpress-secret-shortinit-constant/
Gruß, Torsten