10 قدم به سوی شخصی سازی پوسته وردپرس

در این پست می‌خواهیم 10 کار مهمی را که باعث بهینه شدن قالب وردپرس‌تان می‌شود را به شما معرفی کنیم.

یکی از ویژگی‌های وردپرس، استفاده آسان و سازگاری آن برای کارهای گوناگون است.

تنها کاری که باید انجام دهید این است که فایل functions.php قالب خود را بازکرده و کدهای زیر را به آن اضافه کنید.

فراموش نکنید که برای احتیاط، از این فایل بک‌آپ بگیرید.

1- محدود کردن تعداد کلمات خلاصه متن یا Excerpt

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

برای اینکه بتوانید تعداد کلمات خلاصه هر مطلب را محدود کنید باید از کد زیر استفاده کنید:

add_filter('excerpt_length', 'mandegarweb_excerpt_length');
function mandegarweb_excerpt_length( $length ){
return ۱۰;
}

در اینجا ما از تابع add_filter استفاده کردیم و بعد با تعریف یک تابع دیگر به نام mandegarweb_excerpt_length ، مقدار برگشتی آن را 10 گذاشتیم ، یعنی 10 کلمه نمایش داده شود.

2- اضافه کردن Favicon با استفاده از یک هوک وردپرس

هوک‌ها یا قلاب‌ها به شما اجازه می‌دهند که که یک کد دلخواه را بدون تغییر فایل‌ها (کدها) پیش‌فرض وردپرس به آن اضافه کنید. این کار باعث انعطاف‌پذیری هرچه بیشتر وردپرس می‌شود. حالا شما زمانی که نیاز به تغییر چیزی داشتید فقط کافی است که یک هوک و تابع دلخواه خود را ایجاد کنید. به عنوان نمونه وقتی که شما می‌خواهید یک Favicon به سایت خود اضافه کنید، لازم نیست که به فایل header.php بروید، فقط کافیست از هوک add_action در تابع wp_head استفاده کنید.

فایل favicon.ico حتما باید در روت سایت شما باشد.

add_action( 'wp_head', 'mandegarweb_favicon');
function mandegarweb_favicon(){
echo '<link rel="shortcut icon" href="http://mandegarweb.com/favicon.ico" type="image/x-icon">';
}

3- شناسایی مرورگر Safari در IOS

امروزه وبسایت‌ها برای انواع مختلفی از دستگاه‌ها یا موبایل‌ها نسخه مخصوص به خود را دارند و از تکنولوژی‌های متفاوت استفاده می‌کنند.

ممکن است استایلی که برای سایت خود می‌نویسید با یک مرورگر سازگار باشد و به خوبی در آن اجرا شود و ممکن است در یک دستگاه یا مرورگر به خوبی اجرا نشود.  بعضی از استایل‌ها در Safari به خوبی اجرا نمی‌شوند و باید برای Safari استایل‌های جدایی بنویسید. وردپرس برای این کار راه امنی دارد و شما می‌توانید به آسانی تشخیص دهید که کاربر از آیفون یا آیپد استفاده می‌کند.

وردپرس برای این کار متغیری به نام is_iphone دارد. در مثال زیر با استفاده از این متغیر، ابتدا نوع دستگاه کاربر را تشخیص می‌دهیم، سپس استایل مخصوص به آن را به صفحه اضافه می‌کنیم.

add_action('wp_print_styles', 'mandegarweb_enqueue_styles');
function mandegarweb_enqueue_styles(){
global $is_iphone;
if( $is_iphone ){
wp_enqueue_style('iphone-css', get_stylesheet_directory_uri() . '/iphone.css');
}
else{
wp_enqueue_style('common-css', get_stylesheet_directory_uri() . '/common.css');
}
}

در اینجا ما از تابع پیش‌فرض وردپرس یعنی wp_enqueue_style برای اضافه کردن فایل CSS خود در عنصر head صفحات استفاده کردیم.

4- حذف کردن عناصر اضافی از Header

وردپرس به صورت خودکار تگ‌هایی به قسمت head صفحات شما اضافه می‌کند که کارآمد نیستند و بهتر است که آن‌ها را حذف کنید.

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

وردپرس تگ دیگری نیز به نام XML-RPC ایجاد می‌کند.

XML-RPC چیست؟

XML-RPC یک پروتکل فراخوانی دستورها از راه دور است. این پروتکل تا قبل از نسخه 3.5 وردپرس به دلیل مسائل امنیتی غیرفعال بود ولی در نسخه 3.5 وردپرس این پروتکل را به صورت پیش‌فرض فعال کرد و امکان غیرفعال سازی آن را از پنل مدیریت حذف کرد. اگر بخواهیم ساده تر این پروتکل را توضیح دهیم، با استفاده از این پروتکل شما می‌توانید از طریق نرم‌افزارهای وبلاگ نویسی مثل Windows Live Writer در وردپرس مطلب منتشر کنید.

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

