غیرفعال سازی افزونه‌های وردپرس در زمان عدم دسترسی به پنل مدیریت

3598 روز پیش

غیرفعال سازی افزونه‌های وردپرس در زمان عدم دسترسی به پنل مدیریتگاهی در زمان ایرادیابی شما نیازمند غیرفعال سازی افزونه‌های وردپرس و فعال سازی تک تک آن‌ها به صورت مجزا هستید. ولی مشکل اینجاست که در بسیاری مواقع شما نمی توانید وارد پنل مدیریت(wp-admin) شوید و به همین دلیل، کار شما کمی سخت می‌شود. اگر تا به حال با صفحه سفید مرگ هنگام ورود به پنل مدیریت وردپرس مواجه شدید کاملا حرفم رو درک می کنید! در این آموزش روش غیرفعال سازی افزونه‌های وردپرس را در زمان عدم دسترسی به پنل مدیریت آموزش خواهم داد.

دو روش برای غیرفعال سازی افزونه‌های وردپرس در این زمان وجود داره که یکی از اون‌ها از طریق FTP و دیگری از طریق phpMyAdmin هست.

غیرفعال سازی همه‌ی افزونه‌های وردپرس از طریق FTP

در این روش شما باید از طریق FTP و یا FileManager وارد هاست خودتون بشید. به پوشه wp-content برید. حالا شما پوشه‌ای با نام plugins رو مشاهده ‌می‌کنید که برای غیرفعال سازی تمام افزونه‌ها کافی است که نام این پوشه را تغییر دهید. برای مثال ما نام آن را به plugins_old تغییر دادیم. حالا که این کار رو انجام دادین تمام افزونه‌های وردپرسی شما غیرفعال شدند.

در بیشتر مواقع با این کار قفل یا مشکل پنل مدیریت برطرف شده و شما می توانید به صورت عادی از سیستم خود استفاده کنید. حالا از طریق wp-login.php به سایت خودتون لاگین کنید. بعد از این کار دوباره از طریق FTP نام پوشه افزونه‌ها را از نامی که تغییر داده‌اید(در مثال ما plugins_old) به نام اصلی برگردانید. پس از تغییر نام مجدد افزونه‌ها به نام اصلی، از پنل مدیریت وردپرس وارد بخش افزونه‌ها شوید. در اینجا می‌بینید که تمام افزونه‌ها غیرفعال شده‌اند. حالا افزونه‌ها را دونه به دونه فعال کنید تا جایی که سیستم دوباره دچار مشکل شود. در این لحظه شما متوجه شده‌اید که کدام افزونه منجر به مشکل شده است. کافی است مجددا مراحل بالا را طی نموده و این بار افزونه‌ی مشکل دار را فعال نکنید!

غیرفعال سازی افزونه‌های وردپرس از طریق phpMyAdmin

در چنین مشکلی بهترین روش استفاده از FTP برای غیرفعال سازی افزونه هاست. در صورتی که تاکنون با phpMyAdmin  کار نکرده‌اید، پیشنهاد ما به شما استفاده از روش بالا است.

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

a:0:{}

امیدوارم این آموزش تونسته باشه، راه شما رو برای حل مشکل کوتاه‌تر کرده باشه…

منبع

تغییر لینک پیش فرض تصاویر هنگام افزودن رسانه در وردپرس

3602 روز پیش

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

در این حالت، یعنی زمانی که لینک به جایی بجز آدرس اصلی عکس باشه، این افزونه ها کار نمی کنند و برای استفاده از ویژگی های این مدل افزونه ها، شما نیاز به لینک شدن عکس ها به آدرس اصلی اون ها دارید. فکر می کنم حالا متوجه کاربرد این ترفند شدید.

برای این کار شما باید وارد صفحه تنظیمات مخفی وردپرس بشید! تا حالا این صفحه رو ندیدین! درسته چون مخفیه! برای دسترسی به این صفحه از طریق آدرس زیر وارد بشین

http://www.example.com/wp-admin/options.php

فکر نمی کنم لازم به گفتن باشه که به جای example.com آدرس سایت خودتون رو بنویسید.

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

  • خالی باشه! در این صورت به صورت پیش فرض هیچ لینکی به هیچ جایی ایجاد نمیشه و در صورت نیاز باید بعد از آپلود لینک رو وارد کنید.
  • file :در صورتی که کلمه file رو در این فیلد وارد کنید، به صورت پیش فرض لینک به آدرس فایل آپلود شده قرار داده میشه. این همون چیزیه که می خوایم. در این صورت لینک ها به صورت  http://www.example.com/wp-content/image.png در میاد.
  • post : این گزینه همون گزینه پیش فرض انتخابیه که لینک رو به پوسته ضمیمه ایجاد میکنه. در موارد خاص اگه نیاز بود استفاده کنید

به نظر کامل میرسه، امیدوارم این آموزش یه روزی به کارتون بیاد و شما رو هم مثه من از شر تماس های مکرر با کاربر سایت بابت تذکر این نکته راحت کنه! برای دیدن کاربرد افزونه بر روی عکس ضمیمه شده در این مطلب کلیک کنید

