برای شروع کار قصد داریم یک پلاگین ساده طراحی کنیم تا بیت هایی شعر از شاعر بزرگ مولانا را به صورت رندم در هدر بخش ادمین برای ما نمایش دهد. برای برنامه نویسی این پلاگین ساده باید ابتدا مواردی را یاد بگیریم که در ادامه این پست به آنها میپردازیم پس با ما همراه باشید…
بدیهی است که پلاگین های خود را باید در پوشه پلاگین ها ایجاد کنیم که آدرس آن را میتوانید در زیر مشاهده کنید. منظور از root ریشه اصلی سایت است.
root\wp-content\plugins
حال در این مسیر باید یک فولدری برای پلاگین و همچنین داخل آن یک فایل با پسوند php ایجاد کنیم. توجه داشته باشید که نام و فایل اصلی پلاگین که ایجاد کردیم باید منحصر به فرد باشد.به طور مثال من از مخفف نام سایت خود + نام پلاگین برای نام گزاری استفاده میکنم که میشود ti-molana-poems
برای این که وردپرس پلاگین ما را شناسایی کند در فایل اصلی پلاگین خود یا همان ti-molana-poems.php میبایست هدر اضافه کنیم این هدر شامل نام پلاگین، یو آر ال پلاگین، توضیحات، نویسنده، ورژن و یو آر ال نویسنده میشود
فراموش نکنید که باید در ابتدای فایل خود تگ php را باز کنید !!!
/*
Plugin Name: molana poems
Plugin URI: http://tehranit.net/
Description: molana poems developed by tehran it team.
Author: mohammadreza ahadian
Version: 1.0
Author URI: http://masterit.ir
*/
در فانکشن get_poem ما تمام اشعاری که میخواهیم نمایش داده شود را داخل متغییری ریخته سپس هر خط را جدا کرده و داخل یک خانه آرایه قرار میدهیم و در نهایت با متدی به صورت رندم یک بیت را return میکنیم
//مجموعه اشعار و دریافت و انتخاب یک بیت شعر
function get_poem() {
$poems = "ای که می پرسی نشان عشق چیست <i></i> عشق چیزی جز ظهور مهر نیست
عشق یعنی مشکلی آسان کنی <i></i> دردی از در مانده ای درمان کنی
در میان این همه غوغا و شر <i></i> عشق یعنی کاهش رنج بشر
عشق یعنی گل به جای خار باش <i></i> پل به جای این همه دیوار باش
عشق یعنی تشنه ای خود نیز اگر <i></i> واگذاری آب را، بر تشنه تر
عشق یعنی دشت گل کاری شده <i></i> در کویری چشمه ای جاری شده
عشق یعنی ترش را شیرین کنی <i></i> عشق یعنی نیش را نوشین کنی
هر کجا عشق آید و ساکن شود <i></i> هر چه نا ممکن بود ، ممکن شود";
$array_poems = explode( "\n", $poems );
$random_number= mt_rand( 0, count( $array_poems ) - 1 ) ;
$my_poem = $array_poems[$random_number ];
return wptexturize( $my_poem );
}
در کد زیر ما توسط متد explode اشعار خود را که توسط اینتر به بیت تبدیل شده اند را به آرایه تبدیل کردیم.و تگ i که بین بیت ها قرار دارد برای این است که با کدهای css در آن بخش icon قرار دهیم. در صورتی که میخواهید بیشتر درباره explode بدانید اینجا کلیک کنید.
$array_poems = explode( "\n", $poems );
متد mt_rand وظیفه ایجاد یک عدد تصادفی یا همان رندم را بر عهده دارد. این متد ۲ ورودی دریافت میکند کم ترین عدد و بیشترین عدد که از بین این دو ورودی مین و مکس به صورت تصادفی برای ما عددی انتخاب میکند. متد count( $array_poems ) – 1 برای ما تعداد خانه های آرایه را بر میگرداند و چون شماره آرایه ها از ۰ شروع میشود ما آن را -۱ میکنیم. در صورتی که میخواهید بیشتر درباره mt_rand بدانید اینجا کلیک کنید.
$random_number= mt_rand( 0, count( $array_poems ) - 1 ) ;
توسط این خط کد ما بیت مورد نظر خود را دریافت و داخل متغییر my_poem میریزیم
$my_poem = $array_poems[$random_number ];
توسط wptexturize بیت مورد نظر از شعر خود را برای فانکشن بعدی که وظیفه چاپ شعر ما را دارد return میکنیم. wptexturize تابعی است که متن را به تقل قول ها ، خطوط تیره ، نشان های تجاری و نماد ها تغییر شکل می دهد . البته تگ هایی مثل : pre, code, kbd, style, script, tt از این قائده مستثنی هستند .
return wptexturize( $my_poem );
این فانکشن وظیفه دارد بیت شعر تصادفی را از فانکشن قبلی get_poem دریافت کند آن را داخل تگ های HTML مد نظر ما قرار دهد و سپس توسط تابع add_action در بخش admin_notices چاپ کند. بخش admin_notices محدوده بالایی پنل ادمین میباشد.
function molana_poems() {
$chosen = get_poem();
printf(
'<div id="molana_poem">
<span class="close-alert-ti" onClick="reply_click()"></span>
<span class="screen-reader-text">s </span>
<span >%s</span>
</div>',
$chosen
);
}
add_action( 'admin_notices', 'molana_poems' );
کد هایی css خود را داخل تابع molana_poems_css قرار میدهیم و توسط تابع add_action در بخش admin_head کد های css خود را چاپ میکنیم.
function molana_poems_css() {
echo "
<link rel='preconnect' href='https://fonts.googleapis.com'>
<link rel='preconnect' href='https://fonts.gstatic.com' crossorigin>
<link href='https://fonts.googleapis.com/css2?family=Lalezar&display=swap' rel='stylesheet'>
<style>
#molana_poem {
background: rgb(107,207,162);
background: radial-gradient(circle, #e91e63 0%, rgb(29 35 39) 100%);
float: none;
margin: 40px 0 10px 20px;
padding: 30px 10px;
color: #f0f0f1;
text-align: center;
font-size: 17px;
font-family: 'Lalezar', cursive;
position: relative;
transition: transform 1s;
line-height: 0;
border-radius: 5px;
}
.close-alert-ti{
font-family: dashicons;
display: inline-block;
line-height: 1;
font-weight: 400;
font-style: normal;
position: absolute;
top: 6px;
left: 3px;
font-size: 18px;
cursor: pointer;
color: #f0f0f1;
}
.close-alert-ti:hover{
color:#dd1f60;
transition: color 0.5s;
}
.close-alert-ti:before{
content: \"\\f158\";
}
#molana_poem i{
font-family: dashicons;
display: inline-block;
font-weight: 400;
font-style: normal;
cursor: pointer;
color: #f0f0f1;
line-height: 0;
margin: 0 10px;
position: relative;
top: 4px;
}
#molana_poem i:before{
content: \"\\f487\";
}
</style>
";
}
add_action( 'admin_head', 'molana_poems_css' );
کد هایی java script خود را داخل تابع molana_poems_js قرار میدهیم و توسط تابع add_action در بخش admin_head کد های JS خود را چاپ میکنیم.
function molana_poems_js() {
echo "";
}
add_action( 'admin_head', 'molana_poems_js' );
در این بخش میتوانید کد ها را به صورت یکجا مشاهده کرده و افزونه را دانلود کنید
خرید از تهران آی تی به صورت آنلاین بوده لینک دانلود به صورت خودکار برای شما ایمیل میشود بدیهی است که در هنگام خرید باید از ایمیل واقعی خود استفاده کنید. چنانچه نیاز به هرگونه سوال درباره محصول و یا مشاوره و کمک در خرید آنلاین داشتید از طریق ایمیل و یا شماره های تماس ارتباط برقرار کنید 09121486770 ahadian2@gmail.com