14 کد و هک وردپرس که هر برنامه نویسی باید بداند

۱۴ کد و هک وردپرس که هر برنامه نویس وردپرسی باید بداند

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

با وجود اینکه تا به حال هزاران افزونه رایگان برای وردپرس منتشر شده است , اما تنها با اضافه کردن یک تکه کد به سایت خود می توانید به سرعت ویژگی ای که دوست دارید را به وردپرس اضافه کنید.

من همیشه به دنبال آموزش ها و ترفند های جدیدی هستم که کار کردن با وردپرس را آسانتر و همچنین جذابتر می کند, در این مطالب هم می خواهم شما را با ۱۴ هک دستی وردپرس آشنا کنم.

۱. افزایش کیفیت تصاویر آپلود شده در وردپرس

وردپرس به طور خودکار تصاویر را به ۹۰ درصد تصویر اصلی که شما آپلود می کنید فشرده می کند. این مورد یک دقدقه بزرگ برای همه وبمستر ها نیست اما برخی از کاربران وردپرس مانند عکاسان دوست ندارند تا حتی ۱۰ درصد از کیفیت تصاویرشان کاهش پیدا کند.

برای اینکه مطمئن شوید وردپرس کیفیت تصاویر شما را کاهش نمی دهد و از ۱۰۰ درصد کیفیت آنها استفاده کنید این کد را به فایل فانکشن (functions.php) قالب خود اضافه کنید.

add_filter( 'jpg_quality', 'high_jpg_quality' );
function high_jpg_quality() {
return 100;
}

۲. آدرس های (URLs) مناسب

این ایده خوبی است برای اطمینان از URL ها مه به درستی شکل گرفته باشند و خالی از هر گونه کاراکتر غیر معتبر باشند. شما این کار را با استفاده از تابع esc_url() انجام دهید.

$my_url = 'http://myawesomesite.com/?awesome=true';
$url = esc_url( $my_url );

۳. کد های کوتاه (Shortcodes) در ابزارک های متنی

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

add_filter( 'widget_text', 'do_shortcode' );

۴. ایجاد تاخیر در ارسال پست ها به خوراک RSS

RSS یک ابزار خوب برای تعامل با کاربران است که وردپرس به طور پیشفرض از این قابلیت پشتیبانی می کند اما برخی از مواقع همین RSS می تواند باعث ایجاد مشکلاتی شود. زمانی که شما مطلب را منتشر می کنید بلافاصه این مطلب در RSS نیز منتشر می شود اما به دو دلیل بهتر است در ارسال پست ها به RSS تاخیر ایجاد کنید:

۱- ممکن است ربات های سایت های خبری به سرعت مطلب شما را دریافت و در سایت خودشان منتشر کنند و به ضرر سایت شما شود.
۲- اگر اشتباه تایپی در مطلب خود داشته باشید با این کار می توانید آن را ویرایش و نسخه اصلاح شده مطلب را در اختیار کاربر قرار دهید.

حال اگر می خواهید مشکلاتی که گفتیم برای شما ایجاد نشود می توانید با اضافه کردن کد زیر به فایل فانکشن در ارسال مطالب به RSS تاخیر ایجاد کنید.

function publish_later_on_feed($where) {
global $wpdb;
if ( is_feed() ) {
$time_now = gmdate('Y-m-d H:i:s');
$time_delay = '15'; // integer
$time_span = 'MINUTE'; //MINUTE, HOUR, DAY, WEEK, MONTH, YEAR
$where = " AND TIMESTAMPDIFF($device, $wpdb->posts.post_date_gmt, '$time_now') > $time_delay ";
}
return $where;
}
add_filter('posts_where', 'publish_later_on_feed');

شما می توانید با تغییر مقدار $delay مدت زمان تاخیر در ارسال مطالب به خوارک وردپرس را تغییر دهید.

۵. نمایش تصاویر شاخص در خوراک RSS وردپرس

گاها یک تصویر هزاران حرف را که شما می خواهید به صورت نوشتاری طولانی بنویسید را می زند. با اضافه کردن تصاویر شاخص به خوراک سایت خود می توانید تمایل دنبال کنندگان خوراک سایت خود را را به بازدید کردن از سایتتان افزایش دهید.

add_filter('the_content_feed', 'rss_post_thumbnail');
function rss_post_thumbnail($content) {
global $post;
if( has_post_thumbnail($post->ID) )
$content = '<p>' . get_the_post_thumbnail($post->ID, 'thumbnail') . '</p>' . $content;
return $content;
}

