Ali#

برنامه نویسی
استفاده از bulk actions در افزونه

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

سلام.

می خواهم هنگامی که مطالب از قسمت bulk actions (کارهای دسته جمعی)، ویرایش شد، به همه نوشته هایی که انتخاب شده و ویرایش شده اند یک برچسب اضافه شود.

من این کد را نوشتم ولی مشکلی که دارد این است که فقط به یک پست، برچسب را اضافه می کند در حالی که من می خواهم به همه نوشته هایی که انتخاب شده بودند اضافه کند.

این هم کد:

add_action('bulk_edit_custom_box', 'bulk_test');
function bulk_test() {
$post_ID = get_the_ID();
wp_set_post_tags($post_ID,'test',true );
}

دوستان می دانم مشکل از $post_ID است که فقط یک آی دی را وارد می کند. ولی راه حل را پیدا نمی کنم.

کسی می تواند راهنمایی کند؟

0

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


لینک به پست

سلام. مطالب رو که نمیشه دسته جمعی ویرایش کرد که شما بخواید بهشون هوک بزنید.

منظورتون اینه که یه بولک اکشن جدید می خواید اضاف کنید ؟

0

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


لینک به پست

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

ببینید منظورم از ویرایش، بعنوان مثال تغییر دسته جمعی مطالب از draft به public هست.میخوام وقتی تیک کنار مطالب خورد و از قسمت بولک اکشن این تغییری که گفتم داده شد،  به همه مطالبی که در مرحله قبل انتخاب کرده بودیم، یک برچسب اضافه شود.

 

 

 

 

 

 

 

 

 

 

0

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


لینک به پست
در 2 ساعت قبل، Ali# گفته است :

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

ببینید منظورم از ویرایش، بعنوان مثال تغییر دسته جمعی مطالب از draft به public هست.میخوام وقتی تیک کنار مطالب خورد و از قسمت بولک اکشن این تغییری که گفتم داده شد،  به همه مطالبی که در مرحله قبل انتخاب کرده بودیم، یک برچسب اضافه شود.

 

 

 

 

 

 

 

 

 

 

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

add_action('bulk_edit_custom_box', 'bulk_test');
function bulk_test() {
$post_ids = ( ! empty( $_POST[ 'post_ids' ] ) ) ? $_POST[ 'post_ids' ] : array();
	if ( ! empty( $post_ids ) && is_array( $post_ids ) ) {
		foreach( $post_ids as $post_id ) {
wp_set_post_tags($post_id,'test',true );
}
}
}

 

 

1

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


لینک به پست
در 9 ساعت قبل، imanfakhar گفته است :

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


add_action('bulk_edit_custom_box', 'bulk_test');
function bulk_test() {
$post_ids = ( ! empty( $_POST[ 'post_ids' ] ) ) ? $_POST[ 'post_ids' ] : array();
	if ( ! empty( $post_ids ) && is_array( $post_ids ) ) {
		foreach( $post_ids as $post_id ) {
wp_set_post_tags($post_id,'test',true );
}
}
}


 

شرمنده جناب imanfakhar

عجله داشتم.

از وقتی که گذاشتید هم ممنون.

این کد شما رو هم امتحان کردم متاسفانه باز هم کار نکرد. کمی تغییر هم دادم نتیجه نداد!

0

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


لینک به پست

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


لینک به پست
در 3 دقیقه قبل، imanfakhar گفته است :

کار با آژاکس رو متوجه نشدم.

بعد اینجا اکشن wp_ajax_save_bulk_edit_book رو فراخوانی کرده در حالی که من bulk_edit_custom_box رو فراخوانی کردم.

فکر کنم بهمین مربوط بشه!

 

0

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


لینک به پست

شما باید یک مقداری رو خودتون ارسال کنید تا تابعتون بتونه بخونتش و مقدار آی دی ها را بفهمه ؟

در 11 دقیقه قبل، Ali# گفته است :

عد اینجا اکشن wp_ajax_save_bulk_edit_book رو فراخوانی کرده در حالی که من bulk_edit_custom_box رو فراخوانی کردم.

فکر کنم بهمین مربوط بشه!

شما مگه نمی خواهید همزمان با تغییر وضعیت تگهاتون رو هم بچسبونید ؟ 

اکشن درسته 

از کدکس وردپرس مرجع معتبر تری که نداریم شما باید آژاکس رو هم صدا بزنید تا آی دی های مطالب رو با متد post  براتون ارسال کنه تابعتون ورودی داشته باشه

