Το Wp εμφανίζει δημοσιεύσεις στη σελίδα. Πώς να εμφανίσετε πρόσφατες δημοσιεύσεις στο WordPress. Προσθήκη σχετικών σελίδων στο WordPress

Χρησιμοποιώντας WordPress, ως κανονική μηχανή ιστολογίου με έτοιμο θέμα, δεν θα μας δημιουργούσε τέτοιο ερώτημα. Απλώς δεν παρεμβαίνουμε στους αλγόριθμους εργασίας CMS, οι ίδιες οι εγγραφές εμφανίζονται με κάποιο τρόπο. Στην οποία περίπτωση έξοδος αναρτήσεων WordPressαρχίζει να μας ενδιαφέρει;

Μετά όταν μαζευτούμε από το στατικό HTMLκάνουν τη διάταξη μοναδική WordPressθέμα. Πιο συγκεκριμένα, θέλουμε να προσφέρουμε τις υπηρεσίες μας για τέντωμα διατάξεων WordPress. Έτσι, χωρίς επιδεξιότητα βγάζω Αναρτήσεις WordPress οπουδήποτε στον ιστότοπο - δεν θα μπορείτε να τα βγάλετε πέρα.

Δομή θέματος WordPress

Ποιο είναι το θέμα WordPress? Αυτό είναι ένα σύνολο αρχείων (προτύπων) που αποτελείται από HTMLκωδικός αναμεμειγμένος με PHPκώδικας. Οποιοδήποτε θέμα πρέπει να έχει τουλάχιστον δύο αρχεία: index.phpΚαι CSSαρχείο στυλ. HTMLο κώδικας είναι η διάταξη του μοναδικού σχεδίου και PHPο κώδικας αποτελείται από συναρτήσεις και ετικέτες που έχουν ήδη περιγραφεί στον πυρήνα WordPress, δεν αγγίζουμε ποτέ αρχεία πυρήνα.

Να τα θυμάσαι όλα αυτά HTMLο κωδικός πρέπει να βρίσκεται έξω από τις ετικέτες ανοίγματος και κλεισίματος PHP. Αντίθετα, όλα PHPΟ κώδικας γράφεται μόνο μέσα σε ετικέτες. Για παράδειγμα, θα εμφανίσουμε το όνομα του συντάκτη της ανάρτησης Βρόχος WordPress:

Στον κώδικα WordPress με περισσότερες λεπτομέρειεςπεριγράφει τι κάνουν αυτές οι ετικέτες προτύπων και πώς να τις εμφανίσετε στον ιστότοπο. Για να δημιουργήσετε ένα θέμα WordPressαπό την αρχή, πρέπει να γνωρίζετε ένα σύνολο από αυτές τις ετικέτες προτύπων και πώς να τις εφαρμόσετε.

Ετικέτες προτύπου ανάρτησης WordPress

the_permalink
ο τίτλος
Η ωρα
το περιεχόμενο
ο συγγραφέας
το_απόσπασμα
η_κατηγορία

Αυτές οι ετικέτες προτύπων χρησιμοποιούνται για την εμφάνιση άρθρων στην αρχική σελίδα WordPressστο πρότυπο index.php.

">

Εμφανίζουμε την ημερομηνία δημιουργίας της εγγραφής:

Ας εμφανίσουμε το ίδιο το άρθρο - το περιεχόμενο, μέσα στην ετικέτα div:



Προσοχή! Δεν βγήκε τίποτα. Γιατί; Επειδή αυτές οι ετικέτες προτύπου βγαίνουν μόνο εντός βρόχου, δεν λειτουργούν εκτός βρόχου. Πρέπει να τοποθετήσουμε όλο αυτόν τον κώδικα μέσα σε ένα βρόχο. Ολα PHPΚαι HTMLΟ κώδικας μέσα στον βρόχο θα επαναληφθεί όσες φορές έχουμε εγγραφές. Δείτε τον κώδικα παρακάτω.



Εδώ βάζουμε όλο τον παραπάνω κώδικα. Είμαστε μέσα σε έναν κύκλο.



Ας καταλάβουμε τι σημαίνει ο παραπάνω κώδικας. Θέτουμε την προϋπόθεση ότι εάν υπάρχουν εγγραφές στη βάση δεδομένων, θα εμφανίζεται ο τίτλος, η ημερομηνία δημιουργίας και το περιεχόμενο της εγγραφής.

Αν υπάρχουν αναρτήσεις, τότε σε κύκλο ενώη λειτουργία εκτελείται η δημοσίευσηποιος ασχολείται εμφανίζει όλες τις εγγραφές, αρκεί να υπάρχουν.

Ολοκληρώθηκε ο βρόχος και η κατάσταση.


Ο κύκλος θα τρέχει όσο υπάρχουν εγγραφές, ο αριθμός παραγωγή εγγραφώνανά σελίδα ορίζεται στις ρυθμίσεις του ιστολογίου. Εάν υπάρχουν περισσότερες καταχωρήσεις, τότε τα στοιχεία σελιδοποίησης θα εμφανιστούν στη σελίδα. Με αυτόν τον τρόπο, όλες οι αναρτήσεις θα εμφανίζονται στο ιστολόγιο και WordPressθα δημιουργήσει αυτόματα όσες σελίδες χρειάζεται.

