peymanf11

ارسال اتوماتیک پست ها

8 پست در این موضوع قرار دارد

با عرض سلام  و ادب خدمت همه دوستان

 

بنده جدیدن وارد دنیای ورد پرس شدم ؛ لطفا منو راهنمائی بفرمائید ک چگونه باید پست ها رو بصورت اتوماتیک ب دیتابیس ارسال کنم.

 

یه دیتابیس برای برنامه اندرویدی دارم و میخوام وقتی اون دیتابیس آپدیت میشه مطالب در دیتابیس وردپرس هم وارد بشه ، کد زیر رو از طریق سرچ در اینترنت برای تست بدست آوردم ، وقتی بصورت افزونه در ورد پرس قرار میدم اوکی ه و پست مد نظر در دیتابیس قرار میگیره ؛ حالا نمیدونم چطور و کجا باید اینو قرار بدم ، وقتی از حالت افزونه بودن در میارم کد با خطا مواجه میشه :(

 

 

<?php


function AAb()
    {
        require('//wp-includes/post.php');

        $new_post = array(
        'post_title' => 'My New PostBBBBBBBBBBBBB2',
        'post_content' => 'matn...2',
        'post_status' => 'publish',
        'post_date' => date('Y-m-d H:i:s'),
        'post_author' => 1,
        'post_type' => 'post',
        'post_category' => array(5)
        );
        
        $post_id = wp_insert_post($new_post);
    
}

add_action('init', 'AAb');

?>

 

0

به اشتراک گذاری این پست


لینک به پست

سلام و درود

 

باید از همون تابع wp_insert_post که استفاده کردید استفاده کنید.

باید یه API درست کنید که اپلیکیشن پست رو به اون API ارسال کنه و API هم درج کنه پست رو توی وردپرس.

 

موفق باشید

2

به اشتراک گذاری این پست


لینک به پست
در در 1/5/2018 at 21:57، mehran-b گفته است :

سلام و درود

 

باید از همون تابع wp_insert_post که استفاده کردید استفاده کنید.

باید یه API درست کنید که اپلیکیشن پست رو به اون API ارسال کنه و API هم درج کنه پست رو توی وردپرس.

 

موفق باشید

 

 

 

با تشکر از شما دوست عزیز ، بنده اطلاعات رو در دیتابیس سرور ذخیره میکنم ، هنگام ذخیره کردن میتونم اطلاعات رو بفرستم واس ذخیره فقط نمیدونم کجا باید کدها رو قرار بدم ،
 

کدها رو وقتی از داخل پوشه plugins موجود در پوشه wp-content خارج میکنم خطا میدن و اصلاا جرا نمیشن :(

 

لطفا منو راهنمائی بفرمائید

 

0

به اشتراک گذاری این پست


لینک به پست

درود مجدد

 

آها متوجه شدم.

فایل wp-load.php واقع در روت وردپرس اصطلاحا فایل Bootstrap وردپرس هست.

این فایل رو باید به فایلی که توش میخواید از توابع وردپرس استفاده کنید اتچ کنید.

فرض کنید کنار فایل wp-load.php یه فایل درست کردیم مثلا به اسم test.php با محتویات زیر:

<?php


$new_post = array(
'post_title' => 'My New PostBBBBBBBBBBBBB2',
'post_content' => 'matn...2',
'post_status' => 'publish',
'post_date' => date('Y-m-d H:i:s'),
'post_author' => 1,
'post_type' => 'post',
'post_category' => array(5)
);

$post_id = wp_insert_post($new_post);

خوب وقتی test.php رو اجرا کنید ارور میده چون تابع wp_insert_post رو نمی شناسه ولی توی حالت زیر:

<?php

include(__DIR__ .'/wp-load.php');

$new_post = array(
'post_title' => 'My New PostBBBBBBBBBBBBB2',
'post_content' => 'matn...2',
'post_status' => 'publish',
'post_date' => date('Y-m-d H:i:s'),
'post_author' => 1,
'post_type' => 'post',
'post_category' => array(5)
);

$post_id = wp_insert_post($new_post);

دیگه تابع wp_insert_post ناشناخته نیست.

 

موفق باشید

1

به اشتراک گذاری این پست


لینک به پست

ارسال شده در (ویرایش شده)

در در 1/5/2018 at 23:26، mehran-b گفته است :

درود مجدد

 

...دیگه تابع wp_insert_post ناشناخته نیست.

 

موفق باشید

 

 

 

 

سپاس از شما دوست عزیز برای وقتی ک میذارید .

 

بنده طبق گفته شما include رو انجام دادم و و قتی مستقیم لینک رو در مرورگر میزنم بدون هیچ خطایی اجرا میشه حتی دستور echo هم متن رو چاپ میکنه توی مرورگر، اما متاسفانه هیچی در دیتابیس و جدول   wp_posts  ذخیره نمیشه ! :(

 

 

کد من بصورت زیر هستش :

 

<?php

include(__DIR__ .'/wp-load.php');

function AAb()
    {
        
        $new_post = array(
        'post_title' => 'POSSSSS t PostBBBBBBBBBBBBB2',
        'post_content' => 'matn...2',
        'post_status' => 'publish',
        'post_date' => date('Y-m-d H:i:s'),
        'post_author' => 1,
        'post_type' => 'post',
        'post_category' => array(5)
        );
        
        $post_id = wp_insert_post($new_post);
    
}
echo "AvvvvA";

add_action('init', 'AAb');

?>

 

ویرایش شده در توسط peymanf11
0

به اشتراک گذاری این پست


لینک به پست

به این شکل تست کنید.

احتیاجی نیست قلابش کنید به اکشن init.

<?php

include(__DIR__ .'/wp-load.php');
        
$new_post = array(
  'post_title' => 'POSSSSS t PostBBBBBBBBBBBBB2',
  'post_content' => 'matn...2',
  'post_status' => 'publish',
  'post_date' => date('Y-m-d H:i:s'),
  'post_author' => 1,
  'post_type' => 'post',
  'post_category' => array(5)
);

$post_id = wp_insert_post($new_post);

 

1

به اشتراک گذاری این پست


لینک به پست
در در 1/5/2018 at 23:51، mehran-b گفته است :

به این شکل تست کنید.

احتیاجی نیست قلابش کنید به اکشن init.

 

 

خیلی ممنونم دوست عزیز ، بسیار عالی پست انجام گرفت.

 

فقط جسارتن ی سوال دیگه داشتم از تون ،

 

آیا امکان داره کد موجود رو توی پوشه ای خارج از پوشه وردپرس بنویسم ؟ 

 

پوشه وردپرس توی قسمت روت سرورم هستش و من لازم دارم کدهای بالا رو توی قسمت public_html و درون پوشه ای ک اطلاعات رو استخراج و در دیتابیس مینویسم وارد کنم تا همزمان توی دیتابیس ورد پرسم هم وارد بشه ، آیا این امکان پذیر هستش ؟

 

و راستی آیا امکان داره این باعث بشه مدت زمان اجرای کدها خیلی طولانی بشه (بخاطر اینکلود کردن)

 

 

خیلی ممنونم از شما ؛ سپاس بی پایان از شما

0

به اشتراک گذاری این پست


لینک به پست

درود مجدد

 

نقل قول

آیا امکان داره کد موجود رو توی پوشه ای خارج از پوشه وردپرس بنویسم ؟ 

بله ممکنه.

باید توی آدرس دهی فایل wp-load.php برگردید به روت.

به این شکل میشه.

<?php

include('../wp-load.php');
        
$new_post = array(
  'post_title' => 'POSSSSS t PostBBBBBBBBBBBBB2',
  'post_content' => 'matn...2',
  'post_status' => 'publish',
  'post_date' => date('Y-m-d H:i:s'),
  'post_author' => 1,
  'post_type' => 'post',
  'post_category' => array(5)
);

$post_id = wp_insert_post($new_post);

این یعنی یه پوشه برو عقب بعد wp-load.php رو اتچ کن.

 

نقل قول

و راستی آیا امکان داره این باعث بشه مدت زمان اجرای کدها خیلی طولانی بشه (بخاطر اینکلود کردن)

مدت زمان اجرای کد شما نسبت به حالتی که wp-load.php رو اتچ نکنید قطعا بالاتر میره چون فایل wp-load.php کل وردپرس رو لود میکنه سپس کدهای فایل شما رو اجرا میکنه.

 

موفق باشید

2

به اشتراک گذاری این پست


لینک به پست

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری