رفتن به مطلب

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


پست های پیشنهاد شده

سلام دوستان :)

درحال نوشتن پلاگینی هستم که منو کلافه کرده ( بخاطر تازه کار بودن در وردپرس ) و یکی دوتا سوال برام پیش اومده که ممنون میشم راهنماییم کنید :)

میخوام برای رویدواد ویرایش شدن پست ( بروز رسانی که پست که فکر کنم save_post باشه ) چندتا کار انجام بدم :

1 -مخوام تصویر شاخصش و عنوان نوشته رو بگیرم و ازش استفاده کنم ( کدهام قراره کارهایی رو انجام بدن که اگر عنوان و تصویر شاخص رو نداشته باشم ، کارم به مشکل بر میخوره ) .

2 - در صورتی که کارم به درستی انجام شد ، یه پیغام درون مدیریت نمایش بدم ( مثلا : درخواست شما انجام شد )

خودم چنین کدی رو برای تست نوشتم اما نمیدونم چرا کار نمیکنه :


function my_admin_notice() {
?>
<div id="message" class="updated notice is-dismissible">
<p><?php echo "sdsdsds"; ?></p>
<button type="button" class="notice-dismiss"><span class="screen-reader-text">بستن این اعلان.</span></button>
</div>
<?php
}
function test()
{
if(1 == 1)
{
add_action( 'admin_notices', 'my_admin_notice' );
}

}

add_action('save_post', 'test');

کدم تستیه تا ببینم اکشنم درست کار میکنه یا نه ، اما هیچ عملی انجام نمیشه در صورتی که این اکشن رو بیرون از تابع قرار میدم ، درست جواب میده و متنی که درست کردم رو نمایش میده ! :


add_action( 'admin_notices', 'my_admin_notice' );

ممنون میشم راهنماییم کنید :)

لینک به ارسال

:(

دارم از نوشتن این افزونه منصرف میشم کلا :(

من یه سیستم اختصاصی نوشتم که درونش همین کارو کردم ، حالا میخواستم یه افزونه ای برای دوستان آماده کنم که بلکه مشکلات خیلی ها حل بشه و یه کمکی در این کرده باشم !

نمیدونم چرا انجمن تا این حد خوابیده !

قبلا حداقل یه اظهار نظری میشد که آدم نامید نشه !

لینک به ارسال
  • 3 هفته بعد...

سلام دوست عزیز؛ شرمنده من یه کم بدقول شدم، اما جواب سوالات شما:

1- اکشن save_post درسته، برای به دست آوردن پستی که ویرایش/ایجاد شده، اکشن به شما $post_id میده که میتونی با get_post هم تصویر شاخص رو بدست بیاری هم عنوان و بقیه چیزهای مربوط به پست.


function post_saved( $post_id ) {
$saved_post = get_post( $post_id );
if ( ! $saved_post || is_wp_error( $saved_post ) )
return false; // khata

$title = $saved_post->post_title; // onvane post
$thumb_url = wp_get_attachment_url( get_post_thumbnail_id( $saved_post->ID ) ); // url tasvir shakhes
}
add_action( 'save_post', 'post_saved' );

2- در این مورد هم راه زیاد هست. مثلاً خودم در یکی از پروژه‌ها از Transientها استفاده کردم. به این صورت که:



function after_save_alert() {
$msg = get_transient( 'ehsaan_message' ); // khabari hast ya na?
if ( ! $msg )
return; // khabari nist

// khabari hast
remove_transient( 'ehsaan_message' ); // bikhial sho bara dafaate baadi

// code alertet
?><div class="updated notice is-dismissable"><p>Blah, blah, blah...</p><button type="button" class="notice-dismiss"><span class="screen-reader-text">بستن این اعلان</span></div><?php
}
add_action( 'admin_notices', 'after_save_alert' );

function trigg_alert( $post_id ) {
set_transient( 'ehsaan_message', true, 20 );
// ye transient besaz baa etebar 20 sanie
}
add_action( 'save_post', 'trigg_alert' );

خوبی ترانزیت به این هست که هم میتونی به هر شکلی که خواستی درش بیاری و هم تاریخ انقضا داره. پیشنهاد می‌کنم Transients API رو گوگل کنی. توی کارت به درد میخوره ;)

موفق باشید.

لینک به ارسال

سلام دوست عزیز؛ شرمنده من یه کم بدقول شدم، اما جواب سوالات شما:

1- اکشن save_post درسته، برای به دست آوردن پستی که ویرایش/ایجاد شده، اکشن به شما $post_id میده که میتونی با get_post هم تصویر شاخص رو بدست بیاری هم عنوان و بقیه چیزهای مربوط به پست.


function post_saved( $post_id ) {
$saved_post = get_post( $post_id );
if ( ! $saved_post || is_wp_error( $saved_post ) )
return false; // khata

$title = $saved_post->post_title; // onvane post
$thumb_url = wp_get_attachment_url( get_post_thumbnail_id( $saved_post->ID ) ); // url tasvir shakhes
}
add_action( 'save_post', 'post_saved' );

2- در این مورد هم راه زیاد هست. مثلاً خودم در یکی از پروژه‌ها از Transientها استفاده کردم. به این صورت که:



function after_save_alert() {
$msg = get_transient( 'ehsaan_message' ); // khabari hast ya na?
if ( ! $msg )
return; // khabari nist

// khabari hast
remove_transient( 'ehsaan_message' ); // bikhial sho bara dafaate baadi

// code alertet
?><div class="updated notice is-dismissable"><p>Blah, blah, blah...</p><button type="button" class="notice-dismiss"><span class="screen-reader-text">بستن این اعلان</span></div><?php
}
add_action( 'admin_notices', 'after_save_alert' );

function trigg_alert( $post_id ) {
set_transient( 'ehsaan_message', true, 20 );
// ye transient besaz baa etebar 20 sanie
}
add_action( 'save_post', 'trigg_alert' );

خوبی ترانزیت به این هست که هم میتونی به هر شکلی که خواستی درش بیاری و هم تاریخ انقضا داره. پیشنهاد می‌کنم Transients API رو گوگل کنی. توی کارت به درد میخوره ;)

موفق باشید.

ممنون آقا احسان ، خیلی لطف کردی :)

حالا یه موردی که هست و هنوز برطرف نشده اینه که :

من میخوام تو رویداد save_post یه کاری رو انجام بدم و بعد از اینکه انجام شد ، پیغام رو بفرسته ( تو مثال پست اول هم نوشتمش )


function my_admin_notice() {
?>
<div id="message" class="updated notice is-dismissible">
<p><?php echo "sdsdsds"; ?></p>
<button type="button" class="notice-dismiss"><span class="screen-reader-text">بستن این اعلان.</span></button>
</div>
<?php
}
function test()
{
if(1 == 1)
{
add_action( 'admin_notices', 'my_admin_notice' );
}

}
add_action('save_post', 'test');

لینک به ارسال

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...