Γνωριστήκαμε μόνο με ορισμένες λειτουργίες για την κατασκευή ενός θέματος για WordPress- αυτές είναι λειτουργίες παραγωγή εγγραφών. Ωστόσο, το σημαντικό εδώ είναι να κατανοήσουμε την αρχή και να μην προσπαθήσουμε να την απομνημονεύσουμε ή να την απομνημονεύσουμε.

Πρακτική

Ας σκεφτούμε παραγωγή εγγραφώνχρησιμοποιώντας το θέμα ως παράδειγμα Είκοσι Δεκαεπτά. Οι αναρτήσεις εμφανίζονται μέσω της ετικέτας προτύπου get_template_partστον βρόχο προτύπου index.php, το οποίο μεταβιβάζει τα περιεχόμενα του προτύπου σε παραμέτρους περιεχόμενο.php.

if (have_posts()):
/* Έναρξη του βρόχου */
ενώ (have_posts()):
η δημοσίευση();
get_template_part("template-parts/post/content", get_post_format());
endwhile?
τέλος εαν; ?>

Στο πρότυπο περιεχόμενο.phpΟ τίτλος της ανάρτησης εμφανίζεται με έναν σύνδεσμο προς την ίδια την ανάρτηση και το περιεχόμενο.

Ανακτά εγγραφές (αναρτήσεις, σελίδες, συνημμένα) από τη βάση δεδομένων με βάση τα καθορισμένα κριτήρια. Μπορείτε να επιλέξετε οποιεσδήποτε αναρτήσεις και να τις ταξινομήσετε όπως θέλετε.

Μια σειρά αντικειμένων WP_Post (αναρτήσεις). Κάθε αντικείμενο στον πίνακα μοιάζει με αυτό:

Array(=> αντικείμενο(WP_Post)#4692 (24) ( ["ID"] => int(822) ["post_author"] => string(1) "1" ["post_date"] => string(19) "2016-07-07 10:28:57" ["post_date_gmt"] => string(19) "2016-07-07 07:28:57" ["post_content"] => string(6225) "Περιεχόμενο άρθρου" ["post_title"] => string(37) "Νεκρά Θάλασσα (14 φωτογραφίες)" ["post_excerpt"] => string(15) "Προσπάσματα σχετικά με το άρθρο" ["post_status"] => string(7) "δημοσίευση" [ "comment_status"] => string(4) "open" ["ping_status"] => string(4) "open" ["post_password"] => string(0) "" ["post_name"] => string( 95 ) "mertvoe-more-14-foto" ["to_ping"] => string(0) "" ["pinged"] => string(0) "" ["post_modified"] => string(19) "2016 - 07-07 10:28:57" ["post_modified_gmt"] => string(19) "2016-07-07 07:28:57" ["post_content_filtered"] => string(0) "" ["post_parent" ] => int(0) ["guid"] => string(0) "" ["menu_order"] => int(0) ["post_type"] => string(4) "post" ["post_mime_type"] = > string(0) "" ["comment_count"] => string(1) "0" ["filter"] => string(3) "raw" ) => object(WP_Post)( ... ) => αντικείμενο (WP_Post)( ... ))

Χρήση

get_posts($args);

Μοτίβο χρήσης

// προεπιλεγμένες παράμετροι $posts = get_posts(array("numberposts" => 5, "category" => 0, "orderby" => "date", "order" => "DESC", "include" => πίνακας ( ), "exclude" => array(), "meta_key" => "", "meta_value" =>"", "post_type" => "post", "suppress_filters" => true, // suppress αλλαγή φίλτρων SQL ερώτημα )); foreach($posts as $post)( setup_postdata($post); // μορφή εξόδου the_title() ... ) wp_reset_postdata(); // επαναφορά $args (συμβολοσειρά/πίνακας)Κατάλογος επιχειρημάτων σύμφωνα με τα οποία θα προκύψει το αποτέλεσμα.
Προεπιλογή: Προεπιλογή

$args Ορίσματα παραμέτρων

Από το WordPress 2.6, εκτός από τις παραμέτρους που περιγράφονται παρακάτω, η get_posts() μπορεί να δεχτεί όλες τις ίδιες παραμέτρους με το WP_Query.

Στο get_posts(), η παράμετρος suppress_filters είναι ενεργοποιημένη από προεπιλογή, η οποία είναι απενεργοποιημένη στα query_posts() και WP_Query - π.χ. εκεί λειτουργούν τα φίλτρα. Η ενεργοποίηση του suppress_filters καταστέλλει όλα τα φίλτρα αλλαγής ερωτημάτων SQL του ακόλουθου τύπου: posts_* ή comment_feed_* .

Το suppress_filters δεν επηρεάζει τη λειτουργία του φίλτρου pre_get_posts - θα λειτουργεί ανεξάρτητα από το τι καθορίζεται στο suppress_filters .

Αυτή η απενεργοποίηση των φίλτρων από προεπιλογή μπορεί να προκαλέσει σύγχυση εάν υπάρχουν προσθήκες που επηρεάζουν την έξοδο των εγγραφών μέσω φίλτρων ερωτημάτων SQL, για παράδειγμα WPML. Σε τέτοιες περιπτώσεις, τα suppress_filters θα πρέπει να είναι απενεργοποιημένα.

Η παράμετρος "κατηγορία" πρέπει να περάσει το αναγνωριστικό και όχι το όνομα της κατηγορίας. Μπορείτε επίσης να περάσετε τη συμβολοσειρά "κατηγορία": αναγνωριστικό διαχωρισμένο με κόμμα.

αριθμητικές αναρτήσεις (αριθμός)Αριθμός εμφανιζόμενων αναρτήσεων. Ρυθμίστε στο 0 για να περιορίσετε την έξοδο στον μέγιστο αριθμό αναρτήσεων ανά σελίδα (ορίζεται στις ρυθμίσεις VI) ή στο -1 για να καταργήσετε τους περιορισμούς εξόδου (LIMIT).
Προεπιλογή: 5αντισταθμίζεται (αριθμός)Εσοχή από την πρώτη ανάρτηση (καταχώριση). κατηγορία (αριθμός/συμβολοσειρά/πίνακας)

Από ποιες κατηγορίες να εμφανίζονται αναρτήσεις; Καθορίστε το αναγνωριστικό της κατηγορίας από την οποία θέλετε να λάβετε αναρτήσεις ή καθορίστε -3 αντί για 3 εάν θέλετε να λαμβάνετε όλες τις αναρτήσεις εκτός από τις αναρτήσεις από την κατηγορία 3 (εξαιρείται η κατηγορία). Μπορείτε να καθορίσετε πολλά αναγνωριστικά διαχωρισμένα με κόμματα ("3,5,12" ή "-3,-5,-12").

Δείτε την περιγραφή της παραμέτρου cat του WP_Query.

Στις συναρτήσεις WP_Query και query_posts(), αυτή η παράμετρος είναι απενεργοποιημένη από προεπιλογή (ίση με false).
Προεπιλογή: αληθές

Παραδείγματα

#1. Εμφάνιση αναρτήσεων με εσοχή

Εάν έχετε μία, τελευταία ανάρτηση που εμφανίζεται στην κεντρική σελίδα, αλλά πρέπει να εμφανίσετε άλλες 5 προηγούμενες από την κατηγορία 1, τότε μπορείτε να χρησιμοποιήσετε τον ακόλουθο κώδικα:

    5, "offset"=> 1, "category" => 1); $myposts = get_posts($args); foreach($myposts as $post)( setup_postdata($post); ?>
  • ">

#2. Εμφάνιση αναρτήσεων με εσοχή, χωρίς σπάσιμο του κύριου βρόχου.

Εάν χρησιμοποιήθηκε η συνάρτηση get_posts() και μετά από αυτήν πρέπει να χρησιμοποιήσετε τον τυπικό βρόχο του WordPress, τότε πρέπει να αποθηκεύσετε την καθολική μεταβλητή $post, κάντε το ως εξής:

    5, "offset"=> 1, "category" => 1); $myposts = get_posts($args); foreach($myposts as $post)( setup_postdata($post); ?>
  • ">

#3. Δυνατότητα χρήσης ειδικών λειτουργιών VI Loop

Από προεπιλογή, σε έναν βρόχο που βασίζεται στη get_posts() είναι αδύνατο να χρησιμοποιηθεί, για παράδειγμα, η συνάρτηση the_content() ή the_date(). Αυτό το πρόβλημα επιλύεται από τη συνάρτηση setup_postdata(), η οποία πρέπει να περάσει τη μεταβλητή $post:

3); $lastposts = get_posts($args); foreach($lastposts ως $post)( setup_postdata($post); // ορίστε τα δεδομένα;>

">

Τα δεδομένα μπορούν επίσης να ληφθούν με πρόσβαση στην ιδιότητα ενός αντικειμένου (object->object_property). Για παράδειγμα, για αυτό το παράδειγμα το $post->ID θα είναι ίσο με το αναγνωριστικό της ανάρτησης, το $post->post_content θα περιέχει το περιεχόμενο της ανάρτησης. Η ιδιότητα αντικειμένου είναι μια στήλη των αναρτήσεων του πίνακα της βάσης δεδομένων. Τα ονόματα των στηλών μπορούν να προβληθούν.

Μην ξεχνάτε ότι τα δεδομένα εμφανίζονται στην οθόνη χρησιμοποιώντας τον τελεστή php echo:

ΤΑΥΤΟΤΗΤΑ; ?>

#4. Τελευταίες δημοσιεύσεις ταξινομημένες κατά τίτλο

Θα λάβουμε τις τελευταίες δημοσιεύσεις ταξινομημένες κατά τίτλο με αλφαβητική σειρά. Το ακόλουθο παράδειγμα θα εμφανίσει την ημερομηνία, τον τίτλο και το απόσπασμα της ανάρτησης:

10, "order"=> "ASC", "orderby" => "τίτλος")); foreach ($postslist ως $post)( setup_postdata($post); ?>


#5. Τυχαίες αναρτήσεις

Ας πάρουμε 5 τυχαίες αναρτήσεις, που υλοποιούνται χρησιμοποιώντας την παράμετρο "orderby" => "rand":

    5, "orderby" => "rand"); $rand_posts = get_posts($args); foreach($rand_posts ως $post) : ?>
  • ">

#6. Λάβετε όλα τα συνημμένα αρχεία

Χρησιμοποιείται εκτός του βρόχου WordPress. Ο παρακάτω κώδικας θα εμφανίσει τον τίτλο, τον σύνδεσμο και την προσφορά του συνημμένου αρχείου:

"attachment", "posts_per_page" => -1, "post_status" => null, "post_parent" => null); $attachments = get_posts($args); if ($attachments) ( foreach ($attachments ως $post) ( setup_postdata($post); the_title(); the_attachment_link($post->ID, false); the_excerpt(); ) ) wp_reset_postdata(); ?>

#7. Συνημμένα αρχεία για μια συγκεκριμένη ανάρτηση

Ο κώδικας πρέπει να χρησιμοποιηθεί μέσα σε έναν βρόχο WordPress, όπου η μεταβλητή $post->ID είναι:

"attachment", "posts_per_page" => -1, "post_status" => null, "post_parent" => $post->ID); $attachments = get_posts($args); if ($attachments) ( foreach ($attachments ως $attachment) ( echo apply_filters("the_title" , $attachment->post_title); the_attachment_link($attachment->ID , false); ) ) wp_reset_postdata(); ?>

#8. Τελευταίες αναρτήσεις από την ίδια κατηγορία

Θα εμφανίσουμε μια λίστα με τις τελευταίες δημοσιεύσεις της τρέχουσας κατηγορίας στην οποία βρίσκεται η ανάρτηση. Σε αυτήν την περίπτωση, θα εξαιρέσουμε την τρέχουσα καταχώρηση:

term_id; $real_id = get_the_ID(); $args = array("cat" =>$cat_add_id); $posts = get_posts($args); foreach($posts as $post)( setup_postdata($post); if ($post->ID<>$real_id)( ?> ">

Σημειώσεις

    Από την έκδοση 2.6, ένας αριθμός μεταδιδόμενων τιμών για την παράμετρο orderby έχει αλλάξει - το πρόθεμα post_ έχει αφαιρεθεί, για παράδειγμα, υπήρχε post_title, έγινε απλώς τίτλος.

  • Από την έκδοση 3.0, οι πίνακες αναγνωριστικών μπορούν επίσης να περάσουν στις παραμέτρους συμπερίληψη και εξαίρεση.

Θέλετε να αγοράσετε φθηνές προβολές στο Instagram για ένα βίντεο ή τηλεοπτική μετάδοση, αλλά δεν ξέρετε πού; Δοκιμάστε να επισκεφτείτε τον ιστότοπο του Doctor SMM, όπου θα σας προσφερθεί μία από τις χαμηλότερες τιμές στο RuNet για προβολές. Βιαστείτε, καθώς η προσφορά ισχύει για περιορισμένο χρονικό διάστημα! Επιπλέον, εδώ μπορείτε πολύ γρήγορα να αγοράσετε έναν πόρο με τη βέλτιστη λειτουργία ταχύτητας ειδικά για τη σελίδα σας. Αναπτύξτε τον λογαριασμό σας γρήγορα και εύκολα!

Σημειώσεις

  • Δείτε: WP_Query::parse_query()

Λίστα αλλαγών

Από την έκδοση 1.2.0 Εισήχθη.

Κώδικας λήψη αναρτήσεων: wp-includes/post.php WP 5.2.3

5, "category" => 0, "orderby" => "ημερομηνία", "παραγγελία" => "DESC", "include" => array(), "exclude" => array(), "meta_key" => "", "meta_value" => "", "post_type" => "post", "suppress_filters" => true,); $r = wp_parse_args($args, $defaults); if (empty($r["post_status"])) ($r["post_status"] = ("attachment" == $r["post_type"]) ? "inherit" : "publish"; ) if (! κενό ($r["numberposts"]) && κενό($r["posts_per_page"])) ($r["posts_per_page"] = $r["numberposts"]; ) εάν (! κενό($r["κατηγορία" ])) ( $r["cat"] = $r["κατηγορία"]; ) εάν (! κενό($r["περιλαμβάνεται"])) ($incposts = wp_parse_id_list($r["περιλαμβάνεται"]); $r["posts_per_page"] = count($incposts); // μόνο ο αριθμός των αναρτήσεων που περιλαμβάνονται $r["post__in"] = $incposts; ) elseif (! κενό($r["exclude"])) ( $ r["post__not_in"] = wp_parse_id_list($r["εξαιρούνται"]); ) $r["ignore_sticky_posts"] = true; $r["no_found_rows"] = true; $get_posts = νέο WP_Query; επιστροφή $get_posts->query($r); )

Γεια σας αγαπητοί αναγνώστες του ιστολογίου WP Developer. Στο άρθρο "" σας είπα τι είναι, έδωσα ένα παράδειγμα τυπικών τύπων αναρτήσεων και περιέγραψα τη διαδικασία δημιουργίας τους. Όμως η ίδια η διαδικασία δημιουργίας δεν είναι οριστική, γιατί... Στη συνέχεια, τα αρχεία πρέπει να εμφανίζονται στον ιστότοπο με κάποιο τρόπο. Απλώς σε αυτό το άρθρο, θα ήθελα να σας δείξω δύο τρόπους για να εμφανίσετε ένα αρχείο τέτοιων άρθρων (χωρίς σελιδοποίηση και με σελιδοποίηση) και να σας δείξω πώς να εμφανίσετε μια ξεχωριστή αυθαίρετη καταχώρηση. Θα εκτελέσω όλους τους χειρισμούς στο τυπικό θέμα WordPress - twentyseventeen. Λοιπόν πάμε.

Εμφάνιση όλων των αναρτήσεων σε μία σελίδα (χωρίς σελιδοποίηση)

Μερικές φορές χρειάζεται να εμφανίσετε ένα αρχείο ενός προσαρμοσμένου τύπου ανάρτησης σε μία σελίδα. Λοιπόν, ποτέ δεν ξέρεις τι απαιτήσεις μπορεί να έχει ο πελάτης. Ξαφνικά χρειάζεται ακριβώς μια τέτοια επιλογή εξόδου. Για παράδειγμα, δημιούργησα μια νέα ανάρτηση τύπου Κριτικές με τις κριτικές αναγνωριστικών. Δεν θα περιγράψω την ίδια τη διαδικασία. Για να το κάνετε αυτό, μπορείτε να κάνετε κλικ στον σύνδεσμο, όπου όλα περιγράφονται λεπτομερώς. Απλώς θα δείξω οπτικά πώς φαίνεται στο μενού (Δείτε την εικόνα):

Στο επόμενο βήμα, στο φάκελο με το θέμα σας, πρέπει να δημιουργήσετε ένα ξεχωριστό πρότυπο για την έξοδο του αρχείου. Το ονόμασα reviews.php. Μέσα σε αυτό το πρότυπο γράφουμε το ακόλουθο σχόλιο:

Έχοντας δει αυτό το σχόλιο, κάποιος μπορεί να έχει ήδη μαντέψει τι δημιουργούμε. Ναι αυτό είναι σωστό. Πρόσθεσα επίσης τον ακόλουθο κώδικα σε αυτό για να λαμβάνω και να εμφανίζονται οι ίδιες οι κριτικές:

"κριτικές", "posts_per_page" => -1)); ?>

have_posts()) : while ($reviews->have_posts()) : $reviews->the_post(); ?>

">

Δεν θα κάνω styling, αφού είναι σημαντικό για εμάς να κατανοήσουμε την ίδια τη διαδικασία και να μην δούμε την εμφάνιση της σελίδας.

Ετοιμος. Τώρα προσθέτοντας τη σελίδα Κριτικές στο μενού, μεταβείτε σε αυτήν και θα μπορείτε να δείτε ολόκληρη τη λίστα με τις προστιθέμενες κριτικές.

Εμφάνιση αναρτήσεων ως κατηγορία (με σελιδοποίηση)

Εάν χρειάζεται να εμφανίσετε μια λίστα με έναν προσαρμοσμένο τύπο ανάρτησης με σελιδοποίηση, π.χ. Όταν εμφανίζεται κάποια από τις κατηγορίες, χρειάζεται απλώς να προσθέσετε ένα νέο αρχείο με το ακόλουθο όνομα στο φάκελο με το θέμα σας - archive-(identifier_of_arbitrary_post_type).php . Στην περίπτωσή μου, αυτό το αρχείο θα ονομάζεται archive-reviews.php. Στη συνέχεια, προσθέστε έναν βρόχο εξόδου στο αρχείο (χωρίς το Σχόλιο Όνομα προτύπου: Κριτικές) και οι αναρτήσεις θα εξάγονται ως κατηγορίες - με σελιδοποίηση. Ο κώδικας μπορεί να μοιάζει με αυτό:

have_posts()) : while ($reviews->have_posts()) : $reviews->the_post(); ?>

">

Όπως παρατηρήσατε, δεν λαμβάνουμε πλέον αναρτήσεις χρησιμοποιώντας την κλάση WP_Query, αυτό δεν είναι απαραίτητο. Το ίδιο το WordPress θα καταλάβει σε ποιον τύπο αναρτήσεων ανήκει αυτό το πρότυπο και θα τις εμφανίζει ακριβώς.