تگ‌هایی که وردپرس به صورت پیش‌فرض تولید می‌کند:

<meta name="generator" content="WordPress 4.2.4">
<link rel="EditURI" type="application/rsd+xml" title="RSD" href="http://example.com/xmlrpc.php?rsd">
<link rel="wlwmanifest" type="application/wlwmanifest+xml" href="http://example.com/wp-includes/wlwmanifest.xml">

برای اینکه تگ‌های بالا را از صفحات خود حذف کنید باید کدهای زیر در فایل functions.php خود اضافه کنید:

add_filter('the_generator', create_function('', 'return "";'));
remove_action('wp_head', 'rsd_link');
remove_action('wp_head', 'wlwmanifest_link');

با این کار تمامی تگ‌های اضافی که وردپرس به صورت پیش‌فرض می‌سازد از صفحات شما حذف می‌شوند و کاربران نمی‌توانند آن ها را تماشا کنند.

برای این که بتوانید به صورت کامل XML-RPC را غیرفعال کنید از کد زیر استفاده کنید:

add_filter('xmlrpc_enabled', '__return_false');

5- ریدایرکت فید وردپرس به فیدبرنر

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

بعد از اضافه کردن فید سایت‌تان به فیدبرنر از کد زیر استفاده کنید:

add_action('template_redirect', 'mandegarweb_rss_redirect');
function mandegarweb_rss_redirect() {
if (is_feed() && !preg_match('/feedburner|feedvalidator/i', $_SERVER['HTTP_USER_AGENT'])){
header('Location: http://feeds.feedburner.com/mandegarwebcom/feed');
header('HTTP/1.1 302 Temporary Redirect');
}
}

به جای mandegarwebcom/feed ، آدرس فیدتان در فیدبرنر را بنویسید.

6- نمایش تصاویر بندانگشتی در فید سایت

برای تشویق مشترکان برای بازدید از سایت‌تان، به جای این که به آن‌ها اجازه دهید فقط مطالب را در فید سایت تماشا کنند ، تصاویر بندانگشتی یا تصاویر برگزیده هر پست را هم به فید سایت اضافه کنید.

وردپرس به صورت پیشفرض تصاویر بندانگشتی را در فید سایت نمایش نمی‌دهد.

برای نمایش تصاویر بندانگشتی در فید سایت از کد زیر استفاده کنید :

add_filter('the_content_feed', 'mandegarweb_rss_post_thumbnail');
function mandegarweb_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;
}

7- نمایش محتوا فقط به مشترکان RSS

برای این که مشترکان فید آر اس اس سایت‌تان را افزایش دهید باید برای آن‌ها امکانات ویژه‌ای را در نظر بگیرید.

در اینجا ما یک shortcode جدید ایجاد می‌کنیم و این shortcode، مطالب را برای کاربران عادی مخفی کرده ولی برای مشترکان فید آر اس اس نمایش می‌دهد.

add_shortcode('feedonly', 'mandegarweb_feedonly');
function mandegarweb_feedonly($atts, $content = null) {
if(is_feed()) return '<p>' . $content . '</p>';
else return;
}

8- نمایش محتوا فقط به کاربران لاگین شده در سایت

در بعضی مواقع شما باید محتوای سایت را فقط به کاربران وارد شده در سایت نمایش دهید. در اینجا ما یک shortcode جدید ایجاد می‌کنیم و این shortcode، مطالب را برای کاربران وارد شده در سایت نمایش می‌دهد و اگر کاربری در سایت وارد نشده بود پیام “لطفا برای تماشای محتوا وارد سایت شوید” برای او نمایش داده می‌شود.

add_shortcode('loggedin', 'mandegarweb_loggedin');
function mandegarweb_loggedin($atts, $content = null) {
if(is_user_logged_in()) return '<p>' . $content . '</p>';
else return 'لطفا برای تماشای محتوا وارد سایت شوید';
}

9- تغییر لوگو صفحه ورود به لوگو خودتان

برای این که بتوانیم لوگوی خودمان را به جای لوگوی وردپرس در صفحه ورود جایگزین کنیم باید از هوک login_head استفاده کنیم. تمام توابعی که در صفحه ورود و در قسمت head صفحه قرار دارند به این هوک متصل هستند.

add_action('login_head', 'mandegarweb_custom_login');
function mandegarweb_custom_login() {
echo '<style type="text/css">
h1 a {background-image:url('. get_stylesheet_directory_uri() . '/images/login-logo.png' . ') !important; margin-bottom: 10px;
padding: 20px;}
</style>';
}

فراموش نکنید که این تصویر باید در پوشه قالب‌تان باشد. و به جای /images/login-logo.png ، محل قرارگیری تصویر مورد نظرتان را بنویسید.