منبع

دو نکته برای بهینه سازی وردپرس

3648 روز پیش

بهینه سازی وردپرس

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

تغییر آدرس پوشه wp-content  محتوای وردپرس

همونطور که می دونید، محتوای وردپرس (شامل پوسته ها، افزونه ها، فایل های آپلود شده و…) در پوشه ای با نام wp-content قرار گرفته، اگه اشتباه نکنم از نسخه 2.7 به بعد(تا الان که 3.5 اومده)، این امکان در وردپرس ایجاد شده که بشه نام این پوشه رو تغییر داد، برای این کار تنها دو خط کد رو باید به فایل wp-config.php موجود در پوشه اصلی سایت(root) افزود. پس برای شروع فایل wp-config.php موجود در روت وب سایتتون رو باز کنید. تو خط آخر، عبارت زیر رو پیدا کنید.

require_once(ABSPATH . 'wp-settings.php');

با این خط کاری نداریم، این خط رو برای این پیدا کردیم که کدهامون رو قبل از اون باید قرار بدیم. یعنی کدهایی رو که می خوایم بگیم و قبل از کد بالا اضافه کنید.

حالا دو خط زیر رو به فایلی که باز کردیم (wp-config.php درست قبل از عبارتی که بالا گفتیم)اضافه کنید.

define( 'WP_CONTENT_DIR', $_SERVER['DOCUMENT_ROOT'] . '/data' ); 
define( 'WP_CONTENT_URL', 'https://evazzadeh.com/data');

تو خط اول توسط دستور WP_CONTENT_DIR وظیفش معرفی نام پوشه ی جدید برای wp-content بوده و خط دوم توسط دستور WP_CONTENT_URL وظیفه ی معرفی آدرس دسترسی به اون پوشه رو داره. پس در خط اول به جای data نام پوشه ی جدیدی رو که دوست دارین، محتوای وردپرسیتون رو در اونجا قرار بدین وارد کرده و در خط دوم آدرس کامل دسترسی به اون رو بنویسید. بدیهی است که تو خط دوم شما باید به جای evazzadeh.com آدرس سایت خودتون رو بنویسید!

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

تغییر مسیر ذخیره سازی فایل های آپلودی

برای کسانی که وردپرس نسخه 3.5 به بعد رو نصب می کنن، گزینه ی تغییر مسیر ذخیره سازی فایل ها موجود در تنظیم wp-config.php رو ویرایش می کنیم. لازم به ذکره که انجام این کار توسط افزونه و یا دستکاری دیتابیس هم ممکنه ولی این روش مطمئن و راحته. باید توجه داشته باشید که شما با انجام مورد بالایی کلا خودتون رو از این مورد بی نیاز کردین، ولی شاید مشکلی که در انتهای مورد بالایی ذکر شد براتون اتفاق بیفته، یعنی پوسته یا افزونه ای ناسازگار باشه که در این صورت این روش کارتون رو راه میندازه. برای این کار کد زیر رو به فایل اضافه کنید.

define( 'UPLOADS', 'media' );

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

اگه خواستید فایل های آپلودیتون در همون پوشه محتوای وردپرس یعنی wp-content بوده و تنها نام اون تغییر کنه از کد زیر می تونید به جای کد بالا استفاده کنید.

define( 'UPLOADS', 'wp-content/media' );

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

فیلم آموزش تصویری نصب ویژوال استودیو

3668 روز پیش

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

مجموعه Visual Studio در واقع یک IDE (یا Integrated Development Environment به معنای محیط توسعه یکپارچه) است. یعنی برنامه نویسان با استفاده از مجموعه ابزارهایی که در قالب ویژوال استودیو ارائه شده است، میتوانند بدون نیاز به هیچ برنامه جانبی دیگر، برای پلتفرم های مختلف برنامه نویسی کنند. فرقی نمیکند که هدف آنها یک Application تحت ویندوز باشد یا یک نرم افزار موبایل و یا حتی نرم افزار تحت شبکه. ویژوال استودیو تمام ابزارهای لازم را دارد.VS_nobettertime

چارچوب دات‌نت یا همان (DotNet FrameWork) یک فناوری نرم‌افزاری است که روی بسیاری از نسخه های سیستم عامل مایکروسافت ویندوز قابل اجراست. به طور عمده این چارچوب از دو بخش عمده تشکیل شده است، بخش اول یک کتابخانه‌ی عظیم از توابع و کدهای از پیش نوشته شده است که برنامه نویسان به راحتی از آنها استفاده می‌کنند و بخش دیگر یک ماشین مجازی (Virtual Machine) برای اجرای برنامه هایی است که تحت این چارچوب نوشته شده‌اند. قابل ذکر است که برای اجرای برنامه‌ های تحت این چارچوب نصب بودن آن الزامی است. به دلیل مزیت های بسیاری که این چارچوب نسبت به سبک قدیمی تولید برنامه‌ها دارد بسیاری از برنامه های جدید که برای سیستم عامل ویندوز نوشته می‌شوند از این کتابخانه استفاده می‌کنند.