Τώρα, όταν κάνετε κλικ σε αυτόν τον σύνδεσμο, μπορεί να δείτε ένα μήνυμα σαν αυτό: Λυπούμαστε, αλλά η σελίδα που ζητήσατε δεν βρέθηκε". Αυτό το πρόβλημα μπορεί να λυθεί με έναν αρκετά απλό τρόπο. Πρέπει να μεταβείτε στην ενότητα Ρυθμίσεις-> Μόνιμοι σύνδεσμοι και να κάνετε κλικ στο κουμπί Αποθήκευση χωρίς να αλλάξετε τίποτα.

Εμφάνιση μιας μεμονωμένης εγγραφής αυθαίρετου τύπου

Έτσι, ανακαλύψαμε πώς μπορείτε να εμφανίσετε ένα αρχείο ενός προσαρμοσμένου τύπου ανάρτησης με και χωρίς σελιδοποίηση. Τώρα πρέπει απλώς να εμφανίσουμε μια ξεχωριστή ανάρτηση. Κατ 'αρχήν, εάν είστε ικανοποιημένοι με την εμφάνιση της σελίδας, η οποία αυτή τη στιγμή εμφανίζει μια ξεχωριστή ανάρτηση, τότε δεν χρειάζεται να δημιουργήσετε τίποτα, το αρχείο single.php θα το χειριστεί αυτό. Εάν θέλετε να αλλάξετε την εμφάνιση ενός νέου τύπου ανάρτησης, για παράδειγμα, να αφαιρέσετε την πλαϊνή γραμμή ή να διαμορφώσετε τη σελίδα με διαφορετικό τρόπο, τότε πρέπει να δημιουργήσετε ένα αρχείο με το ακόλουθο όνομα - single-(identifier_of_post_type).php , και σε αυτό γράψτε τον κώδικα για την εμφάνιση της ανάρτησης με τα απαιτούμενα στυλ. Στην περίπτωσή μου, θα ονομάζεται αυτό - single-reviews.php.

Αυτό είναι όλο. Ελπίζω το άρθρο να σας ήταν χρήσιμο. Καλή τύχη σε όλους!!!

Από προεπιλογή, οι πιο πρόσφατες αναρτήσεις στο WordPress εμφανίζονται στην αρχική σελίδα και οι παλαιότερες δημοσιεύσεις είναι προσβάσιμες μέσω της πλοήγησης αναρτήσεων στις σελίδες /page/2/, /page/3/ και ούτω καθεξής. Σε αυτό το άρθρο θα σας δείξουμε πώς να εμφανίζετε τις αναρτήσεις σας σε οποιαδήποτε στατική σελίδα χρησιμοποιώντας έναν προσαρμοσμένο βρόχο WP_Query, το οποίο λειτουργεί εξαιρετικά με την πλοήγηση αναρτήσεων.

Για παράδειγμα, εάν εμφανίσετε στατική σελίδαως αρχική σελίδα (όπως ορίζεται στο Ρυθμίσεις ανάγνωσης ), μπορεί να θέλετε να εμφανίσετε τη λίστα των αναρτήσεων χωριστά, για παράδειγμα σε μια ξεχωριστή σελίδα" blog«Σε αυτό κατέληξα όταν έφτιαχνα το blog μου xy.css, ενώ χρησιμοποιείτε μια στατική (χωρίς αναρτήσεις ιστολογίου) αρχική σελίδα. Μου αρέσει αυτή η προσέγγιση γιατί η πλοήγηση στις αναρτήσεις με αυτόν τον τρόπο λειτουργεί διαισθητικά, όπως αυτό:

Αυτό είναι εξαιρετικά χρήσιμο σε συγκεκριμένες ρυθμίσεις CMS, όπως όταν η αρχική σελίδα χρησιμοποιείται ως φόρουμ, ηλεκτρονικό κατάστημα ή σελίδα πλοήγησης. Ακολουθούν οδηγίες για τέτοιες περιπτώσεις, πώς να εμφανίζετε αναρτήσεις ιστολογίου στη σελίδα σας (με πλοήγηση!)

Βήμα 1. Πρότυπο σελίδας

Δημιουργήστε ένα πρότυπο κενής σελίδας, ονομάστε το page-blog.phpκαι προσθέστε τον ακόλουθο κώδικα εκεί:

query("showposts=5" . "&paged=".$paged); ενώ ($wp_query->have_posts()) : $wp_query->the_post(); ?>

" title="Διαβάστε περισσότερα">!}

