هک های وردپرس

۸ هک کاربردی برای سفارشی تر کردن وردپرس

تبلیغات
4 سوالی شهرداری
کانال تلگرام فتولیا

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

گرچه وردپرس ۳ + با امکاناتش همه اذهان را متوجه خودش کرد ولی گاهی چیزی که ما نیاز داریم به کل متفاوت از پیش فرض های سیستم است.این همان چیزی است که امروز می خواهیم در موردش صحبت کنیم.

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

 

دریافت خلاصه پست خارج از حلقه

با این ،دیگر نیازی ندارید تا حتما داخل حلقه باشید تا بتوانید خلاصه ای از آن را بیرون بکشید.این امکان مخصوصا زمانی مفید است که می خواهید تعدادی از پست ها را در بخش کناری (sidebar) نمایش دهید ،پس نیازی به داده های اضافی پست ندارید(مثلا فقط عنوان ،لینک و خلاصه )

 عدم نمایش نوار مدیریت وردپرس

وردپرس ۳ که آمد همراه خود یک نوار مدیریت سیاه رنگ نیز آورد که برای بعضی ها (مثل بنده) خوش آیند بود ولی برای بعضی های دیگر آزار دهنده یود.حالا اگر از گروه دوم هستید ،با استفاده از این کد می توانید آن را حذف کنید (در همین رابطه : چگونه نوار مدیریت جدید وردپرس را بردارم!) .

 

تنظیم نام ارسال کننده و ایمیل برای wp_mail()

وردپرس به صورت پیش فرض از ایمیل مدیر برای ارسال ایمیل استفاده می کند.ولی این امکان همیشه خوب نیست .شاید شما بخواهید ایمیل تان را به عنوان مدیر در وبلاگ قرار دهید ولی کس دیگری به پیام های تماس ،نظرات و … پاسخ دهد.بنابراین اگر مایل هستید این تنظیمات را تغییر دهید ،می توانید از اسنیپت زیر استفاده کنید:

ایمیل های HTML با تابع wp_mail()

به صورت پیش فرض اگر بخواهبد با تابع wp_mail() ،ایمیلی را در فرمت HTML ارسال کنید ،چیزی که دریافت خواهید کرد یک ایمیل متنی است.البته با قرار دادن تعدادی header این مشکل حل می شود ولی می خواهیم کمی جلوتر رفته و یک قالب (template) برای ایمیل هایمان ایجاد کنیم(مثلا contact.html) که شامل تعدادی متغیر php است و از این پس کافیست آن را در تابع ایمیل فراخوانی کنیم.فایل template من این گونه بود:

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

محدود کردن دسترسی به wp-admin

شاید بخواهید دسترسی کاربران عضو را به بخش wp-admin قطع کنید،چون واقعا نیازی به ورود به این بخش ندارند ،درسته ؟ خوب انجام این کار خیلی آسان است .کافیست از اسنیپت زیر استفاده کنید.

مخفی کردن پیام بروز کردن وردپرس بری همه غیر از ادمین عزیز

این پیام هشدار که وردپرس برای بروز کردن نسخه قدیمی به ما می دهید ،خیلی ضروری است و اگر نباشد ممکن است تا چند سال نفهمیم که نسخه جدیدی هم آمده است.ولی کاملا غیر حرفه ای است که کاربران عادی و یا همه غیر از مدیر این پیام را ببینند.درسته ؟پس چکاری انجام دهیم تا فقط برای مدیر نمایش داده شود؟ هیچی ،از کد زیر استفاده کنید :)


مخفی کردن منوهای مدیریت وردپرس

هنگامی که سایت های تکمیل شده را به مشتری ها می فروشیم ،ممکن است از امکانات زیاد آن کاملا سرگیجه بگیرند و عصبی شوند(البته در مقایسه با بعضی ها ،مدیریت وردپرس دلبازتر و راحت تره ;) ).بنابراین چه خوب است که ما گزینه های اضافی را که ممکن است هیچ گاه مورد استفاده قرار نگیرند را حذف کنیم.اینطوری فضای بازتری ایجاد می شود و زحمات ما هم بیشتر نمایان می شود ;) با استفاده از تابع زیر شما می توانید ،بسیاری از گزینه های مدیریت را حذف کنید.می توانید ترکیب اعداد را نیز تغییر دهید تا ببینید دقیقا کدام ها مخفی می شوند !

بروزشده : برای راحتی کار می توانید از پلاگین Role Manager هم استفاده کنید.از حامد عزیز برای معرفی این افزونه ممنونیم.

انتقال به یک صفحه متفاوت به جای داشبورد

اگر شما داشبورد را مخفی کنید ،هنگام مراجعه کاربران ،بهتر است به جای خطای عدم وجود صفحه ،آن را به یک صفحه دیگر راهنمایی کنیم.بنابراین وقتی به wp-admin مراجعه می کنند، ما با کد زیر آنها را به یک صفحه دیگر می بریم :

 

امیدوارم این کدها به دردتون بخوره ،موفق باشید :)

منبع

35 Comments

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

  2. سلام
    ممنون از مطالب خوبتون. یه سوال داشتم:
    تو این بخش “انتقال به یک صفحه متفاوت به جای داشبورد” شما یه کد دادید. این کد باید تو Functions.php قرار بگیره؟

  3. سلام دوست عزیز

    میخواستم بدونم تنظمیماتی که در رابطه با ایمیل و تغییر در آدرس های ایمیل گذاشتید رو در کدوم فایل باید انجام بدیم.

    ممنون از مطالب مفیدتون

  4. کار ساز نیست علی جان.

    همین که تو فکری ممنون. ولی فکر نمیکنم با پلاگین درست بشه. باشد توی فایلهای خود وردپرس دستکاری بشه :(

    بازم اگر نظری داری خوشحال میشم بگی

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

      <code>function remove_menus () {
      global $menu;
      global $current_user;
      get_currentuserinfo();
      if ($current_user->ID = 16) {
      $restricted = array(__('Dashboard'), __('Posts'), __('Media'), __('Links'), __('Pages'), __('Appearance'), __('Tools'), __('Users'), __('Settings'), __('Plugins'));
      end ($menu);
      while (prev($menu)){
      $value = explode(' ',$menu[key($menu)][0]);
      if(in_array($value[0] != NULL?$value[0]:"" , $restricted)){unset($menu[key($menu)]);}
      }
      }}
      add_action('admin_menu', 'remove_menus');</code>

      امیدوارم کار کنه.این منوها رو برای کاربر شماره ۱۶ مخفی می کنه.

      1. سلام علی جان

        واقعا" ممنون از اینکه پیگیری میکنی

        این کده هم خوب بود این مشکلات رو داشت:

        وقتی از admin خارج میشی و میری به یورز شماره ۱۶ دوباره که به ادمین وارد میشی همه گزینه ها غیرفعال هست و مثل یوزر شماره ۱۶ میشه

      2. یعنی هیچ جوری نمیشه؟ خیلی بده که :( نمی دونید باید چیکار کنم؟

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

        ممنون

  5. ممنون علی جان

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

    من می خوام یکاری کنم که فقط مدیریت نظرات برای کاربر مورد نظر فعال باشه و قابل دیدن باشه

        1. سلام
          راحت ترین راه حلی که پیدا کردم css است.به آدرس wp-admin/css/wp-admin.css رفته و کدهای زیر رو در انتهای فایل اضافه کنید:

          <code>
          #adminmenu li{display:none}
          #adminmenu li#menu-comments{display:block}
          </code>

          امیدوارم اون چیزی باشه که می خواستید.شرمنده ،قرصت نداشتم راه حل بهتری پیدا کنم.

          موفقیت

          1. سلام

            واقعا" ممنون علی جان که پیگیری میکنی.

            جواب داد ولی چندتا مشکل هست.

            ۱- با این ادمین سایت هم فقط براش نظرات نمایش داده میشه.

            ۲- کاربر "ویرایشگر" که دسترسی به مدیریت نظرات رو داره فقط نظرات رو میبینه و امکان تایید و ویرایش و جواب دادن به نظرات رو نداره.

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

            ببین میخوام اینجوری باشه که مثلا" هر کس رو که با سطح کاربری "ویرایشگر" تعییم میکنیم فقط قسمت نظرات براش نمایش داده بشه و مدیریت نظرات. همین فایل مربوط به ویرایشگر کجاست :)

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

            موفقیت

  6. ممنون علی جان

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

    من فقط می خوام قسمت مدیریت نظرات برای ان کاربر فایل نمایش باشه

  7. در ضمن از پلاگین مورد نظر هم استفاده کردن ولی چیزی رو که من میخام رو نمی تونه اجرا کنه. یعنی از چندین پلاگین برای این موضوع استفاده کردم ولی جواب نداده

  8. سلام علی جان

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

    خیلی راحت میتونی دسترسی را بصورت جزیی و یا کلی محدود کنی.

    مطلب خیلی مفیدی بود..ممنون

  9. سلام

    ممنون از مطلب مفیدتون

    یک سوال در مورد "مخفی کردن منوهای مدیریت وردپرس"

    آیا میشه این موضوع رو برای سطح دسترسی ها تعریف کرد؟ مثلا" برای نویسنده فقط . برای ادمین همه چیز قابل نمایش باشد ولی برای نویسنده برخی رو غیرفعال کرد؟

    1. سلام دوست من

      خوب الان هم همینطوریه دیگه ، گفته اگر شماره کاربر ۱ بود(یعنی ادمین اصلی) تمام منوها وگرنه گزینشی نمایش بده.ولی برای سطح دسترسی ها می تونید از هک پنجم که کد
      <code>$current_user->user_level</code>
      اومده ،کمک بگیرید.

      موفقیت :)

      1. سلام

        ممنون از شما.

        ببینید من الان یک کاربر دارم با آی دی ۱۶ و سطح دسترسی "ویرایشگر"

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

        الان دقیقا" چه کدی رو باید تو فانکشن برای این موضوع بزارم؟

پاسخ دهید

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

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

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