۶. غیر فعال کردن HTML در نظرات وردپرس

اسپم هایی که برخی از ربات ها در نظرات سایت های وردپرس ارسال می کنند واقعا عذاب آور است. برای مقابله با اسپم ها می توانید قابلیت درج کدهای HTML در نظرات وردپرس را غیر فعال کنید زیرا اکثر نظرات اسپم دارای لینک یا متن های bold می باشند. با افزودن کد زیر به فایل فانکشن می توانید مانع از ارسال نظرات اپم شوید.

// This will occur when the comment is posted
function plc_comment_post( $incoming_comment ) {
// convert everything in a comment to display literally
$incoming_comment['comment_content'] = htmlspecialchars($incoming_comment['comment_content']);
// the one exception is single quotes, which cannot be #039; because WordPress marks it as spam
$incoming_comment['comment_content'] = str_replace( "'", '&amp;apos;', $incoming_comment['comment_content'] );
return( $incoming_comment );
}
// This will occur before a comment is displayed
function plc_comment_display( $comment_to_display ) {
// Put the single quotes back in
$comment_to_display = str_replace( '&amp;apos;', "'", $comment_to_display );
return $comment_to_display;
}

۷. میانبری برای دسترسی به ادرس سایت شما

وردپرس دارای یک تابع ساده است که خیلی سریع می تواند آدرس سایت شما را فراخوانی کند. با استفاده از این تابع دیگر نیازی با تایپ کردن آدرس سایت خود ندارید, همچنین با تغییر دادن دامین سایت خود نیاز به تغییر در کدها قالب نخواهید داشت.

<?php bloginfo('url'); ?>

برای مثال از این تابع به شکل زیر می توانید استفاده کنید:

<a href="<?php bloginfo('url'); ?>/about">About Our Company</a>

۸. مطالب تازه وبلاگ شما در صفحه نخست

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

<?php query_posts($query_string . '&showposts=5' ); ?>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<div class="story">
<div class="story-content">
<h4><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h4>
<?php the_excerpt(); ?>
<?php endwhile; endif; ?>

شما می توانید با تغییر عدد ۵ در خط اول تعداد مطالب که می خواهید نشان داده شود را مدیریت کنید.

۹. شخصی سازی لوگو داشبورد وردپرس

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

add_action('admin_head', 'custom_logo');

function custom_logo() {
echo '

<style type="text/css"><!--
#header-logo { background-image: url('.get_bloginfo('template_directory').'/images/custom-logo.png) !important; }
--></style>';
}

در این کد برای نمونه آدرس لوگو شما images/custom-logo.png در نظر گرفته شده است که می توانید آن را تغییر دهید.

۱۰. حذف پیغام خطا از صفحه ورود وردپرس

زمانی که کاربران سایت شما نام کاربری یا گذرواژه ای اشتباه برای ورود به وردپرس وارد کنند یک پیغام برای آنها به نمایش می آید که کدام یک را اشتباه وارد کرده اند. همین اخطار ها می توانند به هکر ها برای حدث زدن رمز سایت شما کمک کنند.

با استفاده از کد زیر این راه نفوذ هکر ها را مسدود کنید

add_filter('login_errors',create_function('$a', "return null;"));

۱۱. حذف نمایش عمومی نسخه وردپرس

یکی از راهای دیگر برای مبارزه با هکر ها پنهان کردن نسخه وردپرس می باشد که از آن استفاده می کنید. مثلا اگر شما از یک نسخه که ارای یک حفره امنتی است استفاده می کنید و هکر به راحتی متوجه شود که شما از آن نسخه استفاده می کنید هک کردن سایت شما برای او آسانتر می شود. با حذف نسخه وردپرس می توانید یک گام دیگر وردپرس را ایمنتر کنید.

<?php
// Remove the WP version for extra WordPress Security
function remove_wp_version(){ 
return ''; 
} 
add_filter('the_generator', 'remove_wp_version'); 
?>

۱۲. تاریخ خودکار برای متن کپی رایت پاورقی

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

شما می توانید این مشکل را با نمایش خودکار تاریخ جاری (مثل © ۱۳۹۲-۱۳۹۳) حل نمایید.

