webafra

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

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

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

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

میخوام برای رویدواد ویرایش شدن پست ( بروز رسانی که پست که فکر کنم 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' );

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

0

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


لینک به پست

:(

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

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

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

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

0

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


لینک به پست

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

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 رو گوگل کنی. توی کارت به درد میخوره ;)

موفق باشید.

2

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


لینک به پست

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

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');

0

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


لینک به پست

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

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

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

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


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

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

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


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