کدهای مفید از 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');

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

  خطای فایل pluggable.php در وردپرس + راه حل آن

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

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

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

به قول دوستان شاد و وردپرسی باشید.

آیا این مقاله برای شما مفید بود؟
تقریبا
خیر

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

ارسال دیدگاه به معنی این است که شما ابتدا قوانین ارسال دیدگاه را مطالعه کرده‌اید و با آن موافق هستید.

دیدگاه‌های این نوشته جدید ترین ها شاخص

  1. میشه یکی بگه که کدهای این پست کجاست؟

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

  3. مطمئنا نه ولی تست کنید.

  4. سلام.من تازه کار با ورد پرس رو شروع کردم وزیاد در موردش اطلاع ندارم.میشه بگید کدهای بالا رو باید در کدوم فابل قرارداد؟