function comicpress_copyright() {
global $wpdb;
$copyright_dates = $wpdb->get_results("
SELECT
YEAR(min(post_date_gmt)) AS firstdate,
YEAR(max(post_date_gmt)) AS lastdate
FROM
$wpdb->posts
WHERE
post_status = 'publish'
");
$output = '';
if($copyright_dates) {
$copyright = "© " . $copyright_dates[0]->firstdate;
if($copyright_dates[0]->firstdate != $copyright_dates[0]->lastdate) {
$copyright .= '-' . $copyright_dates[0]->lastdate;
}
$output = $copyright;
}
return $output;
}

کد بالا را به فایل فانکشن قالب خود اضافه کنید و بعد کد زیر را در فوتر جایی که می خواهید تاریخ نشان داده شود قرار دهید.

<?php echo comicpress_copyright(); ?>

۱۳. تنظیم ویرایشگر پیشفرض

اگر شما هم مثل من دوست دارید تا همیشه از ویرایشگر متنی یا همان HTML وردپرس استفاده کنید می توانید به افزودن کد زیر به فایل functions.php ویرایشگر متنی را به عنوان ویرایشگر پیشفرض وردپرس تعریف کنید.

# Visual Editor as default
add_filter( 'wp_default_editor', create_function('', 'return "tinymce";') );

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

# Visual Editor as default
add_filter( 'wp_default_editor', create_function('', 'return "html";') );

۱۴. انتقال یک کاربر پس از ورود به آدرسی خاص

شما می توانید کاربرانی که وارد سایتتان می شوند را با استفاده از کد زیر به صفحه ای که دوست دارید منتقل کنید. تنها کافی است تا کد زیر را به فایل فانکشن اضافه کنید.

<?php function redirect_user_on_role() { //retrieve current user info global $current_user; get_currentuserinfo(); //If login user role is Subscriber if ($current_user->user_level == 0)
{
wp_redirect( home_url() ); exit;
}
//If login user role is Contributor
else if ($current_user->user_level > 1)
{
wp_redirect( home_url() ); exit;
}
//If login user role is Editor
else if ($current_user->user_level >8)
{
wp_redirect( home_url() ); exit;
}
// For other rolse
else
{
$redirect_to = 'http://rokesh.ir/';
return $redirect_to;
}
}
add_action('admin_init','redirect_user_on_role');

?>

به جای http://rokesh.ir آدرس صفحه ای که می خواهید کاربران به آنجا منتقل شوند را وارد کنید.


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

دیدگاه کاربران

  1. ببخشید قالبی هست که مثل صحیفه یک کنترل پنل شیک و تر تمیز داشته باشه؟ دوست دارم سایتم مثل سایت شما خلوت باشه … البته نه مثل شما … دوست دارم خلوت باشه.

    پوسته ای سراغ دارید؟

  2. سلام
    خدا قوت.
    نکات فوق العاده کاربردی و جالبی بود.
    دستتون درد نکنه.
    ببخشید شما میدونید چطور باید گراواتار ها و تصاویر شاخص رو سئو کرد؟
    یعنی ویژگی alt , title رو چطور باید بهشون اضافه کرد؟
    http://www.arize.ir
    خیلی ممنون.

    • سعید شعبانی

      برای سئو تصاویر شاخص شما باید ابتدا وقتی داخل وردپرس تصویری را آپلود می کنید تمام فیلد های مربوط به اون تصویر را پر کنید بعد با فراخوانی تصویر شاخص توسط کد زیر تمام اطلاعات از جمله alt , title به تگ تصویر اضافه می شوند.

      the_post_thumbnail();
      

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

  3. saman

    سلام .می خواستم بدونم چطور میشه در وردپرس ۳.۸ متن کپی رایت وردپرس حذف کرد.
    منظورم .همون نوشته با افتخار قدرت گرفته از وردپرس .
    ممنون.

  4. saman

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

  5. سلام

    چگونه میتونم تعداد کارکترهای متن را در rss‌یا همون خوراک وردپرس را کم کنم ؟ مثلا فقط ۱۰ کاراکتر رو نشون بدهد…

  6. Peyman

    در قسمت میانبری برای دسترسی به ادرس سایت شما کدی php که نوشتین بسته نشده یعنی برای بستن کد php باید از ؟> استفاده کنید!

  7. مهدی

    با سلام من از پورتال مدارس استفاده میکنم فکر کنم از ورد پرس قدرت می گیرد متاسفانه محدودیت ۵۰۰کارکتری برای آن تعریف کرده اند آیا راهی دارد که این محدودیت را بردارم…سپاس

  8. مفید و آموزنده بود
    کدها هم کاملا واضح بود
    موفق و سلامت باشید

  9. مهسا

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

کاربر گرامی برای ارسال دیدگاه اگر عضو روکش هستید باید سایت شوید در غیر اینصورت باید عضو شوید.