حالا چرا می خواین کار به این عجیبی و نا معمولی رو انجام بدید اگه قراره یک تگ براشون مشترک کنید که همون موقع ویرایش تگ رو هم اضافه کنید و خودتون اذیت نکنید اگر هدفتون کار دیگه ایه بفرمایید دقیقا چه کاری هدفتون شاید راه درستش کار دیگه ای باشه

1

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


لینک به پست
در 3 دقیقه قبل، imanfakhar گفته است :

شما باید یک مقداری رو خودتون ارسال کنید تا تابعتون بتونه بخونتش و مقدار آی دی ها را بفهمه ؟

شما مگه نمی خواهید همزمان با تغییر وضعیت تگهاتون رو هم بچسبونید ؟ 

اکشن درسته 

از کدکس وردپرس مرجع معتبر تری که نداریم شما باید آژاکس رو هم صدا بزنید تا آی دی های مطالب رو با متد post  براتون ارسال کنه تابعتون ورودی داشته باشه

حالا چرا می خواین کار به این عجیبی و نا معمولی رو انجام بدید اگه قراره یک تگ براشون مشترک کنید که همون موقع ویرایش تگ رو هم اضافه کنید و خودتون اذیت نکنید اگر هدفتون کار دیگه ایه بفرمایید دقیقا چه کاری هدفتون شاید راه درستش کار دیگه ای باشه

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

در اصل کار با آژاکس رو متوجه نشدم. اون کد ها رو متوجه نشدم کجا باید فراخوانی بشه که این هوک اجرا بشه.

این که من میگم تگ اضافه بشه صرفاً یک مثال بود. در اصل میخوام با تغییر وضعیت، به هرکدام یک post_meta اضافه کنم.

در اصل:

add_action('bulk_edit_custom_box', 'bulk_test');
function bulk_test() {
$post_ids = ( ! empty( $_POST[ 'post_ids' ] ) ) ? $_POST[ 'post_ids' ] : array();
	if ( ! empty( $post_ids ) && is_array( $post_ids ) ) {
		foreach( $post_ids as $post_id ) {
		add_post_meta($post_id,$my_post_meta,$my_post_meta_content);
}
}
}

که شما تا حد زیادی مشکل رو حل کردید ($post_ids).

فقط ظاهراً همین مشکل کار با آژاکس است که این کد کار نمی کند!

0

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


لینک به پست

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

به اکشن save_post هوک بزن و تابعت رو اجرا کنه که یکی یکی هر مطلبی منتشر شد آی دیش رو بگیره و تابع رو براش اجرا کنه 

http://wordpress.stackexchange.com/questions/10853/how-to-get-and-edit-custom-fields-if-in-quick-edit

https://wp-types.com/forums/topic/update-a-custom-field-in-quick-edit/

http://wpdreamer.com/2012/03/manage-wordpress-posts-using-bulk-edit-and-quick-edit/

  و این ویدئو رو هم ببینید 

 

1

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


لینک به پست
نقل قول

منتها من مبتدی ام تو پروفایل هم وارد کردم.

مبتدی که نیستید ولی رفتید سراغ یکی از بد اداترین و کم مصرفترین اکشنهای وردپرس

1

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