10- حذف کردن نوار مدیریت یا Admin Bar برای کاربران به غیر از مدیر سایت

به نظر من بهتر است که نوار مدیریت را برای کاربران عادی سایت غیرفعال کنید.

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

add_action('after_setup_theme', 'mandegarweb_remove_admin_bar');
function mandegarweb_remove_admin_bar() {
if (!current_user_can('administrator') && !is_admin()) {
show_admin_bar(false);
}
}

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


کانال تلگرام ماندگار وب

  1. حمید انوری

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

    1. محمدمهدی جبارپور

      سلام دوست خوبم
      ممنون از لطف شما

  2. رها شیخی

    سلام
    مطلبتون عالی بود استفاده بردیم.

    1. محمدمهدی جبارپور

      سلام دوست عزیز
      خواهش می کنم

    1. محمدمهدی جبارپور

      سلام دوست عزیز
      خواهش می کنم

  3. محسن شکوهی

    مقاله بسیار مفیدی بود !
    تشکر

    1. محمدمهدی جبارپور

      سلام دوست عزیز
      خواهش می کنم

  4. جمال

    سلام
    من فید سایت رو به خاطر سایت های فید خوان بستم کلا و تو گوگل وبمستر م سرور ارور دریافت می کنم به خاطر بستن فید!
    ب
    به نظر شما چی کار باید انجام بدم؟ بستن فید به ضرر سایت هستش؟
    سپاس

    1. محمدمهدی جبارپور

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

      1. جمال

        سلام
        با کدی که در فایل فانکشن گذاشتم، وقتی که به فید سایت میرم میگه “هیچ فیدی موجود نیست لطفا به صفحه نخست بروید”
        ولی سرور ارور دریافت میکنم در GWT.
        اگر هم فید رو باز کنم سایت های فید خوان مطالب سایتم رو میدزدن!

        1. جمال

          لطف می کنید راهنمایی کنید چی کار باید انجام بدم؟

          1. محمدمهدی جبارپور

            سلام دوست عزیز
            حتما مشکلی در قالب یا سایت شما وجود دارد. برای همین کدهای مربوط به این کار را از فایل functions.php قالبتان حذف کنید و به جای این کار از افزونه FD Feedburner Plugin استفاده کنید.

          2. جمال

            اگه از این افزونه به جای کد استفاده کنم سایت ها یفید خوان باز م یتونن مطالب رو کپی کنن؟

          3. محمدمهدی جبارپور

            سلام دوست عزیز
            می تونید برای جلوگیری از کپی شدن مطالب توسط سایت های فیدخوان از افزونه های زیر استفاده کنید :
            1- افزونه ضد خبرخوان
            2- افزونه no-more-frames
            3- افزونه sem-frame-buster
            و خیلی از افزونه های دیگه

          4. جمال

            ممنون از پاسخگوییتون
            از افزونه Disable Feeds دارم استفاده می کنم به جای اون کد! فعلا که ارور 500 در GWT نداشتم.

  5. فرهاد پویا

    سلام دوست عزیز اگر میشه منو راهنماي کنید که این کدها رو کجاقرار بدم ممنون میشم

    1. محمدمهدی جبارپور

      سلام دوست عزیز
      این کدها را باید در فایل functions.php قالبتان قرار دهید.

  6. امید

    با سلام
    سوال من ربطی به این مقاله نداره البته همچین بی ربط هم نیست
    من یه مشکلی دارم ، به دنبال یک افزونه یا کد هستم که نویسنده به مطلب خودش ستاره بده نه کاربران… مثلا یه مقاله بنویسه و به مقاله خودش ستاره بده و کاربران ستاره اون رو ببنین و کاربر تو ستاره دادن نقشی نداشته باشه

    باتشکر

    1. محمدمهدی جبارپور

      سلام دوست عزیز
      یکی از بهترین افزونه ها برای این کار ، افزونه Author Post Ratings است که به نویسنده مطلب اجازه می دهد که در قسمت افزودن نوشته به پست خود امتیازی از 1 تا 5 بدهد.
      لینک این افزونه :
      https://wordpress.org/plugins/author-post-ratings/

  7. طراحی سایت

    ممنون از مطلبی که گذاشتید خیلی مفید بود

    1. محمدمهدی جبارپور

      سلام
      خواهش می کنم دوست عزیز

  8. میلاد

    سلام من مورد اول را که مربوط به خلاصه میشه به function.php اضافه میکنم اما درست نمیشه میتونید بگید که مشکلش چیه ؟؟
    در ضمن اگه میشه به ایمیلم بفرستید ممنون .

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

تنها دیدگاه‌هایی که به فارسی نوشته می‌شوند پذیرفته خواهند شد!

ماندگار وب - 1395
فروش - خرید هاست وردپرس فارسی