جلوگیری از انتشار پست با عنوان های خاص
سلام
یه سایتی داریم که مطالبش اتوماتیک ارسال میشه
حالا میخواییم یه سری عنوان ها رو روی سایت مسدود کنیم که هر پستی که این کلمات توی عنوانش بود، وردپرس از انتشارش جلوگیری کنه
مثلا :
عنوان : جلوگیری از انتشار پست با عنوان تست در سایت
کلمه ی "عنوان تست" توی این عنوان استفاده شده و باید از انتشارش جلوگیری بشه و پست رو بصورت پیشنویس ذخیره کنه بجای منتشر شده
چه راهکاری هست برای این موضوع؟
پاسخ : جلوگیری از انتشار پست با عنوان های خاص
فکر کنم ساده ترین راهش این باشه که یه متغیر php توی فایل فانکشن قالب تعریف کنید و کلماتی که که می خواید نمایش داده نشه رو بهش بدید و براش تعریف کنید که اگر در عنوان یک پست در حال انتشار این کلمات بود وضعیت انتشار پست رو به Draft و یا Pending review توی دیتابیس تغییر بده و یا اینکه کلا پست رو پاک کنه و یا اینکه اون کلمه رو با کلمه ایی که تعریف می کنید جایگزین کنه.
پاسخ : جلوگیری از انتشار پست با عنوان های خاص
نقل قول:
نوشته اصلی توسط
1wp.ir
فکر کنم ساده ترین راهش این باشه که یه متغیر php توی فایل فانکشن قالب تعریف کنید و کلماتی که که می خواید نمایش داده نشه رو بهش بدید و براش تعریف کنید که اگر در عنوان یک پست در حال انتشار این کلمات بود وضعیت انتشار پست رو به Draft و یا Pending review توی دیتابیس تغییر بده و یا اینکه کلا پست رو پاک کنه و یا اینکه اون کلمه رو با کلمه ایی که تعریف می کنید جایگزین کنه.
امکانش هست یه نمونه کد بذارید برام؟ چون متاسفانه فانکشنی که باید نوشته بشه نمیدونم به چه صورته
چندتا کد هم توی فروم های خارجی پیدا کردم اما متاسفانه بدردم نخورد !
اگه کدی در این باره موجوده ممنون میشم برام بذارید.
پاسخ : جلوگیری از انتشار پست با عنوان های خاص
پاسخ : جلوگیری از انتشار پست با عنوان های خاص
سلام با مسدود کردن بعضی از کاراکترها می تونید جلوی این کار رو بگیرید .با تشکر کمک وردپرس
پاسخ : جلوگیری از انتشار پست با عنوان های خاص
نقل قول:
نوشته اصلی توسط
komakwpco
سلام با مسدود کردن بعضی از کاراکترها می تونید جلوی این کار رو بگیرید .با تشکر کمک وردپرس
اینو که گفتن عزیز
منم عرض کردم چطور باید اینکارو بکنیم؟
پاسخ : جلوگیری از انتشار پست با عنوان های خاص
کد:
function myp($post_id) {
if(wp_is_post_revision($post_id)) return;
if(get_the_title($post_id) == "test") {
wp_update_post([
'ID' => $post_id,
'post_status' => 'pending'
]);
}
}
add_action('save_post', 'myp');
پاسخ : جلوگیری از انتشار پست با عنوان های خاص
نقل قول:
نوشته اصلی توسط
T.Toosi
کد:
function myp($post_id) {
if(wp_is_post_revision($post_id)) return;
if(get_the_title($post_id) == "test") {
wp_update_post([
'ID' => $post_id,
'post_status' => 'pending'
]);
}
}
add_action('save_post', 'myp');
خیلی ممنون کار میکنه
فقط یه مشکلی که داره اینه که عینا روی همون کلمه عمل میکنه
چه تغییری باید بدم که هروقت این کلمات توی تایتل بود این کد لحاظ بشه؟
مثلا همین کلمه ی test توی این عنوان :
test wordpress code
توی این عنوان هم کلمه ی test هست میخوام اینم اجازه ی انتشار بهش نده
پاسخ : جلوگیری از انتشار پست با عنوان های خاص
نقل قول:
نوشته اصلی توسط
mgt1234
خیلی ممنون کار میکنه
فقط یه مشکلی که داره اینه که عینا روی همون کلمه عمل میکنه
چه تغییری باید بدم که هروقت این کلمات توی تایتل بود این کد لحاظ بشه؟
مثلا همین کلمه ی test توی این عنوان :
test wordpress code
توی این عنوان هم کلمه ی test هست میخوام اینم اجازه ی انتشار بهش نده
WP Content Filter – Censor All Offensive Content From Your Site – WordPress plugin | WordPress.org
پاسخ : جلوگیری از انتشار پست با عنوان های خاص
نقل قول:
نوشته اصلی توسط
sitetheme
ممنون اما این کاربرد مدنظر ما رو نداره، این کلمات رو سانسور میکنه و بجاشون ستاره یا هر کاراکتر دیگه ای قرار میده و توی انتشار پست تغییری ایجاد نمیکنه !