کدهای مفید از action hooks و filters ها

سلام به کاربران عزیز وردپرس فارسی

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

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

به صورت پیشفرض وردپرس تصاویر jpeg رو بعد از آپلود فشرده میکنه، در مورد این مورد زیاد توضیح نمیدم چون قبلا در موردش در همیار مطلب منتشر شده و فقط کامل شدن این مطلب اونو میگیم، در هر صورت برای غیرفعال سازیش کد زیر رو در فایل Functions.php قرار دهید:

add_filter('jpeg_quality', function($arg){return 100;});

اضافه کردن target=”blank” به تمام لینک ها (باز شدن تمام لینک های سایت در پنجره جدید)

هیچ موافق اجبار کردن کاربران به بازشدن لینک ها در پنجره جدید نبودم اما اگر در شرایط خاص نیاز داشتید تا تمام لینک ها را دارای این خاصیت کنید از کد زیر استفاده کنید:

function autoblank($text) {
$return = str_replace('<a', '<a target="_blank"', $text);
return $return;
}
add_filter('the_content', 'autoblank');

اضافه کردن روش های جدید ارتباطی به پروفایل کاربر

به صورت پیشفرض وردپرس به کاربران اجازه میدهد تا کاربران پروفایل های توییتر، گوگل پلاس، AIM، Yahoo IM، و Jabber / Google Talk رو قرار بدن اما اگر نیاز داشتید تا مثلا فیلد فیس بوک رو هم به این گزینه ها اضافه کنید از کد زیر استفاده کنید:

function my_user_contactmethods($user_contactmethods){
$user_contactmethods['facebook'] = 'Facebook Username';

return $user_contactmethods;
}

add_filter('user_contactmethods', 'my_user_contactmethods');

حذف کردن جهش ادامه مطلب

شاید از عنوان متوجه شده باشید منظور این کد چیست، به هر حال لینک هایی که وردپرس از ادامه مطلب یک متن می سازد حاوی #more هستند که وقتی وارد این صفحات میشیم، به صورت خودکار اسکرول به متن صفحه میره، اگر خواستید این لینک ها رو غیرفعال کنید و به حالت معمولی برگردونید از کد زیر استفاده کنید:

function wdc_no_more_jumping($post) {
return '<a href="'.get_permalink($post->ID).'" class="read-more">'.'Continue Reading'.'</a>';
}
add_filter('excerpt_more', 'wdc_no_more_jumping');

نمایش پیام فوری در مدیریت وردپرس

مواقعی که در حال نوشتن یک پلاگین یا طراحی یک قالب هستید، شاید نیاز داشته باشید به کاربران بابت مسئله ای هشدار دهید، مثلا نصب پلاگینی برای کارکرد صحیح قالب یا به روز رسانی پایگاه داده در هر صورت برای نمایش پیام اخطار در پنل مدیریت وردپرس از کد زیر استفاده کنید:

function showMessage($message, $errormsg = false){
if ($errormsg) {
echo '<div id="message" class="error">';
} else {
echo '<div id="message" class="updated fade">';
}

echo "<p><strong>$message</strong></p></div>";
}

function showAdminMessages() {
showMessage("You need to upgrade your database as soon as possible...", true);

if (user_can('manage_options','')) {
showMessage("Hello admins!");
}
}

add_action('admin_notices', 'showAdminMessages');

جایگزین کردن خودکار کلمات در مطالب شما

این کد بسیار مفید است، خود من بارها از اون استفاده کرده ام، فرض کنید شما سایتی دارید با عنوان “دانلود رایگان” حالا می خواهید یکم فارسی ترش کنید و توی تمام سایت همه ی “دانلود رایگان” ها رو بکنید “بارگذاری رایگان” شاید باید هزاران پست رو ویرایش می کردید اما با کد زیر می تونید تمامشون رو یکجا تغییر بدید، البته کد زیر مثال هست:

function replace_text_wps($text){
$replace = array(
'متن پیش فرض اول' => 'متن جایگزین اول',
'متن پیش فرض دوم' => 'متن جایگزین دوم',
);
$text = str_replace(array_keys($replace), $replace, $text);
return $text;
}

add_filter('the_content', 'replace_text_wps');
add_filter('the_excerpt', 'replace_text_wps');

اضافه کردن تصویر شاخص مطالب به خوراک

این کد خیلی جالب و مفیده و حتما از اون استفاده کنید:

function cwc_rss_post_thumbnail($content) {
global $post;
if(has_post_thumbnail($post->ID)) {
$content = '<p>' . get_the_post_thumbnail($post->ID) .
'</p>' . get_the_content();
}

return $content;
}
add_filter('the_excerpt_rss', 'cwc_rss_post_thumbnail');
add_filter('the_content_feed', 'cwc_rss_post_thumbnail');

حالت تعمیر سریع

معمولا بعضی مواقعی پیش میاد که باید دسترسی کاربران عادی از سایت قطع بشه و شما ویرایش ها یا تعمیرات سایتتون رو انجام بدید، پلاگین های زیادی این کارو انجام میدن، اما یه جمله ی معروف هست که میگه اگه میتونی با کد نیازتو برطرف کنی از پلاگین استفاده نکن !!! (-:

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

function cwc_maintenance_mode() {
if ( !current_user_can( 'edit_themes' ) || !is_user_logged_in() ) {
wp_die('متن خطا اینجا');
}
}
add_action('get_header', 'cwc_maintenance_mode');

غیرفعال کردن لینک شدن خودکار متن در نظرات

به طور پیشفرض اگر کسی در وبلاگ شما نظر بگذارد و متن نظر حاوی لینک باشد وردپرس به طور خودکار اون متن رو لینک میکنه. بعضی ها از این قابلیت خوششون میاد و بعضی ها هم نه، ولی باز موارد خاص رو در نظر بگیرید و اگر پیش اومدند از کد زیر استفاده کنید:

remove_filter('comment_text', 'make_clickable', 9);
اینم یه مطلب خوب دیگه برای کاربران وردپرسی عزیز  ..موفق باشید

تیم آقای وردپرس

تیم تولید محتوا و پشتیبانی سایت آقای وردپرس

دیدگاهتان را بنویسید