لینک به پست

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

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

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

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


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

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

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


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

  • مطالب مشابه

    • توسط behnazi1995
      با سلام 
      من تا جای ممکن سعی میکنم سوالم رو واضح بنویسم ولی اگر نیازی به توضیح بیشتر بود در خدمتم:
      من با php یک فرم چندمرحله ای نوشتم و ابن کد رو به قالبم وصل کردم و از طریق یکی از گزینه های منو میتونم اجراش کنم.
      حالا میخوام برای بخش ورود به سایتم از یک پلاگین استفاده کنم (که هر کاربر پنل کاربری داشته باشه) 
      سوالم اینه که چطور کدهای php خودم رو به پلاگین وصل کنم؟
      یعنی کاربر از طریق فرم های من ثبت نام کنه بعد از آخرین مرحله اش وارد حساب کاربریش بشه که همین پلاگین آماده اس.
    • توسط behnazi1995
      سلام دوستان با php یک کد برای قسمت ورود کاربرانم نوشتم که چون با فرم های لاگین عادی فرق میکنه نمی خوام از پلاگین استفاده کنم.
      سوال من اینه که این فایل های مربوط به  php رو کدوم قسمت هاستم یا فایل های وردپرسم باید قرار بدم که بتونم اجراشون کنم.(سایت با وردپرس راه اندازی شده از قبل فقط این قسمتی که من با php نوشتم رو میخوام بهش اضافه کنم.)
      یکم مبتدی هستم ممنون میشم با جزئیات توضیح بدین.
      و اینکه کل پروژه شامل 10 تا 20 فایل با پسوند php است و چند تا فولدر برای قسمت های مختلف مثل فونت و استایل و غیره.
    • توسط ariux
      درود بر شما دوستان گرامی .
      من تکه کدی دارم که به وسلیه اون میتونم با کمک یک Api اطلاعات مربوط به فیلم و یا سریال رو در سایت خودم به نمایش بگذارم . اما درخواستی دارم که به سرانجام رسوندش با توجه به اطلاعات اندک برنامه نویسی من شدنی نیست .
      این تکه کد  . 
      if(!empty($id = get_post_meta(get_the_ID(), 'id', true))) : if(empty($imdb = get_post_meta(get_the_ID(), "_imdb_{$id}", true))) { $json = @file_get_contents('http://www.omdbapi.com/?i='.$id.'&apikey=0'); if($json !== false) { $imdb = json_decode($json, true); update_post_meta(get_the_ID(), "_imdb_{$id}", $imdb); echo $json; } } endif;  
      و درخواست / پرسش من  : میخواستم بدونم آیا راهی هست که به وسیله اون این کد تبدیل به یک هوک بشه تا با کمکش
      1- هر بار برای دریافت اطلاعات کل کد در فایل قالب ها به صورت مجزا گنجانده نشه .
      2- امکانی فراهم بشه برای نمایش اطلاعات دریافتی خارج و داخل حلقه وردپرس . 
      سپاس بابت زمانی که برای پاسخگویی صرف میکنید . 
       
       
    • توسط f.rahimi
      درود بر شما
      من در حال نوشتن یه افزونه هستم 
      فایل های مرتبط رو با این کدها میخوام در فایل اصلی افزونه بیارم تا کدهای داخل اون پوشه ها رو بخونه
      با این کد : 
      include_once book_inc_dir.'frontend.php' ; if (is_admin() ) { include_once vip_inc_dir.'backend.php' ; include_once vip_inc_dir.'ajax.php' ; include_once vip_inc_dir.'pages.php' ; }  اما بعد از سیو کردن با همچین اروری مواجه میشم :
       
       

      Warning: include_once(./inc/frontend.php): failed to open stream: No such file or directory in C:\xampp\htdocs\wpvip\wp-content\plugins\wpvip\wpvip.php on line 30

      Warning: include_once(): Failed opening './inc/frontend.php' for inclusion (include_path='C:\xampp\php\PEAR') in C:\xampp\htdocs\wpvip\wp-content\plugins\wpvip\wpvip.php on line 30

      Warning: include_once(./inc/backend.php): failed to open stream: No such file or directory in C:\xampp\htdocs\wpvip\wp-content\plugins\wpvip\wpvip.php on line 33

      Warning: include_once(): Failed opening './inc/backend.php' for inclusion (include_path='C:\xampp\php\PEAR') in C:\xampp\htdocs\wpvip\wp-content\plugins\wpvip\wpvip.php on line 33

      Warning: include_once(./inc/ajax.php): failed to open stream: No such file or directory in C:\xampp\htdocs\wpvip\wp-content\plugins\wpvip\wpvip.php on line 34

      Warning: include_once(): Failed opening './inc/ajax.php' for inclusion (include_path='C:\xampp\php\PEAR') in C:\xampp\htdocs\wpvip\wp-content\plugins\wpvip\wpvip.php on line 34

      Warning: include_once(./inc/pages.php): failed to open stream: No such file or directory in C:\xampp\htdocs\wpvip\wp-content\plugins\wpvip\wpvip.php on line 35

      Warning: include_once(): Failed opening './inc/pages.php' for inclusion (include_path='C:\xampp\php\PEAR') in C:\xampp\htdocs\wpvip\wp-
    • توسط Andy Murray
      با سلام ، وقت دوستان وردپرسی بخیر ! 
      دوستانی که به دنبال نمایش ستاره دار مطالب در گوگل هستین، حتما میدونید که افزونه های زیادی در این رابطه هست . من از kk Star Ratings استفاده کردم اما برای بعضی سایت ها جواب میده و برای بعضی ها هم جواب نمیده ، کسی اطلاعات دقیق تری داره که دلیلش چی هست ؟ و مشکل کار کجاست ؟ 
      به عنوان مثال برای سایت دی کیو شاپ کار نمیکنه ولی برای سئو سایت ستاره دار نمایش داده میشه .