رفتن به مطلب

مشکل در کدهای PHP برای ساخت افزونه


پست های پیشنهاد شده

سلام

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

در پوشه افزونه دو پوشه با نام های css هستند که می خوام جایگزین پوشه های css درون wp-admin و wp-includes بشن.

آدرس پوشه css برای قرار دادن در wp-admin:


my-plugin/wp-admin/css

آدرس پوشه css برای قرار دادن در wp-includes:


my-plugin/wp-includes/css

کدهای زیر رو قرار دادم اما کار نکرد.

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

کلا کدهام اینا هستن:


define('my_pluginpath', dirname(__file__));
define('rootpath',dirname(dirname(my_pluginpath)));
@define('WP_MEMORY_LIMIT', '64M');
include_once (join(DIRECTORY_SEPARATOR,array(my_pluginpath,'my-plugin-about.php')));
register_activation_hook( __FILE__,'my_plugin_plugin_install');
function my_plugin_plugin_install()
{
if (!is_dir(join(DIRECTORY_SEPARATOR,array(wp_adminpath,'wp-admin/css'))))
mkdir(join(DIRECTORY_SEPARATOR,array(wp_adminpath,'wp-admin/css')));
$source = join(DIRECTORY_SEPARATOR,array(my_pluginpath,'wp-admin/css','*'));
$destination = join(DIRECTORY_SEPARATOR,array(wp_admintpath,'wp-admin/css'));
$files = glob($source);
foreach($files as $sfile)
{
@copy($sfile, $destination.DIRECTORY_SEPARATOR.basename($sfile));
}

if (!is_dir(join(DIRECTORY_SEPARATOR,array(wp_includespath,'wp-includes/css'))))
mkdir(join(DIRECTORY_SEPARATOR,array(wp_includespath,'wp-includes/css')));
$source = join(DIRECTORY_SEPARATOR,array(my_pluginpath,'wp-includes/css','*'));
$destination = join(DIRECTORY_SEPARATOR,array(wp_includestpath,'wp-includes/css'));
$files = glob($source);
foreach($files as $sfile)
{
@copy($sfile, $destination.DIRECTORY_SEPARATOR.basename($sfile));
}
}

لینک به ارسال

wp_adminpath را تعریف کردید؟


define('wp_includespath',dirname(dirname(my_pluginpath)).DIRECTORY_SEPARATOR.'wp-admin');

لینک به ارسال

اگه می شه کدهای کامل رو بزارید. کدهایی که باید جایگزین کدهایی که در بالا دادم بکنم.

لینک به ارسال

من نمیدونم مشکل کد چی هست

فقط کد رو بعد از define دوم قرار دهید برای تست

چه مشکلی هست؟

لینک به ارسال

من پوشه های wp-admin و wp-includes رو که داخل هر کدومشون یک پوشه css هست رو توی افزونه قرار دادم و کدهای زیر رو هم به افزونه اضافه کردم اما کار نکرد:


define('wp_yekanpath', dirname(__file__));
define('rootpath',dirname(dirname(wp_yekanpath)));
define('wp_includespath',dirname(dirname(wp_yekanpath)).DIRECTORY_SEPARATOR.'wp-admin');
@define('WP_MEMORY_LIMIT', '64M');
include_once (join(DIRECTORY_SEPARATOR,array(wp_yekanpath,'wp-yekan-about.php')));
register_activation_hook( __FILE__,'wp_yekan_plugin_install');
function wp_yekan_plugin_install()
{
if (!is_dir(join(DIRECTORY_SEPARATOR,array(wp_adminpath,'wp-admin/css'))))
mkdir(join(DIRECTORY_SEPARATOR,array(wp_adminpath,'wp-admin/css')));
$source = join(DIRECTORY_SEPARATOR,array(wp_yekanpath,'wp-admin/css','*'));
$destination = join(DIRECTORY_SEPARATOR,array(wp_admintpath,'wp-admin/css'));
$files = glob($source);
foreach($files as $sfile)
{
@copy($sfile, $destination.DIRECTORY_SEPARATOR.basename($sfile));
}

if (!is_dir(join(DIRECTORY_SEPARATOR,array(wp_includespath,'wp-includes/css'))))
mkdir(join(DIRECTORY_SEPARATOR,array(wp_includespath,'wp-includes/css')));
$source = join(DIRECTORY_SEPARATOR,array(wp_yekanpath,'wp-includes/css','*'));
$destination = join(DIRECTORY_SEPARATOR,array(wp_includestpath,'wp-includes/css'));
$files = glob($source);
foreach($files as $sfile)
{
@copy($sfile, $destination.DIRECTORY_SEPARATOR.basename($sfile));
}
}

اسم افزونه رو هم همون طور که در بالا هست گذاشتم (فونت یکان - WP Yekan).

ویرایش شده توسط Ghaem
لینک به ارسال

خیلی ممنون.

از راه دیگه ای مشکلم رو حل کردم.

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

توضیحات بیشتر در این تاپیک:

لینک به ارسال

یک مسیله کلی

جایگزینی با فایلهای پیشفرض وردپرس در هر حالتی درست نیست

شما باید استایلی بنویسید و لود کنید

http://wp.tutsplus.c...es-and-plugins/

لینک به ارسال

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

برای مثال برای تغییر دادن فونت


#adminmenu

از این روش استفاده کردم و این کدها رو توی افزونه قرار دادم:


#adminmenu {
<?php
if ($afe_font_family) { ?>
font-family: <?php echo $afe_font_family; ?>;
<?php }
if ($afe_font_size) { ?>
font-size: <?php echo $afe_font_size; ?>px;
<?php } ?>
}

و از طریق تنظیمات افزونه فونت مورد نظرمو تغییر می دم.

ویرایش شده توسط Ghaem
لینک به ارسال

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...