1) { ?>

Στην πραγματικότητα, αυτό είναι όλο. Τώρα απλώς συνδέστε το και γεμίστε το με το δικό σας παραμέτρους για το WP_Query - και έγινε. Για παράδειγμα, αντί να εμφανίσετε 5 καταχωρήσεις, θα μπορούσατε να ορίσετε αναρτήσεις έκθεσης=10ή όσο θέλετε.

Λάβετε υπόψη ότι η πλοήγηση αναρτήσεων περιέχει συνθήκες που στην πρώτη σελίδα των αναρτήσεων (δηλαδή στη σελίδα σας /blog/) η κενή σήμανση/στυλ για το σύνδεσμο δεν εμφανίστηκαν" Επόμενες καταχωρήσειςΕδώ μπορείτε να μάθετε περισσότερα σχετικά με τη βελτιστοποίηση της πλοήγησης αναρτήσεων στο WordPress.

Σημειώστε επίσης ότι αυτό το παράδειγμα χρησιμοποιεί ελαφρώς ξεπερασμένη σήμανση, απλώς για να απλοποιήσει τα πράγματα. Πιθανότατα θα χρειαστεί να κάνετε μερικές αλλαγές για να το συγχρονίσετε με το θέμα σας.

Βήμα 2: Προσθέστε μια νέα σελίδα

Αφού ολοκληρώσετε και ανεβάσετε το αρχείο στον ιστότοπο page-blog.php, μεταβείτε στην κονσόλα διαχειριστή και μεταβείτε στη σελίδα προσθήκης νέας σελίδας. Εκεί, δημιουργήστε μια νέα σελίδα που ονομάζεται " Ιστολόγιο" (ή οτιδήποτε άλλο θέλετε), ορίστε το πρότυπό του σε " Ιστολόγιο"από πίνακα" Χαρακτηριστικά σελίδας".

Ετοιμος! Τώρα μεταβείτε στη σελίδα του ιστολογίου και θα δείτε πώς κάνετε τον κύκλο σας WP_Queryλειτουργεί: οι πιο πρόσφατες αναρτήσεις ιστολογίου θα εμφανίζονται στη σελίδα, όπως και η πλοήγηση σε προηγούμενες αναρτήσεις, εάν υπάρχουν, φυσικά.

συμπέρασμα

Το WordPress διευκολύνει την εμφάνιση των αναρτήσεων του ιστολογίου σας οπουδήποτε. Σε αυτό το άρθρο, μιλήσαμε για τον τρόπο εμφάνισης αναρτήσεων σε οποιαδήποτε σελίδα χρησιμοποιώντας τον προσαρμοσμένο βρόχο WP_Query, ο οποίος υποστηρίζει την πλοήγηση. Αυτό μπορεί να είναι πολύ χρήσιμο όταν ρυθμίζετε το WordPress ως αυτόνομο προσαρμοσμένο CMS.

Για τη διευκόλυνση των επισκεπτών και για την επιτάχυνση της ευρετηρίασης των άρθρων από τις μηχανές αναζήτησης, δημιουργούνται χάρτες (περιεχόμενα) τοποθεσίας, τόσο σε μορφή XML όσο και σε μορφή HTML. Σε μορφή XML, ένας χάρτης ιστότοπου είναι κατάλληλος μόνο για μηχανές αναζήτησης, αλλά σε HTML μπορείτε να εμφανίσετε όλες τις καταχωρήσεις και είναι προσανατολισμένος στους επισκέπτες, αλλά αυτό είναι επίσης ένα πλεονέκτημα για τις μηχανές αναζήτησης.

Μια μικρή παρέκκλιση από το θέμα.
Αποφάσισα να κάνω έναν μικρό επανασχεδιασμό του blog. Πέρασα όλο το βράδυ επεξεργάζομαι στυλ πλαϊνής γραμμής. Όπως μπορείτε να δείτε, είναι πλέον διαφορετικό χρώμα + ενημερωμένο.
Το ίδιο το πρότυπο ιστολογίου είναι πλέον "μη ελαστικό" και έχει σταθερό πλάτος και κάτω από κάθε ανάρτηση έχουμε προσθέσει κουμπιά κοινωνικής δικτύωσης από το Addthis. Αυτό είναι

Ας επιστρέψουμε στο κύριο πράγμα - μια λίστα με όλα τα άρθρα ιστολογίου σε μια σελίδα.

Ήθελα να φτιάξω έναν χάρτη ιστολογίου HTML χρησιμοποιώντας ένα πρόσθετο, αλλά δεν μου άρεσε γιατί αν μια ανάρτηση ανήκει σε δύο κατηγορίες, τα ονόματα των αναρτήσεων επαναλαμβάνονται, δηλαδή το αποτέλεσμα είναι σαν να υπάρχουν πολλές φορές περισσότερες αναρτήσεις στο ιστολόγιο από ό,τι πραγματικά υπάρχουν. Ο χάρτης ιστολογίου έχει την ακόλουθη δομή (εάν οι αναρτήσεις εμφανίζονται ανά κατηγορία):



Ημερομηνία καταχώρισης / Τίτλος συμμετοχής από την κατηγορία 1
Ημερομηνία ανάρτησης / Τίτλος ανάρτησης από την κατηγορία 1 και την κατηγορία 2 // επαναλάβετε τον τίτλο της ανάρτησης!

Ή μπορείτε να εμφανίσετε αναρτήσεις ανά ετικέτες, αλλά η κατάσταση θα είναι παρόμοια κατά την εμφάνιση αναρτήσεων ανά κατηγορία και μπορείτε προαιρετικά να εμφανίσετε μια λίστα σελίδων ιστολογίου.

Στο τέλος, αποφάσισα να φτιάξω μια απλή αριθμημένη λίστα με όλες τις αναρτήσεις ιστολογίου με φθίνουσα σειρά (κατά ημερομηνία δημοσίευσης).

Ας ξεκινήσουμε λοιπόν.

Δημιουργήστε ένα αντίγραφο του αρχείου θέματος page.php και μετονομάστε το σε κάτι άλλο, για παράδειγμα soderzhanie.php. Στη συνέχεια, ανοίξτε το στο πρόγραμμα επεξεργασίας NotePad++ και αλλάξτε τον κωδικό:

Πριν από την επεξεργασία, ο κώδικας μοιάζει κάπως έτσι:

1 2 3 4 5 6 7 8 9 10 11 12 13 14

"" ) ; comments_template() ; endwhile ; ) get_footer() ; ?>

"")); comments_template(); endwhile; ) get_footer(); ?>

Αφήνουμε μόνο τις συναρτήσεις εξόδου header-a και footer-a και δεν χρειαζόμαστε περιεχόμενο

Εκεί που λέει η Vasya Was Here "Εδώ θα είναι ο κώδικας για να εμφανιστούν όλες οι καταχωρήσεις ιστολογίου!" Επικολλήστε τον παρακάτω κώδικα:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 "post" , "post_status" => "publish" , "posts_per_page" => - 1 , "caller_get_posts" => 1 if ($moi_requests -> have_posts () ) : print "Όλες οι αναρτήσεις: παράδειγμα" . "

Όλες οι αναρτήσεις ιστολογίου:

    " ; ενώ ($moi_zapros -> have_posts () ): $moi_zapros -> the_post () ; ?>
  1. " target="_blank">
  2. ?>

"δημοσίευση", /* Επιλέξτε μόνο αναρτήσεις. */ "post_status" => "δημοσίευση", /* Και μόνο δημοσιευμένα. */ "posts_per_page" => -1, /* Κατάργηση του ορίου στον αριθμό των εμφανιζόμενων αναρτήσεων ανά σελίδα. */ "caller_get_posts" => 1 /* Αγνοήστε τις δυνατότητες των αυτοκόλλητων αναρτήσεων. */);$moi_zapros = null;$moi_zapros = new WP_Query($parametri); /* Δημιουργήστε ένα νέο "μη τυπικό" αίτημα. */if ($moi_zapros->have_posts()): print "Όλες οι αναρτήσεις: παράδειγμα". "

Όλες οι αναρτήσεις ιστολογίου:

    "; while ($moi_zapros->have_posts()) : $moi_zapros->the_post(); ?>
  1. " target="_blank">


  2. ";endif;wp_reset_query(); /* Επαναφέρουμε την επιλογή μας. */?>

    Ο τελικός κώδικας του αρχείου soderzhanie.php:

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 /** * Όνομα προτύπου: Όλες οι αναρτήσεις // όνομα προτύπου σελίδας */$parametri = πίνακας ( "post_type" => "post" , /* Επιλέξτε μόνο εγγραφές. */"post_status" => "δημοσίευση" , /* Και μόνο δημοσιευμένα. */"posts_per_page" => - 1, /* Κατάργηση του ορίου στον αριθμό των εμφανιζόμενων εγγραφών ανά σελίδα. */"caller_get_posts" => 1 /* Αγνοήστε τις ιδιαιτερότητες των αυτοκόλλητων σημειώσεων. */) ; $moi_requests = null ; $moi_zapros = new WP_Query($parametri ) ; /* Δημιουργήστε ένα νέο "μη τυπικό" αίτημα. */ if ($moi_zapros -> have_posts () ): εκτύπωση "Όλες οι αναρτήσεις: παράδειγμα" . "

    Όλες οι αναρτήσεις ιστολογίου:

      " ; ενώ ($moi_zapros -> have_posts () ): $moi_zapros -> the_post () ; ?>
    1. " title="Μόνιμος σύνδεσμος για: " target="_blank">!}


    2. " ; endif ; wp_reset_query() ; /* Επαναφέρουμε την επιλογή μας. */ ?>

    "δημοσίευση", /* Επιλέξτε μόνο αναρτήσεις. */ "post_status" => "δημοσίευση", /* Και μόνο δημοσιευμένα. */ "posts_per_page" => -1, /* Κατάργηση του ορίου στον αριθμό των εμφανιζόμενων αναρτήσεων ανά σελίδα. */ "caller_get_posts" => 1 /* Αγνοήστε τις δυνατότητες των αυτοκόλλητων αναρτήσεων. */);$moi_zapros = null;$moi_zapros = new WP_Query($parametri); /* Δημιουργήστε ένα νέο "μη τυπικό" αίτημα. */if ($moi_zapros->have_posts()): print "Όλες οι αναρτήσεις: παράδειγμα". "

    Όλες οι αναρτήσεις ιστολογίου:

      "; while ($moi_zapros->have_posts()) : $moi_zapros->the_post(); ?>
    1. " title="Μόνιμος σύνδεσμος για:" target="_blank">!}


    2. ";endif;wp_reset_query(); /* Επαναφέρουμε την επιλογή μας. */?>