زبانهای (#C) و ویژوال بیسیک دات‌نت و (#J) و (ASP.net) همگی از چارچوب دات‌نت استفاده می‌کنند. برنامه‌های نوشته شده در این چهارچوب، ابتدا به زبان میانی مایکروسافت و متاداده (metadata) ترجمه شده و سپس توسط CLR اجرا می‌شوند. دات نت باعث شد که قدرت برنامه نویسی در زبانهای تحت این چارچوب یکسان شود و تفاوت فقط در نوع کد نویسی باقی بماند. چون ابزار و قدرت در دات نت از خواص دات نت است، تغییر عمده ای که در برنامه نویسی با دات نت نسبت به گذشته قابل رویت است نحوه اتصال به پایگاه داده است که علاوه بر روشهای قدیمی مانند DAO و ADO میتوان از فناوری جدید ADO.net استفاده کرد. در این روش نحوه اتصال، خواندن و نوشتن کاملا متفاوت است که این تفاوت تسهیل در برنامه نویسی و سرعت در تبادل اطلاعات را به ارمغان میآورد.

در این آموزش نحوه نصب ویژوال استودیو 2010 آموزش داده شده است که البته برای نصب نسخه 2012 و همینطور نسخه های پیشین هم می تونید از اون کمک بگیرید

کنترل محتوا با Content Control در Word

3697 روز پیش

کنترل محتوا با Content Control در آفیس 2007 به مایکروسافت ورد اضافه شد و از وقتی که با اون ها آشنا شدم، علاقه خاصی به استفاده ازش پیدا کردم! شاید به خاطر تمیزی و زیبایی اون ها نسبت به سایز ابزارهای مشابه در ورد؛ بگذریم…
چیزی که می خوام تو این مطلب دربارش حرف بزنم توضیح یه کاربرد زیبا در Content Control هست که می تونه استفاده های زیاد داشته باشه که شما می تونید مورد استفاده از اون رو انتخاب کنید! برای بیشتر دونستن درباره Content Control با من همراه بشید…

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

قبل از شروع کار چند نکته رو باید توضیح بدم. اول و مهم تر از همه نحوه ی استفاده از Content Control هست. برای این کار شما باید از ابزارهای توسعه دهندگان آفیس استفاده کنید. اگه نمایش اون ها رو بلد نیستید سری به مطلب قبلی بزنید.

برای رسیدن به هدفمون من در ابتدا یه سری توضیح میدم. ابتدا از تب توسعه دهندگان بر روی ویژوال بیسیک کلیک می کنیم تا پنجره ویژوال بیسیک باز بشه. در اینجااز سمت چپ روی (Project(Your-File-Name کلیک کرده سپس از پوشه ی Microsot Word Objects روی ThisDocument کلیک کنید تا چیزی شبیه شکل زیر جلو روی شما قرار بگیره.
VBA
حالا باید یکم کد نویسی انجام بدیم ولی قبلش یه توضیح کلی در باره کد ذکر شده در پایین: این کد وظیفش به روز رسانی تمام کانتنت کنترل هاست. به این صورت که در هر بار اجرای این زیرتابع، اولین کانتنت موجود در متن مقدار صفر رو نمایش داده و سپس از طریق حلقه ای برای کنترل های دوم تا آخر، هر بار مقدار کنترل شماره قبلی را گرفته و یکی اضافه می کنیم.
نکته: نحوه ی شماره گذاری کنترل ها در ورد به صورت بالا به پایین هست، یعنی از بالای پرونده یا فایل تا انتهای آن به ترتیب شماره گذاری می شوند و در هر بار افزودن یا حذف یک کنترل شماره ها به روزرسانی می شوند. حالا نگاهی به این کد داشته باشید.

Private Sub UpdateList()
    On Error Resume Next
    ContentControls(1).Range.Text = "(0)"
    ContentControls(1).Tag = 0
    Dim i As Integer
    
    For i = 2 To ContentControls.Count
        ContentControls(i).Range.Text = "(" & (Val(ContentControls(i - 1).Tag) + 1) & ")"
        ContentControls(i).Tag = ContentControls(i - 1).Tag + 1
    Next
End Sub

اگه آشنایی نسبی ای با برنامه نویسی داشته باشید، به نظرم کد بالا رو با توجه به خوانایی بالای زبان ویژوال بیسیک به راحتی درک می کنید. ولی یه توضیح که شاید لازم باشه استفاده از ویژگی تک هست که شماره رو توی اون نگهداری می کنیم و همچنین از طریق ویژگی Range.Text می تونیم به متن داخل کانتنت کنترل دسترسی پیدا کنیم. دلیل استفاده از تگ هم این بود که ما می خوایم شماره هامون رو داخل پرانتز بذاریم و به همین دلیل نمیشه برای دوباره خوندنشون به مشکل برمیخوریم.

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

Private Sub Document_ContentControlAfterAdd(ByVal NewContentControl As ContentControl, ByVal InUndoRedo As Boolean)
    UpdateList
End Sub

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