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

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

Σε αυτό το άρθρο θα σας καθοδηγήσω στη δημιουργία ενός προσαρμοσμένου τύπου ανάρτησης ταινίας για μια βάση δεδομένων ταινιών.

Γιατί να χρησιμοποιήσετε προσαρμοσμένους τύπους δημοσιεύσεων;

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

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

Δημιουργώντας τον τύπο της ανάρτησης ταινίας

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

Εδώ είναι ο πλήρης κώδικας που προστίθεται στο αρχείο functions.php :

add_action( 'init', 'register_movie' );function register_movie() {$labels = array('name' => 'Movies','singular_name' => 'Movie','add_new' => 'Add New','add_new_item' => 'Add New Movie','edit_item' => 'Edit Movie','new_item' => 'New Movie','view_item' => 'View Movie','search_items' => 'Search Movies','not_found' => 'No movies found','not_found_in_trash' => 'No movies found in Trash','menu_name' => 'Movies',);$args = array('labels' => $labels,'hierarchical' => false,'description' => 'Here you will add all the movies for the database','supports' => array( 'title', 'editor', 'thumbnail' ),'taxonomies' => array( 'genre', 'movies', 'year' ),'public' => true,'show_ui' => true,'show_in_menu' => true,'menu_position' => 5,//'menu_icon' => the image link here,'show_in_nav_menus' => true,'publicly_queryable' => true,'exclude_from_search' => false,'has_archive' => true,'query_var' => true,'can_export' => true,'rewrite' => true,'capability_type' => 'post');register_post_type( 'movie', $args );}

Όπως μπορείτε να δείτε ένα κάπως μεγάλο κομμάτι κώδικα πηγαίνει στη δημιουργία ενός προσαρμοσμένου τύπου post, αλλά αν το καταλάβετε θα μπορείτε να αποκτήσετε αυτόν τον κώδικα και να το προσαρμόσετε στα έργα σας. Στην πρώτη γραμμή συνδέουμε τη λειτουργία με τον προσαρμοσμένο τύπο post με το init και αυτό σημαίνει ότι η λειτουργία μας θα πυροδοτηθεί όταν το WordPress το κάνει έτσι ώστε να το έχουμε πάντα στο ταμπλό:

add_action( 'init', 'register_movie' );

Οι ετικέτες

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

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

'name' => 'Movies','singular_name' => 'Movie',

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

'add_new' => 'Add New','add_new_item' => 'Add New Movie',

Μετά τις ετικέτες για τη δημιουργία μιας νέας ταινίας, πρέπει να ορίσουμε τις ετικέτες για επεξεργασία, το νέο στοιχείο κειμένου (από προεπιλογή είναι Νέα δημοσίευση / νέα σελίδα) και πρέπει επίσης να ορίσουμε το κείμενο ανάρτησης προβολής:

'edit_item' => 'Edit Movie','new_item' => 'New Movie','view_item' => 'View Movie',

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

'search_items' => 'Search Movies','not_found' => 'No movies found','not_found_in_trash' => 'No movies found in Trash',

Η τελευταία ετικέτα μιλάει για τον εαυτό της, εδώ πρέπει να τοποθετήσουμε το όνομα που θέλουμε να έχει ο προσαρμοσμένος τύπος ανάρτησης στο μενού UI, σε αυτή την περίπτωση είμαστε απλά κολλημένοι με τις "Ταινίες":

'menu_name' => 'Movies',);

Τα επιχειρήματα

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

Το πρώτο επιχείρημα που ζητάει είναι οι ετικέτες και το μόνο που πρέπει να κάνουμε είναι να δείξουμε τη μεταβλητή ετικετών που μόλις εξετάσαμε, όπως έτσι:

$args = array('labels' => $labels,

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

'hierarchical' => false,'description' => 'Here you will add all the movies for the database',

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

  • 'τίτλος'
  • 'συντάκτης'
  • 'συγγραφέας'
  • 'όνυξ του αντίχειρος'
  • 'απόσπασμα'
  • 'trackbacks'
  • 'custom-fields'
  • 'σχόλια'
  • "αναθεωρήσεις"
  • 'ιδιότητες σελίδας'
  • 'μετα-μορφές'

Στην περίπτωσή μου και για τον τύπο post μου θέλω μόνο να υποστηρίξει τον τίτλο, τον επεξεργαστή WYSIWYG , μια μικρογραφία και σχόλια και για να το κάνω αυτό πρέπει να προσθέσω έναν πίνακα σε αυτή τη γραμμή, όπως έτσι:

'supports' => array( 'title', 'editor', 'thumbnail','comments' ),

Στην επόμενη γραμμή πρέπει να καθορίσουμε ποιες ταξινομίες θα χρησιμοποιήσει και αφού θα δημιουργήσουμε προσαρμοσμένες ταξινομίες αυτές είναι αυτές που θα προστεθούν στη γραμμή αυτή:

'taxonomies' => array( 'genre', 'actors', 'year' ),

Οι επόμενες τρεις γραμμές έχουν να κάνουν με την ορατότητα του τύπου ταχυδρομικού τύπου στην περιοχή διαχείρισης και το μόνο που έχω είναι να ρυθμίσω όλα αυτά σε true:

'public' => true,'show_ui' => true,'show_in_menu' => true,

Στη συνέχεια μεταβαίνουμε στη θέση του μενού στο οποίο πρέπει να εμφανίζεται ο τύπος post. Εδώ έχουμε επίσης πολλές επιλογές από τις οποίες μπορείτε να επιλέξετε:

  • 5 - Κάτω από τις θέσεις
  • 10 - Κάτω από το Media
  • 15 - Παρακάτω παραπομπές
  • 20 - Κάτω από σελίδες
  • 25 - Παρακάτω παρατηρήσεις
  • 60 - Κάτω από τον πρώτο διαχωριστή
  • 65 - Κάτω από τις προσθήκες
  • 70 - Κάτω Χρήστες
  • 75 - Παρακάτω Εργαλεία
  • 80 - Κάτω από τις ρυθμίσεις
  • 100 - Κάτω από δεύτερο διαχωριστή

Στην περίπτωσή μου, ήθελα να εμφανίζονται ταινίες αμέσως μετά τις δημοσιεύσεις, οπότε έβαλα τη θέση του μενού σε 5, όπως έτσι:

'menu_position' => 5,

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

'menu_icon' => //the image link here,'show_in_nav_menus' => true,

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

'publicly_queryable' => true,'exclude_from_search' => false,'has_archive' => true,

Στην επόμενη γραμμή, ορίζουμε τη μεταβλητή ερωτήματος για τον τύπο της ανάρτησής μας και αυτό θα καθορίσει τον τρόπο εμφάνισης της διεύθυνσης URL. Για αυτή την επιλογή έχουμε τρεις πιθανές παραμέτρους: μπορούμε να την ορίσουμε ως αληθινή και στη συνέχεια να φτάσουμε στην ταινία χρησιμοποιώντας το /? = name_of_movie; μπορούμε να το ορίσουμε σε μια συμβολοσειρά ώστε η ταινία στο URL να αντικατασταθεί από οτιδήποτε θέλουμε, όπως "show" και θα πρέπει να χρησιμοποιήσουμε /? show = name_of_movie για να φτάσουμε στην ίδια ταινία? η τελευταία επιλογή είναι να την ορίσετε ως ψευδή και με αυτόν τον τρόπο να καταστήσετε αδύνατη την προσέγγιση μιας ταινίας χρησιμοποιώντας το query_var. Στην περίπτωσή μου και έχοντας υπόψη την τελευταία επιλογή, έβαλα το ερώτημά μου var σε αληθές, ώστε να το φτάσουμε με το query_var της ταινίας:

'query_var' => true,

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

'can_export' => true,'rewrite' => true,

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

   'capability_type' => 'post');

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

    register_post_type( 'movie', $args );}

Ο τύπος ανάρτησης δημιουργήθηκε και είναι απόλυτα λειτουργικός και το μόνο που χρειάζεται να εμφανίζεται στις σελίδες σας είναι κάποια wp_query magic.

Τελικές λέξεις

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

Αυτό το άρθρο είχε σκοπό να σας δώσει μια κατανόηση της διαδικασίας δημιουργίας ενός προσαρμοσμένου τύπου θέματος και να σας δώσει ένα σημείο εκκίνησης για τη δημιουργία των δικών σας καταπληκτικών προσαρμοσμένων τύπων post.

Προτεινόμενη εικόνα / μικρογραφία, προσαρμοσμένη εικόνα από την ATOMIC Hot Links, μέσω του Flickr.