ایجاد پست در ورد پرس با rest api


سلام. توی این پست میخام نحوه ایجاد پست در ورد پرس با کمک rest api رو بهتون یاد بدم.

اول از همه بگم که من نه ورد پرس کار هستم نه پی اچ پی رو بلدم، اما بخاطر اینکه بهش برخوردم و دیدم هیچ منبع فارسی ای درست توضیح نداده و چیزی دستگیر کسی نمیشه خواستم تجربه خودم رو در اختیارتون بذارم.

این اولین نوشته من هست شاید خیلی خوب نباشه نگارشم پس پیشاپیش عذر میخام اگر مشکلی داشته باشم.

برای اینکار اول باید افزونه JWT Authentication for WP REST API رو نصب کنید این افزونه رو میتونید اینجا پیداش کنید.

بعد از نصب افزونه وفعال کردنش نیاز به کانفیگ داره.

پس باید فایل wp-config.php رو پیدا کنید و این خط رو بهش اضافه کنید:

define('JWT_AUTH_SECRET_KEY', 'your-top-secret-key');



بجای your-top-secret-key باید سکرت کی بذارید میتونید از اینجا یدونشو کپی کنید

خب حالا کانفیگ تموم شد. با post به آدرس: yoursite/wp-json/jwt-auth/v1/token

و ارسال:

{
        username: 'admin',
        password: 'password'
      }



یدونه توکن بهتون میده به این شکل:

{
    &quottoken&quot: &quoteyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC9qd3QuZGV2IiwiaWF0IjoxNDM4NTcxMDUwLCJuYmYiOjE0Mzg1NzEwNTAsImV4cCI6MTQzOTE3NTg1MCwiZGF0YSI6eyJ1c2VyIjp7ImlkIjoiMSJ9fX0.YNe6AyWW4B7ZwfFE5wJ0O6qQ8QFcYizimDmBy6hCH_8&quot,
    &quotuser_display_name&quot: &quotadmin&quot,
    &quotuser_email&quot: &quotadmin@localhost.dev&quot,
    &quotuser_nicename&quot: &quotadmin&quot
}



حالا میتونید با post کردن دیتای مورد نظرتون به آدرس:http://yoursite/wp-json/wp/v2/posts

پست رو بسازید. دیتای ارسالیتون باید به شکل:

{ &quottitle&quot: &quotTest Title&quot,
&quotcontent&quot: &quotTest Content&quot,
 &quotstatus&quot:&quotpublish&quot}

باشه.

هدر رکوئست هم باید به شکل:

{Content-Type:&quotapplication/json&quot,
Authorization:&quotBearer +token&quot}

باشه،که احتمالا ارور بهتون میده!

برای ارسال هدر باید این امکان توی .htaccess فعال باشه.

برای اینکار باید این کد زیر رو پایین خط RewriteEngine onوارد کنید.

RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%1]



حالا دیگه نباید اروری داشته باشه و به راحتی پست توی سایتتون وارد بشه.