Προς το περιεχόμενο

Wordpress-WP Rest


Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπέρα προσπαθώ να υλοποίησω κάποιες επιπλέον λειτουργίες στο rest api ενος wordpress ακολουθώντας αυτόν τον οδηγό:https://code.tutsplus.com/tutorials/wp-rest-api-internals-and-customization--cms-24945

Ο κώδικας μου είναι ο εξής:

<?php
add_action( 'rest_api_init', 'my_add_custom_rest_fields' );

function add_author_meta_info($object, $field_name, $request) {
	return 'foobar';
}

function my_add_custom_rest_fields() {
	register_rest_field(
        'user',
        'test_meta',
        array(
            'get_callback'      => 'add_author_meta_info',
            'update_callback'   => null,
            'schema'            => null
        )
    );
}

Αλλά δεν το εμφανίζει όταν κάνω το request από browser/postman.
Μπορεί να είναι λίγο ηλίθια απορία αλλά όποια βοήθεια θα εκτιμηθεί!

Δημοσ. (επεξεργασμένο)

Ωραία ερώτηση :)

Παρόλα αυτά δεν βλέπω το πρόβλημα, φαίνεται να δουλεύει κανονικά

Στο functions.php του theme σου

function add_author_meta_info($object, $field_name, $request) {
	return 'foobar';
}

function my_add_custom_rest_fields() {
	register_rest_field(
        'user',
        'test_meta',
        array(
            'get_callback'      => 'add_author_meta_info',
            'update_callback'   => null,
            'schema'            => null
        )
    );
}

Χτυπώντας wp-json/wp/v2/users θα δεις το meta σου...

 

 

Screenshot from 2018-02-05 22-05-07.png

Επεξ/σία από sarakinos
  • Like 1
Δημοσ. (επεξεργασμένο)

Δυστυχώς δεν φαίνεται. Δηλαδή δεν υπάρχει το συγκεκριμένο πεδίο όταν τρέχω το request. Ο παραπάνω κώδικας είναι μέσα σε ένα αρχείο index.php μέσα σε directory που φτιάχτηκε στο wp-content/plugins όπως αναφέρεται στον οδηγό.

Αν το βάλω στο functions.php του theme μου απλά σπάει το site και παίρνω white page ακόμα και στο homepage.

Επεξ/σία από kaliakman
Δημοσ. (επεξεργασμένο)

Βαλε αυτο μεσα στο array:

 'show_in_rest'       => true
Αναφορά σε κείμενο

When registering a custom post type, if you want it to be available via the REST API you should set 'show_in_rest' => true in the arguments passed to register_post_type. Setting this argument to true will add a route in the wp/v2namespace.

https://developer.wordpress.org/rest-api/extending-the-rest-api/adding-rest-api-support-for-custom-content-types/

Επεξ/σία από Predatorkill
Δημοσ.
5 ώρες πριν, Predatorkill είπε

Δεν είναι post request αλλά και πάλι δεν δούλεψε.

 

Τελικά ενώ φαινόταν από το site ότι έχω x theme είχα x-child theme και βάζοντας τον κώδικα στο functions.php του child δούλεψε. (Και όπως περίμενα ήταν λάθος απειρίας :) )

  • 2 εβδομάδες αργότερα...
Δημοσ.

Για να μην ανοίγω καινούριο θέμα:

Αφού έφτιαξα το api μου θέλω τώρα να φτιάξω το authentication από το android client που φτιάχνω.

Το θέμα μου αφορά την ασφάλεια και γενικότερα best practices:
Χρησιμοποιώ https με ssl για το API και επίσης για το auth χρησιμοποιώ το plugin jwt-auth που προσφέρει JSON Web Token. Αφού ο χρήστης βάλει τα στοιχεία παίρνει token και το χρησιμοποιεί στην συνέχεια για να κάνεις ότι request θέλει.

Εφόσον η επικοινωνία γίνεται μέσω https τα δεδομένα είναι encrypted οπότε θεωρώ ότι η επικοινωνία είναι secured. Υπάρχει κάτι άλλο που θα έπρεπε να ξέρω περί ασφάλειας ή κάποιος άλλος ενδεδειγμένος τρόπος authentication?

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...