PHP: Χρησιμοποιήστε το WordPress API για να δημιουργήσετε έναν σύντομο κώδικα για να καταχωρίσετε υποσελίδες
Εργαζόμαστε σε μια πολύ περίπλοκη εφαρμογή για έναν εταιρικό πελάτη αυτήν τη στιγμή. Ο ιστότοπος χτίζεται στο WordPress αλλά έχει έναν τόνο κουδουνιών και σφυριών. Συχνά, όταν κάνω αυτόν τον τύπο εργασίας, μου αρέσει να αποθηκεύω τον προσαρμοσμένο κώδικα για επανατοποθέτηση αργότερα σε άλλους ιστότοπους. Σε αυτήν την περίπτωση, σκέφτηκα ότι ήταν τόσο χρήσιμη λειτουργία, ήθελα να το μοιραστώ με τον κόσμο. Χρησιμοποιούμε το Θέμα Avada WordPress με το Fusion Page Builder ως γονικό θέμα και αναπτύσσοντας αρκετά προσαρμοσμένο κώδικα στο παιδικό μας θέμα.
Το WordPress έχει ήδη μερικές λειτουργίες στο API του, οι οποίες μπορούν να χρησιμοποιηθούν για τη λίστα υποσελίδων, όπως wp_list_pages και get_pages. Το πρόβλημα είναι ότι δεν επιστρέφουν αρκετές πληροφορίες εάν ελπίζετε να δημιουργήσετε δυναμικά μια λίστα με πολλές πληροφορίες.
Για αυτόν τον πελάτη, ήθελαν να δημοσιεύσουν περιγραφές θέσεων εργασίας και να δημιουργήσουν αυτόματα τη λίστα με τα ανοίγματα θέσεων εργασίας με φθίνουσα σειρά έως την ημερομηνία δημοσίευσής τους. Ήθελαν επίσης να εμφανίσουν ένα απόσπασμα της σελίδας.
Έτσι, πρώτα, έπρεπε να προσθέσουμε απόσπασμα υποστήριξης στο πρότυπο σελίδας. Στο functions.php για το θέμα τους, προσθέσαμε:
add_post_type_support ('σελίδα', 'απόσπασμα');
Στη συνέχεια, χρειαζόμασταν να καταχωρήσουμε έναν προσαρμοσμένο σύντομο κωδικό που θα δημιουργούσε τη λίστα των υποσελίδων, συνδέσμους προς αυτές και το απόσπασμα για αυτές. Κάνε αυτό, πρέπει να χρησιμοποιήσουμε το WordPress Loop. Στο functions.php, προσθέσαμε:
// Λίστα υποσελίδων σε μια λειτουργία λίστας dknm_list_child_pages ($ atts, $ content = "") {global $ post; $ atts = shortcode_atts (array ('ifempty' => 'Χωρίς εγγραφές', 'aclass' => ''), $ atts, 'list_subpages'); $ args = array ('post_type' => 'page', 'posts_per_page' => -1, 'post_parent' => $ post-> ID, 'orderby' => 'publish_date', 'order' => 'DESC' ,); $ γονέας = νέο WP_Query ($ args); if ($ parent-> have_posts ()) {$ string. = $ περιεχόμενο. " "; ενώ ($ parent-> has_posts ()): $ parent-> the_post (); $ string. = '".get_the_title ()." "; if (has_excerpt ($ post-> ID)) {$ string. = '-' .get_the_excerpt (); } $ string. = ' "; εν τω μεταξύ? } αλλιώς {$ string = ' $. atts ['ifempty']. ' "; } wp_reset_postdata (); επιστροφή $ string; } add_shortcode ('list_subpages', 'dknm_list_child_pages');
Τώρα, ο σύντομος κώδικας μπορεί να εφαρμοστεί σε ολόκληρο τον ιστότοπο για να εμφανιστούν οι θυγατρικές σελίδες με έναν σύνδεσμο και απόσπασμα. Χρήση:
[list_subpages aclass = "button" ifempty = "Συγγνώμη, προς το παρόν δεν έχουμε θέσεις εργασίας."] Λίστα εργασιών [/ list_subpages]
Το αποτέλεσμα είναι μια ωραία, καθαρή χωρίς ταξινόμηση λίστα των δημοσιευμένων εργασιών, οι οποίες είναι θυγατρικές σελίδες στη σελίδα της σταδιοδρομίας τους.
Εάν δεν δημοσιεύθηκαν εργασίες (δεν υπάρχουν θυγατρικές σελίδες), θα δημοσιεύσει:
Δυστυχώς, προς το παρόν δεν έχουμε θέσεις εργασίας.
Εάν δημοσιεύθηκαν εργασίες (θυγατρικές σελίδες), θα δημοσιεύσει:
Λίστα εργασιών:
- Τελευταία παιδική σελίδα - Απόσπασμα από τη θυγατρική σελίδα
- Επόμενη παιδική σελίδα - Απόσπασμα από τη θυγατρική σελίδα
- Επόμενη παιδική σελίδα - Απόσπασμα από τη θυγατρική σελίδα