خانه >>>>>> آموزش ها >>>>>> ۱۴ کد و هک وردپرس که هر برنامه نویسی باید بداند+توضیح

۱۴ کد و هک وردپرس که هر برنامه نویسی باید بداند+توضیح

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

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

برای اینکه مطمئن شوید وردپرس کیفیت تصاویر شما را کاهش نمی دهد و از ۱۰۰ درصد کیفیت آنها استفاده کنید این کد را به فایل فانکشن (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";') );

اما اگر برخلاف مh دوست دارید تا از ویرایشگر دیداری وردپرس استفاده کنید می توانید از کد زیر را در 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://iranitarh.com/';
return $redirect_to;
}
}
add_action('admin_init','redirect_user_on_role');

?>

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

منلع اصلی:rokesh.ir با کمی ویرایش توسط تیم بلاگ ایرانی طرح

درباره ی اسفندیار سلیمانی

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

۲ دیدگاه

  1. سلام
    مهندس این اخلاقت منو کشته.
    خداییش چرا منبع میزاری؟
    پایینش چرا میگی این سایتا گذاشتند؟

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

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *