Laden Sie Medien mithilfe der REST-API in WordPress hoch

Lesezeit: 2 Minuten

So laden Sie Medienbilder oder vorgestellte Bilder mithilfe der Rest-API in WordPress hoch.

Ich habe mit der WordPress-REST-API einen neuen Beitrag erstellt und lade jetzt mit der REST-API ein Bild auf meine WordPress-Site hoch, kann es aber aufgrund des Fehlers „Keine Daten bereitgestellt“ nicht erreichen. Bitte überprüfen Sie den Screenshot

Geben Sie hier eine Bildbeschreibung ein

Das ist meiner Meinung nach derzeit der beste Weg, einen neuen Beitrag in WordPress mit „Featured Image“ zu erstellen

  1. Laden Sie die Mediendatei auf die WordPress-Site hoch und holen Sie sich die Medien-ID
  2. Erstellen Sie einen neuen Beitrag mit der Medien-ID

  • Da ich keine Bilder sehe, habe ich als Antwort einen vollständigen Code hinzugefügt

    Benutzer1805543

    9. Januar 2020 um 20:56


Du hast fast recht, es fehlt einfach media(image) raw binary data.

für pythonmit Code:

import requests

toUploadImagePath = "/xxx/xxx.jpg"
mediaImageBytes = open(toUploadImagePath, 'rb').read()
# b'\xff\xd8\xff\xe0\x00\x10JFIF\x00\x01\x01\.....'

uploadImageFilename = "661b943654f54bd4b2711264eb275e1b.jpg"
curHeaders = {
  "Authorization": "Bearer xxx.yyy.zzz-xxx-yyy-zzz",
  "Content-Type": "image/jpeg",
  "Accept": "application/json",
  'Content-Disposition': "attachment; filename=%s" % uploadImageFilename,
}

resp = requests.post(
  "https://www.crifan.com/wp-json/wp/v2/media",
  headers=curHeaders,
  data=mediaBytes,
)

Der vollständige Code kann auf meine Bibliothek verweisen: crifanWordpress.py

und mein Chinesisch Post: Weitere Informationen finden Sie unter Python, WordPress und der REST-API
(Wird in Kürze veröffentlicht)

Die Verwendung der REST-API zum Hochladen einer Datei in WordPress ist recht einfach. Sie müssen lediglich die Datei in einer POST-Anfrage an die Route wp/v2/media senden.

AKTUALISIERT hinzugefügte Datenantwort wahr

$file = file_get_contents( 'test.jpg' );
$url="http://example.com/wp-json/wp/v2/media/";
$ch = curl_init();
$username="admin";
$password = 'password';

curl_setopt( $ch, CURLOPT_URL, $url );
curl_setopt( $ch, CURLOPT_POST, 1 );
curl_setopt( $ch, CURLOPT_POSTFIELDS, $file );
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt( $ch, CURLOPT_HTTPHEADER, [
    'Content-Disposition: form-data; filename="example.jpg"',
    'Authorization: Basic ' . base64_encode( $username . ':' . $password ),
] );
$result = curl_exec( $ch );
curl_close( $ch );
print_r( json_decode( $result ) );

MEHR https://gist.github.com/ahmadawais/0ccb8a32ea795ffac4adfae84797c19a

  • Wie können wir einen Beitrag mit Medien darin erstellen? Bereitgestellte Medien-URL aus externer Quelle

    – Srinivas08

    30. November 2020 um 7:55 Uhr

  • @Srinivas08 Es gibt keine API-Option zum Senden von URLs. Sie können dies jedoch tun, indem Sie mithilfe der media_sideload-Funktion einen benutzerdefinierten Endpunkt zum Hochladen von Medien erstellen

    – WBGUY001

    3. November 2022 um 19:07 Uhr

1450970cookie-checkLaden Sie Medien mithilfe der REST-API in WordPress hoch

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy