رفتن به مطلب

سمت سرور کردن کد انقضا پست ها


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

سلام دوستان

من میخوام برای پست ها انقضا بذارم اما افزونه های موجود همشون با wp-parsidate مشکل دارن

توی نت گشتم این کد رو پیدا کردم عالی هستش و میلادی بودنش هم قابل تحمل هست اما مشکل جدیش اینه که سمت کاربر هست

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


<?php
if (have_posts()) :
while (have_posts()) : the_post(); ?>
$expirationtime = get_post_custom_values('expiration');
if (is_array($expirationtime)) {
$expirestring = implode($expirationtime);
}
$secondsbetween = strtotime($expirestring)-time();
if ( $secondsbetween > 0 ) {
// For example…
the_title();
the_excerpt();
}
endwhile;
endif;
?>

و یا آیا کد بهتری که سمت سرور باشه سراغ دارید یا افزونه ای که با wp-parsidate مشکل نداشته باشه !؟

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

لینک به ارسال

کد php سمت سرور هست

در کد هم داده‌ای مربوط به کاربر نیست

البته کد هم درست نیست

پست رو مخفی میکنه تا اینکه وضعیت رو تغییر بده

تست کنید

http://wordpress.org/plugins/post-auto-expire-control/

http://wordpress.org/plugins/tieexpire-automated-post-expiry/

http://wordpress.org/plugins/post-expirator/

لینک به ارسال

مشکل مخفی کردن نیست اما این کد تاریخ و زمان رو از کامپیوتر کاربر میگیره منظورم این بود

لینک به ارسال

مشکل مخفی کردن نیست اما این کد تاریخ و زمان رو از کامپیوتر کاربر میگیره منظورم این بود

در PHP توابع خاصی سمت کاربر اجرا میشوند

تابع time هم سمت سرور هست

لینک به ارسال

حالا این کد رو میشه کاری کرد که به جای استفاده از تاریخ میلادی از تاریخ شمسی wp-parsidate استفاده کنه ؟


<?php
if (have_posts()) :
while (have_posts()) : the_post(); ?>
$expirationtime = get_post_custom_values('expiration');
if (is_array($expirationtime)) {
$expirestring = implode($expirationtime);
}
$secondsbetween = strtotime($expirestring)-time();
if ( $secondsbetween > 0 ) {
// For example…
the_title();
the_excerpt();
}
endwhile;
endif;
?>

لطفا اگر میشه شمسی شده ی این کد رو اینجا بنویسید ممنون میشم

لینک به ارسال


<?php
if (have_posts()) :
while (have_posts()) : the_post();
$expirationtime = gregdate("Y-m-d",get_post_custom_values('expiration'));
if (is_array($expirationtime)) {
$expirestring = implode($expirationtime);
}
$secondsbetween = strtotime($expirestring)-time();
if ( $secondsbetween > 0 ) {
// For example…
the_title();
the_excerpt();
}
endwhile;
endif;
?>

مقدار تاریخ دارای چنین قالبی باشد:

1392-05-10

لینک به ارسال

خط قبل از شرط را به این تغییر دهید


$secondsbetween = strtotime($expirationtime)-time();

لینک به ارسال

این آموزش دیدید؟؟

http://wpu.ir/8b30t

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

لینک به ارسال

کد تست شده است

آقا پارسا این اررو رو میده داخل div :


Warning: preg_match_all() expects parameter 2 to be string, array given in /home4/persiafr/public_html/wp-content/plugins/wp-parsidate/lib/parsidate.php on line 240

درستش کردم فدات :wub:

تاپیک بسته شد !

ویرایش شده توسط ژیهات
لینک به ارسال

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

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

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

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

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

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

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

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

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