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

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

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

مشاوره آموزشی رایگان
شما این فرصت را دارید، با تکمیل فرم زیر، قبل از انتخاب دوره آموزشی مناسب خود، از مشاوره رایگان کارشناسان آموزشی مجموعه همیار آکادمی استفاده نمائید.
 
مشاوران آموزشی
همیار آکادمی
پاسخگوی شما هستند
آیا این مقاله برای شما مفید بود؟
تقریبا
خیر

اگر می‌خواهید از آخرین و محبوب‌ترین مقالات ما در ایمیل خود مطلع شوید، همین الان ایمیل خود را در کادر زیر وارد کنید:

تعداد علاقه‌مندانی که تاکنون عضو خبرنامه ما شده‌اند:

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

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

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

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

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

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

  5. سلام
    ممنون از مطلب خوبتون
    یک سوال این درگاه پارس پال هزینه ای برای ثبت نام می گیره یا شرایطی برای ثبت داره

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

  7. چرا هنوز نظرم مورد تایید قرار نگرفته؟! 🙁 🙁 🙁

  8. سلام،
    این کد رو تست کنید:

    &lt;?php the_author_meta('facebook'); ?&gt; 
  9. حالا به حساب کد هارو کجا قرار بدیم؟ تو همون Functions.php ؟؟؟؟

  10. ممنون بسیار عالی بود
    فقط این « کد اضافه کردن روش های جدید ارتباطی به پروفایل کاربر »
    بعد از اضافه کردن به فانکشن چطور فراخوانی کنیم ؟

  11. وحید جان بسیار عالی و استفاده کردیم.تشکر

  12. برای جایگزین کردن تصویر شاخص بجای زمینه دلخواه وجود ندارد موردی که

    تصاویر شاخص حذف و زمینه دلخواه جایگزین شوند راهی ، موردی چیزی…

  13. سلام
    ممنون از این پست مفید!
    یه سوال برام پیش اومد! در کدی که برای اضافه کردن target=”blank” به تمام لینک ها (باز شدن تمام لینک های سایت در پنجره جدید)
    اگر به جای target=”blank” کد نو فالو کردن لینک رو بذاریم یا هر چیز دیگه ای مربوط به لینک، باید کد درست کار کنه درسته(مثلا اگر به جاش کد نو فالو رو بذاریم باید با این قطعه کد جدید، همه لینک های ما نو فالو بشن درسته! ) ؟

  14. این کدها رو باید در کدوم یک از فایل ها بریزم؟؟؟

دوره‌های آموزشی