Merhaba,
Bu yazımızda wordpress bir siteye nodejs ile nasıl yazı oluşturacağımızı göstereceğim. Koda geçmeden önce hangi kullanıcı adıyla yazıların oluşturulmasını istiyorsan onun adına uygulama parolası oluşturmamız gerekiyor. Uygulama parolasını şu şekilde oluşturabilirsiniz;
Burada dikkat edilmesi gereken nokta bu parolayı saklamanız ve kimseyle paylaşmamanız. çünkü bir daha göremeyeceksiniz. Kaybettiğinizde ise aynı sayfadan silip yenisini oluşturabilirsiniz.
Kodlarımıza geçebiliriz;
|
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 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
const axios = require("axios"); require("dotenv").config(); const wpUrl = process.env.WP_URL; const username = process.env.WP_USERNAME; const applicationPassword = process.env.WP_APPLICATION_PASSWORD; if (!wpUrl || !username || !applicationPassword) { console.error("Lütfen tüm gerekli değişkenleri .env dosyasında ayarlayın."); process.exit(1); } async function createPost(title, content) { try { const response = await axios.post( `${wpUrl}/wp-json/wp/v2/posts`, { title: title, content: content, status: "publish", }, { auth: { username: username, password: applicationPassword, }, headers: { "Content-Type": "application/json", }, } ); return response.data; } catch (error) { console.error(`Yazı oluşturma hatası: ${error.message}`); if (error.response) { console.error(`Durum: ${error.response.status}`); console.error(`Veri: ${JSON.stringify(error.response.data)}`); } throw error; } } createPost("Test Başlık", "Test İçerik") .then((post) => { console.log("Yazı başarıyla oluşturuldu:", post.id); }) .catch((error) => { console.error("Yazı oluşturma sırasında hata oluştu:", error); }); |
Örnek .env dosyası;
|
1 2 3 |
WP_URL=https://siteadi.com/wp-json/wp/v2 WP_USERNAME=admin@siteadi.com WP_APPLICATION_PASSWORD=dFth gSDv sLW0 eW96 TzOS G3fg |
Nodejs paketlerini yüklemeyi unutmamakta fayda var. Böylece basit bir şekilde wordpress sitenizde wordpress rest api ile yazı oluşturabilirsiniz. Bunu nasıl kullanacağınız sizin hayal gücünüze kalmış.
Ayrıca ilgili kodların github reposunu da paylaşıyorum.


