wordpress plugin development

72

Upload: pamela-garcia

Post on 28-Dec-2015

36 views

Category:

Documents


13 download

DESCRIPTION

Wordpress Plugin Development

TRANSCRIPT

Page 1: Wordpress Plugin Development

2

ওয়াডডপরে পলাগগন ডডপরবরপরভনট (Beginnerrsquos to Advance)

ডভাাঃ গরটন াঅপরযগপন httpswwwfacebookcomlitonice09

3

েথভ েকা ১০ ডপরেমবয ২০১২

েকাক

ওয়াডডপরে রে ফাাংরাপরদ ldquohttpswwwfacebookcomgroupsWordpress2Smashingrsquorsquo

ওয়াডডপরে রে ওপরয়ফাাআট ldquohttpswwwwpbanglacomrsquorsquo

ডরখক ডভাাঃ গরটন াঅপরযগপন ldquohttpswwwfacebookcomlitonice09rsquorsquo

ldquowwwliton-onlinecomrsquorsquo

েচছদ

জাগভর ডাপরন গজান

সপনসয ldquoShirsendu Shekhar Biswasrdquo

ldquohttpswwwfacebookcomdipshekharrdquo

Caution

This Book Not For sale

( CopyRight 2012 By ওয়াডডপরে রে ফাাংরাপরদ)

4

াঅভায মপপরকড

াঅভায নাভ ডভাাঃ গরটন াঅপরযগপন (httpswwwfacebookcomlitonice09) যাজাী গফশবগফদযারয় ডথপরক াআনপযপরভন এনড কগভউগনপরকন াআগিগনয়াগযাং গফবাপরগ ড়াপরানা কযগি ানাড ডল এখন ভাসটাড কযগি াঅভায ফযগিগত বলগ ldquoগরটন- ানরাাআনকভrdquo ( wwwliton-

onlinecom) এ টাাআভ ডদাআ মতটা াগয াপরথ টকটাক গিরযাগনসাং কগয াঅভাপরদয গতন দপরেয রে ldquoফযানrdquo(httpburhanbdcom) - এ কাজ কগয এবাপরফাআ ভয় চপরর মায় াঅভায াঅভায পলাগগন খফ ডফগ ডডপরবর কযা য়গন তফও জাগভর বাাআ াঅভাপরক এাআ ফাআগট ডরখায কাজ গদপরয়পরিন াঅগভ াঅভায সবলপ জঞাপরন ডচষটা কযফ াঅভায ডযাটা ডদফায জাগভর-

ldquo(httpswwwfacebookcomzamilhossainsezan32) rdquo বাাআ াঅভাপরক ওয়াডডপরে রে এর- (ldquohttpswwwfacebookcomgroupsWordpress2Smashingrdquo) কষ ডথপরক এাআ ফাআগট ডরখায কাজ াপরনক গদন াঅপরগাআ গদপরয়গিপররন গকনত ভয় কপরয উঠপরত াযগিরাভ না গত ভাপরাআ াঅভায ফাআগট সতানতয কযায কথা গির গকনত াগযগন এাআ ফাআগটয সবফডসবতব াঅভায ডকউ এাআ ফাআগট গফগি কযা ফা গনপরজয নাপরভ চারাপরনায ডচষটা কযপরফন না তপরফ মত ডফগ াপরযন ফায াপরথ ডয়ায কযপরফন াঅভযা রধ ওপরয়পরফয জগপরত ডাটা এগনি একসাটড ফা গিকায পরয় থাকপরত চাাআনা ওপরয়পরফয এডবানস ডরপরবপরর াঅনাপরক সবাগতভ

ডভাাঃ গরটন াঅপরযগপন

5

গচতর াধযায়- একাঃ চনা ডজ নমবয ৭ র ৭ ৮ াধযায়- রাআাঃ পলাগগপরনয গঠন ৯ র র ৯ খ র হ ১১ র র ৭ র ১৩ র র র হ ১৪ হ র ১৫ ১৮ র ১৮ URL ১৯ াধযায়- গতনাঃ রক ( Hook) ২২ র ( Filter Hooks) ২২ এ (Action Hooks) ২৭ াধযায়- চাযাঃ পলাগগন ডকাগডাং সটযানডাডড এ এ ৩২ uninstallphp ৩৪ Uninstall Hook ৩৫ ৩৬ এ ৩৭ এ এ ৩৭ াধযায়- াাচাঃ ওয়াডডপরেপরয াপরথ াআগনটপরেন এ র ৩৮ ৩৮ র র র (াফ ডভন) ৪৩

6

র র ৪৫ াধযায়- িয়াঃ পলাগগন পাাংন ৫৬ __() ৫৬ _e() ৫৬ esc_attr__() ৫৮ াধযায়- াতাঃ পলাগগন গগকউগযগট র ৬১ র র ৬১ র র ৬১ র র ৬২ Nonces ৬৩ Nonce URL র ৬৪ Nonce Form র ৬৫ ৭৩ াধযায়- াঅটাঃ ডরাকারাাআপরজন এফাং Set t i ngs API ৭৬ API ৭৬ Settings API ৭৭ ৮১ CSSJS র ৯১ ৯৩ াধযায়- নয়াঃ পলাগগন উদাযন র র র র ১০০ র ১০১

7

াধযায়- একাঃ চনা গকি কথা ওয়াডডপরেপরয েগত যপরয়পরি াপরনক বারফাা ওয়াডডপরে মপপরকড নতন কপরয গকি ফরায ডনাআ ডমপরকান ওয়াডডপরে ফযফাযকাযীয জনয পলাগগন একগট গরতবনড গফলয় পলাগগন াঅপরর গক ওয়াডডপরে পলাগগন াঅভাপরদযপরক াঅভাপরদয বলগ ওপরয়ফাাআপরটয পাাংনাগরগট ফগি কযপরত াাময কপরয াভানয াথফা ডকান যকভ ডোোগভাং জঞান িাড়াাআ ওয়াডডপরে পলাগগপরনয গনগদডষট ডকান াঅকায এফাং াঅকগত ডনাআ একগট পলাগগন ডমপরকান গকিাআ কযপরত াপরয ওয়াডডপরে বলগ ওপরয়ফাাআপরটয াঅভায পলাগগপরনয াংখযা খফ কভ গকি াফগর কযা য়গন াঅগভ ওয়াডডপরেপরয গকি গরগভপরটন গনপরয় কাজ কযগি এফাং এগপররা গনপরয়াআ ভরত কাজ কযগি গকবাপরফ াঅপরযা একসপরটনড কযা মায় মাাআ ডাক াঅগভ এখনও গকষানগফ গপরপরফ াঅগি

ফাআগট কাপরদয জনয াঅগন মগদ এাআ ফাআগট ডাউনপররাড কপরয থাপরকন তাপরর াঅগভ ধপরযাআ গনগচছ াঅগন একজন ওপরয়ফ ডডপরবরায এফাং াপরথ গকি ডোোগভাং জঞান াঅপরি পলাগগন ডডপরবরপরভপরনটয উপরেশয পরচছ াঅগন পলাগগন ডডপরবর কযপরফন াঅনায িাপরয়নট াঅগন ডমবাপরফ চান গঠক ডবাপরফ ডমপরকান ধযপরনয ওপরয়ফাাআট ততযীপরত ওয়াডডপরেপরয ফযগতিভ পলাটপভড াআপরতাভপরধযাআ েভাগিত এাআ ফাআগট গিরযানসাযপরদয জপরনযও মাযা তাপরদয গির ডাটডপরপাগরও এফাং ওয়াডডপরেপরয পাাংনাগরগট ফপরে কাজ কপরযন

ডোয়াজনীয় টর

Notepad ++( httpnotepad-plus-plusorgdownload )Dreamwaver

Mozilla Firefox (httpwwwmozillaorgen-USfirefoxnew) Google Crome

Firebug Extension (Search For both Firefox Chrome as you want)

Web Developer Extension (Search For both Firefox Chrome as you want)

Xampp with Wordpress Installation

FTP Client Example- Filezilla ওয়াডডপরে গকবাপরফ াআনসটর কযপরত য় তা নতন কপরয ডদখাপরনায গকি ডনাআ তফও মাযা নতন তাযা এখাপরন ডদখন ( httpgooglWJTp9 ) গকবাপরফ পলাগগন াআনসটর কযপরত য় তা এখাপরন ডদখন ( httpgooglpE8AD)

8

াধযায়- রাআাঃ পলাগগপরনয গঠন পলাগগন গক ওয়াডডপরেপরয পলাগগন র একগট PHP গিে মা ওয়াডডপরেপরয গনজসব পাাংনাগরগট গযফতডন কপরয াথফা গযফধডন কপরয ভরতাঃ একগট গপচায ফা গকি গপচায াঅভাপরদয াাআপরট ডমাগ কযায জনয াঅভযা পলাগগন াআনসটর ডদাআ একগট পলাগগপরনয কাপরজয ডকান গরগভট ডনাআ ড ডকান কাজগপররা কযপরত াযপরফ কাযন পলাগগন ডাউনপররাপরডয ডকান গনগদডষট াাআজ ডনাআ পলাগগন ওয়াডডপরেপরয াপরথ গকবাপরফ কাজ কপরয ওয়াডডপরেপর াপরনক গপচায াঅপরি গফগবনন API(Application Programming Interface)- এয জনয ডমগপররা গফগবননবাপরফ কাজ কপরয ওয়াডডপরেপর গনপরচ ডগপররা াঅপররাচনা কযা রাঃ

পলাগগনাঃ একপরট রক( hooks) ডমগপররা ওয়াডডপরেপরয গনগদডষট পাাংপরন এপরকস কপরয এগপররাপরক এনাফর কপরয

উাআপরজটাঃ পলাগগন গদপরয় উাআপরজট ততগয এফাং গযচারনা কযা টডপরকাডাঃ াঅনায পলাগগনপরক াপরাটড কযায জনয টডপরকাড ডমাগ কযা টডপরকাড র

একগট রক ডমটা একগট PHP পাাংনপরক এনাফর কপরয এফাং াঅনায ডাসট ফা ডজ এ েদডন কপরয াঅগভ পরয এ গফলপরয় গফসতাগযত ফরফ

HTTP এগট াঅনায পলাগগপরন HTTP গযপরকাপরয়সট াঠায় এাআ API কনপরটনট ডথপরক external URL াথফা Submit কযা কনপরটনট ডথপরক URL retrieve কপরয

ডগটাংাঃ াঅনায পলাগগপরনয ডগটাং াআনাটড াথফা ডগটাং ডকন ডগটাং API এয োথগভক সগফধা র গগকউগযগট কর ডগটাং ডাটা গযিায( গযপরাগধত) থাপরক সতযাাং মখন পলাগগন ডগটাং ডব কযায ভয় Cross Site Request Forgery (CSRF) এফাং Cross Site Scripting(XSS) গনপরয় গচনতায গকি ডনাআ

Options পলাগগপরনয কর ান জভা যাপরখ এফাং retrieve কপরয এগট নতন ান ততযী কপরয াঅপরগয ান াঅপরডট কপরয ান গডগরট কপরয এফাং ডমপরকান ান retrieve কপরয

Dashboard Widgets ডযাপরফাডড উাআপরজট ততগয কপরয ওয়াডডপরে ডযাপরফাপরডড automatically উাআপরজট েদডন এফাং কর কাসটভাাআপরজন গপচায ডমভন- গভগনভাাআজ ডরাগ ডর এফাং গিন ান

Rewrite াঅনায পলাগগপরনয জনয কাসটভ রর ততগয কযা এাআ API াঅনায static-end-point(custom-page) structure tags(postname) এফাং াগতগযি গপড গরঙক (feedjson)

9

Transients গকি াসথায়ী ান (cached data) ততগয কপরয াঅনায পলাগগপরনয জনয এাআ API গট Options API এয ানর

Database ওয়াডডপরেপরয ডাটাপরফপর েপরফ কপরয এগট াঅনায পলাগগপরনয ডাটাপরফপরজ গনপরচয কাজগপররা মপাদন কপরয- creatingupdatingdeleting and retrieving

কখন াঅনায পলাগগন ডরাড য় পলাগগন ততগয কযপরত ডগপরর এাআ ডফগক কাজগপররা াঅভাপরদয াফশযাআ জানপরত পরফ াঅভযা ডতা পলাগগন াআনসটর গদপরয়াআ খারা একফায ডবপরফও ডদগখনা এগট াঅপরর গকবাপরফ কখন ডরাড পরফ াাআপরটয উয কতটা াআপরপকট ডপরপরফ াঅগভ গনপরচ একগট ডায়াোভ গদরাভ াঅা কগয াঅয গকি ফরপরত পরফনা াঅভাপরক

Wordpress URL Called

wp-config Loaded

Functions Loaded

Plugins Loaded

Pluggables Loaded

Translations Loaded

Theme Loaded

Page Content

10

ওয়াডডপরে পলাগগন ডডপরবর কযায ৭গট কাযন

াঅগভ াআনটাযপরনট এ ldquoHow to Write a Plugin (httpgooglrCUY) rdquo গদপরয় াপরনক াচড কপরযগি াপরনক াঅগটডপরকর াঅপরি গকনত ভন ভত কপরয়কগট িাড়া ফরায ভত াাআগন ওয়াডডপরেপরয ldquoডকাপরডকসrdquo াঅপররাআ ওয়াডডপরে মপপরকড জানায জনয মপরথষট এটা পরয ফপরেগি ৭ গট কাযন ডকন াঅগন ওয়াডডপরে পলাগগন ফানাপরফনাঃ ১) াঅগন একগট পলাগগন মপপরকড জাপরনন গকনত এয ফাসতফায়ন িনদ কযপরিন না াঅভযা ডফগয বাগ ভয়াআ এাআ ভোয় গড় ২- ৩ গদন ধপরয একটা পলাগগন ডখাাজায জনয ফযয় কগয গকনত ভন ভত পলাগগন খাপরজ াাআ না গকনত এাআ ভয় এ একটা পলাগগন গরখা পরয় ডমত ২) াঅগন াঅপরগয ডকান পলাগগন ভগডপাাআ কযপরফন াপরনক ভয়াআ াঅনায িনদ ভত পলাগগন ডপররন গকনত াভানয গকি ডচি কযপররাআ াঅনায কাপরজ রাগপরফ এপরকষপরতর াঅনাপরক ডাআ পলাগগনগট ভগডপাাআ কযপরত জানপরত পরফ াপরনক ভয় পলাগগপরনয ডরখক ফযসত থাকপরত াপরযন এফাং াঅপরডট কযপরত াপরযন না এপরকষপরতর াঅগন ডাআ পলাগগনগট Aut hor Name ডচি কপরয গনপরত াপরযন তপরফ GPL Compatible license (httpgooglBOzm ) গঠক ডযপরখ াঅগন নযায় াগযগজনার পলাগগপরনয নতন বাডন ডফয কযপরত াপরযন ৩) ডকান পলাগগনপরক একসপরটনড কযপরত চান াপরনক ভয় একগট পলাগগন বার কাজ কপরয াাআপরটয জনয গকনত াঅগন াঅপরযা গকি গপচায ডমাগ কযপরত াপরযন ডমভন AJAX JQuery Effects াথফা াঅপরযা গকি রক রাগাপরত চান ডমন এগট ানয পলাগগপরনয াপরথ াভিে থাপরক তপরফ াফশযাআ GPL Compatible (httpgooglBOzm ) এয াপরথ াভিে পরত পরফ ৪) াঅগন মগদ াঅনায গথপরভয ফনপরমাগয ডকাড কযপরত চান এগট ভরত কাসটভ গথভ ডকাপরডয কথা ফরা পরয়পরি ডকান এগকসগসটাং গথপরভয ৫) াঅগন মগদ গথভ গডজাাআনায ন ৬) াঅগন মগদ টাকা উাজডন কযপরত চান পলাগগন ততযী কপরয ৭) াঅগন মগদ াঅনায াাআপরটয াআনকাগভাং গরঙক গফলড কযপরত চান

পলাগগপরনয ডপালডায সটরাকচায ডকভন পরফ কর ওয়াডডপরে পলাগগন wp-contentplugins গডপরযকটগযপরত াআনসটর য় গকি পলাগগপরন রধ একগট PHP পাাআর থাপরক গকনত াঅগভ ফ ভয় একগট ডপালডায কপরয পলাগগন ততগয কযায যাভড ডদফ পলাগগপরনয সটরাকচায পরত পরফ এযকভাঃ

11

Plugin Folder Name( াঅনায পলাগগন ডপালডায নাভ ডকান ডসপ ফা ডসপার কযাপরযকটায থাকা চরপরফ না) Main php file

js ডপালডায( জাবাগিে ফা Jquery file এয জনয) css ডপালডায( সটাাআরগট পাাআপররয জনয) phpinclude ডপালডায ( ানয php পাাআর)

একগট উদাযন ডদাআ পাাআপররয সটরাকচায ডকভন পরফ- litons-first-plugin

indexphp

js

css

includes

images

uninstallphp

পলাগগন ডডায

পলাগগপরনয ডডায িাড়া ডাআ পাাআর ডপালডাযগটপরক ওয়াডডপরে গচনপরত াযপরফ না পলাগগন ডডাযাআ পরচছ একভাতর েপরয়াজনীয় পাাংন মা ওয়াডডপরে দাফী কপরয ভাপরন াঅনাপরক পলাগগন ডরখায ররপরত PHP comment বলপরকয ভপরধয গকি াআনপযপরভন গদপরত পরফ মা এপরকফাপরয পাাআপররয েথপরভ াফসথান কপরয এখাপরন গকি কথা ফপরর যাগখ াঅগন মগদ াাআপরটয এাআও টাপরগডট কপরয পলাগগন ফানান তাপরর ডকান িপরভাআ াঅনায নাভ গদপরয় পলাগগন ফানাপরফন না ডমভনাঃ Litons Plugin এপরত এাআও ডত খাযা েবাফ পরড় গনপরচ উদাযন ডদয়া রাঃ ltphp

Plugin Name Litons Plugin পলাগগপরনয নাভ

Plugin URI httpliton-onlinecomplugin পলাগগপরনয URI Description This is a demo description পলাগগপরনয গফফযন Version 10 পলাগগপরনয বাডন Author Md Liton Arefin পলাগগন ডরখক

Author URI httpliton-onlinecom ডরখপরকয URI

gt

12

উপরযয িগফপরত ডদখন ওয়াডডপরেপরয ডযাপরফাপরডড াঅগভ পলাগগন ডডাপরয মা মা তথয গদপরয়গিরাভ তাাআ ডদখাপরচছ এটাাআ াঅনায োথগভক কাজ াঅগন রাাআপরনসও ডমাগ কযপরত াপরযন এবাপরফ- lt php

Copyright YEAR PLUGIN_AUTHOR_NAME (email PLUGIN AUTHOR

EMAIL)

This program is free software you can redistribute it andor modify

it under the terms of the GNU General Public License as published by

the Free Software Foundation either version 2 of the License or

(at your option) any later version

This program is distributed in the hope that it will be useful

but WITHOUT ANY WARRANTY without even the implied warranty of

MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE See the

GNU General Public License for more details

You should have received a copy of the GNU General Public License

along with this program if not write to the Free Software

Foundation Inc 51 Franklin St Fifth Floor Boston MA 02110-1301 USA

gt

পলাগগন াথ

একগট কভন কাজ র াঅনায পলাগগপরনয পাাআর এফাং ডপালডাযগপররাপরক ওয়াডডপরে াআনসটপররন গডপরযকটগযপরত ডযপায কযা াঅগন এাআ কাজগট রাআ বাপরফ কযপরত াপরযন- ডরাকার াবডায াথ াথফা সটানডাডড URL

13

ডরাকার াবডায াথাঃ ডরাকার াবডায াথ াঅনায কগমপউটাপরযয গডপরযকটগযয ভতাআ ডরাকার াবডায াথ াধাযনত ফযফায কযা য় মখন াঅনাপরক গনপরজয ডরাকার াবডাপরযয গকি পাাআর i ncl ude কযপরত য় একগট কভন েশন র- পলাগগন পাাআপররয াথ ডদখাপরনায গঠক িগত ডকানগট াঅনায পলাগগপরনয ডরাকার াথ ডদখাপরনায জনয াঅনাপরক plugin_dir_path() পাাংন ফযফায কযপরত পরফ plugin_dir_path() পাাংন পলাগগন গডপরযকটগযয গপগজকযার াথ একসিযাকট কপরয পাাআপররয নাভ ডথপরক ltphp plugin_dir_path($file) gt

Parameters

$file-(string)(required)- পলাগগন পাাআপররয নাভ এখন ডদগখ গকবাপরফ পলাগগন ডপালডাপরযয নাভ ডফয কযপরত য়-

ltphp

echo plugin_dir_path(__FILE__)

gt

এখাপরন গএাআচগ কনসটযানট __FILE__ ডক plugin_dir_path পাাংপরনয ভধয গদপরয় া কযারাভ এাআ পাাংন াবডায াথ ডদখাপরফ পলাগগন গডপরযকটগযয public_htmlwp-contentpluginsliton-plugin

একাআবাপরফ াঅগন মগদ plugin_dir_path() এাআ পাাংনপরক মগদ ডকান াফ- গডপরযকটগযয পাাআরপরক ডযপায কগয তাপরর গনপরচয ভত কপরয ডযপায কযপরত পরফ ltphp

echo plugin_dir_path(__FILE__)jsscriptsjs

gt

এাআ ডকাডগট গনপরচয ভত াথ ডদখাপরফ- public_htmlwp-contentpluginsliton-pluginjsscriptsjs

URL াথাঃ াঅপরযা গকি পাাংন াঅপরি ডমগপররা গদপরয় ওয়াডডপরেপরয URL ডদখাপরনা মায়

plugins_url() - পলাগগন গডপরযকটগযয পরযা URL ( ডমভনাঃ httpliton-onlinecomwp-contentplugins)

includes_url() - পরযা গডপরযকটগযয URL include কপরয ( ডমভন httpliton-onlinecomwp-includes)

14

content_url() - পরযা কপরনটনট গডপরযকটগয URL ( ডমভনাঃ httpliton-onlinecomwp-content )

admin_url() - পরযা এডগভন URL

( ডমভনাঃ httpliton-onlinecomwp-admin ) site_url() - কাপরযনট াাআট এয পরযা URL

( ডমভনাঃ httpliton-onlinecom ) home_url() - কাপরযনট াাআট এয পরযা ডাভ URL

( ডমভনাঃ httpliton-onlinecom )

াথ গনপরয় াঅপরযা গফসতাগযত ডদখপরত াপরযনাঃ httpcodexwordpressorgDetermining_Plugin_and_Content_Directories

httpcodexwordpressorgFunction_Referenceplugins_url

httpcodexwordpressorgFunction_Referenceplugin_dir_url

httpcodexwordpressorgFunction_Referenceplugin_dir_path

plugins_url() পাাংন াঅনায উততভ ফনধ পরত াপরয মখন াঅগন পলাগগন ডডপরবর কযপরফন

ltphp

plugins_url($path $plugin)

gt

Parameters

$path-(string)(optional)- গযপররগটব াথ URL $plugin- (string)(optional)- পলাগগন পাাআর মা াঅগন (__FILE__) এয ভাধযপরভ া কযপরত চান ডমভনাঃ ltphp

echo ltimg src=rdquoplugins_url(imagesiconpng__FILE)rdquogt

gt

এয পরযা URL পরফ ltimg src=rdquohttpliton-onlinecomwp-contentpluginsliton-pluginimagesiconpngrdquo gt

15

াধযায়- গতনাঃ রক

ওয়াডডপরে রক( Hook) গক ওয়াডডপরেপর রক ফরপরত াধাযনত add_action() াথফা add_filter() পাাংন ডক ডফাোয় এাআ রগট পাাংনপরক remove_action() াথফা remove_filter() গদপরয় ভপরি ডপরা মায় মগদও াপরনপরকয কাপরি রপরনগি ডম এাআ রগট পাাংপরনয ভপরধয ডকান াথডকয ডনাআ গকনত াঅপরর তা নয় গফযাট াথডকয াঅপরি এ রগট পাাংপরনয ভপরধয াঅগভ ভরত এাআ রগট পাাংন গদপরয়াআ গকি পলাগগন ফাগনপরয় ডদখাফ কাযন খফাআ গরতবিড এাআ রগট পাাংন মপপরকড বাপররাবাপরফ জানা

গপলটায রক (Filter Hooks)

গপলটায রক পাাংপরনয কাজ পরচছ কনপরটনটপরক ভগডপাাআ কযা গপলটায রক গদপরয় টাাআপরটর কনপরটনট াআতযাগদ ভগডপাাআ কযা মায় ডমভন টাাআপরটর এ ডকান টযাগ না থাকা গবগজটয কপরভপরনট ltgt t ag span t ag াআতযাগদ গদপরয় াাআপরটয ডরাঅউপরটয গযফতডন কপরয গদপরত াপরয ভাপরন ডকান কপরভপরনট মগদ এযকভ ht ml ডকাড াড কযা থাপরক তাপরর ডদখপরত খাযা রাগপরফ এগপররা াফশয এখন ওয়াডডপরে াপরটাপরভগটকযাগর কপরয গকনত এাআ কাজগপররা ভরত গপলটায রক গদপরয় কযা পরয় থাপরক গপলটায রক রাআ ধযপরনয add_filter() এফাং remove_filter() পাাংন খফ গরতবনড একগট কথা গপলটায রকপরক গযটানড কযপরত য় ltphp

add_filter($tag $function $priority $accepted_args)

gt

$tag- ডম রকপরক াঅগন ডযগজসটায কযপরত চান $function- ডম পাাংনপরক াঅগন াঅউটপরট গপলটায কপরয ডদখাপরত চান $priority- একগট াআগনটজায াংখযা মা াঅনায গপলটাযপরক িভানাপরয াজাপরফ মগদ ডকান

াংখযা না ডদয়া থাপরক তাপরর এগট ১০ গডপলট গপরপরফ থাপরক $ accepted_args- ডম াংখযক যাযাগভটায একগট পাাংন েি কযপরত াপরয গডপলট গপরপরফ

১ থাপরক াঅনায পাাংপরন ানততাঃ একগট যাযাগভটায থাকপরত পরফ মা গযটানড কযপরফ apply_filter($tag$value)

$tag- গপলটায রপরকয নাভ $value- রপরকয ভধয গদপরয় ডম যাযাগভটায া কযাপরফন

াঅভযা এখন একগট উদাযি ডদখফ ডমখাপরন টাাআপরটর এয েগতটা ওয়াডডপরক ফড় াপরতয াকষপরয রানতয কযফ গনপরচ একগট পলাগগন ডদখন- ltphp

Plugin Name Liton filter

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10

16

Author Md Liton Arefin

Author URI httpliton-onlinecom

add_filter(the_titleliton_modify_title)

function liton_modify_title($content)

return ucwords($content)

gt

পলাগগনগট এগকটপরবট কযায াঅপরগ ডাসট টাাআপরটর ডদখন-

এফায পলাগগনগট এগকটপরবট কযায পরয ডাসট টাাআপরটর ডদখন-

এাআ পলাগগনগট াঅভাপরদয াপরনক ভয়াআ কাপরজ রাগপরত াপরয কাযন াপরনপরকাআ াঅভযা এাআ পযভযাটগট িনদ কগয ঠাৎ কপরযাআ াঅভযা ডাসট টাাআপরটর গরখায ভয় ফড় াপরতয াকষয কযপরত বপরর ডমপরত াগয াঅভযা এাআ কাজগট খফ ডিাট একগট পলাগগন গদপরয় াপরটাপরভগটকবাপরফ কযপরত াগয

17

এখন াঅগভ গকি াগতগযি গফলয় গনপরয় াঅপররাচনা কযফ ডমগপররা ডভপরন চরপরর বগফষযপরতয জনয বার পরফ াঅগভ একগট পাাংন গরপরখগি- add_filter(the_titleliton_modify_title)

function liton_modify_title($content)

return ucwords($content)

একট গফসতাগযত ফরপরর াঅভযা the_title এয ভধয গদপরয় মা া কযফ তা গপলটায কযপরফ এখাপরন াঅভযা ucwords the_title এয ভধয গদপরয় া কপরযগি এফায াঅপরযা টড পভড ডদগখ add_filter(the_title ucwords)

তায ভাপরন পরযা পলাগগনগট পরফ এযকভ- ltphp

Plugin Name Liton filter

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_filter(the_title ucwords)

gt

গক খফ জ রাগপরি এখাপরন ফপরর যাগখ ডম ucwords এগট গযগব কযপরফ the_title মা া কযপরি এফাং াপরটাপরভগটকযাগর গযটানড কযপরফ the_title এ সতযাাং এখাপরন গযটানড এয দযকায ডনাআ এফায াঅগন মগদ গএাআচগ বাডন ৫৩ ফযফায কপরযন তাপরর গনপরচয ভত কপরয anonymous function ফযফায কযপরফন াঅনাযা জাবাগিে ডজকপরয়গয‟য াপরথ গযগচত এগট াপরনকটাাআ এযকভ ltphp

Plugin Name Liton filter

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_filter(the_title function($content)

return ucwords($content)

)

gt

বার কপরয ডদখন ডতা াথডকযটা ডকাথায় গনপরজ গনপরজ কাজ কযপরর এবাপরফ কযপরফন াফশযাআ এগট একট এডবানস ডরপরফপররয কাজ মগদও পলাগগন ফানাপরনায ডকষপরতর এগট এখপরনা াঅদড নয় কাযন াপরনপরকযাআ গএাআচগ বাডন এখপরনা ৪ এাআ ডথপরক ডগপরি সতযাাং এাআ িগতগট একানতাআ গনপরজয জনয

18

এযাকন রক (Action Hooks) Action Hooks পরচছ ড ভসত রক ডমগপররা ওয়াডডপরেপরয রাাআপ াাআপরকর গনপরয় কাজ কপরয Action Hooks রাআ ধযপরনয add_action() remove_action() এাআ রকগপররা কাজ কপরয মখন ডকান ডাসট ডব কযা য় ডাসট াফগর কযা য় কপরভনট কযা য় ডকান বলগ ডাপরসট াথফা ওপরয়ফাাআপরট ডডাযপটায ডজনাপরযট য় এগপররা েগতগট একগট একগট কপরয Actions মখন াআউজায তায এডগভগনপরসটরটয ডভনপরত েপরফ কপরয এগপররা ফাআ Action Hooks এখাপরন াঅভযা কনপরটনটপরক গপলটায কযগিনা াঅভযা ওয়াডডপরেপরয গনগদডষট পাাংনগপররাপরক রক কপরয কাজ কযগি াঅভযা একগট উদাযন ডদগখ- ltphp

Plugin Name Liton Action

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(wp_footer function($content)

echo Hello This is Liton Arefin

)

gt

াঅনাপরদয সগফধাপরথড ডফাোয জনয গনপরচয ভত কপরয গরখন- ltphp

Plugin Name Liton Action

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(wp_footer liton_footer_action)

function liton_footer_action($content)

echo Hello This is Liton Arefin

gt

াঅভযা খফ ডিাট একগট উদাযন গদপরয় ডদখরাভ ডম action রক গকবাপরফ কাজ কপরয গনপরচ ডদগখ াাআপরট ডকভন ডদখায়-

19

উপরযয িগফপরত ডদখন াঅগভ Hello This is Liton Arefin এাআ রাাআনগট গেনট কপরযগি এফাং তা পটাপরযয ফাভ াপর এপরকফাপরয গনপরচ ডদখাপরচছ এফায ডাড ডকাড এ ডদগখ াঅপররাআ এয গজন টা ডকাথায় াঅপরি

উপরয ডদখন পটাপরযয গঠক গনপরচাআ রাাআনগট ডদখাপরচছ এফায াঅপরযকগট ফাসতফ এফাং খফাআ গরতবনড উদাযন ডদগখ এাআ পলাগগনগটয কাজ পরফ মখনাআ ডকান কপরভনট ডাসট পরফ তখনাআ এডগভনপরক ডভাআর াঠাপরফ ডম নতন কপরভনট ডাসট পরয়পরি মগদও ওয়াডডপরে এাআ কাজগট কপরয থাপরক াঅভযা এাআ কাজগট ভযানয়ারী কপরয ডদগখ ltphp

Plugin Name Liton Comments Mail

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(comment_post function()

$email= get_bloginfo(admin_email)

wp_mail(

$email

New Comment Posted

A new comment has been left on your blog

)

)

gt

এখাপরন comment_post নাপরভয রপরক একগট ডবগযপরয়ফর $email ndashএ এডগভন ডভাআরপরক ডসটায কপরযগি মাপরত কপরয ডাাআনাগভক বাপরফ ড ডমপরকান াাআপরটয এডগভন ডভাআরপরক গডপরটকট কযপরত াপরয তপরফ এপরকষপরতর মগদ bloginfo(admin_email) ফযফায কযা ত তাপরর এডগভন ডভাআরপরক গডপরটকট কযত গকনত get_bloginfo(admin_email) ফযফায কযায পপরর াঅভযা াআপরভাআর বযারগটপরক গযটানড কপরয ডসটায কযগি এফাপরয ওয়াডডপরেপরয গফলটাআন ডভাআর পাাংন wp_mail(emailsubjectmessage) এয ভত কপরয গরপরখগি বার কপরয ডদখন পলাগগনগট এগকটপরবট কপরয ডদখন াঅনায াাআট মগদ ানরাাআপরন থাপরক তাপরর গনপরজাআ একগট কপরভনট কপরয ডদখন াঅনায এডগভন ডভাআপরর একগট ডভাআর চপরর ডগপরি

20

াধযায়- চাযাঃ পলাগগন ডকাগডাং সটযানডাডড

পলাগগন এগকটপরবনগডএগকটপরবন পাাংন াঅগন মখন একগট পলাগগনপরক এগকটব কপরযন তখনাআ এগকটপরবন পাাংন গিগায য় এাআ পাাংনপরক register_activation_hook() ফপরর ltphp register_activation_hook($file $function) gt

Parameters

$file- োাআভাগয পলাগগন পাাআপররয াথ

$function- ডম পাাংনগট গিগায পরফ মখন পলাগগন এগকটপরবট য় ডমভনাঃ- ltphp

register_activation_hook(__FILE__ bdquoliton_plugin_install‟)

function liton_plugin_install()

do something cool stuff

gt

াঅভযা একগট পলাগগন ফানাাআ এবাপরফ-

ltphp

Plugin Name Liton Version

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

register_activation_hook(__FILE__ liton_plugin_install)

function liton_plugin_install()

If(version_compare(get_bloginfo(version)51lt))

deactivate_plugins(basename(__FILE__))

deactivate our plugin

gt

মখন াঅভযা পলাগগন গডএগকটপরবট কগয তখন পলাগগন গডএগকটপরবন পাাংন কর য়

21

ltphp

register_deactivation_hook ($file $function) gt

-

ltphp

register_deactivation_hook (__FILE__ bdquoliton_plugin_install‟)

function liton_plugin_install()

do something

gt

াঅপরযকগট গরতবনড গফলয় র াঅনাআনসটর ওয়াডডপরে াঅনাপরক পলাগগন াঅনাআনসটর এয জনয রগট ান গদপরচছ- uninstallphp file and the uninstall hook

uninstallphp

এগট ডভাটাভগট েনপরমাগয িগত এ ডভথড ফযফায কযায জনয াঅনাপরক uninstallphp নাপরভ একগট পাাআর ততগয কযপরত পরফ াঅনায পলাগগন গডপরযকটগযপরত পাাআরগট গনপরচয ভত পরফ- ltphp

মগদ ওয়াডডপরে এগকসট কযায াপরথ াঅনাআনসটর কর কযা না য় If(defined(bdquoWP_UNINSTALL_PLUGIN‟))

exit()

delete_option(bdquoliton_plugin_options‟)

াগতগযি ান এফাং কাসটভ ডটগফর ভপরি ডপরন gt

Uninstall Hook

গিতীয় িগত র Uninstall Hook মগদ াঅগন ডকান পলাগগনপরক গডগরট কযপরত চান এফাং uninstallphp পাাআর না থাপরক তাপরর এাআ রক এগকসগকউট য়(মগদ থাপরক) ltphp

register_uninstall_hook($file$function)

gt

22

ডকাগডাং সটযানডাডড পলাগগন ফানাপরফন গকনত াঅনায ডকাড ডকভন পরফ গচনতা াঅপরত াপরয ওয়াডডপরে াঅনায জনয একগট সটযানডাডড গদপরয় গদপরয়পরি মা াঅনাপরক ওয়াডডপরেপরয জনয পলাগগন গরখপরত ডগপরর পপররা কযপরতাআ পরফ httpcodexwordpressorgWordPress_Coding_Standards

ডফগক একগট উদাযন গদরাভ গনপরচ- ltphp

Short description

Longer more detailed description

param type $varname1 Description

param type $varname2 Description

return type Description

function boj_super_function( $varname1 $varname2 )

do function stuff

gt

গএাআচগ সটানডাডড াঅভযা াপরনপরকাআ গএাআচগয টড পভড(lt gt) ফযফায কগয এটা মপিডরপর ফজডন করন কাযন াপরনক ডাগসটাং ডকামপাগনপরতাআ এটা গডপলট গপরপরফ ফনধ কপরয ডদয়া থাপরক সটযানডাডড টযাগ ফযফায করন(ltphp gt)

এগকউএর ডসটটপরভনট পলাগগন ততগযয ভয় াঅনাপরক াপরনক ভয়াআ ডাটাপরফ ডথপরক াআনপযপরভন গনপরত পরত াপরয াপরনক রাাআপরনয ডকাড গরখপরত পরত াপরয ডপরকষপরতর বার েযাকগট পরচছ এগকউএর এয কভানড গপররা ফড় াপরতয াকষপরয ডরখা ডমভন- SELECT username FROM table1 WHERE status = active

23

াধযায়- াাচাঃ ওয়াডডপরেপরয াপরথ াআগনটপরেন

ডভন এফাং াফ ডভন ততগয করন াঅভযা াপরনক পলাগগপরনাআ ডদগখ ডম একগট ডভন াঅাআপরটভ গপরপরফ াঅভাপরদয ডযাপরফাপরডড ডদখপরত াাআ এফাং ডাআ ডভনপরত গিক কযপরর ডগটাং ডজ াঅপর ডখাপরন পলাগগপরনয মাফতীয় ডগটাং গদপরয় াঅভযা পলাগগন কনগপগায কগয এফায এাআ চভৎকায কাজগট কযফ াঅভযা

ট ডরপরবর ডভন েথভ িগত পরচছ একগট ট ডরপরবর ডভন ততগয কযা ডমগট াঅভযা ডযাপরফাপরডড ডভন গরপরসট একগট নতন াঅাআপরটভ গপরপরফ ডমাগ কযফ ডভন ততগয কযায জনয াঅনাপরক add_menu_page( ) পাাংন ফযফায কযপরত পরফ ltphp

add_menu_page( page_title menu_title capability menu_slug functionicon_url

position )

gt

add_menu_page() পাাংন গনপরচয যাযাগভটাযগপররা াপরাটড কপরয page_title- াঅনায ডপরজয টাাআপরটর গক পরফ lttitlegt tag এয ভপরধয menu_title- ডযাপরফাপরডড াঅনায ডভনয নাভ capability- ফডগনমন capability রাগপরফ একগট ডভন গবউ পরত menu_slug- সলাগ নাভ মা ডভনপরক ডযপায কপরয- তপরফ এগট াআউগনক পরত পরফ function- একগট ডপরজয কনপরটনট ডদখপরত ডম পাাংন কর কযা য় icon_url- একগট কাসটভ াআপরভজ গরঙক ডভন াঅাআকন ডদখাপরনায জনয position- ডভনয গজন াডডায ডমখাপরন এটা ডদখাপরনা পরফ

এফায াঅভযা একগট ফাসতফ উদাযন ডদখফ- ltphp

Plugin Name Liton Menu

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action( admin_menu liton_menu)

function liton_menu()

24

create custom top-level menu

add_menu_page( Liton Menu Page Liton Menu Page manage_options

__FILE__ liton_menu_settings_page plugins_url( imageswp-logopng

__FILE__ ) )

gt

াঅভযা একগট ট ডরপরবর ডভন ততগয কযরাভ ডদখন ডযাপরফাপরডড ডকভন ডদখায়-

Liton Menu Page নাপরভ একগট ডভন ততগয পরয় ডগপরি এফাপরয াঅভযা াফপরভন কযফ ভাপরন Liton Menu Page এয গনপরচ গকি ডগটাং ডভন(মগদ েপরয়াজন য়) াফ ডভন ডযগজসটায কযায জনয add_submenu_page( ) পাাংন ফযফায কযা য় ltphp

add_submenu_page( parent_slug page_title menu_title capabilitymenu_slug

function )

gt

parent_slug- ডভন সলাগ মা াঅভযা াঅপরগ গডপাাআন কপরযগি menu_slug- মা ডভনপরক াফপরভনপরত ডযপায কযপরফ ফাগক পাাংনগপররা াঅপরগয ভতাআ

এফায াফপরভনয জনয গকি াগতগযি ডকাড ডমাগ কগয create submenu items

add_submenu_page( __FILE__ About My Plugin About manage_options

__FILE___about liton_menu_about_page )

add_submenu_page( __FILE__ Help with My Plugin Help

manage_options

__FILE___help liton_menu_help_page )

add_submenu_page( __FILE__ Uninstall My Plugin Uninstall

manage_options

__FILE___uninstall liton_menu_uninstall_page )

25

পরযা ডকাডগট পরফ এযকভ- ltphp

Plugin Name Liton Menu

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action( admin_menu liton_menu

)

function liton_menu()

create custom top-level menu

add_menu_page( Liton Menu Settings Page Liton Menu Page

manage_options __FILE__

liton_menu_settings_page

plugins_url( imageswp-logopng __FILE__ ) )

create submenu items

add_submenu_page( __FILE__ About My Plugin About manage_options

__FILE___about liton_menu_about_page )

add_submenu_page( __FILE__ Help with My Plugin Help

manage_options

__FILE___help liton_menu_help_page )

add_submenu_page( __FILE__ Uninstall My Plugin Uninstall

manage_options

__FILE___uninstall liton_menu_uninstall_page )

gt

গনপরচ ডদখন াফপরভনগপররা ততগয পরয় ডগপরি-

26

ডভনপরক াঅপরগয ডভনয াপরথ মি কযা এফায াঅগ গিতীয় িগতপরত মগদ াঅনায পলাগগপরনয একগট ভাতর ডজ থাপরক একগট ভাতর ডপরজাআ াঅনায কর ডগটাং পরয় মায় তাপরর এাআ িগত েন করন ডমভন ডয়াগযাং াাআটগপররায জনয রধ াঅনায াঅাআগডপযানপরপরজয াঅাআগড দযকায য় এযকভ পলাগগন এধযপরনয পলাগগপরনয জনয াঅনায াগতগযি ডভন ততগয কযায দযকায ডনাআ ফযাং এপরত কপরয াআউজায গফযি ডফাধ কযপরত াপরযন এ ধযপরনয পলাগগনগপররা ডগটাং এয াফপরভন গপরপরফ থাপরক add_options_page() এাআ পাাংন গদপরয় এফ ডভন ডযগজসটায কযা য় ltphp

add_options_page( page_title menu_title capability

menu_slug function)

gt

এফায চরন এযকভ একগট ডভন ততগয কগয- ltphp

Plugin Name Liton Sub Menu

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action( admin_menu liton_submenu)

function liton_submenu()

create a submenu under Settings

add_options_page( Liton Menu Settings Page Liton Menu Page

manage_options __FILE__

liton_menu_settings_page)

27

gt

াফপরভন ততগয পরয় ডগপরি চরন ডদগখ ডযাপরফাপরডড ডকভন ডদখায়-

এপরকফাপরয গনপরচয গদপরক ডদখন Liton Menu Page নাপরভ একগট ডভন ততগয পরয়পরি

উাআপরজট ততগয কযা উাআপরজট ততগয কযায জনয ওয়াডডপরে WP-Widget িা গদপরয় ততগয কযা য় উাআপরজট এয একগট পযভযাট ডদখন গনপরচ ltphp

class My_Widget extends WP_Widget

function My_Widget()

processes the widget

function form($instance)

displays the widget form in the admin dashboard

function update($new_instance $old_instance)

process widget options to save

function widget($args $instance)

displays the widget

gt

28

উাআপরজট ডযগজসটায কযায জনয widget_init() পাাংনপরক রক কযা য় চরন একগট উাআপরজট ততগয কগয- ltphp

Plugin Name Liton Widget

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

class Messager extends WP_Widget

function __construct()

$params=array(

description =gtDisplay message to readers

name =gt Message

)

parent__construct(Messager $params)

public function form()

public function widget()

add_action(widgets_initliton_register_message)

function liton_register_message()

register_widget(Messager)

gt

29

খফ াধাযন একগট উাআপরজট পলাগগন এগট াঅভযা াআউজাযপরদযপরক একগট ডভপরজ ডদখাপরফা াাআডফাপরয ডটাাআ কযায ডচষটা কযগি এখন পলাগগনগট এগকটপরবট কপরয ডদগখ-

াঅভাপরদয উাআপরজটগট ডদখাপরচছ এফায াঅপরযা গকি পাাংনার কাজ কগয এগট মগদ াাআডফাপরয ডরাগ কপরয ডদন তাপরর ডকান কাজ কযপরফ না কাযন াঅভযা এখপরনা গকিাআ কগযগন পভড পাাংপরন গকি কাজ কগয মা উাআপরজট টাাআপরটর গপরপরফ ডদখাপরফ- public function form($instance)

extract($instance)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title)gtgtTitle ltlabelgt

ltinput

class=widefat

id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt

value=ltphp if(isset($title)) echo esc_attr($title) gt gt

ltpgt

ltphp

াঅভযা উপরয class=widefat ফযফায কপরযগি এাআ িা ফযফায কযায কাযপরন পভড এয াআনট গপলডগট াপরনক সনদয পরয়পরি

30

মগদ এাআ িা ফযফায না কগয তাপরর ডকভন ডদখাপরফ গনপরচ ডদখন-

াঅভাপরদয উাআপরজট পলাগগনগটয ডকাড গনপরচ ডদওয়া র ltphp

Plugin Name Liton Widget

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

class Messager extends WP_Widget

function __construct()

$params=array(

description =gtDisplay message to readers

name =gt Message

)

parent__construct(Messager$params)

31

public function form($instance)

extract($instance)

print_r($instance)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title)gtgtTitle ltlabelgt

ltinput

class=widefat

id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt

value=ltphp if(isset($title)) echo esc_attr($title) gt gt

ltpgt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(description)gtgtDescription

ltlabelgt

lttextarea

class=widefat

rows=10

id=ltphp echo $this-gtget_field_id(description) gt

name=ltphp echo $this-gtget_field_name(description) gtgtltphp

if(isset($description)) echo esc_attr($description) gtlttextareagt

ltpgt

ltphp

public function widget($args$instance)

extract($args)

extract($instance)

echo $before_widget

echo $before_title$title$after_title

echo ltpgt$descriptionltpgt

echo $after_widget

add_action(widgets_initliton_register_message)

function liton_register_message()

32

register_widget(Messager)

gt

এফায াঅভযা ডযাপরফাডড ডথপরক একগট ডভপরজ ডদফ গবগজটযপরদযপরক-

াঅভযা এাআ উাআপরজটগট ডাাআনাগভক বাপরফ কপরযগি কাযন এখাপরন lth2gt lth3gt lth4gt এ ধযপরনয ডকান টযাগ াঅভযা ফযফায কগযগন াঅভযা গথভ ডডপরবর কযগিনা সতযাাং এ কাজগট াঅভাপরদয ানযবাপরফ কযা দযকায গির এগট গথভ ডডপরবরায ডদগখপরয় ডদপরফন ডম ডকভন টযাগ পরফ াাআডফাপরয াাআপরটয াাআডফাপরয ডকভন ডদখায় তা ডদখন- াঅভযা রগট গথপরভ এগট ডটসট কপরয ডদখফ েথভগট টপরয়গনট াআপররপরবন

33

এফায াঅপরযকগট গথপরভ ডদগখ-

34

াধযায়- িয়াঃ পলাগগন পাাংন

গকি ডফগক পাাংন __() পাাংন

__() পাাংনগট গএাআচগপরত াঅনায ডটকসটপরক ডযগড কপরয িানসপররন এফাং গযটানড কপরয উদাযন গপরপরফ াঅগন একগট বযারপরক __() পাাংপরনয ভপরধয ডবগযপরয়ফর গদপরয় assign করন ভপরন যাখপরফন এাআ পাাংনগট রগট াঅনডাযপরিায(_) গদপরয় গগঠত একগট নয় ltphp

$text=__(bdquoWordpress is a wonderful publishing platform‟‟liton_plugin‟)

gt

_e() পাাংন _e() পাাংনগট াঅনায ডটকসবপরট ডরাকারাাআজ কপরয এটা গএাআচগপরত echo এয ভত কাজ কপরয ডকান ডটকসটপরক গিপরন ডদখাপরনায জনয এফায একট ভজা কগয মা রপরক ডদপরখগি াঅপরগাআ- _e() পাাংনগট গদপরয় াঅপরগয পলাগগনগট এগডট কযফ ltphp

Plugin Name Liton Action

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(wp_footer liton_footer_action)

function liton_footer_action()

Output the translated text

_e( This site runs off the coolest platform ever ampmdash

WordPress

liton-plugin )

gt

35

এফায াঅউটট ডদগখ

esc_attr__() পাাংন এাআ পাাংনগট esc_attr() এয ভত এগট এাআচগটএভএর এগিগফউটপরক escape কপরয াঅভযা এফায esc_attr__() এফাং __() এাআ রগট পাাংনপরক একগট কপরয পলাগগন ততগয কযফ ltphp

Plugin Name Liton Esc Attr

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

A function that returns a link to the sites terms of service

page

function liton_terms_of_service_link()

return lta href=httpliton-onlinecomtos title=

esc_attr__( Visit the Terms of Service page boj-plugin ) gt __( Terms of

Service liton-plugin ) ltagt

Display the output of the liton_terms_of_service_link()

function

echo liton_terms_of_service_link()

gt

পলাগগনগটয াঅউটট ডদখন-

36

এযকভ াঅপরযা গকি পাাংন াঅপরি ডমগপররা াঅনাযা ডদপরখ ডনপরফন াআনটাযপরনট ডঘপরট

esc_html__() Function

esc_attr() Function

esc_url() Function

esc_js() Function

esc_html() Function

esc_attr_e() Function

esc_html_e() Function

_x() Function

_ex() Function

esc_attr_x() Function

esc_html_x() Function

_n() Function

_nx() Function

_n_noop() Function

_nx_noop() Function

Translation

bull Poedit httppoeditnet

bull GlotPress httpglotpressorg

bull Launchpad httpstranslationslaunchpadnet

bull Pootle httppootlelocamotionorg

bull KBabel httpi18nkdeorg

bull GNU Gettext httpgnuorgsoftwaregettext

GlotPress এখন ওপরয়ফ ডফড টর গপরপরফ ফযফায কযা পরচছ ওয়াডডে েপরজপরকটয ডিপরন একজন াথফা গটপরভয জনয িানসপররগটাং পটওয়যায গপরপরফ

37

াধযায়- াতাঃ পলাগগন গগকউগযগট

গগকউগযগট কগমপউটাপরযয বালায় ldquoগগকউগযগটrdquo ভাপরন বীগতকয একগট বদ ডমভন Cross Site

Scripting(XSS) Cross Site Request Forgery(CSRF) SQL Injection Privilege

Escalation Vulnerabilities এফাং Holes রফডর ডকাড একগট াবডাপরযয সযকষায জনয রভকীয কাযন পরত াপরয

পলাগগপরনয গগকউগযগট গক াঅনায পলাগগনগট ডমন গগকউয য় vulnerabilities data integrity এফাং reliability ডথপরক

াঅনায পলাগগনপরক গক গগকউগযগট ডদপরফন ওয়াডডপরে এনবায়যনপরভপরনট াঅনায পলাগগনপরক গগকউগযগট ডদয়া খফ কগঠন কাজ নয় এফাং খফ ভয় াপরকষ গফলয়ও নয় ওয়াডডপরেপরয গনজসব গকি পাাংন এপরকষপরতর াঅনাপরক খফাআ াাময কযপরফ

াআউজায াযগভন াঅভযা াপরনক পলাগগন াআনসটর কযায পরযাআ ডদপরখগি ডম মখনাআ এডগভন যাপরনর এ েপরফ কযপরত মাাআ তখন একগট এযয ডভপরজ াঅপর ডভপরজগট গনপরচয ভত-

ডরখা াঅপরি- You do not have sufficient permissionshellip এটা গনশচয়তা ডদয় ডম ডমপরকান এযাকন ীভাফি থাপরক গনগদডষট গকি যাাআট গদপরয় ওয়াডডপরেপরয একগট কভন পাাংন র current_user_can() একগট উদাযন ডদাআ-

38

ltphp

Capability

if ( current_user_can(install_plugins) )

wp_die( Insufficient permissions )

Role

if( current_user_can(editor) )

wp_die( You cannot edit this setting )

gt

খফ তাড়াতাগড় াঅগন এাআ current_user_can() পাাংন ডচক কযপরফন না কাযন এটা গনবডয কযপরফ get_currentuserinfo() এাআ পাাংপরনয উপরয াঅয এয ফযফাপরয ীভাফিতা াঅপরি এটা একগট পলাপরগফর পাাংন(pluggable function) াঅয এয ডরাপরকন পরচছ wp-

includespluggablephp মা পলাগগন এগকটব ফায য ডরাড য়

Nonces

ডকউ এগটপরক াঅফায Nonsense( গনপরফডাধ) বাফপরফন নাএগট ওয়াডডপরেপরয বালায় Nonces কগমপউটাপরযয বালায় nonce ফা cryptographic nonce পরচছ ldquonumber used once rdquo এটা ডিাট এফাং সপষট গকি য যানডভ গসটরাং ডমভন- াওয়াডড মা গকি গনপরদড কপরয Nonce গপরডন গপলড পভডপরক Retrieve ফা display কপরয-

একজন ওয়াডডপরে াআউজায ডমপরকান একগট এযাকন (delete update save and such) একগট াফপরজকট(একগট ডাসট পলাগগন ডগটাং াআতযাগদ) ২৪ ঘনটায একগট ভয় ডিভ

ডমভন ডাসট 50 গডগরট কযপরফন াঅনায ওয়াডডপরে বলগ ডথপরক তাপরর াঅনায গরঙকগট পরফ এযকভ- httpexamplecomwp-admin

postphppost=43ampaction=trashamp_wpnonce=83a08fcbc2

এখাপরন 83a08fcbc2 এগট র nonce মা ২৪ ঘনটা সথায়ী থাপরক রধভাতর এগট মগদ াঅনায িাযা ফযফরত য় এফাং গডগরট য় ডাসট 50 মখন াঅগন গরপরঙক গিক কপরযন ফপরচপরয় গযতবনড র ডম Nonce ডকান malicious াআউজায ফেপরত াপরযনা এফাং গঠক গরঙক িাড়া nonce এযয ডপরজ চপরর মায় ডমখাপরন াযগভন থাপরক না াঅপরযা গফসতাগযত ডদখন httpcodexwordpressorgWordPress_Nonces

39

Nonce URL ততগয এফায চরন াঅপরগয উদাযন ডথপরক Nonce URL ততগয কগয একগট ডাসট গডগরট কযায জনয wp_nonce_url() পাাংন ফযফায কযা য় ltphp

$url = wp_nonce_url( $url $action )

gt

েথভ যাযাগভটায $url পরচছ গসটরাং URL এপরডর এয মাপরক াঅগন কপরয়যী গসটরাং এয Nonce কযপরত চান াফযফহরত পলাগগপরনয গডগরট গরঙক এযকভ থাপরক- httpexamplecomwp-admineditphppage= liton

_utagsampliton_action=deleteampid=6

এখাপরন ডদখন যাযাগভটায liton_action এফাং এয টযাগ াঅাআগড গিতীয় যাযাগভটায পরচছ $action একগট গসটরাং মা াঅগন একগট াফপরজকট এয জনয একগট action ততগয কযপরফন উপরয ডদখরাভ delete এযাকন এয টযাগ াঅাআগড 6 সতযাাং $action যাযাগভটায পরত াপরয bdquoliton_utags-delete_tag6‟ গনপরচ ফাসতফ উদাযন ডদগখ- ltphp

$delete_url = add_query_arg(array( liton _action=gtdeleteid=gt$id) )

$nonced_url = wp_nonce_url( $delete_url bdquoliton _utags-delete_tag$id )

gt

lta href=ltphp echo $nonced_url gtgtdeleteltagt

এাআ টযাগগট পরফ গডগরট গরঙক এখাপরন add_query_arg() পাাংন ফযফায কযা পরয়পরি মা কাপরযনট URL ডক এযাপরয যাযাগভটায এয ভপরধয যাপরখ ানযবাপরফ ফরপরর এগট ডমাগ কপরয এযকভাঃ liton_action=deleteampid=6 amp liton_action=deleteampid=6

Nonce Form ততগয Nonce পভডপরকও ডোপরটকট কপরয wp_nonce_field() পাাংপরনয ভাধযপরভ ltphp

wp_nonce_field( $action $name $referer $echo ) gt

$action ( string) (optional) - action নাভ াআউগনক identifier optional

গকনত recommended $name (string) (optional) ndash গপরডন গপলড পভড ডবগযপরয়ফর নাভ $referer (boolean) (optional) ndash গডপলট গপরপরফ true থাপরক ডমখাপরন গপলড

ডবগরপরডন এয দযকায য়

40

$echo (boolean) (optional) - গডপলট গপরপরফ true থাপরক ডমখাপরন াঅউটট ডদখাপরনায ফা গপরডন পভড গপলড গযটানড কযায জনয দযকায য়

পপরভড াঅনায action এয নাভ গদন ltform method=postgt

lt-- some inputs here --gt

ltphp wp_nonce_field(name_of_my_actionname_of_nonce_field) gt

ltformgt

াঅভযা একগট পলাগগন ফানাপরফা ডমখাপরন াফযফরত টযাগগপররাপরক াঅভযা ভযানয়াগর গডগরট ফা গযপরনভ কযপরত াযফ এগট একট ফড় গকনত াপরনক গফলয়াআ াঅপরগাআ াঅপররাচনা কযা পরয়পরি ডদখপররাআ ফেপরত াযপরফন একগট ফাসতফধভডী উদাযন গনপরচ গদরাভ- ltphp

Plugin Name Liton Unused Tags

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add an entry for our option page to the Posts menu

add_action(admin_menu liton_utags_add_page)

function liton_utags_add_page()

add_posts_page( Unused Tags Unused Tagsmanage_optionsliton_utags

liton_utags_option_page )

Catch any liton_action parameter in query string

add_action( admin_init liton_utags_do_action )

Proceed to requested liton_action if applicable

function liton_utags_do_action()

if( isset( $_REQUEST[liton_action] ) )

return

if( current_user_can( manage_options ) )

wp_die( Insufficient privileges )

41

$id = $_REQUEST[id]

$action = $_REQUEST[liton_action]

if( $action == done )

add_action( admin_notices liton_utags_message )

return

check_admin_referer( liton_utags-$action_tag$id )

switch( $action )

case rename

$newtag = array( name =gt $_POST[name] slug =gt

$_POST[name] )

wp_update_term( $id post_tag $newtag )

break

case delete

wp_delete_term( $id post_tag )

break

wp_redirect( add_query_arg( array( liton_action =gt done )

) )

Admin notice

function liton_utags_message()

echo ltdiv class=updatedgtltpgtAction

completedltpgtltdivgt

Draw the tag management page

function liton_utags_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtUnused Tagslth2gt

ltphp

if( $tags = liton_utags_find_orphans() )

echo ltpgtYou currently have count( $tags ) unused

tagsltpgt

echo ltolgt

foreach( $tags as $tag )

42

$id = $tag-gtterm_id

$name = esc_attr( $tag-gtname )

$delete_url= add_query_arg(

array(liton_action=gtdeleteid=gt$id) )

$nonced_url= wp_nonce_url( $delete_url

liton_utags-delete_tag$id )

gt

ltligt

ltform action= method=postgt

ltphp wp_nonce_field( liton_utags-rename_tag$id )

gt

ltinput type=hidden name=liton_action

value=rename gt

ltinput type=hidden name=id value=ltphp echo

$id gt gt

ltinput type=text name=name value=ltphp echo

$name gt gt

ltinput type=submit value=Rename gt or

lta href=ltphp echo $nonced_url gtgtdeleteltagt

this tag

ltformgt

ltligt

ltphp

else gt

ltpgtYou have no unused tagsltpgt

ltphp endif gt

ltolgt

ltdivgt

ltphp

Find unused tags return them in an array

function liton_utags_find_orphans()

global $wpdb

$sql = SELECT termsterm_id termsname FROM

$wpdb-gtterms terms

INNER JOIN $wpdb-gtterm_taxonomy taxo

ON termsterm_id=taxoterm_id

WHERE taxotaxonomy = post_tag

43

AND taxocount=0

return $wpdb-gtget_results( $sql )

gt

ডযাপরফাপরডড এাআ পলাগগপরনয ডভন াওয়া মাপরফ ডাসট এয াফপরভন গপরপরফ গনপরচ ডদখন-

এফায পলাগগন ডভনপরত গিক কপরয ডদগখ পলাগগপরনয ডবতপরযয কাজ-

উপরয ডদখন াঅগভ একগট টযাগ ততগয কপরযগিরাভ l i নাপরভ এগট এখাপরন ডদখাপরচছ াঅগভ চাাআপরর এগট এগডট ফা গডগরট কযপরত াগয এফায গডগরট গরঙক এ ভাউপরয কাডয ডযপরখ গনপরচ গরঙক ডদখন ফা গডগরট করন একগট টযাগ াঅভায এখাপরন URL গট এযকভ httplocalhostdev-litonwp-

admineditphppage=liton_utagsampliton_action=doneampid=4amp_wpnonce=30a44b7

986

এখাপরন াঅগভ liton_action=done ফযফায কপরযগি Nonces এয পাাংনগপররায নাভ গনপরচ গদরাভ াঅনাযা ডদপরখ গনপরফন াআনটাযপরনট ডথপরক wp_nonce_field()

wp_nonce_url()

wp_verify_nonce()

wp_create_nonce()

44

check_admin_referer()

check_ajax_referer()

ডাটাপরফ াঅনাযা ডমপরত গএাআচগ গনপরয় কাজ কপরযন এগকউএর ডাটাপরফ এয াপরথ ফাাআ কভপরফী গযগচত এয গনটযাকস গপররা ডভাটাভগট ফায জানা একাআ বাপরফ াপরনপরকাআ ওয়াডডপরেপরও ডাটাপরফ ডকাড গরপরখন এটা ডকাগডাং এয জনয খাযা গদক াঅগভ নযভার গএাআচগ- এগকউএর ডকাড এয উদাযন গদগচছ- ltphp

$sql=rdquoINSERT INTO $wpdb-gtposts(post_title) VALUES(bdquo$title‟)rdquo

$wpdb-gtquery($sql) gt

এফায ওয়াডডপরেপরয সটযানডাডড ডকাগডাং গপরসটভ ডদখন- ltphp

$wpdb-gtinsert($wpdb-gtposts

array(bdquopost_title‟ =gt $title)

array(bdquos‟)

)

gt

ডাটাপরফ গগকউয কযায জনয াঅপরডট াাপরযন ডদখাফ- গনপরচয ডকাডগট খাযা েযাকগট ltphp

$wpdb-gtquery(ldquoUPDATE $wpdb-gtposts SET post_title=‟$newTitle‟ WHERE

ID=$my_idrdquo )

gt

উপরযয ভত কপরয না গরপরখ গনপরচয ভত কপরয গরখন- ltphp

$wpdb-gtupdate($wpdb-gtposts

Array(bdquopost_title‟ =gt‟$newTitle‟)

Array(bdquoID‟ =gt$my_id

)

gt

ানর বাপরফ ানযানয াাপরযন গপররা গরখপরফন

45

াধযায়- াঅটাঃ ডরাকারাাআপরজন এফাং Set t i ngs API

ডরাকারাাআপরজন ডরাকারাাআপরজন একগট গরতবনড গফলয় এয পাাংনগপররা র- load_theme_textdomain()

load_plugin_textdomain()

উদাযন- ltphp $var=__(bdquoHello‟‟domain‟) gt

ltphp _e(bdquoHello‟‟domain‟) gt

গফসতাগযত গনপরচয গরপরঙক ডদখন- httpcodexwordpressorgI18n_for_WordPress_Developers

ডগটাং API

ডগটাং API পরচছ াঅগন গকি ান ততগয কযপরফন মা াআনটাযনার বাপরফ াঅনায পলাগগপরন এপলাাআ পরফ মখন াঅগন াআউজায- গডপাাআন ান ততগয কযপরফন াঅনায পলাগগপরনয জনয তখন Settings

API ndashএ াঅনায ডকাড মতটা ারন জ করন Settings API াঅনায ডম কাজগপররা handle কপরয-

ওয়াডডপরেপরক জাগনপরয় ডদয় ডম াঅগন গনজসব ান ফযফায কযপরফন াঅনায াআনটপরক পাাংপরনয ভপরধয উপরেখ কযপরফ ডফগয বাগ ান ডজ গনপরজাআ ততগয কযপরফ $_POST ডাটা গপররাপরক ভগনটয কপরয ান ততগয এফাং াঅপরডট কপরয(মগদ েপরয়াজন য়)

Settings API পাাংন Settings API পাাংপরন গতনগট ডসট থাপরক- ১ েথপরভ ওয়াডডপরেপরক ফপরর ডম াঅগন নতন ডগটাং ফযফায কযপরফন াঅনায পলাগগপরনয জনয ২ এয পরয ডগটাং গডপাাআন করন (text areas input boxes and any

HTML form element) এফাং এপরদযপরক একাপরথ রে কপরয যাপরখ ৩ ওয়াডডপরেপরক াঅনায ডগটাং actual form এ ডদখাপরনায জনয ফপরর

46

এফায াঅভযা একগট পলাগগন ফানাপরফা Administration Page ndashএ ডযপাপরযনস গপরপরফ ডদখপরত াপরযন- httpcodexwordpressorgAdding_Administration_Menus

httpcodexwordpressorgFunction_Referenceadd_options_page

httpcodexwordpressorgAction_ReferenceActions_Run_During_an_Admin_P

age_Request

পলাগগপরনয এডগভন ডজ পরফ এযকভ- httpexamplecomwp-adminoptions-generalphppage=liton_myplugin

েথপরভ াঅভযা ডভন ততগয কযফ াঅপরগয ভত কপরয- Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

এফায ান ডজ এ পভড গনপরয় গকি ডগটাং ডদফ function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

উপরযয ডকাপরড াঅভযা একগট পপরভডয ভপরধয রধ াফগভট ফাটন এফাং My Plugin নাপরভ ডজ ততগয কপরযগি ডযাপরফাপরডড ডদখন-

47

ডগটাং এয াফ ডভন গপরপরফ My Plugin াঅপরি এফাং My Plugin ডত গিক কযপরর াঅভযা উপরযয ডজ ততগয কপরযগি ডমখাপরন াফগভট ফাটনগট ডদখাপরচছ এফায গতনগট যাযাগভটায ডযগজসটায কযফ- ltphp

register_setting( liton _myplugin_options liton _myplugin_options liton

_myplugin_validate_options)

gt

েথভগট ডগটাং রেপরয নাভ গিতীয়গট ান নাভ মা াঅভযা get_option() পাাংন গদপরয়ও ডপরত াগয ততীয়গট করফযাক পাাংন এগট একগট গসটরাং ডযপাপরযনস পাাংন এখাপরন াঅভযা নাভ

48

গদপরয়গি liton _myplugin_validate_options মা া কযপরফ পপরভডয কর ডব ডগটাং াঅভযা এটা পরয গডপাাআন কযফ

ডগটাং গডপাাআন ডকন add_settings_field() এফাং add_settings_section() পাাংন গদপরয় াঅভযা াঅভাপরদয কর ডগটাং গডপাাআন কযফ ltphp

add_settings_section( liton_myplugin_main My Plugin Settings

liton_myplugin_section_text liton _myplugin)

add_settings_field( liton _myplugin_text_string Enter text here

liton _myplugin_setting_input liton _myplugin liton _myplugin_main)

gt

add_settings_section() পাাংন গদপরয় াঅভযা ডদখাফ াঅপরর ডজ এ ডকন ডকভন ডদখাপরফ এয চাযগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ ডকন টাাআপরটর ltH3gt টযাপরগয ভপরধয করফযাক পাাংন এয নাভ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ (page= liton _myplugin এগট

URL এয াাং গপরপরফ থাকপরফ) গিতীয় যাযাগভটায add_settings_field() পপরভডয াআনট গপরপরফ ডদখাপরনা পরয়পরি এখাপরন াাচগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ পরযয গপপরলড গক গেনট কযা পরফ তা ডটকসট গপরপরফ ডদখাপরনা পরয়পরি(Enter text

here)

করফযাক পাাংন পপরভড গেনট কযপরফ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ ডগটাং ডপরজয ডকন গপলড মা add_settings_section() পাাংপরন গডপাাআন

কযা পরয়পরি ltphp

Explanations about this section

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

49

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton _myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name= liton _myplugin_options[text_string]

type=text value=$options[text_string] gt

gt

গিতীয় পাাংন ান বযার text_string ডক এযাপরযপরত ডসটায কপরয ডযপরখপরি এফায াআউজায াআনট বযাগরপরডট কযফ- ltphp

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace([^a-zA-Z]$input[text_string] )

return $valid

gt

পভডপরক ডযনডায কযফ- ltphp

Draw the options page

function liton_myplugin_options_page()

gt

ltdiv class=wrapgt

ltphp

screen_icon()

gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp

settings_fields( liton_myplugin_options)

do_settings_sections(liton_myplugin)

50

gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

settings_fields() পাাংনগট ডযপাপরযনস গপরপরফ ফযফায কযা পরয়পরি মা াঅভযা register_setting() পাাংপরন গডপরিয়ায কপরযগি do_settings_sections() পাাংনগট কর কযপরফ কর াঅউটট ডকন এফাং পভড গপলডপরক মা াঅভযা পরফড গডপাাআন কপরযগি াঅভাপরদয কাজ ডল এফায পরযা পলাগগনগট ডদখফ- ltphp

Plugin Name Settings API example

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

Draw the option page

function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save

Changes gt

ltformgtltdivgt

ltphp

51

Register and define the settings

add_action(admin_init liton_myplugin_admin_init)

function liton_myplugin_admin_init()

register_setting( liton_myplugin_options

liton_myplugin_options

liton_myplugin_validate_options )

add_settings_section( liton_myplugin_main My Plugin

Settings

liton_myplugin_section_text liton_myplugin )

add_settings_field( liton_myplugin_text_string Enter text

here

liton_myplugin_setting_input liton_myplugin

liton_myplugin_main )

Draw the section header

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton_myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name=liton_myplugin_options[text_string]

type=text value=$text_string gt

Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

return $valid

gt

52

ডদখন ডযাপরফাপরডড ডকভন ডদখায়-

পরয় ডগর াঅভাপরদয েথভ নডাাংগ পলাগগন ান ডজ াঅপরযকগট গজগন ডমটায জনয এতগকি পলাগগন URL এপরডর- httplocalhostdev-litonwp-adminoptions-

generalphppage=liton_mypluginampsettings-updated=true

াঅভায এখাপরন এযকভ ডদখাপরচছ ডটকসট ফপরকস ডকান গকি গরপরখ ডব কযায য এফাপরয াঅপরযকগট গজগন ডদখফ াঅভযা াপরনক ভয়াআ াপরনক পলাগগপরনয াআনট গপপরলড বর ডাটা াআনট কযপরর এযয ডভপরজ ডদখায় এাআ কাজগট কযফ এফায াঅভযা এখাপরন esc_attr() ফা esc_html() ফযফায কগযগন সতযাাং াঅভাপরদয গরগভপরটন থাকপরি ডবগরপরডট পাাংনগট একট এগডট কগয গনপরচয ভত কপরয Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

if( $valid[text_string] = $input[text_string] )

add_settings_error(liton_myplugin_text_stringliton_myplugin_texterror

53

Incorrect value enterederror)

return $valid

উপরয ডদখন add_settings_error() পাাংন ফযফায কপরযগি মা এযয ডচক কযপরফ পপরভডয াঅগভ একগট বর ডাটা(পরসপার কযাপরযকটায) াআনট কপরয ডদখরাভ এযয ডদখাপরচছ-

তায ভাপরন াঅভযা পর পরয়গি াঅনায পলাগগনগট এগডট কপরয ডনপরফন ডকায ডকন এফাং গপপরলডয গরসট গদরাভ াঅনাপরদয সগফধায জনয

54

CSSJS পাাআর মি কযা

াঅনায পলাগগপরন গএএ ফা জাবাগিে ডমাগ কযপরত পরত াপরয াঅগন চাাআপরর ফাগপরযয ডকান ফা াঅনায ততগয ডকান গএএ ফা জাবাগিে পাাআর ডমাগ কযপরত াপরযন তপরফ এপরকষপরতর াঅভযা ডমবাপরফ HTML এ পাাআর ডমাগ কগয ডযকভ না function liton_scripts()

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtojqueryjsrdquogtltscriptgt‟

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtoscriptjsrdquogtltscriptgt‟

add_action(bdquowp_head‟‟liton_scripts‟)

এগট মপনডরপর বর িগত গনপরচ ডদখন ওয়াডডপরেপর গকবাপরফ পাাআর মি কযপরত য়- function liton_scripts()

wp_enqueue_script(bdquojquery‟)

wp_enqueue_script(bdquotheme-scripts‟‟pathtoscriptsjs‟)

add_action(bdquowp_enqueue_script‟‟liton_scripts‟)

ানর বাপরফ াঅগন সটাাআরীট ডমাগ কযপরত াপরযন- function liton_styles()

wp_enqueue_ style (bdquocss‟)

wp_enqueue_ style (bdquotheme- styles‟pathto stylescss‟)

ডযপাপরযনস ডদখন- httpcodexwordpressorgFunction_Referencewp_enqueue_script

httpcodexwordpressorgFunction_Referencewp_enqueue_style

টডপরকাড টডপরকাড পরচছ ওয়াডডপরেপরয ডসপগগপক ডসপার টযাগ মা াঅগন ডাসট ফা ডপরজয ভপরধয াআনাটড কপরয ানয ডকান কনপরটনটপরক ওপরয়ফাাআপরটয ভপরধয গযপরপল কযপরত াযপরফন মগদ াঅগন গযারাগয টাাআপরয ডকান পলাগগন ফযফায কপরয থাপরকন তাপরর াঅনায ধাযনা থাকায কথা মাাআ ডাক াঅগভ কপরয়কগট উদাযি ডদখাফ

55

েথপরভ একগট পলাগগন ততগয কযফ ডমখাপরন add_shortcode() নাপরভয একগট পাাংন থাকপরফ এগট রগট যাযাগভটায েন কপরয েথভগট টডপরকাপরডয নাভ গিতীয়গট ডম পাাংনপরক কর কযপরফন ডগট াঅভযা একগট উদাযন ডদগখ- ltphp

Plugin Name Liton Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(litonhi)

function hi()

echo Hello World

gt

উপরয ডদখন খফ ডিাট গকনত াঅগন চাাআপরর এয ফযফায াপরনক গফসতত কযপরত াপরযন এখাপরন টডপরকাড নাভ পরচছ liton াঅয এগটপরক ডরখা য় এবাপরফ [liton] াঅভযা ডাপরসটয ভপরধয াআনাটড কপরয ডদগখ াঅউটট ডকভন ডদখায়-

এফায াঅউটট ডদগখ-

56

াঅভাপরদয ততগয কযা টডপরকাড পরবাপরফাআ কাজ কযপরি াঅপরযকগট উদাযন ডদখফ াঅনাযা াপরনপরকাআ গগর এডপরনস গনপরয় কাজ কপরযন াঅনাযা াপরনপরকাআ এডপরনস এয জনয পলাগগন ফযফায কপরযন গকনত চাাআপররাআ এাআ কাজগট াঅনাযা গনপরজয ভত কপরয াগজপরয় গনপরত াপরযন গগপররয কাপরি ফ ডাসট বযার ায়না াঅনাযা মাযা একসাটড াঅপরিন তাযা এটা বার কপরয জাপরনন তাাআ াপরনপরকাআ গগপররয ডকাড ফ ডপরজ ডদখাপরত চান না এজনয পলাগগন ফযফায কপরয রাব য়না কাযন পলাগগপরন জায়গা গপকসড থাপরক এপরত কপরয াঅগনডাং ও কভ য় াঅনাযা টডপরকাড ফযফায কপরয ডমপরকান জায়গায় এড ডদখাপরত াপরযন গনপরচ াঅগভ রগট টডপরকাড ততগয কপরযগি র‟ধযপরনয এড ডদখাপরনায জনয ltphp

Plugin Name Liton Adsense Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(adsense_468adsense_468_60)

add_shortcode(adsense_250adsense_250_250)

function adsense_468_60($atts)

return ltscript type=textjavascriptgtlt--

57

google_ad_client = ca-pub-0956247412222369

468x60 created 101510

google_ad_slot = 4372705450

google_ad_width = 468

google_ad_height = 60

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

function adsense_250_250($atts)

return ltscript type=textjavascriptgtlt--

google_ad_client = ca-pub-0956247412222369

250x250 created 81809

google_ad_slot = 9368091893

google_ad_width = 250

google_ad_height = 250

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

gt

একগট টডপরকাড ফযানায টাাআপরয জনয এফাং াঅপরযকগট ২৫০২৫০ াাআপরজয এফায ডাপরসট ডমপরকান একগট টডপরকাড াআনাটড করন ডমখাপরন াঅনায ডদখাপরনায েপরয়াজন ভপরন কপরযন াঅগভ রগট ডকাড ডটসট কপরয ডদখরাভ-

58

এফায াাআপরটয াঅউটট ডদগখ-

রগট এডাআ ডদখাপরচছ াঅপরযা াপরনক কাপরজ াঅগন টডপরকাড ফযফায কযপরত াপরযন ডযপাপরযনসাঃ httpcodexwordpressorgShortcode_API

59

াধযায়- নয়াঃ পলাগগন উদাযন

ওয়াডডপরেপরয ডডটটাাআভকপরভনট নামবায ফাাংরা কযায পলাগগন াঅভাপরক কপরয়কজন ফপররগিপররন ওয়াডডপরেপরয গডপলট ডডটটাাআভকপরভনট নামবায ফাাংরা য়না রযাাংগপরয়জ ফাাংরা কযায যও ডডটটাাআভকপরভনট নামবায গপররা াআাংপরযগজ ডথপরক মায় গনপরচয পলাগগনগট ফযফায কপরয ডদখপরত াপরযন- ltphp

Plugin Name Liton Bangla datetimecomment number

Plugin URI httpliton-onlinecomplugins

Description Bangla datetimecomment number

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

This function converts all english numbers to bangla number

function make_bangla_number($str)

$engNumber = array(1234567890)

$bangNumber = array( ১ ২ ৩ ৪ ৫ ৬ ৭ ৮ ৯ ০ ) $converted = str_replace($engNumber $bangNumber $str)

return $converted

add_filter( get_the_time make_bangla_number )

add_filter( the_date make_bangla_number )

add_filter( get_the_date make_bangla_number )

add_filter( comments_number make_bangla_number )

add_filter( get_comment_date make_bangla_number )

add_filter( get_comment_time make_bangla_number )

gt

60

সলাাআডায পলাগগন াঅভযা এাআ ফাআপরয়য কর গটউপরটাগযয়াপরর মা মা গখরাভ তা এফায একগট নডাাংগ পলাগগপরনয এপলাাআ কযফ সলাাআডায পলাগগন মপপরকড াঅভযা ফাাআ জাগন একগট ওপরয়ফাাআপরটয ডচাযা ারপরট ডদয় একগট সলাাআডায াপরনক ডাাআনাগভক ভপরন য় ডদখপরতও াপরনক বার রাপরগ এাআ পলাগগপরন াঅভযা এডগভন যাপরনর ডথপরক াআপরভজ ডমাগ কযফ এফাং তা াঅভাপরদয াাআপরট ডদখাফ চরন কাজ রর কগয- েথপরভ গনপরবা সলাাআডায এয ওপরয়ফাাআপরট মান এফাং jQuery Plugin ডাউনপররাড করন

ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom Version 10

gt

াঅভযা পলাগগপরনয ডডায ততগয কযরাভ

পলাগগন গরপরসট ডদখাপরচছ bdquoLitons Nivo Plugin‟ াঅভাপরদয েথভ কাজ পরচছ custom post

type ওয়াডডপরে পাাংনাগরগট একগট নতন কাসটভ ডজ ততগয কযপরত custom post type

ফযফহরত পরফ ডমখাপরন একগট াআপরভজ থাকপরফ াঅভযা রধ টাাআপরটর ডনভ এফাং াআপরভজ াঅপররাডায গপরপরফ গপচায াআপরভজ পাাংনাগরগট ফযফায কযফ function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_function 600 280 true)

61

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

add_action(init np_init)

উপরযয ডকাপরড np_init() পাাংনগট রক কপরযগি মা ডডায যান কযায াঅপরগ যান পরফ াঅয এজনয register_post_type() পাাংনপরক এয যাযাগভটায গদপরয় np_init() পাাংপরনয ডবতপরয মি কপরযগি এটা মগদ না কযতাভ তাপরর ldquoHeaders already sentrdquo ডভপরজ ডদখাত এাআ ডভপরজগটয াপরথ াপরনপরকাআ গযগচত াঅা কগয register_post_type() পাাংন গদপরয় াঅভযা াআপরভজ মি এফাং ভযাপরনজ কযফ ভরত াঅভযা একগট নতন custom post type ডমাগ কপরযগি np_images নাভ গদপরয় নতন custom post type ডক ডগটাং বযার গপরপরফ াঅযগপরভনট া কপরযগি $args ডবগযপরয়ফরগট ট ডরপরবর ডভন ততগয কপরয াঅপরগাআ ডদপরখগি পলাগগনগট এগকটপরবট কযপরর াঅভযা গনপরচয ভত ডদখপরত াফ-

এফায গিে এফাং সটাাআরীট ডক মি কযফ- add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

এফায রক কযা পাাংনগপররা গডপরিয়ায কগয- function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__) array( jquery ))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

62

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

উপরযয ডকাডগপররা নতন কপরয ফিডনা কযায গকি ডনাআ াঅপরগাআ wp_enqueue_style() এফাং wp_enqueue_script() মপপরকড ফরা পরয়পরি নতন াঅপরযকগট পাাআর ততগয করন একাআ গডপরযকটগযপরত scriptjs এফাং গনপরচয ডকাডটক গদন- jQuery(document)ready(function($)

$(slider)nivoSlider()

)

াআপরভজপরক গযাাআজ করন- add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

াঅভযা এাআ পলাগগনগটপরক উাআপরজট গপরপরফও ফযফায কযফ ডগট পরয ডদখফ াঅপরযকগট গজগন মগদ গথপরভ না ডদয়া থাপরক ডজনয থামবপরনাআর াপরাটড গদপরয় গদন- add_theme_support( post-thumbnails )

এফায ওয়াডডপরেপরয কাপরযনট ডাসট কপরয়যী কযায ডকাড াঅয $result ডবগযপরয়ফপরর ডমফ ltdivgt টযাগ ফযফায কযা পরয়পরি তা jQuery Plugin গট একসিাকট কপরয indexhtml ডজগটয ডভাআন সলাাআডায ডকাডগট ডদখন একাআ াঅপরি রধ ডখানকায ltdivgt টযাগ গপররাপরক কগ কপরয এাআ পলাগগপরন ফযফায কযা পরয়পরি এফায টডপরকাড গদন- add_shortcode(np-shortcode np_function)

এাআ টডপরকাড গএাআচগ পাাংনপরক রক কযপরফ এফাং এয ভধয ডথপরক সলাাআডপরায কনপরটনট ডক গযটানড কযপরফ াঅভাপরদয টডপরকাড পরচছ [np-shortcode] াঅভযা পলাগগপরন মাাআ এফাং একগট িগফ মি কগয গপচাযড াআপরভজ গপরপরফ গনপরচ ডদখন-

63

াঅগভ াঅপরযকগট ডজ ততগয কপরযগি ডমখাপরন টডপরকাড গদপরয়গি

াঅউটট ডজ ডদগখ এফায-

64

পরয় ডগর াঅভাপরদয সলাাআডায পলাগগন পরযা ডকাডগট গনপরচ গদরাভ- ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

65

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

66

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

এফায াঅগন মগদ উাআপরজট গপরপরফ ফযফায কযপরত চান তাপরর গনপরচয ডকাডটক গদন- class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

67

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

echo $after_widget

াঅপরযা রগট কাজ কযপরত পরফ াঅনাপরক এক াআপরভজ াাআজ উাআপরজট এয জনয গঠক কপরয গদপরত পরফ- add_image_size(np_widget 180 100 true)

াঅপরযকগট র উাআপরজট এযাকন রক ডমাগ কযা add_action(widgets_init np_widgets_init)

উাআপরজট পরযা ডকাড াঅফায গদরাভ- ltphp

Plugin Name Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Ciprian Turcu

Version 10

68

class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

69

echo $after_widget

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

70

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(widgets_init np_widgets_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

71

পলাগগন গনপরয় এত ডিাট গযপরয ডরখা মভফ নয় এজনযাআ ভপরন য় পলাগগন গনপরয় ডকউ ডরপরখন না কাযন এখাপরন এত গফলয় াঅপরি মা াঅপররাচনা কযপরত ডগপরর ৫০০ ডজ ায পরয় মাপরফ ডফাোয সগফধাপরথড াঅগভ মথামভফ উদাযন গদপরয় ডফাোপরনায ডচষটা কপরযগি াঅগভ এখাপরন টাপরগডট কপরযগি মাযা টকটাক জাপরন পলাগগন মপপরকড এডবানস ডরপরবপররয নয় কাযন তাযা জাপরনন াঅভায উপরেশয গির মাযা জানপরত চায় তাপরদযপরক জানাপরনা এখাপরন ডমফ গফলয় াঅপররাচনা কযা পরয়পরি তা ডভাটাভগট ভাপরনয একগট পলাগগন ফানাপরনায জনয মপরথষট তপরফ ভাপরনাননয়পরনয জনয াঅনাপরক গনপরজাআ খাপরজ গনপরত পরফ াঅনায জনয ডকানটা বার পরফ াঅগভ রধ গদক গনপরদডনা গদরাভ ভাতর এাআ ফাআগট রধভাতর ওয়াডডপরে রেপরয জনয ডরখা াপরনক বর ভরাগনত থাকপরত াপরয াঅনাযা কষভাসনদয দগষটপরত ডদখপরফন াঅগভ ডচষটা কপরযগি মতটা জ কপরয ডরখা মায় াপরনক ভয় ডদখা মায় ডম খফ ডিাট খাপরটা গফলয় গনপরয় াপরনপরকাআ নক কপরযন এটা গতয রাঃখজনক াঅনাযা গগপরর একট খাজপররাআ ভাধান াপরফন াঅপরগ গনপরজ ডচষটা করন তায পরয ানযপরক ভাধাপরনয জনয গজজঞাা করন াঅভায জনয ডদায়া কযপরফন বাপররা রাগপরর জানাপরফন খাযা রাগপররও জানাপরফন তাপররাআ াঅভায গযশরভ সবাথডক পরফ ভতাভত জাগনপরয় াঅভাপরক ডভাআর কযপরত াপরযন litonice09gmailcom |

72

Page 2: Wordpress Plugin Development

3

েথভ েকা ১০ ডপরেমবয ২০১২

েকাক

ওয়াডডপরে রে ফাাংরাপরদ ldquohttpswwwfacebookcomgroupsWordpress2Smashingrsquorsquo

ওয়াডডপরে রে ওপরয়ফাাআট ldquohttpswwwwpbanglacomrsquorsquo

ডরখক ডভাাঃ গরটন াঅপরযগপন ldquohttpswwwfacebookcomlitonice09rsquorsquo

ldquowwwliton-onlinecomrsquorsquo

েচছদ

জাগভর ডাপরন গজান

সপনসয ldquoShirsendu Shekhar Biswasrdquo

ldquohttpswwwfacebookcomdipshekharrdquo

Caution

This Book Not For sale

( CopyRight 2012 By ওয়াডডপরে রে ফাাংরাপরদ)

4

াঅভায মপপরকড

াঅভায নাভ ডভাাঃ গরটন াঅপরযগপন (httpswwwfacebookcomlitonice09) যাজাী গফশবগফদযারয় ডথপরক াআনপযপরভন এনড কগভউগনপরকন াআগিগনয়াগযাং গফবাপরগ ড়াপরানা কযগি ানাড ডল এখন ভাসটাড কযগি াঅভায ফযগিগত বলগ ldquoগরটন- ানরাাআনকভrdquo ( wwwliton-

onlinecom) এ টাাআভ ডদাআ মতটা াগয াপরথ টকটাক গিরযাগনসাং কগয াঅভাপরদয গতন দপরেয রে ldquoফযানrdquo(httpburhanbdcom) - এ কাজ কগয এবাপরফাআ ভয় চপরর মায় াঅভায াঅভায পলাগগন খফ ডফগ ডডপরবর কযা য়গন তফও জাগভর বাাআ াঅভাপরক এাআ ফাআগট ডরখায কাজ গদপরয়পরিন াঅগভ াঅভায সবলপ জঞাপরন ডচষটা কযফ াঅভায ডযাটা ডদফায জাগভর-

ldquo(httpswwwfacebookcomzamilhossainsezan32) rdquo বাাআ াঅভাপরক ওয়াডডপরে রে এর- (ldquohttpswwwfacebookcomgroupsWordpress2Smashingrdquo) কষ ডথপরক এাআ ফাআগট ডরখায কাজ াপরনক গদন াঅপরগাআ গদপরয়গিপররন গকনত ভয় কপরয উঠপরত াযগিরাভ না গত ভাপরাআ াঅভায ফাআগট সতানতয কযায কথা গির গকনত াগযগন এাআ ফাআগটয সবফডসবতব াঅভায ডকউ এাআ ফাআগট গফগি কযা ফা গনপরজয নাপরভ চারাপরনায ডচষটা কযপরফন না তপরফ মত ডফগ াপরযন ফায াপরথ ডয়ায কযপরফন াঅভযা রধ ওপরয়পরফয জগপরত ডাটা এগনি একসাটড ফা গিকায পরয় থাকপরত চাাআনা ওপরয়পরফয এডবানস ডরপরবপরর াঅনাপরক সবাগতভ

ডভাাঃ গরটন াঅপরযগপন

5

গচতর াধযায়- একাঃ চনা ডজ নমবয ৭ র ৭ ৮ াধযায়- রাআাঃ পলাগগপরনয গঠন ৯ র র ৯ খ র হ ১১ র র ৭ র ১৩ র র র হ ১৪ হ র ১৫ ১৮ র ১৮ URL ১৯ াধযায়- গতনাঃ রক ( Hook) ২২ র ( Filter Hooks) ২২ এ (Action Hooks) ২৭ াধযায়- চাযাঃ পলাগগন ডকাগডাং সটযানডাডড এ এ ৩২ uninstallphp ৩৪ Uninstall Hook ৩৫ ৩৬ এ ৩৭ এ এ ৩৭ াধযায়- াাচাঃ ওয়াডডপরেপরয াপরথ াআগনটপরেন এ র ৩৮ ৩৮ র র র (াফ ডভন) ৪৩

6

র র ৪৫ াধযায়- িয়াঃ পলাগগন পাাংন ৫৬ __() ৫৬ _e() ৫৬ esc_attr__() ৫৮ াধযায়- াতাঃ পলাগগন গগকউগযগট র ৬১ র র ৬১ র র ৬১ র র ৬২ Nonces ৬৩ Nonce URL র ৬৪ Nonce Form র ৬৫ ৭৩ াধযায়- াঅটাঃ ডরাকারাাআপরজন এফাং Set t i ngs API ৭৬ API ৭৬ Settings API ৭৭ ৮১ CSSJS র ৯১ ৯৩ াধযায়- নয়াঃ পলাগগন উদাযন র র র র ১০০ র ১০১

7

াধযায়- একাঃ চনা গকি কথা ওয়াডডপরেপরয েগত যপরয়পরি াপরনক বারফাা ওয়াডডপরে মপপরকড নতন কপরয গকি ফরায ডনাআ ডমপরকান ওয়াডডপরে ফযফাযকাযীয জনয পলাগগন একগট গরতবনড গফলয় পলাগগন াঅপরর গক ওয়াডডপরে পলাগগন াঅভাপরদযপরক াঅভাপরদয বলগ ওপরয়ফাাআপরটয পাাংনাগরগট ফগি কযপরত াাময কপরয াভানয াথফা ডকান যকভ ডোোগভাং জঞান িাড়াাআ ওয়াডডপরে পলাগগপরনয গনগদডষট ডকান াঅকায এফাং াঅকগত ডনাআ একগট পলাগগন ডমপরকান গকিাআ কযপরত াপরয ওয়াডডপরে বলগ ওপরয়ফাাআপরটয াঅভায পলাগগপরনয াংখযা খফ কভ গকি াফগর কযা য়গন াঅগভ ওয়াডডপরেপরয গকি গরগভপরটন গনপরয় কাজ কযগি এফাং এগপররা গনপরয়াআ ভরত কাজ কযগি গকবাপরফ াঅপরযা একসপরটনড কযা মায় মাাআ ডাক াঅগভ এখনও গকষানগফ গপরপরফ াঅগি

ফাআগট কাপরদয জনয াঅগন মগদ এাআ ফাআগট ডাউনপররাড কপরয থাপরকন তাপরর াঅগভ ধপরযাআ গনগচছ াঅগন একজন ওপরয়ফ ডডপরবরায এফাং াপরথ গকি ডোোগভাং জঞান াঅপরি পলাগগন ডডপরবরপরভপরনটয উপরেশয পরচছ াঅগন পলাগগন ডডপরবর কযপরফন াঅনায িাপরয়নট াঅগন ডমবাপরফ চান গঠক ডবাপরফ ডমপরকান ধযপরনয ওপরয়ফাাআট ততযীপরত ওয়াডডপরেপরয ফযগতিভ পলাটপভড াআপরতাভপরধযাআ েভাগিত এাআ ফাআগট গিরযানসাযপরদয জপরনযও মাযা তাপরদয গির ডাটডপরপাগরও এফাং ওয়াডডপরেপরয পাাংনাগরগট ফপরে কাজ কপরযন

ডোয়াজনীয় টর

Notepad ++( httpnotepad-plus-plusorgdownload )Dreamwaver

Mozilla Firefox (httpwwwmozillaorgen-USfirefoxnew) Google Crome

Firebug Extension (Search For both Firefox Chrome as you want)

Web Developer Extension (Search For both Firefox Chrome as you want)

Xampp with Wordpress Installation

FTP Client Example- Filezilla ওয়াডডপরে গকবাপরফ াআনসটর কযপরত য় তা নতন কপরয ডদখাপরনায গকি ডনাআ তফও মাযা নতন তাযা এখাপরন ডদখন ( httpgooglWJTp9 ) গকবাপরফ পলাগগন াআনসটর কযপরত য় তা এখাপরন ডদখন ( httpgooglpE8AD)

8

াধযায়- রাআাঃ পলাগগপরনয গঠন পলাগগন গক ওয়াডডপরেপরয পলাগগন র একগট PHP গিে মা ওয়াডডপরেপরয গনজসব পাাংনাগরগট গযফতডন কপরয াথফা গযফধডন কপরয ভরতাঃ একগট গপচায ফা গকি গপচায াঅভাপরদয াাআপরট ডমাগ কযায জনয াঅভযা পলাগগন াআনসটর ডদাআ একগট পলাগগপরনয কাপরজয ডকান গরগভট ডনাআ ড ডকান কাজগপররা কযপরত াযপরফ কাযন পলাগগন ডাউনপররাপরডয ডকান গনগদডষট াাআজ ডনাআ পলাগগন ওয়াডডপরেপরয াপরথ গকবাপরফ কাজ কপরয ওয়াডডপরেপর াপরনক গপচায াঅপরি গফগবনন API(Application Programming Interface)- এয জনয ডমগপররা গফগবননবাপরফ কাজ কপরয ওয়াডডপরেপর গনপরচ ডগপররা াঅপররাচনা কযা রাঃ

পলাগগনাঃ একপরট রক( hooks) ডমগপররা ওয়াডডপরেপরয গনগদডষট পাাংপরন এপরকস কপরয এগপররাপরক এনাফর কপরয

উাআপরজটাঃ পলাগগন গদপরয় উাআপরজট ততগয এফাং গযচারনা কযা টডপরকাডাঃ াঅনায পলাগগনপরক াপরাটড কযায জনয টডপরকাড ডমাগ কযা টডপরকাড র

একগট রক ডমটা একগট PHP পাাংনপরক এনাফর কপরয এফাং াঅনায ডাসট ফা ডজ এ েদডন কপরয াঅগভ পরয এ গফলপরয় গফসতাগযত ফরফ

HTTP এগট াঅনায পলাগগপরন HTTP গযপরকাপরয়সট াঠায় এাআ API কনপরটনট ডথপরক external URL াথফা Submit কযা কনপরটনট ডথপরক URL retrieve কপরয

ডগটাংাঃ াঅনায পলাগগপরনয ডগটাং াআনাটড াথফা ডগটাং ডকন ডগটাং API এয োথগভক সগফধা র গগকউগযগট কর ডগটাং ডাটা গযিায( গযপরাগধত) থাপরক সতযাাং মখন পলাগগন ডগটাং ডব কযায ভয় Cross Site Request Forgery (CSRF) এফাং Cross Site Scripting(XSS) গনপরয় গচনতায গকি ডনাআ

Options পলাগগপরনয কর ান জভা যাপরখ এফাং retrieve কপরয এগট নতন ান ততযী কপরয াঅপরগয ান াঅপরডট কপরয ান গডগরট কপরয এফাং ডমপরকান ান retrieve কপরয

Dashboard Widgets ডযাপরফাডড উাআপরজট ততগয কপরয ওয়াডডপরে ডযাপরফাপরডড automatically উাআপরজট েদডন এফাং কর কাসটভাাআপরজন গপচায ডমভন- গভগনভাাআজ ডরাগ ডর এফাং গিন ান

Rewrite াঅনায পলাগগপরনয জনয কাসটভ রর ততগয কযা এাআ API াঅনায static-end-point(custom-page) structure tags(postname) এফাং াগতগযি গপড গরঙক (feedjson)

9

Transients গকি াসথায়ী ান (cached data) ততগয কপরয াঅনায পলাগগপরনয জনয এাআ API গট Options API এয ানর

Database ওয়াডডপরেপরয ডাটাপরফপর েপরফ কপরয এগট াঅনায পলাগগপরনয ডাটাপরফপরজ গনপরচয কাজগপররা মপাদন কপরয- creatingupdatingdeleting and retrieving

কখন াঅনায পলাগগন ডরাড য় পলাগগন ততগয কযপরত ডগপরর এাআ ডফগক কাজগপররা াঅভাপরদয াফশযাআ জানপরত পরফ াঅভযা ডতা পলাগগন াআনসটর গদপরয়াআ খারা একফায ডবপরফও ডদগখনা এগট াঅপরর গকবাপরফ কখন ডরাড পরফ াাআপরটয উয কতটা াআপরপকট ডপরপরফ াঅগভ গনপরচ একগট ডায়াোভ গদরাভ াঅা কগয াঅয গকি ফরপরত পরফনা াঅভাপরক

Wordpress URL Called

wp-config Loaded

Functions Loaded

Plugins Loaded

Pluggables Loaded

Translations Loaded

Theme Loaded

Page Content

10

ওয়াডডপরে পলাগগন ডডপরবর কযায ৭গট কাযন

াঅগভ াআনটাযপরনট এ ldquoHow to Write a Plugin (httpgooglrCUY) rdquo গদপরয় াপরনক াচড কপরযগি াপরনক াঅগটডপরকর াঅপরি গকনত ভন ভত কপরয়কগট িাড়া ফরায ভত াাআগন ওয়াডডপরেপরয ldquoডকাপরডকসrdquo াঅপররাআ ওয়াডডপরে মপপরকড জানায জনয মপরথষট এটা পরয ফপরেগি ৭ গট কাযন ডকন াঅগন ওয়াডডপরে পলাগগন ফানাপরফনাঃ ১) াঅগন একগট পলাগগন মপপরকড জাপরনন গকনত এয ফাসতফায়ন িনদ কযপরিন না াঅভযা ডফগয বাগ ভয়াআ এাআ ভোয় গড় ২- ৩ গদন ধপরয একটা পলাগগন ডখাাজায জনয ফযয় কগয গকনত ভন ভত পলাগগন খাপরজ াাআ না গকনত এাআ ভয় এ একটা পলাগগন গরখা পরয় ডমত ২) াঅগন াঅপরগয ডকান পলাগগন ভগডপাাআ কযপরফন াপরনক ভয়াআ াঅনায িনদ ভত পলাগগন ডপররন গকনত াভানয গকি ডচি কযপররাআ াঅনায কাপরজ রাগপরফ এপরকষপরতর াঅনাপরক ডাআ পলাগগনগট ভগডপাাআ কযপরত জানপরত পরফ াপরনক ভয় পলাগগপরনয ডরখক ফযসত থাকপরত াপরযন এফাং াঅপরডট কযপরত াপরযন না এপরকষপরতর াঅগন ডাআ পলাগগনগট Aut hor Name ডচি কপরয গনপরত াপরযন তপরফ GPL Compatible license (httpgooglBOzm ) গঠক ডযপরখ াঅগন নযায় াগযগজনার পলাগগপরনয নতন বাডন ডফয কযপরত াপরযন ৩) ডকান পলাগগনপরক একসপরটনড কযপরত চান াপরনক ভয় একগট পলাগগন বার কাজ কপরয াাআপরটয জনয গকনত াঅগন াঅপরযা গকি গপচায ডমাগ কযপরত াপরযন ডমভন AJAX JQuery Effects াথফা াঅপরযা গকি রক রাগাপরত চান ডমন এগট ানয পলাগগপরনয াপরথ াভিে থাপরক তপরফ াফশযাআ GPL Compatible (httpgooglBOzm ) এয াপরথ াভিে পরত পরফ ৪) াঅগন মগদ াঅনায গথপরভয ফনপরমাগয ডকাড কযপরত চান এগট ভরত কাসটভ গথভ ডকাপরডয কথা ফরা পরয়পরি ডকান এগকসগসটাং গথপরভয ৫) াঅগন মগদ গথভ গডজাাআনায ন ৬) াঅগন মগদ টাকা উাজডন কযপরত চান পলাগগন ততযী কপরয ৭) াঅগন মগদ াঅনায াাআপরটয াআনকাগভাং গরঙক গফলড কযপরত চান

পলাগগপরনয ডপালডায সটরাকচায ডকভন পরফ কর ওয়াডডপরে পলাগগন wp-contentplugins গডপরযকটগযপরত াআনসটর য় গকি পলাগগপরন রধ একগট PHP পাাআর থাপরক গকনত াঅগভ ফ ভয় একগট ডপালডায কপরয পলাগগন ততগয কযায যাভড ডদফ পলাগগপরনয সটরাকচায পরত পরফ এযকভাঃ

11

Plugin Folder Name( াঅনায পলাগগন ডপালডায নাভ ডকান ডসপ ফা ডসপার কযাপরযকটায থাকা চরপরফ না) Main php file

js ডপালডায( জাবাগিে ফা Jquery file এয জনয) css ডপালডায( সটাাআরগট পাাআপররয জনয) phpinclude ডপালডায ( ানয php পাাআর)

একগট উদাযন ডদাআ পাাআপররয সটরাকচায ডকভন পরফ- litons-first-plugin

indexphp

js

css

includes

images

uninstallphp

পলাগগন ডডায

পলাগগপরনয ডডায িাড়া ডাআ পাাআর ডপালডাযগটপরক ওয়াডডপরে গচনপরত াযপরফ না পলাগগন ডডাযাআ পরচছ একভাতর েপরয়াজনীয় পাাংন মা ওয়াডডপরে দাফী কপরয ভাপরন াঅনাপরক পলাগগন ডরখায ররপরত PHP comment বলপরকয ভপরধয গকি াআনপযপরভন গদপরত পরফ মা এপরকফাপরয পাাআপররয েথপরভ াফসথান কপরয এখাপরন গকি কথা ফপরর যাগখ াঅগন মগদ াাআপরটয এাআও টাপরগডট কপরয পলাগগন ফানান তাপরর ডকান িপরভাআ াঅনায নাভ গদপরয় পলাগগন ফানাপরফন না ডমভনাঃ Litons Plugin এপরত এাআও ডত খাযা েবাফ পরড় গনপরচ উদাযন ডদয়া রাঃ ltphp

Plugin Name Litons Plugin পলাগগপরনয নাভ

Plugin URI httpliton-onlinecomplugin পলাগগপরনয URI Description This is a demo description পলাগগপরনয গফফযন Version 10 পলাগগপরনয বাডন Author Md Liton Arefin পলাগগন ডরখক

Author URI httpliton-onlinecom ডরখপরকয URI

gt

12

উপরযয িগফপরত ডদখন ওয়াডডপরেপরয ডযাপরফাপরডড াঅগভ পলাগগন ডডাপরয মা মা তথয গদপরয়গিরাভ তাাআ ডদখাপরচছ এটাাআ াঅনায োথগভক কাজ াঅগন রাাআপরনসও ডমাগ কযপরত াপরযন এবাপরফ- lt php

Copyright YEAR PLUGIN_AUTHOR_NAME (email PLUGIN AUTHOR

EMAIL)

This program is free software you can redistribute it andor modify

it under the terms of the GNU General Public License as published by

the Free Software Foundation either version 2 of the License or

(at your option) any later version

This program is distributed in the hope that it will be useful

but WITHOUT ANY WARRANTY without even the implied warranty of

MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE See the

GNU General Public License for more details

You should have received a copy of the GNU General Public License

along with this program if not write to the Free Software

Foundation Inc 51 Franklin St Fifth Floor Boston MA 02110-1301 USA

gt

পলাগগন াথ

একগট কভন কাজ র াঅনায পলাগগপরনয পাাআর এফাং ডপালডাযগপররাপরক ওয়াডডপরে াআনসটপররন গডপরযকটগযপরত ডযপায কযা াঅগন এাআ কাজগট রাআ বাপরফ কযপরত াপরযন- ডরাকার াবডায াথ াথফা সটানডাডড URL

13

ডরাকার াবডায াথাঃ ডরাকার াবডায াথ াঅনায কগমপউটাপরযয গডপরযকটগযয ভতাআ ডরাকার াবডায াথ াধাযনত ফযফায কযা য় মখন াঅনাপরক গনপরজয ডরাকার াবডাপরযয গকি পাাআর i ncl ude কযপরত য় একগট কভন েশন র- পলাগগন পাাআপররয াথ ডদখাপরনায গঠক িগত ডকানগট াঅনায পলাগগপরনয ডরাকার াথ ডদখাপরনায জনয াঅনাপরক plugin_dir_path() পাাংন ফযফায কযপরত পরফ plugin_dir_path() পাাংন পলাগগন গডপরযকটগযয গপগজকযার াথ একসিযাকট কপরয পাাআপররয নাভ ডথপরক ltphp plugin_dir_path($file) gt

Parameters

$file-(string)(required)- পলাগগন পাাআপররয নাভ এখন ডদগখ গকবাপরফ পলাগগন ডপালডাপরযয নাভ ডফয কযপরত য়-

ltphp

echo plugin_dir_path(__FILE__)

gt

এখাপরন গএাআচগ কনসটযানট __FILE__ ডক plugin_dir_path পাাংপরনয ভধয গদপরয় া কযারাভ এাআ পাাংন াবডায াথ ডদখাপরফ পলাগগন গডপরযকটগযয public_htmlwp-contentpluginsliton-plugin

একাআবাপরফ াঅগন মগদ plugin_dir_path() এাআ পাাংনপরক মগদ ডকান াফ- গডপরযকটগযয পাাআরপরক ডযপায কগয তাপরর গনপরচয ভত কপরয ডযপায কযপরত পরফ ltphp

echo plugin_dir_path(__FILE__)jsscriptsjs

gt

এাআ ডকাডগট গনপরচয ভত াথ ডদখাপরফ- public_htmlwp-contentpluginsliton-pluginjsscriptsjs

URL াথাঃ াঅপরযা গকি পাাংন াঅপরি ডমগপররা গদপরয় ওয়াডডপরেপরয URL ডদখাপরনা মায়

plugins_url() - পলাগগন গডপরযকটগযয পরযা URL ( ডমভনাঃ httpliton-onlinecomwp-contentplugins)

includes_url() - পরযা গডপরযকটগযয URL include কপরয ( ডমভন httpliton-onlinecomwp-includes)

14

content_url() - পরযা কপরনটনট গডপরযকটগয URL ( ডমভনাঃ httpliton-onlinecomwp-content )

admin_url() - পরযা এডগভন URL

( ডমভনাঃ httpliton-onlinecomwp-admin ) site_url() - কাপরযনট াাআট এয পরযা URL

( ডমভনাঃ httpliton-onlinecom ) home_url() - কাপরযনট াাআট এয পরযা ডাভ URL

( ডমভনাঃ httpliton-onlinecom )

াথ গনপরয় াঅপরযা গফসতাগযত ডদখপরত াপরযনাঃ httpcodexwordpressorgDetermining_Plugin_and_Content_Directories

httpcodexwordpressorgFunction_Referenceplugins_url

httpcodexwordpressorgFunction_Referenceplugin_dir_url

httpcodexwordpressorgFunction_Referenceplugin_dir_path

plugins_url() পাাংন াঅনায উততভ ফনধ পরত াপরয মখন াঅগন পলাগগন ডডপরবর কযপরফন

ltphp

plugins_url($path $plugin)

gt

Parameters

$path-(string)(optional)- গযপররগটব াথ URL $plugin- (string)(optional)- পলাগগন পাাআর মা াঅগন (__FILE__) এয ভাধযপরভ া কযপরত চান ডমভনাঃ ltphp

echo ltimg src=rdquoplugins_url(imagesiconpng__FILE)rdquogt

gt

এয পরযা URL পরফ ltimg src=rdquohttpliton-onlinecomwp-contentpluginsliton-pluginimagesiconpngrdquo gt

15

াধযায়- গতনাঃ রক

ওয়াডডপরে রক( Hook) গক ওয়াডডপরেপর রক ফরপরত াধাযনত add_action() াথফা add_filter() পাাংন ডক ডফাোয় এাআ রগট পাাংনপরক remove_action() াথফা remove_filter() গদপরয় ভপরি ডপরা মায় মগদও াপরনপরকয কাপরি রপরনগি ডম এাআ রগট পাাংপরনয ভপরধয ডকান াথডকয ডনাআ গকনত াঅপরর তা নয় গফযাট াথডকয াঅপরি এ রগট পাাংপরনয ভপরধয াঅগভ ভরত এাআ রগট পাাংন গদপরয়াআ গকি পলাগগন ফাগনপরয় ডদখাফ কাযন খফাআ গরতবিড এাআ রগট পাাংন মপপরকড বাপররাবাপরফ জানা

গপলটায রক (Filter Hooks)

গপলটায রক পাাংপরনয কাজ পরচছ কনপরটনটপরক ভগডপাাআ কযা গপলটায রক গদপরয় টাাআপরটর কনপরটনট াআতযাগদ ভগডপাাআ কযা মায় ডমভন টাাআপরটর এ ডকান টযাগ না থাকা গবগজটয কপরভপরনট ltgt t ag span t ag াআতযাগদ গদপরয় াাআপরটয ডরাঅউপরটয গযফতডন কপরয গদপরত াপরয ভাপরন ডকান কপরভপরনট মগদ এযকভ ht ml ডকাড াড কযা থাপরক তাপরর ডদখপরত খাযা রাগপরফ এগপররা াফশয এখন ওয়াডডপরে াপরটাপরভগটকযাগর কপরয গকনত এাআ কাজগপররা ভরত গপলটায রক গদপরয় কযা পরয় থাপরক গপলটায রক রাআ ধযপরনয add_filter() এফাং remove_filter() পাাংন খফ গরতবনড একগট কথা গপলটায রকপরক গযটানড কযপরত য় ltphp

add_filter($tag $function $priority $accepted_args)

gt

$tag- ডম রকপরক াঅগন ডযগজসটায কযপরত চান $function- ডম পাাংনপরক াঅগন াঅউটপরট গপলটায কপরয ডদখাপরত চান $priority- একগট াআগনটজায াংখযা মা াঅনায গপলটাযপরক িভানাপরয াজাপরফ মগদ ডকান

াংখযা না ডদয়া থাপরক তাপরর এগট ১০ গডপলট গপরপরফ থাপরক $ accepted_args- ডম াংখযক যাযাগভটায একগট পাাংন েি কযপরত াপরয গডপলট গপরপরফ

১ থাপরক াঅনায পাাংপরন ানততাঃ একগট যাযাগভটায থাকপরত পরফ মা গযটানড কযপরফ apply_filter($tag$value)

$tag- গপলটায রপরকয নাভ $value- রপরকয ভধয গদপরয় ডম যাযাগভটায া কযাপরফন

াঅভযা এখন একগট উদাযি ডদখফ ডমখাপরন টাাআপরটর এয েগতটা ওয়াডডপরক ফড় াপরতয াকষপরয রানতয কযফ গনপরচ একগট পলাগগন ডদখন- ltphp

Plugin Name Liton filter

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10

16

Author Md Liton Arefin

Author URI httpliton-onlinecom

add_filter(the_titleliton_modify_title)

function liton_modify_title($content)

return ucwords($content)

gt

পলাগগনগট এগকটপরবট কযায াঅপরগ ডাসট টাাআপরটর ডদখন-

এফায পলাগগনগট এগকটপরবট কযায পরয ডাসট টাাআপরটর ডদখন-

এাআ পলাগগনগট াঅভাপরদয াপরনক ভয়াআ কাপরজ রাগপরত াপরয কাযন াপরনপরকাআ াঅভযা এাআ পযভযাটগট িনদ কগয ঠাৎ কপরযাআ াঅভযা ডাসট টাাআপরটর গরখায ভয় ফড় াপরতয াকষয কযপরত বপরর ডমপরত াগয াঅভযা এাআ কাজগট খফ ডিাট একগট পলাগগন গদপরয় াপরটাপরভগটকবাপরফ কযপরত াগয

17

এখন াঅগভ গকি াগতগযি গফলয় গনপরয় াঅপররাচনা কযফ ডমগপররা ডভপরন চরপরর বগফষযপরতয জনয বার পরফ াঅগভ একগট পাাংন গরপরখগি- add_filter(the_titleliton_modify_title)

function liton_modify_title($content)

return ucwords($content)

একট গফসতাগযত ফরপরর াঅভযা the_title এয ভধয গদপরয় মা া কযফ তা গপলটায কযপরফ এখাপরন াঅভযা ucwords the_title এয ভধয গদপরয় া কপরযগি এফায াঅপরযা টড পভড ডদগখ add_filter(the_title ucwords)

তায ভাপরন পরযা পলাগগনগট পরফ এযকভ- ltphp

Plugin Name Liton filter

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_filter(the_title ucwords)

gt

গক খফ জ রাগপরি এখাপরন ফপরর যাগখ ডম ucwords এগট গযগব কযপরফ the_title মা া কযপরি এফাং াপরটাপরভগটকযাগর গযটানড কযপরফ the_title এ সতযাাং এখাপরন গযটানড এয দযকায ডনাআ এফায াঅগন মগদ গএাআচগ বাডন ৫৩ ফযফায কপরযন তাপরর গনপরচয ভত কপরয anonymous function ফযফায কযপরফন াঅনাযা জাবাগিে ডজকপরয়গয‟য াপরথ গযগচত এগট াপরনকটাাআ এযকভ ltphp

Plugin Name Liton filter

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_filter(the_title function($content)

return ucwords($content)

)

gt

বার কপরয ডদখন ডতা াথডকযটা ডকাথায় গনপরজ গনপরজ কাজ কযপরর এবাপরফ কযপরফন াফশযাআ এগট একট এডবানস ডরপরফপররয কাজ মগদও পলাগগন ফানাপরনায ডকষপরতর এগট এখপরনা াঅদড নয় কাযন াপরনপরকযাআ গএাআচগ বাডন এখপরনা ৪ এাআ ডথপরক ডগপরি সতযাাং এাআ িগতগট একানতাআ গনপরজয জনয

18

এযাকন রক (Action Hooks) Action Hooks পরচছ ড ভসত রক ডমগপররা ওয়াডডপরেপরয রাাআপ াাআপরকর গনপরয় কাজ কপরয Action Hooks রাআ ধযপরনয add_action() remove_action() এাআ রকগপররা কাজ কপরয মখন ডকান ডাসট ডব কযা য় ডাসট াফগর কযা য় কপরভনট কযা য় ডকান বলগ ডাপরসট াথফা ওপরয়ফাাআপরট ডডাযপটায ডজনাপরযট য় এগপররা েগতগট একগট একগট কপরয Actions মখন াআউজায তায এডগভগনপরসটরটয ডভনপরত েপরফ কপরয এগপররা ফাআ Action Hooks এখাপরন াঅভযা কনপরটনটপরক গপলটায কযগিনা াঅভযা ওয়াডডপরেপরয গনগদডষট পাাংনগপররাপরক রক কপরয কাজ কযগি াঅভযা একগট উদাযন ডদগখ- ltphp

Plugin Name Liton Action

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(wp_footer function($content)

echo Hello This is Liton Arefin

)

gt

াঅনাপরদয সগফধাপরথড ডফাোয জনয গনপরচয ভত কপরয গরখন- ltphp

Plugin Name Liton Action

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(wp_footer liton_footer_action)

function liton_footer_action($content)

echo Hello This is Liton Arefin

gt

াঅভযা খফ ডিাট একগট উদাযন গদপরয় ডদখরাভ ডম action রক গকবাপরফ কাজ কপরয গনপরচ ডদগখ াাআপরট ডকভন ডদখায়-

19

উপরযয িগফপরত ডদখন াঅগভ Hello This is Liton Arefin এাআ রাাআনগট গেনট কপরযগি এফাং তা পটাপরযয ফাভ াপর এপরকফাপরয গনপরচ ডদখাপরচছ এফায ডাড ডকাড এ ডদগখ াঅপররাআ এয গজন টা ডকাথায় াঅপরি

উপরয ডদখন পটাপরযয গঠক গনপরচাআ রাাআনগট ডদখাপরচছ এফায াঅপরযকগট ফাসতফ এফাং খফাআ গরতবনড উদাযন ডদগখ এাআ পলাগগনগটয কাজ পরফ মখনাআ ডকান কপরভনট ডাসট পরফ তখনাআ এডগভনপরক ডভাআর াঠাপরফ ডম নতন কপরভনট ডাসট পরয়পরি মগদও ওয়াডডপরে এাআ কাজগট কপরয থাপরক াঅভযা এাআ কাজগট ভযানয়ারী কপরয ডদগখ ltphp

Plugin Name Liton Comments Mail

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(comment_post function()

$email= get_bloginfo(admin_email)

wp_mail(

$email

New Comment Posted

A new comment has been left on your blog

)

)

gt

এখাপরন comment_post নাপরভয রপরক একগট ডবগযপরয়ফর $email ndashএ এডগভন ডভাআরপরক ডসটায কপরযগি মাপরত কপরয ডাাআনাগভক বাপরফ ড ডমপরকান াাআপরটয এডগভন ডভাআরপরক গডপরটকট কযপরত াপরয তপরফ এপরকষপরতর মগদ bloginfo(admin_email) ফযফায কযা ত তাপরর এডগভন ডভাআরপরক গডপরটকট কযত গকনত get_bloginfo(admin_email) ফযফায কযায পপরর াঅভযা াআপরভাআর বযারগটপরক গযটানড কপরয ডসটায কযগি এফাপরয ওয়াডডপরেপরয গফলটাআন ডভাআর পাাংন wp_mail(emailsubjectmessage) এয ভত কপরয গরপরখগি বার কপরয ডদখন পলাগগনগট এগকটপরবট কপরয ডদখন াঅনায াাআট মগদ ানরাাআপরন থাপরক তাপরর গনপরজাআ একগট কপরভনট কপরয ডদখন াঅনায এডগভন ডভাআপরর একগট ডভাআর চপরর ডগপরি

20

াধযায়- চাযাঃ পলাগগন ডকাগডাং সটযানডাডড

পলাগগন এগকটপরবনগডএগকটপরবন পাাংন াঅগন মখন একগট পলাগগনপরক এগকটব কপরযন তখনাআ এগকটপরবন পাাংন গিগায য় এাআ পাাংনপরক register_activation_hook() ফপরর ltphp register_activation_hook($file $function) gt

Parameters

$file- োাআভাগয পলাগগন পাাআপররয াথ

$function- ডম পাাংনগট গিগায পরফ মখন পলাগগন এগকটপরবট য় ডমভনাঃ- ltphp

register_activation_hook(__FILE__ bdquoliton_plugin_install‟)

function liton_plugin_install()

do something cool stuff

gt

াঅভযা একগট পলাগগন ফানাাআ এবাপরফ-

ltphp

Plugin Name Liton Version

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

register_activation_hook(__FILE__ liton_plugin_install)

function liton_plugin_install()

If(version_compare(get_bloginfo(version)51lt))

deactivate_plugins(basename(__FILE__))

deactivate our plugin

gt

মখন াঅভযা পলাগগন গডএগকটপরবট কগয তখন পলাগগন গডএগকটপরবন পাাংন কর য়

21

ltphp

register_deactivation_hook ($file $function) gt

-

ltphp

register_deactivation_hook (__FILE__ bdquoliton_plugin_install‟)

function liton_plugin_install()

do something

gt

াঅপরযকগট গরতবনড গফলয় র াঅনাআনসটর ওয়াডডপরে াঅনাপরক পলাগগন াঅনাআনসটর এয জনয রগট ান গদপরচছ- uninstallphp file and the uninstall hook

uninstallphp

এগট ডভাটাভগট েনপরমাগয িগত এ ডভথড ফযফায কযায জনয াঅনাপরক uninstallphp নাপরভ একগট পাাআর ততগয কযপরত পরফ াঅনায পলাগগন গডপরযকটগযপরত পাাআরগট গনপরচয ভত পরফ- ltphp

মগদ ওয়াডডপরে এগকসট কযায াপরথ াঅনাআনসটর কর কযা না য় If(defined(bdquoWP_UNINSTALL_PLUGIN‟))

exit()

delete_option(bdquoliton_plugin_options‟)

াগতগযি ান এফাং কাসটভ ডটগফর ভপরি ডপরন gt

Uninstall Hook

গিতীয় িগত র Uninstall Hook মগদ াঅগন ডকান পলাগগনপরক গডগরট কযপরত চান এফাং uninstallphp পাাআর না থাপরক তাপরর এাআ রক এগকসগকউট য়(মগদ থাপরক) ltphp

register_uninstall_hook($file$function)

gt

22

ডকাগডাং সটযানডাডড পলাগগন ফানাপরফন গকনত াঅনায ডকাড ডকভন পরফ গচনতা াঅপরত াপরয ওয়াডডপরে াঅনায জনয একগট সটযানডাডড গদপরয় গদপরয়পরি মা াঅনাপরক ওয়াডডপরেপরয জনয পলাগগন গরখপরত ডগপরর পপররা কযপরতাআ পরফ httpcodexwordpressorgWordPress_Coding_Standards

ডফগক একগট উদাযন গদরাভ গনপরচ- ltphp

Short description

Longer more detailed description

param type $varname1 Description

param type $varname2 Description

return type Description

function boj_super_function( $varname1 $varname2 )

do function stuff

gt

গএাআচগ সটানডাডড াঅভযা াপরনপরকাআ গএাআচগয টড পভড(lt gt) ফযফায কগয এটা মপিডরপর ফজডন করন কাযন াপরনক ডাগসটাং ডকামপাগনপরতাআ এটা গডপলট গপরপরফ ফনধ কপরয ডদয়া থাপরক সটযানডাডড টযাগ ফযফায করন(ltphp gt)

এগকউএর ডসটটপরভনট পলাগগন ততগযয ভয় াঅনাপরক াপরনক ভয়াআ ডাটাপরফ ডথপরক াআনপযপরভন গনপরত পরত াপরয াপরনক রাাআপরনয ডকাড গরখপরত পরত াপরয ডপরকষপরতর বার েযাকগট পরচছ এগকউএর এয কভানড গপররা ফড় াপরতয াকষপরয ডরখা ডমভন- SELECT username FROM table1 WHERE status = active

23

াধযায়- াাচাঃ ওয়াডডপরেপরয াপরথ াআগনটপরেন

ডভন এফাং াফ ডভন ততগয করন াঅভযা াপরনক পলাগগপরনাআ ডদগখ ডম একগট ডভন াঅাআপরটভ গপরপরফ াঅভাপরদয ডযাপরফাপরডড ডদখপরত াাআ এফাং ডাআ ডভনপরত গিক কযপরর ডগটাং ডজ াঅপর ডখাপরন পলাগগপরনয মাফতীয় ডগটাং গদপরয় াঅভযা পলাগগন কনগপগায কগয এফায এাআ চভৎকায কাজগট কযফ াঅভযা

ট ডরপরবর ডভন েথভ িগত পরচছ একগট ট ডরপরবর ডভন ততগয কযা ডমগট াঅভযা ডযাপরফাপরডড ডভন গরপরসট একগট নতন াঅাআপরটভ গপরপরফ ডমাগ কযফ ডভন ততগয কযায জনয াঅনাপরক add_menu_page( ) পাাংন ফযফায কযপরত পরফ ltphp

add_menu_page( page_title menu_title capability menu_slug functionicon_url

position )

gt

add_menu_page() পাাংন গনপরচয যাযাগভটাযগপররা াপরাটড কপরয page_title- াঅনায ডপরজয টাাআপরটর গক পরফ lttitlegt tag এয ভপরধয menu_title- ডযাপরফাপরডড াঅনায ডভনয নাভ capability- ফডগনমন capability রাগপরফ একগট ডভন গবউ পরত menu_slug- সলাগ নাভ মা ডভনপরক ডযপায কপরয- তপরফ এগট াআউগনক পরত পরফ function- একগট ডপরজয কনপরটনট ডদখপরত ডম পাাংন কর কযা য় icon_url- একগট কাসটভ াআপরভজ গরঙক ডভন াঅাআকন ডদখাপরনায জনয position- ডভনয গজন াডডায ডমখাপরন এটা ডদখাপরনা পরফ

এফায াঅভযা একগট ফাসতফ উদাযন ডদখফ- ltphp

Plugin Name Liton Menu

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action( admin_menu liton_menu)

function liton_menu()

24

create custom top-level menu

add_menu_page( Liton Menu Page Liton Menu Page manage_options

__FILE__ liton_menu_settings_page plugins_url( imageswp-logopng

__FILE__ ) )

gt

াঅভযা একগট ট ডরপরবর ডভন ততগয কযরাভ ডদখন ডযাপরফাপরডড ডকভন ডদখায়-

Liton Menu Page নাপরভ একগট ডভন ততগয পরয় ডগপরি এফাপরয াঅভযা াফপরভন কযফ ভাপরন Liton Menu Page এয গনপরচ গকি ডগটাং ডভন(মগদ েপরয়াজন য়) াফ ডভন ডযগজসটায কযায জনয add_submenu_page( ) পাাংন ফযফায কযা য় ltphp

add_submenu_page( parent_slug page_title menu_title capabilitymenu_slug

function )

gt

parent_slug- ডভন সলাগ মা াঅভযা াঅপরগ গডপাাআন কপরযগি menu_slug- মা ডভনপরক াফপরভনপরত ডযপায কযপরফ ফাগক পাাংনগপররা াঅপরগয ভতাআ

এফায াফপরভনয জনয গকি াগতগযি ডকাড ডমাগ কগয create submenu items

add_submenu_page( __FILE__ About My Plugin About manage_options

__FILE___about liton_menu_about_page )

add_submenu_page( __FILE__ Help with My Plugin Help

manage_options

__FILE___help liton_menu_help_page )

add_submenu_page( __FILE__ Uninstall My Plugin Uninstall

manage_options

__FILE___uninstall liton_menu_uninstall_page )

25

পরযা ডকাডগট পরফ এযকভ- ltphp

Plugin Name Liton Menu

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action( admin_menu liton_menu

)

function liton_menu()

create custom top-level menu

add_menu_page( Liton Menu Settings Page Liton Menu Page

manage_options __FILE__

liton_menu_settings_page

plugins_url( imageswp-logopng __FILE__ ) )

create submenu items

add_submenu_page( __FILE__ About My Plugin About manage_options

__FILE___about liton_menu_about_page )

add_submenu_page( __FILE__ Help with My Plugin Help

manage_options

__FILE___help liton_menu_help_page )

add_submenu_page( __FILE__ Uninstall My Plugin Uninstall

manage_options

__FILE___uninstall liton_menu_uninstall_page )

gt

গনপরচ ডদখন াফপরভনগপররা ততগয পরয় ডগপরি-

26

ডভনপরক াঅপরগয ডভনয াপরথ মি কযা এফায াঅগ গিতীয় িগতপরত মগদ াঅনায পলাগগপরনয একগট ভাতর ডজ থাপরক একগট ভাতর ডপরজাআ াঅনায কর ডগটাং পরয় মায় তাপরর এাআ িগত েন করন ডমভন ডয়াগযাং াাআটগপররায জনয রধ াঅনায াঅাআগডপযানপরপরজয াঅাআগড দযকায য় এযকভ পলাগগন এধযপরনয পলাগগপরনয জনয াঅনায াগতগযি ডভন ততগয কযায দযকায ডনাআ ফযাং এপরত কপরয াআউজায গফযি ডফাধ কযপরত াপরযন এ ধযপরনয পলাগগনগপররা ডগটাং এয াফপরভন গপরপরফ থাপরক add_options_page() এাআ পাাংন গদপরয় এফ ডভন ডযগজসটায কযা য় ltphp

add_options_page( page_title menu_title capability

menu_slug function)

gt

এফায চরন এযকভ একগট ডভন ততগয কগয- ltphp

Plugin Name Liton Sub Menu

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action( admin_menu liton_submenu)

function liton_submenu()

create a submenu under Settings

add_options_page( Liton Menu Settings Page Liton Menu Page

manage_options __FILE__

liton_menu_settings_page)

27

gt

াফপরভন ততগয পরয় ডগপরি চরন ডদগখ ডযাপরফাপরডড ডকভন ডদখায়-

এপরকফাপরয গনপরচয গদপরক ডদখন Liton Menu Page নাপরভ একগট ডভন ততগয পরয়পরি

উাআপরজট ততগয কযা উাআপরজট ততগয কযায জনয ওয়াডডপরে WP-Widget িা গদপরয় ততগয কযা য় উাআপরজট এয একগট পযভযাট ডদখন গনপরচ ltphp

class My_Widget extends WP_Widget

function My_Widget()

processes the widget

function form($instance)

displays the widget form in the admin dashboard

function update($new_instance $old_instance)

process widget options to save

function widget($args $instance)

displays the widget

gt

28

উাআপরজট ডযগজসটায কযায জনয widget_init() পাাংনপরক রক কযা য় চরন একগট উাআপরজট ততগয কগয- ltphp

Plugin Name Liton Widget

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

class Messager extends WP_Widget

function __construct()

$params=array(

description =gtDisplay message to readers

name =gt Message

)

parent__construct(Messager $params)

public function form()

public function widget()

add_action(widgets_initliton_register_message)

function liton_register_message()

register_widget(Messager)

gt

29

খফ াধাযন একগট উাআপরজট পলাগগন এগট াঅভযা াআউজাযপরদযপরক একগট ডভপরজ ডদখাপরফা াাআডফাপরয ডটাাআ কযায ডচষটা কযগি এখন পলাগগনগট এগকটপরবট কপরয ডদগখ-

াঅভাপরদয উাআপরজটগট ডদখাপরচছ এফায াঅপরযা গকি পাাংনার কাজ কগয এগট মগদ াাআডফাপরয ডরাগ কপরয ডদন তাপরর ডকান কাজ কযপরফ না কাযন াঅভযা এখপরনা গকিাআ কগযগন পভড পাাংপরন গকি কাজ কগয মা উাআপরজট টাাআপরটর গপরপরফ ডদখাপরফ- public function form($instance)

extract($instance)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title)gtgtTitle ltlabelgt

ltinput

class=widefat

id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt

value=ltphp if(isset($title)) echo esc_attr($title) gt gt

ltpgt

ltphp

াঅভযা উপরয class=widefat ফযফায কপরযগি এাআ িা ফযফায কযায কাযপরন পভড এয াআনট গপলডগট াপরনক সনদয পরয়পরি

30

মগদ এাআ িা ফযফায না কগয তাপরর ডকভন ডদখাপরফ গনপরচ ডদখন-

াঅভাপরদয উাআপরজট পলাগগনগটয ডকাড গনপরচ ডদওয়া র ltphp

Plugin Name Liton Widget

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

class Messager extends WP_Widget

function __construct()

$params=array(

description =gtDisplay message to readers

name =gt Message

)

parent__construct(Messager$params)

31

public function form($instance)

extract($instance)

print_r($instance)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title)gtgtTitle ltlabelgt

ltinput

class=widefat

id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt

value=ltphp if(isset($title)) echo esc_attr($title) gt gt

ltpgt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(description)gtgtDescription

ltlabelgt

lttextarea

class=widefat

rows=10

id=ltphp echo $this-gtget_field_id(description) gt

name=ltphp echo $this-gtget_field_name(description) gtgtltphp

if(isset($description)) echo esc_attr($description) gtlttextareagt

ltpgt

ltphp

public function widget($args$instance)

extract($args)

extract($instance)

echo $before_widget

echo $before_title$title$after_title

echo ltpgt$descriptionltpgt

echo $after_widget

add_action(widgets_initliton_register_message)

function liton_register_message()

32

register_widget(Messager)

gt

এফায াঅভযা ডযাপরফাডড ডথপরক একগট ডভপরজ ডদফ গবগজটযপরদযপরক-

াঅভযা এাআ উাআপরজটগট ডাাআনাগভক বাপরফ কপরযগি কাযন এখাপরন lth2gt lth3gt lth4gt এ ধযপরনয ডকান টযাগ াঅভযা ফযফায কগযগন াঅভযা গথভ ডডপরবর কযগিনা সতযাাং এ কাজগট াঅভাপরদয ানযবাপরফ কযা দযকায গির এগট গথভ ডডপরবরায ডদগখপরয় ডদপরফন ডম ডকভন টযাগ পরফ াাআডফাপরয াাআপরটয াাআডফাপরয ডকভন ডদখায় তা ডদখন- াঅভযা রগট গথপরভ এগট ডটসট কপরয ডদখফ েথভগট টপরয়গনট াআপররপরবন

33

এফায াঅপরযকগট গথপরভ ডদগখ-

34

াধযায়- িয়াঃ পলাগগন পাাংন

গকি ডফগক পাাংন __() পাাংন

__() পাাংনগট গএাআচগপরত াঅনায ডটকসটপরক ডযগড কপরয িানসপররন এফাং গযটানড কপরয উদাযন গপরপরফ াঅগন একগট বযারপরক __() পাাংপরনয ভপরধয ডবগযপরয়ফর গদপরয় assign করন ভপরন যাখপরফন এাআ পাাংনগট রগট াঅনডাযপরিায(_) গদপরয় গগঠত একগট নয় ltphp

$text=__(bdquoWordpress is a wonderful publishing platform‟‟liton_plugin‟)

gt

_e() পাাংন _e() পাাংনগট াঅনায ডটকসবপরট ডরাকারাাআজ কপরয এটা গএাআচগপরত echo এয ভত কাজ কপরয ডকান ডটকসটপরক গিপরন ডদখাপরনায জনয এফায একট ভজা কগয মা রপরক ডদপরখগি াঅপরগাআ- _e() পাাংনগট গদপরয় াঅপরগয পলাগগনগট এগডট কযফ ltphp

Plugin Name Liton Action

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(wp_footer liton_footer_action)

function liton_footer_action()

Output the translated text

_e( This site runs off the coolest platform ever ampmdash

WordPress

liton-plugin )

gt

35

এফায াঅউটট ডদগখ

esc_attr__() পাাংন এাআ পাাংনগট esc_attr() এয ভত এগট এাআচগটএভএর এগিগফউটপরক escape কপরয াঅভযা এফায esc_attr__() এফাং __() এাআ রগট পাাংনপরক একগট কপরয পলাগগন ততগয কযফ ltphp

Plugin Name Liton Esc Attr

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

A function that returns a link to the sites terms of service

page

function liton_terms_of_service_link()

return lta href=httpliton-onlinecomtos title=

esc_attr__( Visit the Terms of Service page boj-plugin ) gt __( Terms of

Service liton-plugin ) ltagt

Display the output of the liton_terms_of_service_link()

function

echo liton_terms_of_service_link()

gt

পলাগগনগটয াঅউটট ডদখন-

36

এযকভ াঅপরযা গকি পাাংন াঅপরি ডমগপররা াঅনাযা ডদপরখ ডনপরফন াআনটাযপরনট ডঘপরট

esc_html__() Function

esc_attr() Function

esc_url() Function

esc_js() Function

esc_html() Function

esc_attr_e() Function

esc_html_e() Function

_x() Function

_ex() Function

esc_attr_x() Function

esc_html_x() Function

_n() Function

_nx() Function

_n_noop() Function

_nx_noop() Function

Translation

bull Poedit httppoeditnet

bull GlotPress httpglotpressorg

bull Launchpad httpstranslationslaunchpadnet

bull Pootle httppootlelocamotionorg

bull KBabel httpi18nkdeorg

bull GNU Gettext httpgnuorgsoftwaregettext

GlotPress এখন ওপরয়ফ ডফড টর গপরপরফ ফযফায কযা পরচছ ওয়াডডে েপরজপরকটয ডিপরন একজন াথফা গটপরভয জনয িানসপররগটাং পটওয়যায গপরপরফ

37

াধযায়- াতাঃ পলাগগন গগকউগযগট

গগকউগযগট কগমপউটাপরযয বালায় ldquoগগকউগযগটrdquo ভাপরন বীগতকয একগট বদ ডমভন Cross Site

Scripting(XSS) Cross Site Request Forgery(CSRF) SQL Injection Privilege

Escalation Vulnerabilities এফাং Holes রফডর ডকাড একগট াবডাপরযয সযকষায জনয রভকীয কাযন পরত াপরয

পলাগগপরনয গগকউগযগট গক াঅনায পলাগগনগট ডমন গগকউয য় vulnerabilities data integrity এফাং reliability ডথপরক

াঅনায পলাগগনপরক গক গগকউগযগট ডদপরফন ওয়াডডপরে এনবায়যনপরভপরনট াঅনায পলাগগনপরক গগকউগযগট ডদয়া খফ কগঠন কাজ নয় এফাং খফ ভয় াপরকষ গফলয়ও নয় ওয়াডডপরেপরয গনজসব গকি পাাংন এপরকষপরতর াঅনাপরক খফাআ াাময কযপরফ

াআউজায াযগভন াঅভযা াপরনক পলাগগন াআনসটর কযায পরযাআ ডদপরখগি ডম মখনাআ এডগভন যাপরনর এ েপরফ কযপরত মাাআ তখন একগট এযয ডভপরজ াঅপর ডভপরজগট গনপরচয ভত-

ডরখা াঅপরি- You do not have sufficient permissionshellip এটা গনশচয়তা ডদয় ডম ডমপরকান এযাকন ীভাফি থাপরক গনগদডষট গকি যাাআট গদপরয় ওয়াডডপরেপরয একগট কভন পাাংন র current_user_can() একগট উদাযন ডদাআ-

38

ltphp

Capability

if ( current_user_can(install_plugins) )

wp_die( Insufficient permissions )

Role

if( current_user_can(editor) )

wp_die( You cannot edit this setting )

gt

খফ তাড়াতাগড় াঅগন এাআ current_user_can() পাাংন ডচক কযপরফন না কাযন এটা গনবডয কযপরফ get_currentuserinfo() এাআ পাাংপরনয উপরয াঅয এয ফযফাপরয ীভাফিতা াঅপরি এটা একগট পলাপরগফর পাাংন(pluggable function) াঅয এয ডরাপরকন পরচছ wp-

includespluggablephp মা পলাগগন এগকটব ফায য ডরাড য়

Nonces

ডকউ এগটপরক াঅফায Nonsense( গনপরফডাধ) বাফপরফন নাএগট ওয়াডডপরেপরয বালায় Nonces কগমপউটাপরযয বালায় nonce ফা cryptographic nonce পরচছ ldquonumber used once rdquo এটা ডিাট এফাং সপষট গকি য যানডভ গসটরাং ডমভন- াওয়াডড মা গকি গনপরদড কপরয Nonce গপরডন গপলড পভডপরক Retrieve ফা display কপরয-

একজন ওয়াডডপরে াআউজায ডমপরকান একগট এযাকন (delete update save and such) একগট াফপরজকট(একগট ডাসট পলাগগন ডগটাং াআতযাগদ) ২৪ ঘনটায একগট ভয় ডিভ

ডমভন ডাসট 50 গডগরট কযপরফন াঅনায ওয়াডডপরে বলগ ডথপরক তাপরর াঅনায গরঙকগট পরফ এযকভ- httpexamplecomwp-admin

postphppost=43ampaction=trashamp_wpnonce=83a08fcbc2

এখাপরন 83a08fcbc2 এগট র nonce মা ২৪ ঘনটা সথায়ী থাপরক রধভাতর এগট মগদ াঅনায িাযা ফযফরত য় এফাং গডগরট য় ডাসট 50 মখন াঅগন গরপরঙক গিক কপরযন ফপরচপরয় গযতবনড র ডম Nonce ডকান malicious াআউজায ফেপরত াপরযনা এফাং গঠক গরঙক িাড়া nonce এযয ডপরজ চপরর মায় ডমখাপরন াযগভন থাপরক না াঅপরযা গফসতাগযত ডদখন httpcodexwordpressorgWordPress_Nonces

39

Nonce URL ততগয এফায চরন াঅপরগয উদাযন ডথপরক Nonce URL ততগয কগয একগট ডাসট গডগরট কযায জনয wp_nonce_url() পাাংন ফযফায কযা য় ltphp

$url = wp_nonce_url( $url $action )

gt

েথভ যাযাগভটায $url পরচছ গসটরাং URL এপরডর এয মাপরক াঅগন কপরয়যী গসটরাং এয Nonce কযপরত চান াফযফহরত পলাগগপরনয গডগরট গরঙক এযকভ থাপরক- httpexamplecomwp-admineditphppage= liton

_utagsampliton_action=deleteampid=6

এখাপরন ডদখন যাযাগভটায liton_action এফাং এয টযাগ াঅাআগড গিতীয় যাযাগভটায পরচছ $action একগট গসটরাং মা াঅগন একগট াফপরজকট এয জনয একগট action ততগয কযপরফন উপরয ডদখরাভ delete এযাকন এয টযাগ াঅাআগড 6 সতযাাং $action যাযাগভটায পরত াপরয bdquoliton_utags-delete_tag6‟ গনপরচ ফাসতফ উদাযন ডদগখ- ltphp

$delete_url = add_query_arg(array( liton _action=gtdeleteid=gt$id) )

$nonced_url = wp_nonce_url( $delete_url bdquoliton _utags-delete_tag$id )

gt

lta href=ltphp echo $nonced_url gtgtdeleteltagt

এাআ টযাগগট পরফ গডগরট গরঙক এখাপরন add_query_arg() পাাংন ফযফায কযা পরয়পরি মা কাপরযনট URL ডক এযাপরয যাযাগভটায এয ভপরধয যাপরখ ানযবাপরফ ফরপরর এগট ডমাগ কপরয এযকভাঃ liton_action=deleteampid=6 amp liton_action=deleteampid=6

Nonce Form ততগয Nonce পভডপরকও ডোপরটকট কপরয wp_nonce_field() পাাংপরনয ভাধযপরভ ltphp

wp_nonce_field( $action $name $referer $echo ) gt

$action ( string) (optional) - action নাভ াআউগনক identifier optional

গকনত recommended $name (string) (optional) ndash গপরডন গপলড পভড ডবগযপরয়ফর নাভ $referer (boolean) (optional) ndash গডপলট গপরপরফ true থাপরক ডমখাপরন গপলড

ডবগরপরডন এয দযকায য়

40

$echo (boolean) (optional) - গডপলট গপরপরফ true থাপরক ডমখাপরন াঅউটট ডদখাপরনায ফা গপরডন পভড গপলড গযটানড কযায জনয দযকায য়

পপরভড াঅনায action এয নাভ গদন ltform method=postgt

lt-- some inputs here --gt

ltphp wp_nonce_field(name_of_my_actionname_of_nonce_field) gt

ltformgt

াঅভযা একগট পলাগগন ফানাপরফা ডমখাপরন াফযফরত টযাগগপররাপরক াঅভযা ভযানয়াগর গডগরট ফা গযপরনভ কযপরত াযফ এগট একট ফড় গকনত াপরনক গফলয়াআ াঅপরগাআ াঅপররাচনা কযা পরয়পরি ডদখপররাআ ফেপরত াযপরফন একগট ফাসতফধভডী উদাযন গনপরচ গদরাভ- ltphp

Plugin Name Liton Unused Tags

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add an entry for our option page to the Posts menu

add_action(admin_menu liton_utags_add_page)

function liton_utags_add_page()

add_posts_page( Unused Tags Unused Tagsmanage_optionsliton_utags

liton_utags_option_page )

Catch any liton_action parameter in query string

add_action( admin_init liton_utags_do_action )

Proceed to requested liton_action if applicable

function liton_utags_do_action()

if( isset( $_REQUEST[liton_action] ) )

return

if( current_user_can( manage_options ) )

wp_die( Insufficient privileges )

41

$id = $_REQUEST[id]

$action = $_REQUEST[liton_action]

if( $action == done )

add_action( admin_notices liton_utags_message )

return

check_admin_referer( liton_utags-$action_tag$id )

switch( $action )

case rename

$newtag = array( name =gt $_POST[name] slug =gt

$_POST[name] )

wp_update_term( $id post_tag $newtag )

break

case delete

wp_delete_term( $id post_tag )

break

wp_redirect( add_query_arg( array( liton_action =gt done )

) )

Admin notice

function liton_utags_message()

echo ltdiv class=updatedgtltpgtAction

completedltpgtltdivgt

Draw the tag management page

function liton_utags_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtUnused Tagslth2gt

ltphp

if( $tags = liton_utags_find_orphans() )

echo ltpgtYou currently have count( $tags ) unused

tagsltpgt

echo ltolgt

foreach( $tags as $tag )

42

$id = $tag-gtterm_id

$name = esc_attr( $tag-gtname )

$delete_url= add_query_arg(

array(liton_action=gtdeleteid=gt$id) )

$nonced_url= wp_nonce_url( $delete_url

liton_utags-delete_tag$id )

gt

ltligt

ltform action= method=postgt

ltphp wp_nonce_field( liton_utags-rename_tag$id )

gt

ltinput type=hidden name=liton_action

value=rename gt

ltinput type=hidden name=id value=ltphp echo

$id gt gt

ltinput type=text name=name value=ltphp echo

$name gt gt

ltinput type=submit value=Rename gt or

lta href=ltphp echo $nonced_url gtgtdeleteltagt

this tag

ltformgt

ltligt

ltphp

else gt

ltpgtYou have no unused tagsltpgt

ltphp endif gt

ltolgt

ltdivgt

ltphp

Find unused tags return them in an array

function liton_utags_find_orphans()

global $wpdb

$sql = SELECT termsterm_id termsname FROM

$wpdb-gtterms terms

INNER JOIN $wpdb-gtterm_taxonomy taxo

ON termsterm_id=taxoterm_id

WHERE taxotaxonomy = post_tag

43

AND taxocount=0

return $wpdb-gtget_results( $sql )

gt

ডযাপরফাপরডড এাআ পলাগগপরনয ডভন াওয়া মাপরফ ডাসট এয াফপরভন গপরপরফ গনপরচ ডদখন-

এফায পলাগগন ডভনপরত গিক কপরয ডদগখ পলাগগপরনয ডবতপরযয কাজ-

উপরয ডদখন াঅগভ একগট টযাগ ততগয কপরযগিরাভ l i নাপরভ এগট এখাপরন ডদখাপরচছ াঅগভ চাাআপরর এগট এগডট ফা গডগরট কযপরত াগয এফায গডগরট গরঙক এ ভাউপরয কাডয ডযপরখ গনপরচ গরঙক ডদখন ফা গডগরট করন একগট টযাগ াঅভায এখাপরন URL গট এযকভ httplocalhostdev-litonwp-

admineditphppage=liton_utagsampliton_action=doneampid=4amp_wpnonce=30a44b7

986

এখাপরন াঅগভ liton_action=done ফযফায কপরযগি Nonces এয পাাংনগপররায নাভ গনপরচ গদরাভ াঅনাযা ডদপরখ গনপরফন াআনটাযপরনট ডথপরক wp_nonce_field()

wp_nonce_url()

wp_verify_nonce()

wp_create_nonce()

44

check_admin_referer()

check_ajax_referer()

ডাটাপরফ াঅনাযা ডমপরত গএাআচগ গনপরয় কাজ কপরযন এগকউএর ডাটাপরফ এয াপরথ ফাাআ কভপরফী গযগচত এয গনটযাকস গপররা ডভাটাভগট ফায জানা একাআ বাপরফ াপরনপরকাআ ওয়াডডপরেপরও ডাটাপরফ ডকাড গরপরখন এটা ডকাগডাং এয জনয খাযা গদক াঅগভ নযভার গএাআচগ- এগকউএর ডকাড এয উদাযন গদগচছ- ltphp

$sql=rdquoINSERT INTO $wpdb-gtposts(post_title) VALUES(bdquo$title‟)rdquo

$wpdb-gtquery($sql) gt

এফায ওয়াডডপরেপরয সটযানডাডড ডকাগডাং গপরসটভ ডদখন- ltphp

$wpdb-gtinsert($wpdb-gtposts

array(bdquopost_title‟ =gt $title)

array(bdquos‟)

)

gt

ডাটাপরফ গগকউয কযায জনয াঅপরডট াাপরযন ডদখাফ- গনপরচয ডকাডগট খাযা েযাকগট ltphp

$wpdb-gtquery(ldquoUPDATE $wpdb-gtposts SET post_title=‟$newTitle‟ WHERE

ID=$my_idrdquo )

gt

উপরযয ভত কপরয না গরপরখ গনপরচয ভত কপরয গরখন- ltphp

$wpdb-gtupdate($wpdb-gtposts

Array(bdquopost_title‟ =gt‟$newTitle‟)

Array(bdquoID‟ =gt$my_id

)

gt

ানর বাপরফ ানযানয াাপরযন গপররা গরখপরফন

45

াধযায়- াঅটাঃ ডরাকারাাআপরজন এফাং Set t i ngs API

ডরাকারাাআপরজন ডরাকারাাআপরজন একগট গরতবনড গফলয় এয পাাংনগপররা র- load_theme_textdomain()

load_plugin_textdomain()

উদাযন- ltphp $var=__(bdquoHello‟‟domain‟) gt

ltphp _e(bdquoHello‟‟domain‟) gt

গফসতাগযত গনপরচয গরপরঙক ডদখন- httpcodexwordpressorgI18n_for_WordPress_Developers

ডগটাং API

ডগটাং API পরচছ াঅগন গকি ান ততগয কযপরফন মা াআনটাযনার বাপরফ াঅনায পলাগগপরন এপলাাআ পরফ মখন াঅগন াআউজায- গডপাাআন ান ততগয কযপরফন াঅনায পলাগগপরনয জনয তখন Settings

API ndashএ াঅনায ডকাড মতটা ারন জ করন Settings API াঅনায ডম কাজগপররা handle কপরয-

ওয়াডডপরেপরক জাগনপরয় ডদয় ডম াঅগন গনজসব ান ফযফায কযপরফন াঅনায াআনটপরক পাাংপরনয ভপরধয উপরেখ কযপরফ ডফগয বাগ ান ডজ গনপরজাআ ততগয কযপরফ $_POST ডাটা গপররাপরক ভগনটয কপরয ান ততগয এফাং াঅপরডট কপরয(মগদ েপরয়াজন য়)

Settings API পাাংন Settings API পাাংপরন গতনগট ডসট থাপরক- ১ েথপরভ ওয়াডডপরেপরক ফপরর ডম াঅগন নতন ডগটাং ফযফায কযপরফন াঅনায পলাগগপরনয জনয ২ এয পরয ডগটাং গডপাাআন করন (text areas input boxes and any

HTML form element) এফাং এপরদযপরক একাপরথ রে কপরয যাপরখ ৩ ওয়াডডপরেপরক াঅনায ডগটাং actual form এ ডদখাপরনায জনয ফপরর

46

এফায াঅভযা একগট পলাগগন ফানাপরফা Administration Page ndashএ ডযপাপরযনস গপরপরফ ডদখপরত াপরযন- httpcodexwordpressorgAdding_Administration_Menus

httpcodexwordpressorgFunction_Referenceadd_options_page

httpcodexwordpressorgAction_ReferenceActions_Run_During_an_Admin_P

age_Request

পলাগগপরনয এডগভন ডজ পরফ এযকভ- httpexamplecomwp-adminoptions-generalphppage=liton_myplugin

েথপরভ াঅভযা ডভন ততগয কযফ াঅপরগয ভত কপরয- Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

এফায ান ডজ এ পভড গনপরয় গকি ডগটাং ডদফ function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

উপরযয ডকাপরড াঅভযা একগট পপরভডয ভপরধয রধ াফগভট ফাটন এফাং My Plugin নাপরভ ডজ ততগয কপরযগি ডযাপরফাপরডড ডদখন-

47

ডগটাং এয াফ ডভন গপরপরফ My Plugin াঅপরি এফাং My Plugin ডত গিক কযপরর াঅভযা উপরযয ডজ ততগয কপরযগি ডমখাপরন াফগভট ফাটনগট ডদখাপরচছ এফায গতনগট যাযাগভটায ডযগজসটায কযফ- ltphp

register_setting( liton _myplugin_options liton _myplugin_options liton

_myplugin_validate_options)

gt

েথভগট ডগটাং রেপরয নাভ গিতীয়গট ান নাভ মা াঅভযা get_option() পাাংন গদপরয়ও ডপরত াগয ততীয়গট করফযাক পাাংন এগট একগট গসটরাং ডযপাপরযনস পাাংন এখাপরন াঅভযা নাভ

48

গদপরয়গি liton _myplugin_validate_options মা া কযপরফ পপরভডয কর ডব ডগটাং াঅভযা এটা পরয গডপাাআন কযফ

ডগটাং গডপাাআন ডকন add_settings_field() এফাং add_settings_section() পাাংন গদপরয় াঅভযা াঅভাপরদয কর ডগটাং গডপাাআন কযফ ltphp

add_settings_section( liton_myplugin_main My Plugin Settings

liton_myplugin_section_text liton _myplugin)

add_settings_field( liton _myplugin_text_string Enter text here

liton _myplugin_setting_input liton _myplugin liton _myplugin_main)

gt

add_settings_section() পাাংন গদপরয় াঅভযা ডদখাফ াঅপরর ডজ এ ডকন ডকভন ডদখাপরফ এয চাযগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ ডকন টাাআপরটর ltH3gt টযাপরগয ভপরধয করফযাক পাাংন এয নাভ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ (page= liton _myplugin এগট

URL এয াাং গপরপরফ থাকপরফ) গিতীয় যাযাগভটায add_settings_field() পপরভডয াআনট গপরপরফ ডদখাপরনা পরয়পরি এখাপরন াাচগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ পরযয গপপরলড গক গেনট কযা পরফ তা ডটকসট গপরপরফ ডদখাপরনা পরয়পরি(Enter text

here)

করফযাক পাাংন পপরভড গেনট কযপরফ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ ডগটাং ডপরজয ডকন গপলড মা add_settings_section() পাাংপরন গডপাাআন

কযা পরয়পরি ltphp

Explanations about this section

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

49

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton _myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name= liton _myplugin_options[text_string]

type=text value=$options[text_string] gt

gt

গিতীয় পাাংন ান বযার text_string ডক এযাপরযপরত ডসটায কপরয ডযপরখপরি এফায াআউজায াআনট বযাগরপরডট কযফ- ltphp

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace([^a-zA-Z]$input[text_string] )

return $valid

gt

পভডপরক ডযনডায কযফ- ltphp

Draw the options page

function liton_myplugin_options_page()

gt

ltdiv class=wrapgt

ltphp

screen_icon()

gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp

settings_fields( liton_myplugin_options)

do_settings_sections(liton_myplugin)

50

gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

settings_fields() পাাংনগট ডযপাপরযনস গপরপরফ ফযফায কযা পরয়পরি মা াঅভযা register_setting() পাাংপরন গডপরিয়ায কপরযগি do_settings_sections() পাাংনগট কর কযপরফ কর াঅউটট ডকন এফাং পভড গপলডপরক মা াঅভযা পরফড গডপাাআন কপরযগি াঅভাপরদয কাজ ডল এফায পরযা পলাগগনগট ডদখফ- ltphp

Plugin Name Settings API example

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

Draw the option page

function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save

Changes gt

ltformgtltdivgt

ltphp

51

Register and define the settings

add_action(admin_init liton_myplugin_admin_init)

function liton_myplugin_admin_init()

register_setting( liton_myplugin_options

liton_myplugin_options

liton_myplugin_validate_options )

add_settings_section( liton_myplugin_main My Plugin

Settings

liton_myplugin_section_text liton_myplugin )

add_settings_field( liton_myplugin_text_string Enter text

here

liton_myplugin_setting_input liton_myplugin

liton_myplugin_main )

Draw the section header

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton_myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name=liton_myplugin_options[text_string]

type=text value=$text_string gt

Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

return $valid

gt

52

ডদখন ডযাপরফাপরডড ডকভন ডদখায়-

পরয় ডগর াঅভাপরদয েথভ নডাাংগ পলাগগন ান ডজ াঅপরযকগট গজগন ডমটায জনয এতগকি পলাগগন URL এপরডর- httplocalhostdev-litonwp-adminoptions-

generalphppage=liton_mypluginampsettings-updated=true

াঅভায এখাপরন এযকভ ডদখাপরচছ ডটকসট ফপরকস ডকান গকি গরপরখ ডব কযায য এফাপরয াঅপরযকগট গজগন ডদখফ াঅভযা াপরনক ভয়াআ াপরনক পলাগগপরনয াআনট গপপরলড বর ডাটা াআনট কযপরর এযয ডভপরজ ডদখায় এাআ কাজগট কযফ এফায াঅভযা এখাপরন esc_attr() ফা esc_html() ফযফায কগযগন সতযাাং াঅভাপরদয গরগভপরটন থাকপরি ডবগরপরডট পাাংনগট একট এগডট কগয গনপরচয ভত কপরয Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

if( $valid[text_string] = $input[text_string] )

add_settings_error(liton_myplugin_text_stringliton_myplugin_texterror

53

Incorrect value enterederror)

return $valid

উপরয ডদখন add_settings_error() পাাংন ফযফায কপরযগি মা এযয ডচক কযপরফ পপরভডয াঅগভ একগট বর ডাটা(পরসপার কযাপরযকটায) াআনট কপরয ডদখরাভ এযয ডদখাপরচছ-

তায ভাপরন াঅভযা পর পরয়গি াঅনায পলাগগনগট এগডট কপরয ডনপরফন ডকায ডকন এফাং গপপরলডয গরসট গদরাভ াঅনাপরদয সগফধায জনয

54

CSSJS পাাআর মি কযা

াঅনায পলাগগপরন গএএ ফা জাবাগিে ডমাগ কযপরত পরত াপরয াঅগন চাাআপরর ফাগপরযয ডকান ফা াঅনায ততগয ডকান গএএ ফা জাবাগিে পাাআর ডমাগ কযপরত াপরযন তপরফ এপরকষপরতর াঅভযা ডমবাপরফ HTML এ পাাআর ডমাগ কগয ডযকভ না function liton_scripts()

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtojqueryjsrdquogtltscriptgt‟

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtoscriptjsrdquogtltscriptgt‟

add_action(bdquowp_head‟‟liton_scripts‟)

এগট মপনডরপর বর িগত গনপরচ ডদখন ওয়াডডপরেপর গকবাপরফ পাাআর মি কযপরত য়- function liton_scripts()

wp_enqueue_script(bdquojquery‟)

wp_enqueue_script(bdquotheme-scripts‟‟pathtoscriptsjs‟)

add_action(bdquowp_enqueue_script‟‟liton_scripts‟)

ানর বাপরফ াঅগন সটাাআরীট ডমাগ কযপরত াপরযন- function liton_styles()

wp_enqueue_ style (bdquocss‟)

wp_enqueue_ style (bdquotheme- styles‟pathto stylescss‟)

ডযপাপরযনস ডদখন- httpcodexwordpressorgFunction_Referencewp_enqueue_script

httpcodexwordpressorgFunction_Referencewp_enqueue_style

টডপরকাড টডপরকাড পরচছ ওয়াডডপরেপরয ডসপগগপক ডসপার টযাগ মা াঅগন ডাসট ফা ডপরজয ভপরধয াআনাটড কপরয ানয ডকান কনপরটনটপরক ওপরয়ফাাআপরটয ভপরধয গযপরপল কযপরত াযপরফন মগদ াঅগন গযারাগয টাাআপরয ডকান পলাগগন ফযফায কপরয থাপরকন তাপরর াঅনায ধাযনা থাকায কথা মাাআ ডাক াঅগভ কপরয়কগট উদাযি ডদখাফ

55

েথপরভ একগট পলাগগন ততগয কযফ ডমখাপরন add_shortcode() নাপরভয একগট পাাংন থাকপরফ এগট রগট যাযাগভটায েন কপরয েথভগট টডপরকাপরডয নাভ গিতীয়গট ডম পাাংনপরক কর কযপরফন ডগট াঅভযা একগট উদাযন ডদগখ- ltphp

Plugin Name Liton Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(litonhi)

function hi()

echo Hello World

gt

উপরয ডদখন খফ ডিাট গকনত াঅগন চাাআপরর এয ফযফায াপরনক গফসতত কযপরত াপরযন এখাপরন টডপরকাড নাভ পরচছ liton াঅয এগটপরক ডরখা য় এবাপরফ [liton] াঅভযা ডাপরসটয ভপরধয াআনাটড কপরয ডদগখ াঅউটট ডকভন ডদখায়-

এফায াঅউটট ডদগখ-

56

াঅভাপরদয ততগয কযা টডপরকাড পরবাপরফাআ কাজ কযপরি াঅপরযকগট উদাযন ডদখফ াঅনাযা াপরনপরকাআ গগর এডপরনস গনপরয় কাজ কপরযন াঅনাযা াপরনপরকাআ এডপরনস এয জনয পলাগগন ফযফায কপরযন গকনত চাাআপররাআ এাআ কাজগট াঅনাযা গনপরজয ভত কপরয াগজপরয় গনপরত াপরযন গগপররয কাপরি ফ ডাসট বযার ায়না াঅনাযা মাযা একসাটড াঅপরিন তাযা এটা বার কপরয জাপরনন তাাআ াপরনপরকাআ গগপররয ডকাড ফ ডপরজ ডদখাপরত চান না এজনয পলাগগন ফযফায কপরয রাব য়না কাযন পলাগগপরন জায়গা গপকসড থাপরক এপরত কপরয াঅগনডাং ও কভ য় াঅনাযা টডপরকাড ফযফায কপরয ডমপরকান জায়গায় এড ডদখাপরত াপরযন গনপরচ াঅগভ রগট টডপরকাড ততগয কপরযগি র‟ধযপরনয এড ডদখাপরনায জনয ltphp

Plugin Name Liton Adsense Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(adsense_468adsense_468_60)

add_shortcode(adsense_250adsense_250_250)

function adsense_468_60($atts)

return ltscript type=textjavascriptgtlt--

57

google_ad_client = ca-pub-0956247412222369

468x60 created 101510

google_ad_slot = 4372705450

google_ad_width = 468

google_ad_height = 60

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

function adsense_250_250($atts)

return ltscript type=textjavascriptgtlt--

google_ad_client = ca-pub-0956247412222369

250x250 created 81809

google_ad_slot = 9368091893

google_ad_width = 250

google_ad_height = 250

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

gt

একগট টডপরকাড ফযানায টাাআপরয জনয এফাং াঅপরযকগট ২৫০২৫০ াাআপরজয এফায ডাপরসট ডমপরকান একগট টডপরকাড াআনাটড করন ডমখাপরন াঅনায ডদখাপরনায েপরয়াজন ভপরন কপরযন াঅগভ রগট ডকাড ডটসট কপরয ডদখরাভ-

58

এফায াাআপরটয াঅউটট ডদগখ-

রগট এডাআ ডদখাপরচছ াঅপরযা াপরনক কাপরজ াঅগন টডপরকাড ফযফায কযপরত াপরযন ডযপাপরযনসাঃ httpcodexwordpressorgShortcode_API

59

াধযায়- নয়াঃ পলাগগন উদাযন

ওয়াডডপরেপরয ডডটটাাআভকপরভনট নামবায ফাাংরা কযায পলাগগন াঅভাপরক কপরয়কজন ফপররগিপররন ওয়াডডপরেপরয গডপলট ডডটটাাআভকপরভনট নামবায ফাাংরা য়না রযাাংগপরয়জ ফাাংরা কযায যও ডডটটাাআভকপরভনট নামবায গপররা াআাংপরযগজ ডথপরক মায় গনপরচয পলাগগনগট ফযফায কপরয ডদখপরত াপরযন- ltphp

Plugin Name Liton Bangla datetimecomment number

Plugin URI httpliton-onlinecomplugins

Description Bangla datetimecomment number

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

This function converts all english numbers to bangla number

function make_bangla_number($str)

$engNumber = array(1234567890)

$bangNumber = array( ১ ২ ৩ ৪ ৫ ৬ ৭ ৮ ৯ ০ ) $converted = str_replace($engNumber $bangNumber $str)

return $converted

add_filter( get_the_time make_bangla_number )

add_filter( the_date make_bangla_number )

add_filter( get_the_date make_bangla_number )

add_filter( comments_number make_bangla_number )

add_filter( get_comment_date make_bangla_number )

add_filter( get_comment_time make_bangla_number )

gt

60

সলাাআডায পলাগগন াঅভযা এাআ ফাআপরয়য কর গটউপরটাগযয়াপরর মা মা গখরাভ তা এফায একগট নডাাংগ পলাগগপরনয এপলাাআ কযফ সলাাআডায পলাগগন মপপরকড াঅভযা ফাাআ জাগন একগট ওপরয়ফাাআপরটয ডচাযা ারপরট ডদয় একগট সলাাআডায াপরনক ডাাআনাগভক ভপরন য় ডদখপরতও াপরনক বার রাপরগ এাআ পলাগগপরন াঅভযা এডগভন যাপরনর ডথপরক াআপরভজ ডমাগ কযফ এফাং তা াঅভাপরদয াাআপরট ডদখাফ চরন কাজ রর কগয- েথপরভ গনপরবা সলাাআডায এয ওপরয়ফাাআপরট মান এফাং jQuery Plugin ডাউনপররাড করন

ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom Version 10

gt

াঅভযা পলাগগপরনয ডডায ততগয কযরাভ

পলাগগন গরপরসট ডদখাপরচছ bdquoLitons Nivo Plugin‟ াঅভাপরদয েথভ কাজ পরচছ custom post

type ওয়াডডপরে পাাংনাগরগট একগট নতন কাসটভ ডজ ততগয কযপরত custom post type

ফযফহরত পরফ ডমখাপরন একগট াআপরভজ থাকপরফ াঅভযা রধ টাাআপরটর ডনভ এফাং াআপরভজ াঅপররাডায গপরপরফ গপচায াআপরভজ পাাংনাগরগট ফযফায কযফ function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_function 600 280 true)

61

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

add_action(init np_init)

উপরযয ডকাপরড np_init() পাাংনগট রক কপরযগি মা ডডায যান কযায াঅপরগ যান পরফ াঅয এজনয register_post_type() পাাংনপরক এয যাযাগভটায গদপরয় np_init() পাাংপরনয ডবতপরয মি কপরযগি এটা মগদ না কযতাভ তাপরর ldquoHeaders already sentrdquo ডভপরজ ডদখাত এাআ ডভপরজগটয াপরথ াপরনপরকাআ গযগচত াঅা কগয register_post_type() পাাংন গদপরয় াঅভযা াআপরভজ মি এফাং ভযাপরনজ কযফ ভরত াঅভযা একগট নতন custom post type ডমাগ কপরযগি np_images নাভ গদপরয় নতন custom post type ডক ডগটাং বযার গপরপরফ াঅযগপরভনট া কপরযগি $args ডবগযপরয়ফরগট ট ডরপরবর ডভন ততগয কপরয াঅপরগাআ ডদপরখগি পলাগগনগট এগকটপরবট কযপরর াঅভযা গনপরচয ভত ডদখপরত াফ-

এফায গিে এফাং সটাাআরীট ডক মি কযফ- add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

এফায রক কযা পাাংনগপররা গডপরিয়ায কগয- function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__) array( jquery ))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

62

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

উপরযয ডকাডগপররা নতন কপরয ফিডনা কযায গকি ডনাআ াঅপরগাআ wp_enqueue_style() এফাং wp_enqueue_script() মপপরকড ফরা পরয়পরি নতন াঅপরযকগট পাাআর ততগয করন একাআ গডপরযকটগযপরত scriptjs এফাং গনপরচয ডকাডটক গদন- jQuery(document)ready(function($)

$(slider)nivoSlider()

)

াআপরভজপরক গযাাআজ করন- add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

াঅভযা এাআ পলাগগনগটপরক উাআপরজট গপরপরফও ফযফায কযফ ডগট পরয ডদখফ াঅপরযকগট গজগন মগদ গথপরভ না ডদয়া থাপরক ডজনয থামবপরনাআর াপরাটড গদপরয় গদন- add_theme_support( post-thumbnails )

এফায ওয়াডডপরেপরয কাপরযনট ডাসট কপরয়যী কযায ডকাড াঅয $result ডবগযপরয়ফপরর ডমফ ltdivgt টযাগ ফযফায কযা পরয়পরি তা jQuery Plugin গট একসিাকট কপরয indexhtml ডজগটয ডভাআন সলাাআডায ডকাডগট ডদখন একাআ াঅপরি রধ ডখানকায ltdivgt টযাগ গপররাপরক কগ কপরয এাআ পলাগগপরন ফযফায কযা পরয়পরি এফায টডপরকাড গদন- add_shortcode(np-shortcode np_function)

এাআ টডপরকাড গএাআচগ পাাংনপরক রক কযপরফ এফাং এয ভধয ডথপরক সলাাআডপরায কনপরটনট ডক গযটানড কযপরফ াঅভাপরদয টডপরকাড পরচছ [np-shortcode] াঅভযা পলাগগপরন মাাআ এফাং একগট িগফ মি কগয গপচাযড াআপরভজ গপরপরফ গনপরচ ডদখন-

63

াঅগভ াঅপরযকগট ডজ ততগয কপরযগি ডমখাপরন টডপরকাড গদপরয়গি

াঅউটট ডজ ডদগখ এফায-

64

পরয় ডগর াঅভাপরদয সলাাআডায পলাগগন পরযা ডকাডগট গনপরচ গদরাভ- ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

65

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

66

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

এফায াঅগন মগদ উাআপরজট গপরপরফ ফযফায কযপরত চান তাপরর গনপরচয ডকাডটক গদন- class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

67

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

echo $after_widget

াঅপরযা রগট কাজ কযপরত পরফ াঅনাপরক এক াআপরভজ াাআজ উাআপরজট এয জনয গঠক কপরয গদপরত পরফ- add_image_size(np_widget 180 100 true)

াঅপরযকগট র উাআপরজট এযাকন রক ডমাগ কযা add_action(widgets_init np_widgets_init)

উাআপরজট পরযা ডকাড াঅফায গদরাভ- ltphp

Plugin Name Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Ciprian Turcu

Version 10

68

class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

69

echo $after_widget

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

70

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(widgets_init np_widgets_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

71

পলাগগন গনপরয় এত ডিাট গযপরয ডরখা মভফ নয় এজনযাআ ভপরন য় পলাগগন গনপরয় ডকউ ডরপরখন না কাযন এখাপরন এত গফলয় াঅপরি মা াঅপররাচনা কযপরত ডগপরর ৫০০ ডজ ায পরয় মাপরফ ডফাোয সগফধাপরথড াঅগভ মথামভফ উদাযন গদপরয় ডফাোপরনায ডচষটা কপরযগি াঅগভ এখাপরন টাপরগডট কপরযগি মাযা টকটাক জাপরন পলাগগন মপপরকড এডবানস ডরপরবপররয নয় কাযন তাযা জাপরনন াঅভায উপরেশয গির মাযা জানপরত চায় তাপরদযপরক জানাপরনা এখাপরন ডমফ গফলয় াঅপররাচনা কযা পরয়পরি তা ডভাটাভগট ভাপরনয একগট পলাগগন ফানাপরনায জনয মপরথষট তপরফ ভাপরনাননয়পরনয জনয াঅনাপরক গনপরজাআ খাপরজ গনপরত পরফ াঅনায জনয ডকানটা বার পরফ াঅগভ রধ গদক গনপরদডনা গদরাভ ভাতর এাআ ফাআগট রধভাতর ওয়াডডপরে রেপরয জনয ডরখা াপরনক বর ভরাগনত থাকপরত াপরয াঅনাযা কষভাসনদয দগষটপরত ডদখপরফন াঅগভ ডচষটা কপরযগি মতটা জ কপরয ডরখা মায় াপরনক ভয় ডদখা মায় ডম খফ ডিাট খাপরটা গফলয় গনপরয় াপরনপরকাআ নক কপরযন এটা গতয রাঃখজনক াঅনাযা গগপরর একট খাজপররাআ ভাধান াপরফন াঅপরগ গনপরজ ডচষটা করন তায পরয ানযপরক ভাধাপরনয জনয গজজঞাা করন াঅভায জনয ডদায়া কযপরফন বাপররা রাগপরর জানাপরফন খাযা রাগপররও জানাপরফন তাপররাআ াঅভায গযশরভ সবাথডক পরফ ভতাভত জাগনপরয় াঅভাপরক ডভাআর কযপরত াপরযন litonice09gmailcom |

72

Page 3: Wordpress Plugin Development

4

াঅভায মপপরকড

াঅভায নাভ ডভাাঃ গরটন াঅপরযগপন (httpswwwfacebookcomlitonice09) যাজাী গফশবগফদযারয় ডথপরক াআনপযপরভন এনড কগভউগনপরকন াআগিগনয়াগযাং গফবাপরগ ড়াপরানা কযগি ানাড ডল এখন ভাসটাড কযগি াঅভায ফযগিগত বলগ ldquoগরটন- ানরাাআনকভrdquo ( wwwliton-

onlinecom) এ টাাআভ ডদাআ মতটা াগয াপরথ টকটাক গিরযাগনসাং কগয াঅভাপরদয গতন দপরেয রে ldquoফযানrdquo(httpburhanbdcom) - এ কাজ কগয এবাপরফাআ ভয় চপরর মায় াঅভায াঅভায পলাগগন খফ ডফগ ডডপরবর কযা য়গন তফও জাগভর বাাআ াঅভাপরক এাআ ফাআগট ডরখায কাজ গদপরয়পরিন াঅগভ াঅভায সবলপ জঞাপরন ডচষটা কযফ াঅভায ডযাটা ডদফায জাগভর-

ldquo(httpswwwfacebookcomzamilhossainsezan32) rdquo বাাআ াঅভাপরক ওয়াডডপরে রে এর- (ldquohttpswwwfacebookcomgroupsWordpress2Smashingrdquo) কষ ডথপরক এাআ ফাআগট ডরখায কাজ াপরনক গদন াঅপরগাআ গদপরয়গিপররন গকনত ভয় কপরয উঠপরত াযগিরাভ না গত ভাপরাআ াঅভায ফাআগট সতানতয কযায কথা গির গকনত াগযগন এাআ ফাআগটয সবফডসবতব াঅভায ডকউ এাআ ফাআগট গফগি কযা ফা গনপরজয নাপরভ চারাপরনায ডচষটা কযপরফন না তপরফ মত ডফগ াপরযন ফায াপরথ ডয়ায কযপরফন াঅভযা রধ ওপরয়পরফয জগপরত ডাটা এগনি একসাটড ফা গিকায পরয় থাকপরত চাাআনা ওপরয়পরফয এডবানস ডরপরবপরর াঅনাপরক সবাগতভ

ডভাাঃ গরটন াঅপরযগপন

5

গচতর াধযায়- একাঃ চনা ডজ নমবয ৭ র ৭ ৮ াধযায়- রাআাঃ পলাগগপরনয গঠন ৯ র র ৯ খ র হ ১১ র র ৭ র ১৩ র র র হ ১৪ হ র ১৫ ১৮ র ১৮ URL ১৯ াধযায়- গতনাঃ রক ( Hook) ২২ র ( Filter Hooks) ২২ এ (Action Hooks) ২৭ াধযায়- চাযাঃ পলাগগন ডকাগডাং সটযানডাডড এ এ ৩২ uninstallphp ৩৪ Uninstall Hook ৩৫ ৩৬ এ ৩৭ এ এ ৩৭ াধযায়- াাচাঃ ওয়াডডপরেপরয াপরথ াআগনটপরেন এ র ৩৮ ৩৮ র র র (াফ ডভন) ৪৩

6

র র ৪৫ াধযায়- িয়াঃ পলাগগন পাাংন ৫৬ __() ৫৬ _e() ৫৬ esc_attr__() ৫৮ াধযায়- াতাঃ পলাগগন গগকউগযগট র ৬১ র র ৬১ র র ৬১ র র ৬২ Nonces ৬৩ Nonce URL র ৬৪ Nonce Form র ৬৫ ৭৩ াধযায়- াঅটাঃ ডরাকারাাআপরজন এফাং Set t i ngs API ৭৬ API ৭৬ Settings API ৭৭ ৮১ CSSJS র ৯১ ৯৩ াধযায়- নয়াঃ পলাগগন উদাযন র র র র ১০০ র ১০১

7

াধযায়- একাঃ চনা গকি কথা ওয়াডডপরেপরয েগত যপরয়পরি াপরনক বারফাা ওয়াডডপরে মপপরকড নতন কপরয গকি ফরায ডনাআ ডমপরকান ওয়াডডপরে ফযফাযকাযীয জনয পলাগগন একগট গরতবনড গফলয় পলাগগন াঅপরর গক ওয়াডডপরে পলাগগন াঅভাপরদযপরক াঅভাপরদয বলগ ওপরয়ফাাআপরটয পাাংনাগরগট ফগি কযপরত াাময কপরয াভানয াথফা ডকান যকভ ডোোগভাং জঞান িাড়াাআ ওয়াডডপরে পলাগগপরনয গনগদডষট ডকান াঅকায এফাং াঅকগত ডনাআ একগট পলাগগন ডমপরকান গকিাআ কযপরত াপরয ওয়াডডপরে বলগ ওপরয়ফাাআপরটয াঅভায পলাগগপরনয াংখযা খফ কভ গকি াফগর কযা য়গন াঅগভ ওয়াডডপরেপরয গকি গরগভপরটন গনপরয় কাজ কযগি এফাং এগপররা গনপরয়াআ ভরত কাজ কযগি গকবাপরফ াঅপরযা একসপরটনড কযা মায় মাাআ ডাক াঅগভ এখনও গকষানগফ গপরপরফ াঅগি

ফাআগট কাপরদয জনয াঅগন মগদ এাআ ফাআগট ডাউনপররাড কপরয থাপরকন তাপরর াঅগভ ধপরযাআ গনগচছ াঅগন একজন ওপরয়ফ ডডপরবরায এফাং াপরথ গকি ডোোগভাং জঞান াঅপরি পলাগগন ডডপরবরপরভপরনটয উপরেশয পরচছ াঅগন পলাগগন ডডপরবর কযপরফন াঅনায িাপরয়নট াঅগন ডমবাপরফ চান গঠক ডবাপরফ ডমপরকান ধযপরনয ওপরয়ফাাআট ততযীপরত ওয়াডডপরেপরয ফযগতিভ পলাটপভড াআপরতাভপরধযাআ েভাগিত এাআ ফাআগট গিরযানসাযপরদয জপরনযও মাযা তাপরদয গির ডাটডপরপাগরও এফাং ওয়াডডপরেপরয পাাংনাগরগট ফপরে কাজ কপরযন

ডোয়াজনীয় টর

Notepad ++( httpnotepad-plus-plusorgdownload )Dreamwaver

Mozilla Firefox (httpwwwmozillaorgen-USfirefoxnew) Google Crome

Firebug Extension (Search For both Firefox Chrome as you want)

Web Developer Extension (Search For both Firefox Chrome as you want)

Xampp with Wordpress Installation

FTP Client Example- Filezilla ওয়াডডপরে গকবাপরফ াআনসটর কযপরত য় তা নতন কপরয ডদখাপরনায গকি ডনাআ তফও মাযা নতন তাযা এখাপরন ডদখন ( httpgooglWJTp9 ) গকবাপরফ পলাগগন াআনসটর কযপরত য় তা এখাপরন ডদখন ( httpgooglpE8AD)

8

াধযায়- রাআাঃ পলাগগপরনয গঠন পলাগগন গক ওয়াডডপরেপরয পলাগগন র একগট PHP গিে মা ওয়াডডপরেপরয গনজসব পাাংনাগরগট গযফতডন কপরয াথফা গযফধডন কপরয ভরতাঃ একগট গপচায ফা গকি গপচায াঅভাপরদয াাআপরট ডমাগ কযায জনয াঅভযা পলাগগন াআনসটর ডদাআ একগট পলাগগপরনয কাপরজয ডকান গরগভট ডনাআ ড ডকান কাজগপররা কযপরত াযপরফ কাযন পলাগগন ডাউনপররাপরডয ডকান গনগদডষট াাআজ ডনাআ পলাগগন ওয়াডডপরেপরয াপরথ গকবাপরফ কাজ কপরয ওয়াডডপরেপর াপরনক গপচায াঅপরি গফগবনন API(Application Programming Interface)- এয জনয ডমগপররা গফগবননবাপরফ কাজ কপরয ওয়াডডপরেপর গনপরচ ডগপররা াঅপররাচনা কযা রাঃ

পলাগগনাঃ একপরট রক( hooks) ডমগপররা ওয়াডডপরেপরয গনগদডষট পাাংপরন এপরকস কপরয এগপররাপরক এনাফর কপরয

উাআপরজটাঃ পলাগগন গদপরয় উাআপরজট ততগয এফাং গযচারনা কযা টডপরকাডাঃ াঅনায পলাগগনপরক াপরাটড কযায জনয টডপরকাড ডমাগ কযা টডপরকাড র

একগট রক ডমটা একগট PHP পাাংনপরক এনাফর কপরয এফাং াঅনায ডাসট ফা ডজ এ েদডন কপরয াঅগভ পরয এ গফলপরয় গফসতাগযত ফরফ

HTTP এগট াঅনায পলাগগপরন HTTP গযপরকাপরয়সট াঠায় এাআ API কনপরটনট ডথপরক external URL াথফা Submit কযা কনপরটনট ডথপরক URL retrieve কপরয

ডগটাংাঃ াঅনায পলাগগপরনয ডগটাং াআনাটড াথফা ডগটাং ডকন ডগটাং API এয োথগভক সগফধা র গগকউগযগট কর ডগটাং ডাটা গযিায( গযপরাগধত) থাপরক সতযাাং মখন পলাগগন ডগটাং ডব কযায ভয় Cross Site Request Forgery (CSRF) এফাং Cross Site Scripting(XSS) গনপরয় গচনতায গকি ডনাআ

Options পলাগগপরনয কর ান জভা যাপরখ এফাং retrieve কপরয এগট নতন ান ততযী কপরয াঅপরগয ান াঅপরডট কপরয ান গডগরট কপরয এফাং ডমপরকান ান retrieve কপরয

Dashboard Widgets ডযাপরফাডড উাআপরজট ততগয কপরয ওয়াডডপরে ডযাপরফাপরডড automatically উাআপরজট েদডন এফাং কর কাসটভাাআপরজন গপচায ডমভন- গভগনভাাআজ ডরাগ ডর এফাং গিন ান

Rewrite াঅনায পলাগগপরনয জনয কাসটভ রর ততগয কযা এাআ API াঅনায static-end-point(custom-page) structure tags(postname) এফাং াগতগযি গপড গরঙক (feedjson)

9

Transients গকি াসথায়ী ান (cached data) ততগয কপরয াঅনায পলাগগপরনয জনয এাআ API গট Options API এয ানর

Database ওয়াডডপরেপরয ডাটাপরফপর েপরফ কপরয এগট াঅনায পলাগগপরনয ডাটাপরফপরজ গনপরচয কাজগপররা মপাদন কপরয- creatingupdatingdeleting and retrieving

কখন াঅনায পলাগগন ডরাড য় পলাগগন ততগয কযপরত ডগপরর এাআ ডফগক কাজগপররা াঅভাপরদয াফশযাআ জানপরত পরফ াঅভযা ডতা পলাগগন াআনসটর গদপরয়াআ খারা একফায ডবপরফও ডদগখনা এগট াঅপরর গকবাপরফ কখন ডরাড পরফ াাআপরটয উয কতটা াআপরপকট ডপরপরফ াঅগভ গনপরচ একগট ডায়াোভ গদরাভ াঅা কগয াঅয গকি ফরপরত পরফনা াঅভাপরক

Wordpress URL Called

wp-config Loaded

Functions Loaded

Plugins Loaded

Pluggables Loaded

Translations Loaded

Theme Loaded

Page Content

10

ওয়াডডপরে পলাগগন ডডপরবর কযায ৭গট কাযন

াঅগভ াআনটাযপরনট এ ldquoHow to Write a Plugin (httpgooglrCUY) rdquo গদপরয় াপরনক াচড কপরযগি াপরনক াঅগটডপরকর াঅপরি গকনত ভন ভত কপরয়কগট িাড়া ফরায ভত াাআগন ওয়াডডপরেপরয ldquoডকাপরডকসrdquo াঅপররাআ ওয়াডডপরে মপপরকড জানায জনয মপরথষট এটা পরয ফপরেগি ৭ গট কাযন ডকন াঅগন ওয়াডডপরে পলাগগন ফানাপরফনাঃ ১) াঅগন একগট পলাগগন মপপরকড জাপরনন গকনত এয ফাসতফায়ন িনদ কযপরিন না াঅভযা ডফগয বাগ ভয়াআ এাআ ভোয় গড় ২- ৩ গদন ধপরয একটা পলাগগন ডখাাজায জনয ফযয় কগয গকনত ভন ভত পলাগগন খাপরজ াাআ না গকনত এাআ ভয় এ একটা পলাগগন গরখা পরয় ডমত ২) াঅগন াঅপরগয ডকান পলাগগন ভগডপাাআ কযপরফন াপরনক ভয়াআ াঅনায িনদ ভত পলাগগন ডপররন গকনত াভানয গকি ডচি কযপররাআ াঅনায কাপরজ রাগপরফ এপরকষপরতর াঅনাপরক ডাআ পলাগগনগট ভগডপাাআ কযপরত জানপরত পরফ াপরনক ভয় পলাগগপরনয ডরখক ফযসত থাকপরত াপরযন এফাং াঅপরডট কযপরত াপরযন না এপরকষপরতর াঅগন ডাআ পলাগগনগট Aut hor Name ডচি কপরয গনপরত াপরযন তপরফ GPL Compatible license (httpgooglBOzm ) গঠক ডযপরখ াঅগন নযায় াগযগজনার পলাগগপরনয নতন বাডন ডফয কযপরত াপরযন ৩) ডকান পলাগগনপরক একসপরটনড কযপরত চান াপরনক ভয় একগট পলাগগন বার কাজ কপরয াাআপরটয জনয গকনত াঅগন াঅপরযা গকি গপচায ডমাগ কযপরত াপরযন ডমভন AJAX JQuery Effects াথফা াঅপরযা গকি রক রাগাপরত চান ডমন এগট ানয পলাগগপরনয াপরথ াভিে থাপরক তপরফ াফশযাআ GPL Compatible (httpgooglBOzm ) এয াপরথ াভিে পরত পরফ ৪) াঅগন মগদ াঅনায গথপরভয ফনপরমাগয ডকাড কযপরত চান এগট ভরত কাসটভ গথভ ডকাপরডয কথা ফরা পরয়পরি ডকান এগকসগসটাং গথপরভয ৫) াঅগন মগদ গথভ গডজাাআনায ন ৬) াঅগন মগদ টাকা উাজডন কযপরত চান পলাগগন ততযী কপরয ৭) াঅগন মগদ াঅনায াাআপরটয াআনকাগভাং গরঙক গফলড কযপরত চান

পলাগগপরনয ডপালডায সটরাকচায ডকভন পরফ কর ওয়াডডপরে পলাগগন wp-contentplugins গডপরযকটগযপরত াআনসটর য় গকি পলাগগপরন রধ একগট PHP পাাআর থাপরক গকনত াঅগভ ফ ভয় একগট ডপালডায কপরয পলাগগন ততগয কযায যাভড ডদফ পলাগগপরনয সটরাকচায পরত পরফ এযকভাঃ

11

Plugin Folder Name( াঅনায পলাগগন ডপালডায নাভ ডকান ডসপ ফা ডসপার কযাপরযকটায থাকা চরপরফ না) Main php file

js ডপালডায( জাবাগিে ফা Jquery file এয জনয) css ডপালডায( সটাাআরগট পাাআপররয জনয) phpinclude ডপালডায ( ানয php পাাআর)

একগট উদাযন ডদাআ পাাআপররয সটরাকচায ডকভন পরফ- litons-first-plugin

indexphp

js

css

includes

images

uninstallphp

পলাগগন ডডায

পলাগগপরনয ডডায িাড়া ডাআ পাাআর ডপালডাযগটপরক ওয়াডডপরে গচনপরত াযপরফ না পলাগগন ডডাযাআ পরচছ একভাতর েপরয়াজনীয় পাাংন মা ওয়াডডপরে দাফী কপরয ভাপরন াঅনাপরক পলাগগন ডরখায ররপরত PHP comment বলপরকয ভপরধয গকি াআনপযপরভন গদপরত পরফ মা এপরকফাপরয পাাআপররয েথপরভ াফসথান কপরয এখাপরন গকি কথা ফপরর যাগখ াঅগন মগদ াাআপরটয এাআও টাপরগডট কপরয পলাগগন ফানান তাপরর ডকান িপরভাআ াঅনায নাভ গদপরয় পলাগগন ফানাপরফন না ডমভনাঃ Litons Plugin এপরত এাআও ডত খাযা েবাফ পরড় গনপরচ উদাযন ডদয়া রাঃ ltphp

Plugin Name Litons Plugin পলাগগপরনয নাভ

Plugin URI httpliton-onlinecomplugin পলাগগপরনয URI Description This is a demo description পলাগগপরনয গফফযন Version 10 পলাগগপরনয বাডন Author Md Liton Arefin পলাগগন ডরখক

Author URI httpliton-onlinecom ডরখপরকয URI

gt

12

উপরযয িগফপরত ডদখন ওয়াডডপরেপরয ডযাপরফাপরডড াঅগভ পলাগগন ডডাপরয মা মা তথয গদপরয়গিরাভ তাাআ ডদখাপরচছ এটাাআ াঅনায োথগভক কাজ াঅগন রাাআপরনসও ডমাগ কযপরত াপরযন এবাপরফ- lt php

Copyright YEAR PLUGIN_AUTHOR_NAME (email PLUGIN AUTHOR

EMAIL)

This program is free software you can redistribute it andor modify

it under the terms of the GNU General Public License as published by

the Free Software Foundation either version 2 of the License or

(at your option) any later version

This program is distributed in the hope that it will be useful

but WITHOUT ANY WARRANTY without even the implied warranty of

MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE See the

GNU General Public License for more details

You should have received a copy of the GNU General Public License

along with this program if not write to the Free Software

Foundation Inc 51 Franklin St Fifth Floor Boston MA 02110-1301 USA

gt

পলাগগন াথ

একগট কভন কাজ র াঅনায পলাগগপরনয পাাআর এফাং ডপালডাযগপররাপরক ওয়াডডপরে াআনসটপররন গডপরযকটগযপরত ডযপায কযা াঅগন এাআ কাজগট রাআ বাপরফ কযপরত াপরযন- ডরাকার াবডায াথ াথফা সটানডাডড URL

13

ডরাকার াবডায াথাঃ ডরাকার াবডায াথ াঅনায কগমপউটাপরযয গডপরযকটগযয ভতাআ ডরাকার াবডায াথ াধাযনত ফযফায কযা য় মখন াঅনাপরক গনপরজয ডরাকার াবডাপরযয গকি পাাআর i ncl ude কযপরত য় একগট কভন েশন র- পলাগগন পাাআপররয াথ ডদখাপরনায গঠক িগত ডকানগট াঅনায পলাগগপরনয ডরাকার াথ ডদখাপরনায জনয াঅনাপরক plugin_dir_path() পাাংন ফযফায কযপরত পরফ plugin_dir_path() পাাংন পলাগগন গডপরযকটগযয গপগজকযার াথ একসিযাকট কপরয পাাআপররয নাভ ডথপরক ltphp plugin_dir_path($file) gt

Parameters

$file-(string)(required)- পলাগগন পাাআপররয নাভ এখন ডদগখ গকবাপরফ পলাগগন ডপালডাপরযয নাভ ডফয কযপরত য়-

ltphp

echo plugin_dir_path(__FILE__)

gt

এখাপরন গএাআচগ কনসটযানট __FILE__ ডক plugin_dir_path পাাংপরনয ভধয গদপরয় া কযারাভ এাআ পাাংন াবডায াথ ডদখাপরফ পলাগগন গডপরযকটগযয public_htmlwp-contentpluginsliton-plugin

একাআবাপরফ াঅগন মগদ plugin_dir_path() এাআ পাাংনপরক মগদ ডকান াফ- গডপরযকটগযয পাাআরপরক ডযপায কগয তাপরর গনপরচয ভত কপরয ডযপায কযপরত পরফ ltphp

echo plugin_dir_path(__FILE__)jsscriptsjs

gt

এাআ ডকাডগট গনপরচয ভত াথ ডদখাপরফ- public_htmlwp-contentpluginsliton-pluginjsscriptsjs

URL াথাঃ াঅপরযা গকি পাাংন াঅপরি ডমগপররা গদপরয় ওয়াডডপরেপরয URL ডদখাপরনা মায়

plugins_url() - পলাগগন গডপরযকটগযয পরযা URL ( ডমভনাঃ httpliton-onlinecomwp-contentplugins)

includes_url() - পরযা গডপরযকটগযয URL include কপরয ( ডমভন httpliton-onlinecomwp-includes)

14

content_url() - পরযা কপরনটনট গডপরযকটগয URL ( ডমভনাঃ httpliton-onlinecomwp-content )

admin_url() - পরযা এডগভন URL

( ডমভনাঃ httpliton-onlinecomwp-admin ) site_url() - কাপরযনট াাআট এয পরযা URL

( ডমভনাঃ httpliton-onlinecom ) home_url() - কাপরযনট াাআট এয পরযা ডাভ URL

( ডমভনাঃ httpliton-onlinecom )

াথ গনপরয় াঅপরযা গফসতাগযত ডদখপরত াপরযনাঃ httpcodexwordpressorgDetermining_Plugin_and_Content_Directories

httpcodexwordpressorgFunction_Referenceplugins_url

httpcodexwordpressorgFunction_Referenceplugin_dir_url

httpcodexwordpressorgFunction_Referenceplugin_dir_path

plugins_url() পাাংন াঅনায উততভ ফনধ পরত াপরয মখন াঅগন পলাগগন ডডপরবর কযপরফন

ltphp

plugins_url($path $plugin)

gt

Parameters

$path-(string)(optional)- গযপররগটব াথ URL $plugin- (string)(optional)- পলাগগন পাাআর মা াঅগন (__FILE__) এয ভাধযপরভ া কযপরত চান ডমভনাঃ ltphp

echo ltimg src=rdquoplugins_url(imagesiconpng__FILE)rdquogt

gt

এয পরযা URL পরফ ltimg src=rdquohttpliton-onlinecomwp-contentpluginsliton-pluginimagesiconpngrdquo gt

15

াধযায়- গতনাঃ রক

ওয়াডডপরে রক( Hook) গক ওয়াডডপরেপর রক ফরপরত াধাযনত add_action() াথফা add_filter() পাাংন ডক ডফাোয় এাআ রগট পাাংনপরক remove_action() াথফা remove_filter() গদপরয় ভপরি ডপরা মায় মগদও াপরনপরকয কাপরি রপরনগি ডম এাআ রগট পাাংপরনয ভপরধয ডকান াথডকয ডনাআ গকনত াঅপরর তা নয় গফযাট াথডকয াঅপরি এ রগট পাাংপরনয ভপরধয াঅগভ ভরত এাআ রগট পাাংন গদপরয়াআ গকি পলাগগন ফাগনপরয় ডদখাফ কাযন খফাআ গরতবিড এাআ রগট পাাংন মপপরকড বাপররাবাপরফ জানা

গপলটায রক (Filter Hooks)

গপলটায রক পাাংপরনয কাজ পরচছ কনপরটনটপরক ভগডপাাআ কযা গপলটায রক গদপরয় টাাআপরটর কনপরটনট াআতযাগদ ভগডপাাআ কযা মায় ডমভন টাাআপরটর এ ডকান টযাগ না থাকা গবগজটয কপরভপরনট ltgt t ag span t ag াআতযাগদ গদপরয় াাআপরটয ডরাঅউপরটয গযফতডন কপরয গদপরত াপরয ভাপরন ডকান কপরভপরনট মগদ এযকভ ht ml ডকাড াড কযা থাপরক তাপরর ডদখপরত খাযা রাগপরফ এগপররা াফশয এখন ওয়াডডপরে াপরটাপরভগটকযাগর কপরয গকনত এাআ কাজগপররা ভরত গপলটায রক গদপরয় কযা পরয় থাপরক গপলটায রক রাআ ধযপরনয add_filter() এফাং remove_filter() পাাংন খফ গরতবনড একগট কথা গপলটায রকপরক গযটানড কযপরত য় ltphp

add_filter($tag $function $priority $accepted_args)

gt

$tag- ডম রকপরক াঅগন ডযগজসটায কযপরত চান $function- ডম পাাংনপরক াঅগন াঅউটপরট গপলটায কপরয ডদখাপরত চান $priority- একগট াআগনটজায াংখযা মা াঅনায গপলটাযপরক িভানাপরয াজাপরফ মগদ ডকান

াংখযা না ডদয়া থাপরক তাপরর এগট ১০ গডপলট গপরপরফ থাপরক $ accepted_args- ডম াংখযক যাযাগভটায একগট পাাংন েি কযপরত াপরয গডপলট গপরপরফ

১ থাপরক াঅনায পাাংপরন ানততাঃ একগট যাযাগভটায থাকপরত পরফ মা গযটানড কযপরফ apply_filter($tag$value)

$tag- গপলটায রপরকয নাভ $value- রপরকয ভধয গদপরয় ডম যাযাগভটায া কযাপরফন

াঅভযা এখন একগট উদাযি ডদখফ ডমখাপরন টাাআপরটর এয েগতটা ওয়াডডপরক ফড় াপরতয াকষপরয রানতয কযফ গনপরচ একগট পলাগগন ডদখন- ltphp

Plugin Name Liton filter

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10

16

Author Md Liton Arefin

Author URI httpliton-onlinecom

add_filter(the_titleliton_modify_title)

function liton_modify_title($content)

return ucwords($content)

gt

পলাগগনগট এগকটপরবট কযায াঅপরগ ডাসট টাাআপরটর ডদখন-

এফায পলাগগনগট এগকটপরবট কযায পরয ডাসট টাাআপরটর ডদখন-

এাআ পলাগগনগট াঅভাপরদয াপরনক ভয়াআ কাপরজ রাগপরত াপরয কাযন াপরনপরকাআ াঅভযা এাআ পযভযাটগট িনদ কগয ঠাৎ কপরযাআ াঅভযা ডাসট টাাআপরটর গরখায ভয় ফড় াপরতয াকষয কযপরত বপরর ডমপরত াগয াঅভযা এাআ কাজগট খফ ডিাট একগট পলাগগন গদপরয় াপরটাপরভগটকবাপরফ কযপরত াগয

17

এখন াঅগভ গকি াগতগযি গফলয় গনপরয় াঅপররাচনা কযফ ডমগপররা ডভপরন চরপরর বগফষযপরতয জনয বার পরফ াঅগভ একগট পাাংন গরপরখগি- add_filter(the_titleliton_modify_title)

function liton_modify_title($content)

return ucwords($content)

একট গফসতাগযত ফরপরর াঅভযা the_title এয ভধয গদপরয় মা া কযফ তা গপলটায কযপরফ এখাপরন াঅভযা ucwords the_title এয ভধয গদপরয় া কপরযগি এফায াঅপরযা টড পভড ডদগখ add_filter(the_title ucwords)

তায ভাপরন পরযা পলাগগনগট পরফ এযকভ- ltphp

Plugin Name Liton filter

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_filter(the_title ucwords)

gt

গক খফ জ রাগপরি এখাপরন ফপরর যাগখ ডম ucwords এগট গযগব কযপরফ the_title মা া কযপরি এফাং াপরটাপরভগটকযাগর গযটানড কযপরফ the_title এ সতযাাং এখাপরন গযটানড এয দযকায ডনাআ এফায াঅগন মগদ গএাআচগ বাডন ৫৩ ফযফায কপরযন তাপরর গনপরচয ভত কপরয anonymous function ফযফায কযপরফন াঅনাযা জাবাগিে ডজকপরয়গয‟য াপরথ গযগচত এগট াপরনকটাাআ এযকভ ltphp

Plugin Name Liton filter

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_filter(the_title function($content)

return ucwords($content)

)

gt

বার কপরয ডদখন ডতা াথডকযটা ডকাথায় গনপরজ গনপরজ কাজ কযপরর এবাপরফ কযপরফন াফশযাআ এগট একট এডবানস ডরপরফপররয কাজ মগদও পলাগগন ফানাপরনায ডকষপরতর এগট এখপরনা াঅদড নয় কাযন াপরনপরকযাআ গএাআচগ বাডন এখপরনা ৪ এাআ ডথপরক ডগপরি সতযাাং এাআ িগতগট একানতাআ গনপরজয জনয

18

এযাকন রক (Action Hooks) Action Hooks পরচছ ড ভসত রক ডমগপররা ওয়াডডপরেপরয রাাআপ াাআপরকর গনপরয় কাজ কপরয Action Hooks রাআ ধযপরনয add_action() remove_action() এাআ রকগপররা কাজ কপরয মখন ডকান ডাসট ডব কযা য় ডাসট াফগর কযা য় কপরভনট কযা য় ডকান বলগ ডাপরসট াথফা ওপরয়ফাাআপরট ডডাযপটায ডজনাপরযট য় এগপররা েগতগট একগট একগট কপরয Actions মখন াআউজায তায এডগভগনপরসটরটয ডভনপরত েপরফ কপরয এগপররা ফাআ Action Hooks এখাপরন াঅভযা কনপরটনটপরক গপলটায কযগিনা াঅভযা ওয়াডডপরেপরয গনগদডষট পাাংনগপররাপরক রক কপরয কাজ কযগি াঅভযা একগট উদাযন ডদগখ- ltphp

Plugin Name Liton Action

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(wp_footer function($content)

echo Hello This is Liton Arefin

)

gt

াঅনাপরদয সগফধাপরথড ডফাোয জনয গনপরচয ভত কপরয গরখন- ltphp

Plugin Name Liton Action

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(wp_footer liton_footer_action)

function liton_footer_action($content)

echo Hello This is Liton Arefin

gt

াঅভযা খফ ডিাট একগট উদাযন গদপরয় ডদখরাভ ডম action রক গকবাপরফ কাজ কপরয গনপরচ ডদগখ াাআপরট ডকভন ডদখায়-

19

উপরযয িগফপরত ডদখন াঅগভ Hello This is Liton Arefin এাআ রাাআনগট গেনট কপরযগি এফাং তা পটাপরযয ফাভ াপর এপরকফাপরয গনপরচ ডদখাপরচছ এফায ডাড ডকাড এ ডদগখ াঅপররাআ এয গজন টা ডকাথায় াঅপরি

উপরয ডদখন পটাপরযয গঠক গনপরচাআ রাাআনগট ডদখাপরচছ এফায াঅপরযকগট ফাসতফ এফাং খফাআ গরতবনড উদাযন ডদগখ এাআ পলাগগনগটয কাজ পরফ মখনাআ ডকান কপরভনট ডাসট পরফ তখনাআ এডগভনপরক ডভাআর াঠাপরফ ডম নতন কপরভনট ডাসট পরয়পরি মগদও ওয়াডডপরে এাআ কাজগট কপরয থাপরক াঅভযা এাআ কাজগট ভযানয়ারী কপরয ডদগখ ltphp

Plugin Name Liton Comments Mail

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(comment_post function()

$email= get_bloginfo(admin_email)

wp_mail(

$email

New Comment Posted

A new comment has been left on your blog

)

)

gt

এখাপরন comment_post নাপরভয রপরক একগট ডবগযপরয়ফর $email ndashএ এডগভন ডভাআরপরক ডসটায কপরযগি মাপরত কপরয ডাাআনাগভক বাপরফ ড ডমপরকান াাআপরটয এডগভন ডভাআরপরক গডপরটকট কযপরত াপরয তপরফ এপরকষপরতর মগদ bloginfo(admin_email) ফযফায কযা ত তাপরর এডগভন ডভাআরপরক গডপরটকট কযত গকনত get_bloginfo(admin_email) ফযফায কযায পপরর াঅভযা াআপরভাআর বযারগটপরক গযটানড কপরয ডসটায কযগি এফাপরয ওয়াডডপরেপরয গফলটাআন ডভাআর পাাংন wp_mail(emailsubjectmessage) এয ভত কপরয গরপরখগি বার কপরয ডদখন পলাগগনগট এগকটপরবট কপরয ডদখন াঅনায াাআট মগদ ানরাাআপরন থাপরক তাপরর গনপরজাআ একগট কপরভনট কপরয ডদখন াঅনায এডগভন ডভাআপরর একগট ডভাআর চপরর ডগপরি

20

াধযায়- চাযাঃ পলাগগন ডকাগডাং সটযানডাডড

পলাগগন এগকটপরবনগডএগকটপরবন পাাংন াঅগন মখন একগট পলাগগনপরক এগকটব কপরযন তখনাআ এগকটপরবন পাাংন গিগায য় এাআ পাাংনপরক register_activation_hook() ফপরর ltphp register_activation_hook($file $function) gt

Parameters

$file- োাআভাগয পলাগগন পাাআপররয াথ

$function- ডম পাাংনগট গিগায পরফ মখন পলাগগন এগকটপরবট য় ডমভনাঃ- ltphp

register_activation_hook(__FILE__ bdquoliton_plugin_install‟)

function liton_plugin_install()

do something cool stuff

gt

াঅভযা একগট পলাগগন ফানাাআ এবাপরফ-

ltphp

Plugin Name Liton Version

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

register_activation_hook(__FILE__ liton_plugin_install)

function liton_plugin_install()

If(version_compare(get_bloginfo(version)51lt))

deactivate_plugins(basename(__FILE__))

deactivate our plugin

gt

মখন াঅভযা পলাগগন গডএগকটপরবট কগয তখন পলাগগন গডএগকটপরবন পাাংন কর য়

21

ltphp

register_deactivation_hook ($file $function) gt

-

ltphp

register_deactivation_hook (__FILE__ bdquoliton_plugin_install‟)

function liton_plugin_install()

do something

gt

াঅপরযকগট গরতবনড গফলয় র াঅনাআনসটর ওয়াডডপরে াঅনাপরক পলাগগন াঅনাআনসটর এয জনয রগট ান গদপরচছ- uninstallphp file and the uninstall hook

uninstallphp

এগট ডভাটাভগট েনপরমাগয িগত এ ডভথড ফযফায কযায জনয াঅনাপরক uninstallphp নাপরভ একগট পাাআর ততগয কযপরত পরফ াঅনায পলাগগন গডপরযকটগযপরত পাাআরগট গনপরচয ভত পরফ- ltphp

মগদ ওয়াডডপরে এগকসট কযায াপরথ াঅনাআনসটর কর কযা না য় If(defined(bdquoWP_UNINSTALL_PLUGIN‟))

exit()

delete_option(bdquoliton_plugin_options‟)

াগতগযি ান এফাং কাসটভ ডটগফর ভপরি ডপরন gt

Uninstall Hook

গিতীয় িগত র Uninstall Hook মগদ াঅগন ডকান পলাগগনপরক গডগরট কযপরত চান এফাং uninstallphp পাাআর না থাপরক তাপরর এাআ রক এগকসগকউট য়(মগদ থাপরক) ltphp

register_uninstall_hook($file$function)

gt

22

ডকাগডাং সটযানডাডড পলাগগন ফানাপরফন গকনত াঅনায ডকাড ডকভন পরফ গচনতা াঅপরত াপরয ওয়াডডপরে াঅনায জনয একগট সটযানডাডড গদপরয় গদপরয়পরি মা াঅনাপরক ওয়াডডপরেপরয জনয পলাগগন গরখপরত ডগপরর পপররা কযপরতাআ পরফ httpcodexwordpressorgWordPress_Coding_Standards

ডফগক একগট উদাযন গদরাভ গনপরচ- ltphp

Short description

Longer more detailed description

param type $varname1 Description

param type $varname2 Description

return type Description

function boj_super_function( $varname1 $varname2 )

do function stuff

gt

গএাআচগ সটানডাডড াঅভযা াপরনপরকাআ গএাআচগয টড পভড(lt gt) ফযফায কগয এটা মপিডরপর ফজডন করন কাযন াপরনক ডাগসটাং ডকামপাগনপরতাআ এটা গডপলট গপরপরফ ফনধ কপরয ডদয়া থাপরক সটযানডাডড টযাগ ফযফায করন(ltphp gt)

এগকউএর ডসটটপরভনট পলাগগন ততগযয ভয় াঅনাপরক াপরনক ভয়াআ ডাটাপরফ ডথপরক াআনপযপরভন গনপরত পরত াপরয াপরনক রাাআপরনয ডকাড গরখপরত পরত াপরয ডপরকষপরতর বার েযাকগট পরচছ এগকউএর এয কভানড গপররা ফড় াপরতয াকষপরয ডরখা ডমভন- SELECT username FROM table1 WHERE status = active

23

াধযায়- াাচাঃ ওয়াডডপরেপরয াপরথ াআগনটপরেন

ডভন এফাং াফ ডভন ততগয করন াঅভযা াপরনক পলাগগপরনাআ ডদগখ ডম একগট ডভন াঅাআপরটভ গপরপরফ াঅভাপরদয ডযাপরফাপরডড ডদখপরত াাআ এফাং ডাআ ডভনপরত গিক কযপরর ডগটাং ডজ াঅপর ডখাপরন পলাগগপরনয মাফতীয় ডগটাং গদপরয় াঅভযা পলাগগন কনগপগায কগয এফায এাআ চভৎকায কাজগট কযফ াঅভযা

ট ডরপরবর ডভন েথভ িগত পরচছ একগট ট ডরপরবর ডভন ততগয কযা ডমগট াঅভযা ডযাপরফাপরডড ডভন গরপরসট একগট নতন াঅাআপরটভ গপরপরফ ডমাগ কযফ ডভন ততগয কযায জনয াঅনাপরক add_menu_page( ) পাাংন ফযফায কযপরত পরফ ltphp

add_menu_page( page_title menu_title capability menu_slug functionicon_url

position )

gt

add_menu_page() পাাংন গনপরচয যাযাগভটাযগপররা াপরাটড কপরয page_title- াঅনায ডপরজয টাাআপরটর গক পরফ lttitlegt tag এয ভপরধয menu_title- ডযাপরফাপরডড াঅনায ডভনয নাভ capability- ফডগনমন capability রাগপরফ একগট ডভন গবউ পরত menu_slug- সলাগ নাভ মা ডভনপরক ডযপায কপরয- তপরফ এগট াআউগনক পরত পরফ function- একগট ডপরজয কনপরটনট ডদখপরত ডম পাাংন কর কযা য় icon_url- একগট কাসটভ াআপরভজ গরঙক ডভন াঅাআকন ডদখাপরনায জনয position- ডভনয গজন াডডায ডমখাপরন এটা ডদখাপরনা পরফ

এফায াঅভযা একগট ফাসতফ উদাযন ডদখফ- ltphp

Plugin Name Liton Menu

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action( admin_menu liton_menu)

function liton_menu()

24

create custom top-level menu

add_menu_page( Liton Menu Page Liton Menu Page manage_options

__FILE__ liton_menu_settings_page plugins_url( imageswp-logopng

__FILE__ ) )

gt

াঅভযা একগট ট ডরপরবর ডভন ততগয কযরাভ ডদখন ডযাপরফাপরডড ডকভন ডদখায়-

Liton Menu Page নাপরভ একগট ডভন ততগয পরয় ডগপরি এফাপরয াঅভযা াফপরভন কযফ ভাপরন Liton Menu Page এয গনপরচ গকি ডগটাং ডভন(মগদ েপরয়াজন য়) াফ ডভন ডযগজসটায কযায জনয add_submenu_page( ) পাাংন ফযফায কযা য় ltphp

add_submenu_page( parent_slug page_title menu_title capabilitymenu_slug

function )

gt

parent_slug- ডভন সলাগ মা াঅভযা াঅপরগ গডপাাআন কপরযগি menu_slug- মা ডভনপরক াফপরভনপরত ডযপায কযপরফ ফাগক পাাংনগপররা াঅপরগয ভতাআ

এফায াফপরভনয জনয গকি াগতগযি ডকাড ডমাগ কগয create submenu items

add_submenu_page( __FILE__ About My Plugin About manage_options

__FILE___about liton_menu_about_page )

add_submenu_page( __FILE__ Help with My Plugin Help

manage_options

__FILE___help liton_menu_help_page )

add_submenu_page( __FILE__ Uninstall My Plugin Uninstall

manage_options

__FILE___uninstall liton_menu_uninstall_page )

25

পরযা ডকাডগট পরফ এযকভ- ltphp

Plugin Name Liton Menu

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action( admin_menu liton_menu

)

function liton_menu()

create custom top-level menu

add_menu_page( Liton Menu Settings Page Liton Menu Page

manage_options __FILE__

liton_menu_settings_page

plugins_url( imageswp-logopng __FILE__ ) )

create submenu items

add_submenu_page( __FILE__ About My Plugin About manage_options

__FILE___about liton_menu_about_page )

add_submenu_page( __FILE__ Help with My Plugin Help

manage_options

__FILE___help liton_menu_help_page )

add_submenu_page( __FILE__ Uninstall My Plugin Uninstall

manage_options

__FILE___uninstall liton_menu_uninstall_page )

gt

গনপরচ ডদখন াফপরভনগপররা ততগয পরয় ডগপরি-

26

ডভনপরক াঅপরগয ডভনয াপরথ মি কযা এফায াঅগ গিতীয় িগতপরত মগদ াঅনায পলাগগপরনয একগট ভাতর ডজ থাপরক একগট ভাতর ডপরজাআ াঅনায কর ডগটাং পরয় মায় তাপরর এাআ িগত েন করন ডমভন ডয়াগযাং াাআটগপররায জনয রধ াঅনায াঅাআগডপযানপরপরজয াঅাআগড দযকায য় এযকভ পলাগগন এধযপরনয পলাগগপরনয জনয াঅনায াগতগযি ডভন ততগয কযায দযকায ডনাআ ফযাং এপরত কপরয াআউজায গফযি ডফাধ কযপরত াপরযন এ ধযপরনয পলাগগনগপররা ডগটাং এয াফপরভন গপরপরফ থাপরক add_options_page() এাআ পাাংন গদপরয় এফ ডভন ডযগজসটায কযা য় ltphp

add_options_page( page_title menu_title capability

menu_slug function)

gt

এফায চরন এযকভ একগট ডভন ততগয কগয- ltphp

Plugin Name Liton Sub Menu

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action( admin_menu liton_submenu)

function liton_submenu()

create a submenu under Settings

add_options_page( Liton Menu Settings Page Liton Menu Page

manage_options __FILE__

liton_menu_settings_page)

27

gt

াফপরভন ততগয পরয় ডগপরি চরন ডদগখ ডযাপরফাপরডড ডকভন ডদখায়-

এপরকফাপরয গনপরচয গদপরক ডদখন Liton Menu Page নাপরভ একগট ডভন ততগয পরয়পরি

উাআপরজট ততগয কযা উাআপরজট ততগয কযায জনয ওয়াডডপরে WP-Widget িা গদপরয় ততগয কযা য় উাআপরজট এয একগট পযভযাট ডদখন গনপরচ ltphp

class My_Widget extends WP_Widget

function My_Widget()

processes the widget

function form($instance)

displays the widget form in the admin dashboard

function update($new_instance $old_instance)

process widget options to save

function widget($args $instance)

displays the widget

gt

28

উাআপরজট ডযগজসটায কযায জনয widget_init() পাাংনপরক রক কযা য় চরন একগট উাআপরজট ততগয কগয- ltphp

Plugin Name Liton Widget

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

class Messager extends WP_Widget

function __construct()

$params=array(

description =gtDisplay message to readers

name =gt Message

)

parent__construct(Messager $params)

public function form()

public function widget()

add_action(widgets_initliton_register_message)

function liton_register_message()

register_widget(Messager)

gt

29

খফ াধাযন একগট উাআপরজট পলাগগন এগট াঅভযা াআউজাযপরদযপরক একগট ডভপরজ ডদখাপরফা াাআডফাপরয ডটাাআ কযায ডচষটা কযগি এখন পলাগগনগট এগকটপরবট কপরয ডদগখ-

াঅভাপরদয উাআপরজটগট ডদখাপরচছ এফায াঅপরযা গকি পাাংনার কাজ কগয এগট মগদ াাআডফাপরয ডরাগ কপরয ডদন তাপরর ডকান কাজ কযপরফ না কাযন াঅভযা এখপরনা গকিাআ কগযগন পভড পাাংপরন গকি কাজ কগয মা উাআপরজট টাাআপরটর গপরপরফ ডদখাপরফ- public function form($instance)

extract($instance)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title)gtgtTitle ltlabelgt

ltinput

class=widefat

id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt

value=ltphp if(isset($title)) echo esc_attr($title) gt gt

ltpgt

ltphp

াঅভযা উপরয class=widefat ফযফায কপরযগি এাআ িা ফযফায কযায কাযপরন পভড এয াআনট গপলডগট াপরনক সনদয পরয়পরি

30

মগদ এাআ িা ফযফায না কগয তাপরর ডকভন ডদখাপরফ গনপরচ ডদখন-

াঅভাপরদয উাআপরজট পলাগগনগটয ডকাড গনপরচ ডদওয়া র ltphp

Plugin Name Liton Widget

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

class Messager extends WP_Widget

function __construct()

$params=array(

description =gtDisplay message to readers

name =gt Message

)

parent__construct(Messager$params)

31

public function form($instance)

extract($instance)

print_r($instance)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title)gtgtTitle ltlabelgt

ltinput

class=widefat

id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt

value=ltphp if(isset($title)) echo esc_attr($title) gt gt

ltpgt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(description)gtgtDescription

ltlabelgt

lttextarea

class=widefat

rows=10

id=ltphp echo $this-gtget_field_id(description) gt

name=ltphp echo $this-gtget_field_name(description) gtgtltphp

if(isset($description)) echo esc_attr($description) gtlttextareagt

ltpgt

ltphp

public function widget($args$instance)

extract($args)

extract($instance)

echo $before_widget

echo $before_title$title$after_title

echo ltpgt$descriptionltpgt

echo $after_widget

add_action(widgets_initliton_register_message)

function liton_register_message()

32

register_widget(Messager)

gt

এফায াঅভযা ডযাপরফাডড ডথপরক একগট ডভপরজ ডদফ গবগজটযপরদযপরক-

াঅভযা এাআ উাআপরজটগট ডাাআনাগভক বাপরফ কপরযগি কাযন এখাপরন lth2gt lth3gt lth4gt এ ধযপরনয ডকান টযাগ াঅভযা ফযফায কগযগন াঅভযা গথভ ডডপরবর কযগিনা সতযাাং এ কাজগট াঅভাপরদয ানযবাপরফ কযা দযকায গির এগট গথভ ডডপরবরায ডদগখপরয় ডদপরফন ডম ডকভন টযাগ পরফ াাআডফাপরয াাআপরটয াাআডফাপরয ডকভন ডদখায় তা ডদখন- াঅভযা রগট গথপরভ এগট ডটসট কপরয ডদখফ েথভগট টপরয়গনট াআপররপরবন

33

এফায াঅপরযকগট গথপরভ ডদগখ-

34

াধযায়- িয়াঃ পলাগগন পাাংন

গকি ডফগক পাাংন __() পাাংন

__() পাাংনগট গএাআচগপরত াঅনায ডটকসটপরক ডযগড কপরয িানসপররন এফাং গযটানড কপরয উদাযন গপরপরফ াঅগন একগট বযারপরক __() পাাংপরনয ভপরধয ডবগযপরয়ফর গদপরয় assign করন ভপরন যাখপরফন এাআ পাাংনগট রগট াঅনডাযপরিায(_) গদপরয় গগঠত একগট নয় ltphp

$text=__(bdquoWordpress is a wonderful publishing platform‟‟liton_plugin‟)

gt

_e() পাাংন _e() পাাংনগট াঅনায ডটকসবপরট ডরাকারাাআজ কপরয এটা গএাআচগপরত echo এয ভত কাজ কপরয ডকান ডটকসটপরক গিপরন ডদখাপরনায জনয এফায একট ভজা কগয মা রপরক ডদপরখগি াঅপরগাআ- _e() পাাংনগট গদপরয় াঅপরগয পলাগগনগট এগডট কযফ ltphp

Plugin Name Liton Action

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(wp_footer liton_footer_action)

function liton_footer_action()

Output the translated text

_e( This site runs off the coolest platform ever ampmdash

WordPress

liton-plugin )

gt

35

এফায াঅউটট ডদগখ

esc_attr__() পাাংন এাআ পাাংনগট esc_attr() এয ভত এগট এাআচগটএভএর এগিগফউটপরক escape কপরয াঅভযা এফায esc_attr__() এফাং __() এাআ রগট পাাংনপরক একগট কপরয পলাগগন ততগয কযফ ltphp

Plugin Name Liton Esc Attr

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

A function that returns a link to the sites terms of service

page

function liton_terms_of_service_link()

return lta href=httpliton-onlinecomtos title=

esc_attr__( Visit the Terms of Service page boj-plugin ) gt __( Terms of

Service liton-plugin ) ltagt

Display the output of the liton_terms_of_service_link()

function

echo liton_terms_of_service_link()

gt

পলাগগনগটয াঅউটট ডদখন-

36

এযকভ াঅপরযা গকি পাাংন াঅপরি ডমগপররা াঅনাযা ডদপরখ ডনপরফন াআনটাযপরনট ডঘপরট

esc_html__() Function

esc_attr() Function

esc_url() Function

esc_js() Function

esc_html() Function

esc_attr_e() Function

esc_html_e() Function

_x() Function

_ex() Function

esc_attr_x() Function

esc_html_x() Function

_n() Function

_nx() Function

_n_noop() Function

_nx_noop() Function

Translation

bull Poedit httppoeditnet

bull GlotPress httpglotpressorg

bull Launchpad httpstranslationslaunchpadnet

bull Pootle httppootlelocamotionorg

bull KBabel httpi18nkdeorg

bull GNU Gettext httpgnuorgsoftwaregettext

GlotPress এখন ওপরয়ফ ডফড টর গপরপরফ ফযফায কযা পরচছ ওয়াডডে েপরজপরকটয ডিপরন একজন াথফা গটপরভয জনয িানসপররগটাং পটওয়যায গপরপরফ

37

াধযায়- াতাঃ পলাগগন গগকউগযগট

গগকউগযগট কগমপউটাপরযয বালায় ldquoগগকউগযগটrdquo ভাপরন বীগতকয একগট বদ ডমভন Cross Site

Scripting(XSS) Cross Site Request Forgery(CSRF) SQL Injection Privilege

Escalation Vulnerabilities এফাং Holes রফডর ডকাড একগট াবডাপরযয সযকষায জনয রভকীয কাযন পরত াপরয

পলাগগপরনয গগকউগযগট গক াঅনায পলাগগনগট ডমন গগকউয য় vulnerabilities data integrity এফাং reliability ডথপরক

াঅনায পলাগগনপরক গক গগকউগযগট ডদপরফন ওয়াডডপরে এনবায়যনপরভপরনট াঅনায পলাগগনপরক গগকউগযগট ডদয়া খফ কগঠন কাজ নয় এফাং খফ ভয় াপরকষ গফলয়ও নয় ওয়াডডপরেপরয গনজসব গকি পাাংন এপরকষপরতর াঅনাপরক খফাআ াাময কযপরফ

াআউজায াযগভন াঅভযা াপরনক পলাগগন াআনসটর কযায পরযাআ ডদপরখগি ডম মখনাআ এডগভন যাপরনর এ েপরফ কযপরত মাাআ তখন একগট এযয ডভপরজ াঅপর ডভপরজগট গনপরচয ভত-

ডরখা াঅপরি- You do not have sufficient permissionshellip এটা গনশচয়তা ডদয় ডম ডমপরকান এযাকন ীভাফি থাপরক গনগদডষট গকি যাাআট গদপরয় ওয়াডডপরেপরয একগট কভন পাাংন র current_user_can() একগট উদাযন ডদাআ-

38

ltphp

Capability

if ( current_user_can(install_plugins) )

wp_die( Insufficient permissions )

Role

if( current_user_can(editor) )

wp_die( You cannot edit this setting )

gt

খফ তাড়াতাগড় াঅগন এাআ current_user_can() পাাংন ডচক কযপরফন না কাযন এটা গনবডয কযপরফ get_currentuserinfo() এাআ পাাংপরনয উপরয াঅয এয ফযফাপরয ীভাফিতা াঅপরি এটা একগট পলাপরগফর পাাংন(pluggable function) াঅয এয ডরাপরকন পরচছ wp-

includespluggablephp মা পলাগগন এগকটব ফায য ডরাড য়

Nonces

ডকউ এগটপরক াঅফায Nonsense( গনপরফডাধ) বাফপরফন নাএগট ওয়াডডপরেপরয বালায় Nonces কগমপউটাপরযয বালায় nonce ফা cryptographic nonce পরচছ ldquonumber used once rdquo এটা ডিাট এফাং সপষট গকি য যানডভ গসটরাং ডমভন- াওয়াডড মা গকি গনপরদড কপরয Nonce গপরডন গপলড পভডপরক Retrieve ফা display কপরয-

একজন ওয়াডডপরে াআউজায ডমপরকান একগট এযাকন (delete update save and such) একগট াফপরজকট(একগট ডাসট পলাগগন ডগটাং াআতযাগদ) ২৪ ঘনটায একগট ভয় ডিভ

ডমভন ডাসট 50 গডগরট কযপরফন াঅনায ওয়াডডপরে বলগ ডথপরক তাপরর াঅনায গরঙকগট পরফ এযকভ- httpexamplecomwp-admin

postphppost=43ampaction=trashamp_wpnonce=83a08fcbc2

এখাপরন 83a08fcbc2 এগট র nonce মা ২৪ ঘনটা সথায়ী থাপরক রধভাতর এগট মগদ াঅনায িাযা ফযফরত য় এফাং গডগরট য় ডাসট 50 মখন াঅগন গরপরঙক গিক কপরযন ফপরচপরয় গযতবনড র ডম Nonce ডকান malicious াআউজায ফেপরত াপরযনা এফাং গঠক গরঙক িাড়া nonce এযয ডপরজ চপরর মায় ডমখাপরন াযগভন থাপরক না াঅপরযা গফসতাগযত ডদখন httpcodexwordpressorgWordPress_Nonces

39

Nonce URL ততগয এফায চরন াঅপরগয উদাযন ডথপরক Nonce URL ততগয কগয একগট ডাসট গডগরট কযায জনয wp_nonce_url() পাাংন ফযফায কযা য় ltphp

$url = wp_nonce_url( $url $action )

gt

েথভ যাযাগভটায $url পরচছ গসটরাং URL এপরডর এয মাপরক াঅগন কপরয়যী গসটরাং এয Nonce কযপরত চান াফযফহরত পলাগগপরনয গডগরট গরঙক এযকভ থাপরক- httpexamplecomwp-admineditphppage= liton

_utagsampliton_action=deleteampid=6

এখাপরন ডদখন যাযাগভটায liton_action এফাং এয টযাগ াঅাআগড গিতীয় যাযাগভটায পরচছ $action একগট গসটরাং মা াঅগন একগট াফপরজকট এয জনয একগট action ততগয কযপরফন উপরয ডদখরাভ delete এযাকন এয টযাগ াঅাআগড 6 সতযাাং $action যাযাগভটায পরত াপরয bdquoliton_utags-delete_tag6‟ গনপরচ ফাসতফ উদাযন ডদগখ- ltphp

$delete_url = add_query_arg(array( liton _action=gtdeleteid=gt$id) )

$nonced_url = wp_nonce_url( $delete_url bdquoliton _utags-delete_tag$id )

gt

lta href=ltphp echo $nonced_url gtgtdeleteltagt

এাআ টযাগগট পরফ গডগরট গরঙক এখাপরন add_query_arg() পাাংন ফযফায কযা পরয়পরি মা কাপরযনট URL ডক এযাপরয যাযাগভটায এয ভপরধয যাপরখ ানযবাপরফ ফরপরর এগট ডমাগ কপরয এযকভাঃ liton_action=deleteampid=6 amp liton_action=deleteampid=6

Nonce Form ততগয Nonce পভডপরকও ডোপরটকট কপরয wp_nonce_field() পাাংপরনয ভাধযপরভ ltphp

wp_nonce_field( $action $name $referer $echo ) gt

$action ( string) (optional) - action নাভ াআউগনক identifier optional

গকনত recommended $name (string) (optional) ndash গপরডন গপলড পভড ডবগযপরয়ফর নাভ $referer (boolean) (optional) ndash গডপলট গপরপরফ true থাপরক ডমখাপরন গপলড

ডবগরপরডন এয দযকায য়

40

$echo (boolean) (optional) - গডপলট গপরপরফ true থাপরক ডমখাপরন াঅউটট ডদখাপরনায ফা গপরডন পভড গপলড গযটানড কযায জনয দযকায য়

পপরভড াঅনায action এয নাভ গদন ltform method=postgt

lt-- some inputs here --gt

ltphp wp_nonce_field(name_of_my_actionname_of_nonce_field) gt

ltformgt

াঅভযা একগট পলাগগন ফানাপরফা ডমখাপরন াফযফরত টযাগগপররাপরক াঅভযা ভযানয়াগর গডগরট ফা গযপরনভ কযপরত াযফ এগট একট ফড় গকনত াপরনক গফলয়াআ াঅপরগাআ াঅপররাচনা কযা পরয়পরি ডদখপররাআ ফেপরত াযপরফন একগট ফাসতফধভডী উদাযন গনপরচ গদরাভ- ltphp

Plugin Name Liton Unused Tags

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add an entry for our option page to the Posts menu

add_action(admin_menu liton_utags_add_page)

function liton_utags_add_page()

add_posts_page( Unused Tags Unused Tagsmanage_optionsliton_utags

liton_utags_option_page )

Catch any liton_action parameter in query string

add_action( admin_init liton_utags_do_action )

Proceed to requested liton_action if applicable

function liton_utags_do_action()

if( isset( $_REQUEST[liton_action] ) )

return

if( current_user_can( manage_options ) )

wp_die( Insufficient privileges )

41

$id = $_REQUEST[id]

$action = $_REQUEST[liton_action]

if( $action == done )

add_action( admin_notices liton_utags_message )

return

check_admin_referer( liton_utags-$action_tag$id )

switch( $action )

case rename

$newtag = array( name =gt $_POST[name] slug =gt

$_POST[name] )

wp_update_term( $id post_tag $newtag )

break

case delete

wp_delete_term( $id post_tag )

break

wp_redirect( add_query_arg( array( liton_action =gt done )

) )

Admin notice

function liton_utags_message()

echo ltdiv class=updatedgtltpgtAction

completedltpgtltdivgt

Draw the tag management page

function liton_utags_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtUnused Tagslth2gt

ltphp

if( $tags = liton_utags_find_orphans() )

echo ltpgtYou currently have count( $tags ) unused

tagsltpgt

echo ltolgt

foreach( $tags as $tag )

42

$id = $tag-gtterm_id

$name = esc_attr( $tag-gtname )

$delete_url= add_query_arg(

array(liton_action=gtdeleteid=gt$id) )

$nonced_url= wp_nonce_url( $delete_url

liton_utags-delete_tag$id )

gt

ltligt

ltform action= method=postgt

ltphp wp_nonce_field( liton_utags-rename_tag$id )

gt

ltinput type=hidden name=liton_action

value=rename gt

ltinput type=hidden name=id value=ltphp echo

$id gt gt

ltinput type=text name=name value=ltphp echo

$name gt gt

ltinput type=submit value=Rename gt or

lta href=ltphp echo $nonced_url gtgtdeleteltagt

this tag

ltformgt

ltligt

ltphp

else gt

ltpgtYou have no unused tagsltpgt

ltphp endif gt

ltolgt

ltdivgt

ltphp

Find unused tags return them in an array

function liton_utags_find_orphans()

global $wpdb

$sql = SELECT termsterm_id termsname FROM

$wpdb-gtterms terms

INNER JOIN $wpdb-gtterm_taxonomy taxo

ON termsterm_id=taxoterm_id

WHERE taxotaxonomy = post_tag

43

AND taxocount=0

return $wpdb-gtget_results( $sql )

gt

ডযাপরফাপরডড এাআ পলাগগপরনয ডভন াওয়া মাপরফ ডাসট এয াফপরভন গপরপরফ গনপরচ ডদখন-

এফায পলাগগন ডভনপরত গিক কপরয ডদগখ পলাগগপরনয ডবতপরযয কাজ-

উপরয ডদখন াঅগভ একগট টযাগ ততগয কপরযগিরাভ l i নাপরভ এগট এখাপরন ডদখাপরচছ াঅগভ চাাআপরর এগট এগডট ফা গডগরট কযপরত াগয এফায গডগরট গরঙক এ ভাউপরয কাডয ডযপরখ গনপরচ গরঙক ডদখন ফা গডগরট করন একগট টযাগ াঅভায এখাপরন URL গট এযকভ httplocalhostdev-litonwp-

admineditphppage=liton_utagsampliton_action=doneampid=4amp_wpnonce=30a44b7

986

এখাপরন াঅগভ liton_action=done ফযফায কপরযগি Nonces এয পাাংনগপররায নাভ গনপরচ গদরাভ াঅনাযা ডদপরখ গনপরফন াআনটাযপরনট ডথপরক wp_nonce_field()

wp_nonce_url()

wp_verify_nonce()

wp_create_nonce()

44

check_admin_referer()

check_ajax_referer()

ডাটাপরফ াঅনাযা ডমপরত গএাআচগ গনপরয় কাজ কপরযন এগকউএর ডাটাপরফ এয াপরথ ফাাআ কভপরফী গযগচত এয গনটযাকস গপররা ডভাটাভগট ফায জানা একাআ বাপরফ াপরনপরকাআ ওয়াডডপরেপরও ডাটাপরফ ডকাড গরপরখন এটা ডকাগডাং এয জনয খাযা গদক াঅগভ নযভার গএাআচগ- এগকউএর ডকাড এয উদাযন গদগচছ- ltphp

$sql=rdquoINSERT INTO $wpdb-gtposts(post_title) VALUES(bdquo$title‟)rdquo

$wpdb-gtquery($sql) gt

এফায ওয়াডডপরেপরয সটযানডাডড ডকাগডাং গপরসটভ ডদখন- ltphp

$wpdb-gtinsert($wpdb-gtposts

array(bdquopost_title‟ =gt $title)

array(bdquos‟)

)

gt

ডাটাপরফ গগকউয কযায জনয াঅপরডট াাপরযন ডদখাফ- গনপরচয ডকাডগট খাযা েযাকগট ltphp

$wpdb-gtquery(ldquoUPDATE $wpdb-gtposts SET post_title=‟$newTitle‟ WHERE

ID=$my_idrdquo )

gt

উপরযয ভত কপরয না গরপরখ গনপরচয ভত কপরয গরখন- ltphp

$wpdb-gtupdate($wpdb-gtposts

Array(bdquopost_title‟ =gt‟$newTitle‟)

Array(bdquoID‟ =gt$my_id

)

gt

ানর বাপরফ ানযানয াাপরযন গপররা গরখপরফন

45

াধযায়- াঅটাঃ ডরাকারাাআপরজন এফাং Set t i ngs API

ডরাকারাাআপরজন ডরাকারাাআপরজন একগট গরতবনড গফলয় এয পাাংনগপররা র- load_theme_textdomain()

load_plugin_textdomain()

উদাযন- ltphp $var=__(bdquoHello‟‟domain‟) gt

ltphp _e(bdquoHello‟‟domain‟) gt

গফসতাগযত গনপরচয গরপরঙক ডদখন- httpcodexwordpressorgI18n_for_WordPress_Developers

ডগটাং API

ডগটাং API পরচছ াঅগন গকি ান ততগয কযপরফন মা াআনটাযনার বাপরফ াঅনায পলাগগপরন এপলাাআ পরফ মখন াঅগন াআউজায- গডপাাআন ান ততগয কযপরফন াঅনায পলাগগপরনয জনয তখন Settings

API ndashএ াঅনায ডকাড মতটা ারন জ করন Settings API াঅনায ডম কাজগপররা handle কপরয-

ওয়াডডপরেপরক জাগনপরয় ডদয় ডম াঅগন গনজসব ান ফযফায কযপরফন াঅনায াআনটপরক পাাংপরনয ভপরধয উপরেখ কযপরফ ডফগয বাগ ান ডজ গনপরজাআ ততগয কযপরফ $_POST ডাটা গপররাপরক ভগনটয কপরয ান ততগয এফাং াঅপরডট কপরয(মগদ েপরয়াজন য়)

Settings API পাাংন Settings API পাাংপরন গতনগট ডসট থাপরক- ১ েথপরভ ওয়াডডপরেপরক ফপরর ডম াঅগন নতন ডগটাং ফযফায কযপরফন াঅনায পলাগগপরনয জনয ২ এয পরয ডগটাং গডপাাআন করন (text areas input boxes and any

HTML form element) এফাং এপরদযপরক একাপরথ রে কপরয যাপরখ ৩ ওয়াডডপরেপরক াঅনায ডগটাং actual form এ ডদখাপরনায জনয ফপরর

46

এফায াঅভযা একগট পলাগগন ফানাপরফা Administration Page ndashএ ডযপাপরযনস গপরপরফ ডদখপরত াপরযন- httpcodexwordpressorgAdding_Administration_Menus

httpcodexwordpressorgFunction_Referenceadd_options_page

httpcodexwordpressorgAction_ReferenceActions_Run_During_an_Admin_P

age_Request

পলাগগপরনয এডগভন ডজ পরফ এযকভ- httpexamplecomwp-adminoptions-generalphppage=liton_myplugin

েথপরভ াঅভযা ডভন ততগয কযফ াঅপরগয ভত কপরয- Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

এফায ান ডজ এ পভড গনপরয় গকি ডগটাং ডদফ function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

উপরযয ডকাপরড াঅভযা একগট পপরভডয ভপরধয রধ াফগভট ফাটন এফাং My Plugin নাপরভ ডজ ততগয কপরযগি ডযাপরফাপরডড ডদখন-

47

ডগটাং এয াফ ডভন গপরপরফ My Plugin াঅপরি এফাং My Plugin ডত গিক কযপরর াঅভযা উপরযয ডজ ততগয কপরযগি ডমখাপরন াফগভট ফাটনগট ডদখাপরচছ এফায গতনগট যাযাগভটায ডযগজসটায কযফ- ltphp

register_setting( liton _myplugin_options liton _myplugin_options liton

_myplugin_validate_options)

gt

েথভগট ডগটাং রেপরয নাভ গিতীয়গট ান নাভ মা াঅভযা get_option() পাাংন গদপরয়ও ডপরত াগয ততীয়গট করফযাক পাাংন এগট একগট গসটরাং ডযপাপরযনস পাাংন এখাপরন াঅভযা নাভ

48

গদপরয়গি liton _myplugin_validate_options মা া কযপরফ পপরভডয কর ডব ডগটাং াঅভযা এটা পরয গডপাাআন কযফ

ডগটাং গডপাাআন ডকন add_settings_field() এফাং add_settings_section() পাাংন গদপরয় াঅভযা াঅভাপরদয কর ডগটাং গডপাাআন কযফ ltphp

add_settings_section( liton_myplugin_main My Plugin Settings

liton_myplugin_section_text liton _myplugin)

add_settings_field( liton _myplugin_text_string Enter text here

liton _myplugin_setting_input liton _myplugin liton _myplugin_main)

gt

add_settings_section() পাাংন গদপরয় াঅভযা ডদখাফ াঅপরর ডজ এ ডকন ডকভন ডদখাপরফ এয চাযগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ ডকন টাাআপরটর ltH3gt টযাপরগয ভপরধয করফযাক পাাংন এয নাভ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ (page= liton _myplugin এগট

URL এয াাং গপরপরফ থাকপরফ) গিতীয় যাযাগভটায add_settings_field() পপরভডয াআনট গপরপরফ ডদখাপরনা পরয়পরি এখাপরন াাচগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ পরযয গপপরলড গক গেনট কযা পরফ তা ডটকসট গপরপরফ ডদখাপরনা পরয়পরি(Enter text

here)

করফযাক পাাংন পপরভড গেনট কযপরফ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ ডগটাং ডপরজয ডকন গপলড মা add_settings_section() পাাংপরন গডপাাআন

কযা পরয়পরি ltphp

Explanations about this section

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

49

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton _myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name= liton _myplugin_options[text_string]

type=text value=$options[text_string] gt

gt

গিতীয় পাাংন ান বযার text_string ডক এযাপরযপরত ডসটায কপরয ডযপরখপরি এফায াআউজায াআনট বযাগরপরডট কযফ- ltphp

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace([^a-zA-Z]$input[text_string] )

return $valid

gt

পভডপরক ডযনডায কযফ- ltphp

Draw the options page

function liton_myplugin_options_page()

gt

ltdiv class=wrapgt

ltphp

screen_icon()

gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp

settings_fields( liton_myplugin_options)

do_settings_sections(liton_myplugin)

50

gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

settings_fields() পাাংনগট ডযপাপরযনস গপরপরফ ফযফায কযা পরয়পরি মা াঅভযা register_setting() পাাংপরন গডপরিয়ায কপরযগি do_settings_sections() পাাংনগট কর কযপরফ কর াঅউটট ডকন এফাং পভড গপলডপরক মা াঅভযা পরফড গডপাাআন কপরযগি াঅভাপরদয কাজ ডল এফায পরযা পলাগগনগট ডদখফ- ltphp

Plugin Name Settings API example

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

Draw the option page

function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save

Changes gt

ltformgtltdivgt

ltphp

51

Register and define the settings

add_action(admin_init liton_myplugin_admin_init)

function liton_myplugin_admin_init()

register_setting( liton_myplugin_options

liton_myplugin_options

liton_myplugin_validate_options )

add_settings_section( liton_myplugin_main My Plugin

Settings

liton_myplugin_section_text liton_myplugin )

add_settings_field( liton_myplugin_text_string Enter text

here

liton_myplugin_setting_input liton_myplugin

liton_myplugin_main )

Draw the section header

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton_myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name=liton_myplugin_options[text_string]

type=text value=$text_string gt

Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

return $valid

gt

52

ডদখন ডযাপরফাপরডড ডকভন ডদখায়-

পরয় ডগর াঅভাপরদয েথভ নডাাংগ পলাগগন ান ডজ াঅপরযকগট গজগন ডমটায জনয এতগকি পলাগগন URL এপরডর- httplocalhostdev-litonwp-adminoptions-

generalphppage=liton_mypluginampsettings-updated=true

াঅভায এখাপরন এযকভ ডদখাপরচছ ডটকসট ফপরকস ডকান গকি গরপরখ ডব কযায য এফাপরয াঅপরযকগট গজগন ডদখফ াঅভযা াপরনক ভয়াআ াপরনক পলাগগপরনয াআনট গপপরলড বর ডাটা াআনট কযপরর এযয ডভপরজ ডদখায় এাআ কাজগট কযফ এফায াঅভযা এখাপরন esc_attr() ফা esc_html() ফযফায কগযগন সতযাাং াঅভাপরদয গরগভপরটন থাকপরি ডবগরপরডট পাাংনগট একট এগডট কগয গনপরচয ভত কপরয Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

if( $valid[text_string] = $input[text_string] )

add_settings_error(liton_myplugin_text_stringliton_myplugin_texterror

53

Incorrect value enterederror)

return $valid

উপরয ডদখন add_settings_error() পাাংন ফযফায কপরযগি মা এযয ডচক কযপরফ পপরভডয াঅগভ একগট বর ডাটা(পরসপার কযাপরযকটায) াআনট কপরয ডদখরাভ এযয ডদখাপরচছ-

তায ভাপরন াঅভযা পর পরয়গি াঅনায পলাগগনগট এগডট কপরয ডনপরফন ডকায ডকন এফাং গপপরলডয গরসট গদরাভ াঅনাপরদয সগফধায জনয

54

CSSJS পাাআর মি কযা

াঅনায পলাগগপরন গএএ ফা জাবাগিে ডমাগ কযপরত পরত াপরয াঅগন চাাআপরর ফাগপরযয ডকান ফা াঅনায ততগয ডকান গএএ ফা জাবাগিে পাাআর ডমাগ কযপরত াপরযন তপরফ এপরকষপরতর াঅভযা ডমবাপরফ HTML এ পাাআর ডমাগ কগয ডযকভ না function liton_scripts()

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtojqueryjsrdquogtltscriptgt‟

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtoscriptjsrdquogtltscriptgt‟

add_action(bdquowp_head‟‟liton_scripts‟)

এগট মপনডরপর বর িগত গনপরচ ডদখন ওয়াডডপরেপর গকবাপরফ পাাআর মি কযপরত য়- function liton_scripts()

wp_enqueue_script(bdquojquery‟)

wp_enqueue_script(bdquotheme-scripts‟‟pathtoscriptsjs‟)

add_action(bdquowp_enqueue_script‟‟liton_scripts‟)

ানর বাপরফ াঅগন সটাাআরীট ডমাগ কযপরত াপরযন- function liton_styles()

wp_enqueue_ style (bdquocss‟)

wp_enqueue_ style (bdquotheme- styles‟pathto stylescss‟)

ডযপাপরযনস ডদখন- httpcodexwordpressorgFunction_Referencewp_enqueue_script

httpcodexwordpressorgFunction_Referencewp_enqueue_style

টডপরকাড টডপরকাড পরচছ ওয়াডডপরেপরয ডসপগগপক ডসপার টযাগ মা াঅগন ডাসট ফা ডপরজয ভপরধয াআনাটড কপরয ানয ডকান কনপরটনটপরক ওপরয়ফাাআপরটয ভপরধয গযপরপল কযপরত াযপরফন মগদ াঅগন গযারাগয টাাআপরয ডকান পলাগগন ফযফায কপরয থাপরকন তাপরর াঅনায ধাযনা থাকায কথা মাাআ ডাক াঅগভ কপরয়কগট উদাযি ডদখাফ

55

েথপরভ একগট পলাগগন ততগয কযফ ডমখাপরন add_shortcode() নাপরভয একগট পাাংন থাকপরফ এগট রগট যাযাগভটায েন কপরয েথভগট টডপরকাপরডয নাভ গিতীয়গট ডম পাাংনপরক কর কযপরফন ডগট াঅভযা একগট উদাযন ডদগখ- ltphp

Plugin Name Liton Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(litonhi)

function hi()

echo Hello World

gt

উপরয ডদখন খফ ডিাট গকনত াঅগন চাাআপরর এয ফযফায াপরনক গফসতত কযপরত াপরযন এখাপরন টডপরকাড নাভ পরচছ liton াঅয এগটপরক ডরখা য় এবাপরফ [liton] াঅভযা ডাপরসটয ভপরধয াআনাটড কপরয ডদগখ াঅউটট ডকভন ডদখায়-

এফায াঅউটট ডদগখ-

56

াঅভাপরদয ততগয কযা টডপরকাড পরবাপরফাআ কাজ কযপরি াঅপরযকগট উদাযন ডদখফ াঅনাযা াপরনপরকাআ গগর এডপরনস গনপরয় কাজ কপরযন াঅনাযা াপরনপরকাআ এডপরনস এয জনয পলাগগন ফযফায কপরযন গকনত চাাআপররাআ এাআ কাজগট াঅনাযা গনপরজয ভত কপরয াগজপরয় গনপরত াপরযন গগপররয কাপরি ফ ডাসট বযার ায়না াঅনাযা মাযা একসাটড াঅপরিন তাযা এটা বার কপরয জাপরনন তাাআ াপরনপরকাআ গগপররয ডকাড ফ ডপরজ ডদখাপরত চান না এজনয পলাগগন ফযফায কপরয রাব য়না কাযন পলাগগপরন জায়গা গপকসড থাপরক এপরত কপরয াঅগনডাং ও কভ য় াঅনাযা টডপরকাড ফযফায কপরয ডমপরকান জায়গায় এড ডদখাপরত াপরযন গনপরচ াঅগভ রগট টডপরকাড ততগয কপরযগি র‟ধযপরনয এড ডদখাপরনায জনয ltphp

Plugin Name Liton Adsense Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(adsense_468adsense_468_60)

add_shortcode(adsense_250adsense_250_250)

function adsense_468_60($atts)

return ltscript type=textjavascriptgtlt--

57

google_ad_client = ca-pub-0956247412222369

468x60 created 101510

google_ad_slot = 4372705450

google_ad_width = 468

google_ad_height = 60

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

function adsense_250_250($atts)

return ltscript type=textjavascriptgtlt--

google_ad_client = ca-pub-0956247412222369

250x250 created 81809

google_ad_slot = 9368091893

google_ad_width = 250

google_ad_height = 250

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

gt

একগট টডপরকাড ফযানায টাাআপরয জনয এফাং াঅপরযকগট ২৫০২৫০ াাআপরজয এফায ডাপরসট ডমপরকান একগট টডপরকাড াআনাটড করন ডমখাপরন াঅনায ডদখাপরনায েপরয়াজন ভপরন কপরযন াঅগভ রগট ডকাড ডটসট কপরয ডদখরাভ-

58

এফায াাআপরটয াঅউটট ডদগখ-

রগট এডাআ ডদখাপরচছ াঅপরযা াপরনক কাপরজ াঅগন টডপরকাড ফযফায কযপরত াপরযন ডযপাপরযনসাঃ httpcodexwordpressorgShortcode_API

59

াধযায়- নয়াঃ পলাগগন উদাযন

ওয়াডডপরেপরয ডডটটাাআভকপরভনট নামবায ফাাংরা কযায পলাগগন াঅভাপরক কপরয়কজন ফপররগিপররন ওয়াডডপরেপরয গডপলট ডডটটাাআভকপরভনট নামবায ফাাংরা য়না রযাাংগপরয়জ ফাাংরা কযায যও ডডটটাাআভকপরভনট নামবায গপররা াআাংপরযগজ ডথপরক মায় গনপরচয পলাগগনগট ফযফায কপরয ডদখপরত াপরযন- ltphp

Plugin Name Liton Bangla datetimecomment number

Plugin URI httpliton-onlinecomplugins

Description Bangla datetimecomment number

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

This function converts all english numbers to bangla number

function make_bangla_number($str)

$engNumber = array(1234567890)

$bangNumber = array( ১ ২ ৩ ৪ ৫ ৬ ৭ ৮ ৯ ০ ) $converted = str_replace($engNumber $bangNumber $str)

return $converted

add_filter( get_the_time make_bangla_number )

add_filter( the_date make_bangla_number )

add_filter( get_the_date make_bangla_number )

add_filter( comments_number make_bangla_number )

add_filter( get_comment_date make_bangla_number )

add_filter( get_comment_time make_bangla_number )

gt

60

সলাাআডায পলাগগন াঅভযা এাআ ফাআপরয়য কর গটউপরটাগযয়াপরর মা মা গখরাভ তা এফায একগট নডাাংগ পলাগগপরনয এপলাাআ কযফ সলাাআডায পলাগগন মপপরকড াঅভযা ফাাআ জাগন একগট ওপরয়ফাাআপরটয ডচাযা ারপরট ডদয় একগট সলাাআডায াপরনক ডাাআনাগভক ভপরন য় ডদখপরতও াপরনক বার রাপরগ এাআ পলাগগপরন াঅভযা এডগভন যাপরনর ডথপরক াআপরভজ ডমাগ কযফ এফাং তা াঅভাপরদয াাআপরট ডদখাফ চরন কাজ রর কগয- েথপরভ গনপরবা সলাাআডায এয ওপরয়ফাাআপরট মান এফাং jQuery Plugin ডাউনপররাড করন

ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom Version 10

gt

াঅভযা পলাগগপরনয ডডায ততগয কযরাভ

পলাগগন গরপরসট ডদখাপরচছ bdquoLitons Nivo Plugin‟ াঅভাপরদয েথভ কাজ পরচছ custom post

type ওয়াডডপরে পাাংনাগরগট একগট নতন কাসটভ ডজ ততগয কযপরত custom post type

ফযফহরত পরফ ডমখাপরন একগট াআপরভজ থাকপরফ াঅভযা রধ টাাআপরটর ডনভ এফাং াআপরভজ াঅপররাডায গপরপরফ গপচায াআপরভজ পাাংনাগরগট ফযফায কযফ function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_function 600 280 true)

61

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

add_action(init np_init)

উপরযয ডকাপরড np_init() পাাংনগট রক কপরযগি মা ডডায যান কযায াঅপরগ যান পরফ াঅয এজনয register_post_type() পাাংনপরক এয যাযাগভটায গদপরয় np_init() পাাংপরনয ডবতপরয মি কপরযগি এটা মগদ না কযতাভ তাপরর ldquoHeaders already sentrdquo ডভপরজ ডদখাত এাআ ডভপরজগটয াপরথ াপরনপরকাআ গযগচত াঅা কগয register_post_type() পাাংন গদপরয় াঅভযা াআপরভজ মি এফাং ভযাপরনজ কযফ ভরত াঅভযা একগট নতন custom post type ডমাগ কপরযগি np_images নাভ গদপরয় নতন custom post type ডক ডগটাং বযার গপরপরফ াঅযগপরভনট া কপরযগি $args ডবগযপরয়ফরগট ট ডরপরবর ডভন ততগয কপরয াঅপরগাআ ডদপরখগি পলাগগনগট এগকটপরবট কযপরর াঅভযা গনপরচয ভত ডদখপরত াফ-

এফায গিে এফাং সটাাআরীট ডক মি কযফ- add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

এফায রক কযা পাাংনগপররা গডপরিয়ায কগয- function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__) array( jquery ))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

62

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

উপরযয ডকাডগপররা নতন কপরয ফিডনা কযায গকি ডনাআ াঅপরগাআ wp_enqueue_style() এফাং wp_enqueue_script() মপপরকড ফরা পরয়পরি নতন াঅপরযকগট পাাআর ততগয করন একাআ গডপরযকটগযপরত scriptjs এফাং গনপরচয ডকাডটক গদন- jQuery(document)ready(function($)

$(slider)nivoSlider()

)

াআপরভজপরক গযাাআজ করন- add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

াঅভযা এাআ পলাগগনগটপরক উাআপরজট গপরপরফও ফযফায কযফ ডগট পরয ডদখফ াঅপরযকগট গজগন মগদ গথপরভ না ডদয়া থাপরক ডজনয থামবপরনাআর াপরাটড গদপরয় গদন- add_theme_support( post-thumbnails )

এফায ওয়াডডপরেপরয কাপরযনট ডাসট কপরয়যী কযায ডকাড াঅয $result ডবগযপরয়ফপরর ডমফ ltdivgt টযাগ ফযফায কযা পরয়পরি তা jQuery Plugin গট একসিাকট কপরয indexhtml ডজগটয ডভাআন সলাাআডায ডকাডগট ডদখন একাআ াঅপরি রধ ডখানকায ltdivgt টযাগ গপররাপরক কগ কপরয এাআ পলাগগপরন ফযফায কযা পরয়পরি এফায টডপরকাড গদন- add_shortcode(np-shortcode np_function)

এাআ টডপরকাড গএাআচগ পাাংনপরক রক কযপরফ এফাং এয ভধয ডথপরক সলাাআডপরায কনপরটনট ডক গযটানড কযপরফ াঅভাপরদয টডপরকাড পরচছ [np-shortcode] াঅভযা পলাগগপরন মাাআ এফাং একগট িগফ মি কগয গপচাযড াআপরভজ গপরপরফ গনপরচ ডদখন-

63

াঅগভ াঅপরযকগট ডজ ততগয কপরযগি ডমখাপরন টডপরকাড গদপরয়গি

াঅউটট ডজ ডদগখ এফায-

64

পরয় ডগর াঅভাপরদয সলাাআডায পলাগগন পরযা ডকাডগট গনপরচ গদরাভ- ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

65

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

66

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

এফায াঅগন মগদ উাআপরজট গপরপরফ ফযফায কযপরত চান তাপরর গনপরচয ডকাডটক গদন- class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

67

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

echo $after_widget

াঅপরযা রগট কাজ কযপরত পরফ াঅনাপরক এক াআপরভজ াাআজ উাআপরজট এয জনয গঠক কপরয গদপরত পরফ- add_image_size(np_widget 180 100 true)

াঅপরযকগট র উাআপরজট এযাকন রক ডমাগ কযা add_action(widgets_init np_widgets_init)

উাআপরজট পরযা ডকাড াঅফায গদরাভ- ltphp

Plugin Name Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Ciprian Turcu

Version 10

68

class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

69

echo $after_widget

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

70

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(widgets_init np_widgets_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

71

পলাগগন গনপরয় এত ডিাট গযপরয ডরখা মভফ নয় এজনযাআ ভপরন য় পলাগগন গনপরয় ডকউ ডরপরখন না কাযন এখাপরন এত গফলয় াঅপরি মা াঅপররাচনা কযপরত ডগপরর ৫০০ ডজ ায পরয় মাপরফ ডফাোয সগফধাপরথড াঅগভ মথামভফ উদাযন গদপরয় ডফাোপরনায ডচষটা কপরযগি াঅগভ এখাপরন টাপরগডট কপরযগি মাযা টকটাক জাপরন পলাগগন মপপরকড এডবানস ডরপরবপররয নয় কাযন তাযা জাপরনন াঅভায উপরেশয গির মাযা জানপরত চায় তাপরদযপরক জানাপরনা এখাপরন ডমফ গফলয় াঅপররাচনা কযা পরয়পরি তা ডভাটাভগট ভাপরনয একগট পলাগগন ফানাপরনায জনয মপরথষট তপরফ ভাপরনাননয়পরনয জনয াঅনাপরক গনপরজাআ খাপরজ গনপরত পরফ াঅনায জনয ডকানটা বার পরফ াঅগভ রধ গদক গনপরদডনা গদরাভ ভাতর এাআ ফাআগট রধভাতর ওয়াডডপরে রেপরয জনয ডরখা াপরনক বর ভরাগনত থাকপরত াপরয াঅনাযা কষভাসনদয দগষটপরত ডদখপরফন াঅগভ ডচষটা কপরযগি মতটা জ কপরয ডরখা মায় াপরনক ভয় ডদখা মায় ডম খফ ডিাট খাপরটা গফলয় গনপরয় াপরনপরকাআ নক কপরযন এটা গতয রাঃখজনক াঅনাযা গগপরর একট খাজপররাআ ভাধান াপরফন াঅপরগ গনপরজ ডচষটা করন তায পরয ানযপরক ভাধাপরনয জনয গজজঞাা করন াঅভায জনয ডদায়া কযপরফন বাপররা রাগপরর জানাপরফন খাযা রাগপররও জানাপরফন তাপররাআ াঅভায গযশরভ সবাথডক পরফ ভতাভত জাগনপরয় াঅভাপরক ডভাআর কযপরত াপরযন litonice09gmailcom |

72

Page 4: Wordpress Plugin Development

5

গচতর াধযায়- একাঃ চনা ডজ নমবয ৭ র ৭ ৮ াধযায়- রাআাঃ পলাগগপরনয গঠন ৯ র র ৯ খ র হ ১১ র র ৭ র ১৩ র র র হ ১৪ হ র ১৫ ১৮ র ১৮ URL ১৯ াধযায়- গতনাঃ রক ( Hook) ২২ র ( Filter Hooks) ২২ এ (Action Hooks) ২৭ াধযায়- চাযাঃ পলাগগন ডকাগডাং সটযানডাডড এ এ ৩২ uninstallphp ৩৪ Uninstall Hook ৩৫ ৩৬ এ ৩৭ এ এ ৩৭ াধযায়- াাচাঃ ওয়াডডপরেপরয াপরথ াআগনটপরেন এ র ৩৮ ৩৮ র র র (াফ ডভন) ৪৩

6

র র ৪৫ াধযায়- িয়াঃ পলাগগন পাাংন ৫৬ __() ৫৬ _e() ৫৬ esc_attr__() ৫৮ াধযায়- াতাঃ পলাগগন গগকউগযগট র ৬১ র র ৬১ র র ৬১ র র ৬২ Nonces ৬৩ Nonce URL র ৬৪ Nonce Form র ৬৫ ৭৩ াধযায়- াঅটাঃ ডরাকারাাআপরজন এফাং Set t i ngs API ৭৬ API ৭৬ Settings API ৭৭ ৮১ CSSJS র ৯১ ৯৩ াধযায়- নয়াঃ পলাগগন উদাযন র র র র ১০০ র ১০১

7

াধযায়- একাঃ চনা গকি কথা ওয়াডডপরেপরয েগত যপরয়পরি াপরনক বারফাা ওয়াডডপরে মপপরকড নতন কপরয গকি ফরায ডনাআ ডমপরকান ওয়াডডপরে ফযফাযকাযীয জনয পলাগগন একগট গরতবনড গফলয় পলাগগন াঅপরর গক ওয়াডডপরে পলাগগন াঅভাপরদযপরক াঅভাপরদয বলগ ওপরয়ফাাআপরটয পাাংনাগরগট ফগি কযপরত াাময কপরয াভানয াথফা ডকান যকভ ডোোগভাং জঞান িাড়াাআ ওয়াডডপরে পলাগগপরনয গনগদডষট ডকান াঅকায এফাং াঅকগত ডনাআ একগট পলাগগন ডমপরকান গকিাআ কযপরত াপরয ওয়াডডপরে বলগ ওপরয়ফাাআপরটয াঅভায পলাগগপরনয াংখযা খফ কভ গকি াফগর কযা য়গন াঅগভ ওয়াডডপরেপরয গকি গরগভপরটন গনপরয় কাজ কযগি এফাং এগপররা গনপরয়াআ ভরত কাজ কযগি গকবাপরফ াঅপরযা একসপরটনড কযা মায় মাাআ ডাক াঅগভ এখনও গকষানগফ গপরপরফ াঅগি

ফাআগট কাপরদয জনয াঅগন মগদ এাআ ফাআগট ডাউনপররাড কপরয থাপরকন তাপরর াঅগভ ধপরযাআ গনগচছ াঅগন একজন ওপরয়ফ ডডপরবরায এফাং াপরথ গকি ডোোগভাং জঞান াঅপরি পলাগগন ডডপরবরপরভপরনটয উপরেশয পরচছ াঅগন পলাগগন ডডপরবর কযপরফন াঅনায িাপরয়নট াঅগন ডমবাপরফ চান গঠক ডবাপরফ ডমপরকান ধযপরনয ওপরয়ফাাআট ততযীপরত ওয়াডডপরেপরয ফযগতিভ পলাটপভড াআপরতাভপরধযাআ েভাগিত এাআ ফাআগট গিরযানসাযপরদয জপরনযও মাযা তাপরদয গির ডাটডপরপাগরও এফাং ওয়াডডপরেপরয পাাংনাগরগট ফপরে কাজ কপরযন

ডোয়াজনীয় টর

Notepad ++( httpnotepad-plus-plusorgdownload )Dreamwaver

Mozilla Firefox (httpwwwmozillaorgen-USfirefoxnew) Google Crome

Firebug Extension (Search For both Firefox Chrome as you want)

Web Developer Extension (Search For both Firefox Chrome as you want)

Xampp with Wordpress Installation

FTP Client Example- Filezilla ওয়াডডপরে গকবাপরফ াআনসটর কযপরত য় তা নতন কপরয ডদখাপরনায গকি ডনাআ তফও মাযা নতন তাযা এখাপরন ডদখন ( httpgooglWJTp9 ) গকবাপরফ পলাগগন াআনসটর কযপরত য় তা এখাপরন ডদখন ( httpgooglpE8AD)

8

াধযায়- রাআাঃ পলাগগপরনয গঠন পলাগগন গক ওয়াডডপরেপরয পলাগগন র একগট PHP গিে মা ওয়াডডপরেপরয গনজসব পাাংনাগরগট গযফতডন কপরয াথফা গযফধডন কপরয ভরতাঃ একগট গপচায ফা গকি গপচায াঅভাপরদয াাআপরট ডমাগ কযায জনয াঅভযা পলাগগন াআনসটর ডদাআ একগট পলাগগপরনয কাপরজয ডকান গরগভট ডনাআ ড ডকান কাজগপররা কযপরত াযপরফ কাযন পলাগগন ডাউনপররাপরডয ডকান গনগদডষট াাআজ ডনাআ পলাগগন ওয়াডডপরেপরয াপরথ গকবাপরফ কাজ কপরয ওয়াডডপরেপর াপরনক গপচায াঅপরি গফগবনন API(Application Programming Interface)- এয জনয ডমগপররা গফগবননবাপরফ কাজ কপরয ওয়াডডপরেপর গনপরচ ডগপররা াঅপররাচনা কযা রাঃ

পলাগগনাঃ একপরট রক( hooks) ডমগপররা ওয়াডডপরেপরয গনগদডষট পাাংপরন এপরকস কপরয এগপররাপরক এনাফর কপরয

উাআপরজটাঃ পলাগগন গদপরয় উাআপরজট ততগয এফাং গযচারনা কযা টডপরকাডাঃ াঅনায পলাগগনপরক াপরাটড কযায জনয টডপরকাড ডমাগ কযা টডপরকাড র

একগট রক ডমটা একগট PHP পাাংনপরক এনাফর কপরয এফাং াঅনায ডাসট ফা ডজ এ েদডন কপরয াঅগভ পরয এ গফলপরয় গফসতাগযত ফরফ

HTTP এগট াঅনায পলাগগপরন HTTP গযপরকাপরয়সট াঠায় এাআ API কনপরটনট ডথপরক external URL াথফা Submit কযা কনপরটনট ডথপরক URL retrieve কপরয

ডগটাংাঃ াঅনায পলাগগপরনয ডগটাং াআনাটড াথফা ডগটাং ডকন ডগটাং API এয োথগভক সগফধা র গগকউগযগট কর ডগটাং ডাটা গযিায( গযপরাগধত) থাপরক সতযাাং মখন পলাগগন ডগটাং ডব কযায ভয় Cross Site Request Forgery (CSRF) এফাং Cross Site Scripting(XSS) গনপরয় গচনতায গকি ডনাআ

Options পলাগগপরনয কর ান জভা যাপরখ এফাং retrieve কপরয এগট নতন ান ততযী কপরয াঅপরগয ান াঅপরডট কপরয ান গডগরট কপরয এফাং ডমপরকান ান retrieve কপরয

Dashboard Widgets ডযাপরফাডড উাআপরজট ততগয কপরয ওয়াডডপরে ডযাপরফাপরডড automatically উাআপরজট েদডন এফাং কর কাসটভাাআপরজন গপচায ডমভন- গভগনভাাআজ ডরাগ ডর এফাং গিন ান

Rewrite াঅনায পলাগগপরনয জনয কাসটভ রর ততগয কযা এাআ API াঅনায static-end-point(custom-page) structure tags(postname) এফাং াগতগযি গপড গরঙক (feedjson)

9

Transients গকি াসথায়ী ান (cached data) ততগয কপরয াঅনায পলাগগপরনয জনয এাআ API গট Options API এয ানর

Database ওয়াডডপরেপরয ডাটাপরফপর েপরফ কপরয এগট াঅনায পলাগগপরনয ডাটাপরফপরজ গনপরচয কাজগপররা মপাদন কপরয- creatingupdatingdeleting and retrieving

কখন াঅনায পলাগগন ডরাড য় পলাগগন ততগয কযপরত ডগপরর এাআ ডফগক কাজগপররা াঅভাপরদয াফশযাআ জানপরত পরফ াঅভযা ডতা পলাগগন াআনসটর গদপরয়াআ খারা একফায ডবপরফও ডদগখনা এগট াঅপরর গকবাপরফ কখন ডরাড পরফ াাআপরটয উয কতটা াআপরপকট ডপরপরফ াঅগভ গনপরচ একগট ডায়াোভ গদরাভ াঅা কগয াঅয গকি ফরপরত পরফনা াঅভাপরক

Wordpress URL Called

wp-config Loaded

Functions Loaded

Plugins Loaded

Pluggables Loaded

Translations Loaded

Theme Loaded

Page Content

10

ওয়াডডপরে পলাগগন ডডপরবর কযায ৭গট কাযন

াঅগভ াআনটাযপরনট এ ldquoHow to Write a Plugin (httpgooglrCUY) rdquo গদপরয় াপরনক াচড কপরযগি াপরনক াঅগটডপরকর াঅপরি গকনত ভন ভত কপরয়কগট িাড়া ফরায ভত াাআগন ওয়াডডপরেপরয ldquoডকাপরডকসrdquo াঅপররাআ ওয়াডডপরে মপপরকড জানায জনয মপরথষট এটা পরয ফপরেগি ৭ গট কাযন ডকন াঅগন ওয়াডডপরে পলাগগন ফানাপরফনাঃ ১) াঅগন একগট পলাগগন মপপরকড জাপরনন গকনত এয ফাসতফায়ন িনদ কযপরিন না াঅভযা ডফগয বাগ ভয়াআ এাআ ভোয় গড় ২- ৩ গদন ধপরয একটা পলাগগন ডখাাজায জনয ফযয় কগয গকনত ভন ভত পলাগগন খাপরজ াাআ না গকনত এাআ ভয় এ একটা পলাগগন গরখা পরয় ডমত ২) াঅগন াঅপরগয ডকান পলাগগন ভগডপাাআ কযপরফন াপরনক ভয়াআ াঅনায িনদ ভত পলাগগন ডপররন গকনত াভানয গকি ডচি কযপররাআ াঅনায কাপরজ রাগপরফ এপরকষপরতর াঅনাপরক ডাআ পলাগগনগট ভগডপাাআ কযপরত জানপরত পরফ াপরনক ভয় পলাগগপরনয ডরখক ফযসত থাকপরত াপরযন এফাং াঅপরডট কযপরত াপরযন না এপরকষপরতর াঅগন ডাআ পলাগগনগট Aut hor Name ডচি কপরয গনপরত াপরযন তপরফ GPL Compatible license (httpgooglBOzm ) গঠক ডযপরখ াঅগন নযায় াগযগজনার পলাগগপরনয নতন বাডন ডফয কযপরত াপরযন ৩) ডকান পলাগগনপরক একসপরটনড কযপরত চান াপরনক ভয় একগট পলাগগন বার কাজ কপরয াাআপরটয জনয গকনত াঅগন াঅপরযা গকি গপচায ডমাগ কযপরত াপরযন ডমভন AJAX JQuery Effects াথফা াঅপরযা গকি রক রাগাপরত চান ডমন এগট ানয পলাগগপরনয াপরথ াভিে থাপরক তপরফ াফশযাআ GPL Compatible (httpgooglBOzm ) এয াপরথ াভিে পরত পরফ ৪) াঅগন মগদ াঅনায গথপরভয ফনপরমাগয ডকাড কযপরত চান এগট ভরত কাসটভ গথভ ডকাপরডয কথা ফরা পরয়পরি ডকান এগকসগসটাং গথপরভয ৫) াঅগন মগদ গথভ গডজাাআনায ন ৬) াঅগন মগদ টাকা উাজডন কযপরত চান পলাগগন ততযী কপরয ৭) াঅগন মগদ াঅনায াাআপরটয াআনকাগভাং গরঙক গফলড কযপরত চান

পলাগগপরনয ডপালডায সটরাকচায ডকভন পরফ কর ওয়াডডপরে পলাগগন wp-contentplugins গডপরযকটগযপরত াআনসটর য় গকি পলাগগপরন রধ একগট PHP পাাআর থাপরক গকনত াঅগভ ফ ভয় একগট ডপালডায কপরয পলাগগন ততগয কযায যাভড ডদফ পলাগগপরনয সটরাকচায পরত পরফ এযকভাঃ

11

Plugin Folder Name( াঅনায পলাগগন ডপালডায নাভ ডকান ডসপ ফা ডসপার কযাপরযকটায থাকা চরপরফ না) Main php file

js ডপালডায( জাবাগিে ফা Jquery file এয জনয) css ডপালডায( সটাাআরগট পাাআপররয জনয) phpinclude ডপালডায ( ানয php পাাআর)

একগট উদাযন ডদাআ পাাআপররয সটরাকচায ডকভন পরফ- litons-first-plugin

indexphp

js

css

includes

images

uninstallphp

পলাগগন ডডায

পলাগগপরনয ডডায িাড়া ডাআ পাাআর ডপালডাযগটপরক ওয়াডডপরে গচনপরত াযপরফ না পলাগগন ডডাযাআ পরচছ একভাতর েপরয়াজনীয় পাাংন মা ওয়াডডপরে দাফী কপরয ভাপরন াঅনাপরক পলাগগন ডরখায ররপরত PHP comment বলপরকয ভপরধয গকি াআনপযপরভন গদপরত পরফ মা এপরকফাপরয পাাআপররয েথপরভ াফসথান কপরয এখাপরন গকি কথা ফপরর যাগখ াঅগন মগদ াাআপরটয এাআও টাপরগডট কপরয পলাগগন ফানান তাপরর ডকান িপরভাআ াঅনায নাভ গদপরয় পলাগগন ফানাপরফন না ডমভনাঃ Litons Plugin এপরত এাআও ডত খাযা েবাফ পরড় গনপরচ উদাযন ডদয়া রাঃ ltphp

Plugin Name Litons Plugin পলাগগপরনয নাভ

Plugin URI httpliton-onlinecomplugin পলাগগপরনয URI Description This is a demo description পলাগগপরনয গফফযন Version 10 পলাগগপরনয বাডন Author Md Liton Arefin পলাগগন ডরখক

Author URI httpliton-onlinecom ডরখপরকয URI

gt

12

উপরযয িগফপরত ডদখন ওয়াডডপরেপরয ডযাপরফাপরডড াঅগভ পলাগগন ডডাপরয মা মা তথয গদপরয়গিরাভ তাাআ ডদখাপরচছ এটাাআ াঅনায োথগভক কাজ াঅগন রাাআপরনসও ডমাগ কযপরত াপরযন এবাপরফ- lt php

Copyright YEAR PLUGIN_AUTHOR_NAME (email PLUGIN AUTHOR

EMAIL)

This program is free software you can redistribute it andor modify

it under the terms of the GNU General Public License as published by

the Free Software Foundation either version 2 of the License or

(at your option) any later version

This program is distributed in the hope that it will be useful

but WITHOUT ANY WARRANTY without even the implied warranty of

MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE See the

GNU General Public License for more details

You should have received a copy of the GNU General Public License

along with this program if not write to the Free Software

Foundation Inc 51 Franklin St Fifth Floor Boston MA 02110-1301 USA

gt

পলাগগন াথ

একগট কভন কাজ র াঅনায পলাগগপরনয পাাআর এফাং ডপালডাযগপররাপরক ওয়াডডপরে াআনসটপররন গডপরযকটগযপরত ডযপায কযা াঅগন এাআ কাজগট রাআ বাপরফ কযপরত াপরযন- ডরাকার াবডায াথ াথফা সটানডাডড URL

13

ডরাকার াবডায াথাঃ ডরাকার াবডায াথ াঅনায কগমপউটাপরযয গডপরযকটগযয ভতাআ ডরাকার াবডায াথ াধাযনত ফযফায কযা য় মখন াঅনাপরক গনপরজয ডরাকার াবডাপরযয গকি পাাআর i ncl ude কযপরত য় একগট কভন েশন র- পলাগগন পাাআপররয াথ ডদখাপরনায গঠক িগত ডকানগট াঅনায পলাগগপরনয ডরাকার াথ ডদখাপরনায জনয াঅনাপরক plugin_dir_path() পাাংন ফযফায কযপরত পরফ plugin_dir_path() পাাংন পলাগগন গডপরযকটগযয গপগজকযার াথ একসিযাকট কপরয পাাআপররয নাভ ডথপরক ltphp plugin_dir_path($file) gt

Parameters

$file-(string)(required)- পলাগগন পাাআপররয নাভ এখন ডদগখ গকবাপরফ পলাগগন ডপালডাপরযয নাভ ডফয কযপরত য়-

ltphp

echo plugin_dir_path(__FILE__)

gt

এখাপরন গএাআচগ কনসটযানট __FILE__ ডক plugin_dir_path পাাংপরনয ভধয গদপরয় া কযারাভ এাআ পাাংন াবডায াথ ডদখাপরফ পলাগগন গডপরযকটগযয public_htmlwp-contentpluginsliton-plugin

একাআবাপরফ াঅগন মগদ plugin_dir_path() এাআ পাাংনপরক মগদ ডকান াফ- গডপরযকটগযয পাাআরপরক ডযপায কগয তাপরর গনপরচয ভত কপরয ডযপায কযপরত পরফ ltphp

echo plugin_dir_path(__FILE__)jsscriptsjs

gt

এাআ ডকাডগট গনপরচয ভত াথ ডদখাপরফ- public_htmlwp-contentpluginsliton-pluginjsscriptsjs

URL াথাঃ াঅপরযা গকি পাাংন াঅপরি ডমগপররা গদপরয় ওয়াডডপরেপরয URL ডদখাপরনা মায়

plugins_url() - পলাগগন গডপরযকটগযয পরযা URL ( ডমভনাঃ httpliton-onlinecomwp-contentplugins)

includes_url() - পরযা গডপরযকটগযয URL include কপরয ( ডমভন httpliton-onlinecomwp-includes)

14

content_url() - পরযা কপরনটনট গডপরযকটগয URL ( ডমভনাঃ httpliton-onlinecomwp-content )

admin_url() - পরযা এডগভন URL

( ডমভনাঃ httpliton-onlinecomwp-admin ) site_url() - কাপরযনট াাআট এয পরযা URL

( ডমভনাঃ httpliton-onlinecom ) home_url() - কাপরযনট াাআট এয পরযা ডাভ URL

( ডমভনাঃ httpliton-onlinecom )

াথ গনপরয় াঅপরযা গফসতাগযত ডদখপরত াপরযনাঃ httpcodexwordpressorgDetermining_Plugin_and_Content_Directories

httpcodexwordpressorgFunction_Referenceplugins_url

httpcodexwordpressorgFunction_Referenceplugin_dir_url

httpcodexwordpressorgFunction_Referenceplugin_dir_path

plugins_url() পাাংন াঅনায উততভ ফনধ পরত াপরয মখন াঅগন পলাগগন ডডপরবর কযপরফন

ltphp

plugins_url($path $plugin)

gt

Parameters

$path-(string)(optional)- গযপররগটব াথ URL $plugin- (string)(optional)- পলাগগন পাাআর মা াঅগন (__FILE__) এয ভাধযপরভ া কযপরত চান ডমভনাঃ ltphp

echo ltimg src=rdquoplugins_url(imagesiconpng__FILE)rdquogt

gt

এয পরযা URL পরফ ltimg src=rdquohttpliton-onlinecomwp-contentpluginsliton-pluginimagesiconpngrdquo gt

15

াধযায়- গতনাঃ রক

ওয়াডডপরে রক( Hook) গক ওয়াডডপরেপর রক ফরপরত াধাযনত add_action() াথফা add_filter() পাাংন ডক ডফাোয় এাআ রগট পাাংনপরক remove_action() াথফা remove_filter() গদপরয় ভপরি ডপরা মায় মগদও াপরনপরকয কাপরি রপরনগি ডম এাআ রগট পাাংপরনয ভপরধয ডকান াথডকয ডনাআ গকনত াঅপরর তা নয় গফযাট াথডকয াঅপরি এ রগট পাাংপরনয ভপরধয াঅগভ ভরত এাআ রগট পাাংন গদপরয়াআ গকি পলাগগন ফাগনপরয় ডদখাফ কাযন খফাআ গরতবিড এাআ রগট পাাংন মপপরকড বাপররাবাপরফ জানা

গপলটায রক (Filter Hooks)

গপলটায রক পাাংপরনয কাজ পরচছ কনপরটনটপরক ভগডপাাআ কযা গপলটায রক গদপরয় টাাআপরটর কনপরটনট াআতযাগদ ভগডপাাআ কযা মায় ডমভন টাাআপরটর এ ডকান টযাগ না থাকা গবগজটয কপরভপরনট ltgt t ag span t ag াআতযাগদ গদপরয় াাআপরটয ডরাঅউপরটয গযফতডন কপরয গদপরত াপরয ভাপরন ডকান কপরভপরনট মগদ এযকভ ht ml ডকাড াড কযা থাপরক তাপরর ডদখপরত খাযা রাগপরফ এগপররা াফশয এখন ওয়াডডপরে াপরটাপরভগটকযাগর কপরয গকনত এাআ কাজগপররা ভরত গপলটায রক গদপরয় কযা পরয় থাপরক গপলটায রক রাআ ধযপরনয add_filter() এফাং remove_filter() পাাংন খফ গরতবনড একগট কথা গপলটায রকপরক গযটানড কযপরত য় ltphp

add_filter($tag $function $priority $accepted_args)

gt

$tag- ডম রকপরক াঅগন ডযগজসটায কযপরত চান $function- ডম পাাংনপরক াঅগন াঅউটপরট গপলটায কপরয ডদখাপরত চান $priority- একগট াআগনটজায াংখযা মা াঅনায গপলটাযপরক িভানাপরয াজাপরফ মগদ ডকান

াংখযা না ডদয়া থাপরক তাপরর এগট ১০ গডপলট গপরপরফ থাপরক $ accepted_args- ডম াংখযক যাযাগভটায একগট পাাংন েি কযপরত াপরয গডপলট গপরপরফ

১ থাপরক াঅনায পাাংপরন ানততাঃ একগট যাযাগভটায থাকপরত পরফ মা গযটানড কযপরফ apply_filter($tag$value)

$tag- গপলটায রপরকয নাভ $value- রপরকয ভধয গদপরয় ডম যাযাগভটায া কযাপরফন

াঅভযা এখন একগট উদাযি ডদখফ ডমখাপরন টাাআপরটর এয েগতটা ওয়াডডপরক ফড় াপরতয াকষপরয রানতয কযফ গনপরচ একগট পলাগগন ডদখন- ltphp

Plugin Name Liton filter

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10

16

Author Md Liton Arefin

Author URI httpliton-onlinecom

add_filter(the_titleliton_modify_title)

function liton_modify_title($content)

return ucwords($content)

gt

পলাগগনগট এগকটপরবট কযায াঅপরগ ডাসট টাাআপরটর ডদখন-

এফায পলাগগনগট এগকটপরবট কযায পরয ডাসট টাাআপরটর ডদখন-

এাআ পলাগগনগট াঅভাপরদয াপরনক ভয়াআ কাপরজ রাগপরত াপরয কাযন াপরনপরকাআ াঅভযা এাআ পযভযাটগট িনদ কগয ঠাৎ কপরযাআ াঅভযা ডাসট টাাআপরটর গরখায ভয় ফড় াপরতয াকষয কযপরত বপরর ডমপরত াগয াঅভযা এাআ কাজগট খফ ডিাট একগট পলাগগন গদপরয় াপরটাপরভগটকবাপরফ কযপরত াগয

17

এখন াঅগভ গকি াগতগযি গফলয় গনপরয় াঅপররাচনা কযফ ডমগপররা ডভপরন চরপরর বগফষযপরতয জনয বার পরফ াঅগভ একগট পাাংন গরপরখগি- add_filter(the_titleliton_modify_title)

function liton_modify_title($content)

return ucwords($content)

একট গফসতাগযত ফরপরর াঅভযা the_title এয ভধয গদপরয় মা া কযফ তা গপলটায কযপরফ এখাপরন াঅভযা ucwords the_title এয ভধয গদপরয় া কপরযগি এফায াঅপরযা টড পভড ডদগখ add_filter(the_title ucwords)

তায ভাপরন পরযা পলাগগনগট পরফ এযকভ- ltphp

Plugin Name Liton filter

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_filter(the_title ucwords)

gt

গক খফ জ রাগপরি এখাপরন ফপরর যাগখ ডম ucwords এগট গযগব কযপরফ the_title মা া কযপরি এফাং াপরটাপরভগটকযাগর গযটানড কযপরফ the_title এ সতযাাং এখাপরন গযটানড এয দযকায ডনাআ এফায াঅগন মগদ গএাআচগ বাডন ৫৩ ফযফায কপরযন তাপরর গনপরচয ভত কপরয anonymous function ফযফায কযপরফন াঅনাযা জাবাগিে ডজকপরয়গয‟য াপরথ গযগচত এগট াপরনকটাাআ এযকভ ltphp

Plugin Name Liton filter

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_filter(the_title function($content)

return ucwords($content)

)

gt

বার কপরয ডদখন ডতা াথডকযটা ডকাথায় গনপরজ গনপরজ কাজ কযপরর এবাপরফ কযপরফন াফশযাআ এগট একট এডবানস ডরপরফপররয কাজ মগদও পলাগগন ফানাপরনায ডকষপরতর এগট এখপরনা াঅদড নয় কাযন াপরনপরকযাআ গএাআচগ বাডন এখপরনা ৪ এাআ ডথপরক ডগপরি সতযাাং এাআ িগতগট একানতাআ গনপরজয জনয

18

এযাকন রক (Action Hooks) Action Hooks পরচছ ড ভসত রক ডমগপররা ওয়াডডপরেপরয রাাআপ াাআপরকর গনপরয় কাজ কপরয Action Hooks রাআ ধযপরনয add_action() remove_action() এাআ রকগপররা কাজ কপরয মখন ডকান ডাসট ডব কযা য় ডাসট াফগর কযা য় কপরভনট কযা য় ডকান বলগ ডাপরসট াথফা ওপরয়ফাাআপরট ডডাযপটায ডজনাপরযট য় এগপররা েগতগট একগট একগট কপরয Actions মখন াআউজায তায এডগভগনপরসটরটয ডভনপরত েপরফ কপরয এগপররা ফাআ Action Hooks এখাপরন াঅভযা কনপরটনটপরক গপলটায কযগিনা াঅভযা ওয়াডডপরেপরয গনগদডষট পাাংনগপররাপরক রক কপরয কাজ কযগি াঅভযা একগট উদাযন ডদগখ- ltphp

Plugin Name Liton Action

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(wp_footer function($content)

echo Hello This is Liton Arefin

)

gt

াঅনাপরদয সগফধাপরথড ডফাোয জনয গনপরচয ভত কপরয গরখন- ltphp

Plugin Name Liton Action

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(wp_footer liton_footer_action)

function liton_footer_action($content)

echo Hello This is Liton Arefin

gt

াঅভযা খফ ডিাট একগট উদাযন গদপরয় ডদখরাভ ডম action রক গকবাপরফ কাজ কপরয গনপরচ ডদগখ াাআপরট ডকভন ডদখায়-

19

উপরযয িগফপরত ডদখন াঅগভ Hello This is Liton Arefin এাআ রাাআনগট গেনট কপরযগি এফাং তা পটাপরযয ফাভ াপর এপরকফাপরয গনপরচ ডদখাপরচছ এফায ডাড ডকাড এ ডদগখ াঅপররাআ এয গজন টা ডকাথায় াঅপরি

উপরয ডদখন পটাপরযয গঠক গনপরচাআ রাাআনগট ডদখাপরচছ এফায াঅপরযকগট ফাসতফ এফাং খফাআ গরতবনড উদাযন ডদগখ এাআ পলাগগনগটয কাজ পরফ মখনাআ ডকান কপরভনট ডাসট পরফ তখনাআ এডগভনপরক ডভাআর াঠাপরফ ডম নতন কপরভনট ডাসট পরয়পরি মগদও ওয়াডডপরে এাআ কাজগট কপরয থাপরক াঅভযা এাআ কাজগট ভযানয়ারী কপরয ডদগখ ltphp

Plugin Name Liton Comments Mail

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(comment_post function()

$email= get_bloginfo(admin_email)

wp_mail(

$email

New Comment Posted

A new comment has been left on your blog

)

)

gt

এখাপরন comment_post নাপরভয রপরক একগট ডবগযপরয়ফর $email ndashএ এডগভন ডভাআরপরক ডসটায কপরযগি মাপরত কপরয ডাাআনাগভক বাপরফ ড ডমপরকান াাআপরটয এডগভন ডভাআরপরক গডপরটকট কযপরত াপরয তপরফ এপরকষপরতর মগদ bloginfo(admin_email) ফযফায কযা ত তাপরর এডগভন ডভাআরপরক গডপরটকট কযত গকনত get_bloginfo(admin_email) ফযফায কযায পপরর াঅভযা াআপরভাআর বযারগটপরক গযটানড কপরয ডসটায কযগি এফাপরয ওয়াডডপরেপরয গফলটাআন ডভাআর পাাংন wp_mail(emailsubjectmessage) এয ভত কপরয গরপরখগি বার কপরয ডদখন পলাগগনগট এগকটপরবট কপরয ডদখন াঅনায াাআট মগদ ানরাাআপরন থাপরক তাপরর গনপরজাআ একগট কপরভনট কপরয ডদখন াঅনায এডগভন ডভাআপরর একগট ডভাআর চপরর ডগপরি

20

াধযায়- চাযাঃ পলাগগন ডকাগডাং সটযানডাডড

পলাগগন এগকটপরবনগডএগকটপরবন পাাংন াঅগন মখন একগট পলাগগনপরক এগকটব কপরযন তখনাআ এগকটপরবন পাাংন গিগায য় এাআ পাাংনপরক register_activation_hook() ফপরর ltphp register_activation_hook($file $function) gt

Parameters

$file- োাআভাগয পলাগগন পাাআপররয াথ

$function- ডম পাাংনগট গিগায পরফ মখন পলাগগন এগকটপরবট য় ডমভনাঃ- ltphp

register_activation_hook(__FILE__ bdquoliton_plugin_install‟)

function liton_plugin_install()

do something cool stuff

gt

াঅভযা একগট পলাগগন ফানাাআ এবাপরফ-

ltphp

Plugin Name Liton Version

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

register_activation_hook(__FILE__ liton_plugin_install)

function liton_plugin_install()

If(version_compare(get_bloginfo(version)51lt))

deactivate_plugins(basename(__FILE__))

deactivate our plugin

gt

মখন াঅভযা পলাগগন গডএগকটপরবট কগয তখন পলাগগন গডএগকটপরবন পাাংন কর য়

21

ltphp

register_deactivation_hook ($file $function) gt

-

ltphp

register_deactivation_hook (__FILE__ bdquoliton_plugin_install‟)

function liton_plugin_install()

do something

gt

াঅপরযকগট গরতবনড গফলয় র াঅনাআনসটর ওয়াডডপরে াঅনাপরক পলাগগন াঅনাআনসটর এয জনয রগট ান গদপরচছ- uninstallphp file and the uninstall hook

uninstallphp

এগট ডভাটাভগট েনপরমাগয িগত এ ডভথড ফযফায কযায জনয াঅনাপরক uninstallphp নাপরভ একগট পাাআর ততগয কযপরত পরফ াঅনায পলাগগন গডপরযকটগযপরত পাাআরগট গনপরচয ভত পরফ- ltphp

মগদ ওয়াডডপরে এগকসট কযায াপরথ াঅনাআনসটর কর কযা না য় If(defined(bdquoWP_UNINSTALL_PLUGIN‟))

exit()

delete_option(bdquoliton_plugin_options‟)

াগতগযি ান এফাং কাসটভ ডটগফর ভপরি ডপরন gt

Uninstall Hook

গিতীয় িগত র Uninstall Hook মগদ াঅগন ডকান পলাগগনপরক গডগরট কযপরত চান এফাং uninstallphp পাাআর না থাপরক তাপরর এাআ রক এগকসগকউট য়(মগদ থাপরক) ltphp

register_uninstall_hook($file$function)

gt

22

ডকাগডাং সটযানডাডড পলাগগন ফানাপরফন গকনত াঅনায ডকাড ডকভন পরফ গচনতা াঅপরত াপরয ওয়াডডপরে াঅনায জনয একগট সটযানডাডড গদপরয় গদপরয়পরি মা াঅনাপরক ওয়াডডপরেপরয জনয পলাগগন গরখপরত ডগপরর পপররা কযপরতাআ পরফ httpcodexwordpressorgWordPress_Coding_Standards

ডফগক একগট উদাযন গদরাভ গনপরচ- ltphp

Short description

Longer more detailed description

param type $varname1 Description

param type $varname2 Description

return type Description

function boj_super_function( $varname1 $varname2 )

do function stuff

gt

গএাআচগ সটানডাডড াঅভযা াপরনপরকাআ গএাআচগয টড পভড(lt gt) ফযফায কগয এটা মপিডরপর ফজডন করন কাযন াপরনক ডাগসটাং ডকামপাগনপরতাআ এটা গডপলট গপরপরফ ফনধ কপরয ডদয়া থাপরক সটযানডাডড টযাগ ফযফায করন(ltphp gt)

এগকউএর ডসটটপরভনট পলাগগন ততগযয ভয় াঅনাপরক াপরনক ভয়াআ ডাটাপরফ ডথপরক াআনপযপরভন গনপরত পরত াপরয াপরনক রাাআপরনয ডকাড গরখপরত পরত াপরয ডপরকষপরতর বার েযাকগট পরচছ এগকউএর এয কভানড গপররা ফড় াপরতয াকষপরয ডরখা ডমভন- SELECT username FROM table1 WHERE status = active

23

াধযায়- াাচাঃ ওয়াডডপরেপরয াপরথ াআগনটপরেন

ডভন এফাং াফ ডভন ততগয করন াঅভযা াপরনক পলাগগপরনাআ ডদগখ ডম একগট ডভন াঅাআপরটভ গপরপরফ াঅভাপরদয ডযাপরফাপরডড ডদখপরত াাআ এফাং ডাআ ডভনপরত গিক কযপরর ডগটাং ডজ াঅপর ডখাপরন পলাগগপরনয মাফতীয় ডগটাং গদপরয় াঅভযা পলাগগন কনগপগায কগয এফায এাআ চভৎকায কাজগট কযফ াঅভযা

ট ডরপরবর ডভন েথভ িগত পরচছ একগট ট ডরপরবর ডভন ততগয কযা ডমগট াঅভযা ডযাপরফাপরডড ডভন গরপরসট একগট নতন াঅাআপরটভ গপরপরফ ডমাগ কযফ ডভন ততগয কযায জনয াঅনাপরক add_menu_page( ) পাাংন ফযফায কযপরত পরফ ltphp

add_menu_page( page_title menu_title capability menu_slug functionicon_url

position )

gt

add_menu_page() পাাংন গনপরচয যাযাগভটাযগপররা াপরাটড কপরয page_title- াঅনায ডপরজয টাাআপরটর গক পরফ lttitlegt tag এয ভপরধয menu_title- ডযাপরফাপরডড াঅনায ডভনয নাভ capability- ফডগনমন capability রাগপরফ একগট ডভন গবউ পরত menu_slug- সলাগ নাভ মা ডভনপরক ডযপায কপরয- তপরফ এগট াআউগনক পরত পরফ function- একগট ডপরজয কনপরটনট ডদখপরত ডম পাাংন কর কযা য় icon_url- একগট কাসটভ াআপরভজ গরঙক ডভন াঅাআকন ডদখাপরনায জনয position- ডভনয গজন াডডায ডমখাপরন এটা ডদখাপরনা পরফ

এফায াঅভযা একগট ফাসতফ উদাযন ডদখফ- ltphp

Plugin Name Liton Menu

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action( admin_menu liton_menu)

function liton_menu()

24

create custom top-level menu

add_menu_page( Liton Menu Page Liton Menu Page manage_options

__FILE__ liton_menu_settings_page plugins_url( imageswp-logopng

__FILE__ ) )

gt

াঅভযা একগট ট ডরপরবর ডভন ততগয কযরাভ ডদখন ডযাপরফাপরডড ডকভন ডদখায়-

Liton Menu Page নাপরভ একগট ডভন ততগয পরয় ডগপরি এফাপরয াঅভযা াফপরভন কযফ ভাপরন Liton Menu Page এয গনপরচ গকি ডগটাং ডভন(মগদ েপরয়াজন য়) াফ ডভন ডযগজসটায কযায জনয add_submenu_page( ) পাাংন ফযফায কযা য় ltphp

add_submenu_page( parent_slug page_title menu_title capabilitymenu_slug

function )

gt

parent_slug- ডভন সলাগ মা াঅভযা াঅপরগ গডপাাআন কপরযগি menu_slug- মা ডভনপরক াফপরভনপরত ডযপায কযপরফ ফাগক পাাংনগপররা াঅপরগয ভতাআ

এফায াফপরভনয জনয গকি াগতগযি ডকাড ডমাগ কগয create submenu items

add_submenu_page( __FILE__ About My Plugin About manage_options

__FILE___about liton_menu_about_page )

add_submenu_page( __FILE__ Help with My Plugin Help

manage_options

__FILE___help liton_menu_help_page )

add_submenu_page( __FILE__ Uninstall My Plugin Uninstall

manage_options

__FILE___uninstall liton_menu_uninstall_page )

25

পরযা ডকাডগট পরফ এযকভ- ltphp

Plugin Name Liton Menu

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action( admin_menu liton_menu

)

function liton_menu()

create custom top-level menu

add_menu_page( Liton Menu Settings Page Liton Menu Page

manage_options __FILE__

liton_menu_settings_page

plugins_url( imageswp-logopng __FILE__ ) )

create submenu items

add_submenu_page( __FILE__ About My Plugin About manage_options

__FILE___about liton_menu_about_page )

add_submenu_page( __FILE__ Help with My Plugin Help

manage_options

__FILE___help liton_menu_help_page )

add_submenu_page( __FILE__ Uninstall My Plugin Uninstall

manage_options

__FILE___uninstall liton_menu_uninstall_page )

gt

গনপরচ ডদখন াফপরভনগপররা ততগয পরয় ডগপরি-

26

ডভনপরক াঅপরগয ডভনয াপরথ মি কযা এফায াঅগ গিতীয় িগতপরত মগদ াঅনায পলাগগপরনয একগট ভাতর ডজ থাপরক একগট ভাতর ডপরজাআ াঅনায কর ডগটাং পরয় মায় তাপরর এাআ িগত েন করন ডমভন ডয়াগযাং াাআটগপররায জনয রধ াঅনায াঅাআগডপযানপরপরজয াঅাআগড দযকায য় এযকভ পলাগগন এধযপরনয পলাগগপরনয জনয াঅনায াগতগযি ডভন ততগয কযায দযকায ডনাআ ফযাং এপরত কপরয াআউজায গফযি ডফাধ কযপরত াপরযন এ ধযপরনয পলাগগনগপররা ডগটাং এয াফপরভন গপরপরফ থাপরক add_options_page() এাআ পাাংন গদপরয় এফ ডভন ডযগজসটায কযা য় ltphp

add_options_page( page_title menu_title capability

menu_slug function)

gt

এফায চরন এযকভ একগট ডভন ততগয কগয- ltphp

Plugin Name Liton Sub Menu

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action( admin_menu liton_submenu)

function liton_submenu()

create a submenu under Settings

add_options_page( Liton Menu Settings Page Liton Menu Page

manage_options __FILE__

liton_menu_settings_page)

27

gt

াফপরভন ততগয পরয় ডগপরি চরন ডদগখ ডযাপরফাপরডড ডকভন ডদখায়-

এপরকফাপরয গনপরচয গদপরক ডদখন Liton Menu Page নাপরভ একগট ডভন ততগয পরয়পরি

উাআপরজট ততগয কযা উাআপরজট ততগয কযায জনয ওয়াডডপরে WP-Widget িা গদপরয় ততগয কযা য় উাআপরজট এয একগট পযভযাট ডদখন গনপরচ ltphp

class My_Widget extends WP_Widget

function My_Widget()

processes the widget

function form($instance)

displays the widget form in the admin dashboard

function update($new_instance $old_instance)

process widget options to save

function widget($args $instance)

displays the widget

gt

28

উাআপরজট ডযগজসটায কযায জনয widget_init() পাাংনপরক রক কযা য় চরন একগট উাআপরজট ততগয কগয- ltphp

Plugin Name Liton Widget

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

class Messager extends WP_Widget

function __construct()

$params=array(

description =gtDisplay message to readers

name =gt Message

)

parent__construct(Messager $params)

public function form()

public function widget()

add_action(widgets_initliton_register_message)

function liton_register_message()

register_widget(Messager)

gt

29

খফ াধাযন একগট উাআপরজট পলাগগন এগট াঅভযা াআউজাযপরদযপরক একগট ডভপরজ ডদখাপরফা াাআডফাপরয ডটাাআ কযায ডচষটা কযগি এখন পলাগগনগট এগকটপরবট কপরয ডদগখ-

াঅভাপরদয উাআপরজটগট ডদখাপরচছ এফায াঅপরযা গকি পাাংনার কাজ কগয এগট মগদ াাআডফাপরয ডরাগ কপরয ডদন তাপরর ডকান কাজ কযপরফ না কাযন াঅভযা এখপরনা গকিাআ কগযগন পভড পাাংপরন গকি কাজ কগয মা উাআপরজট টাাআপরটর গপরপরফ ডদখাপরফ- public function form($instance)

extract($instance)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title)gtgtTitle ltlabelgt

ltinput

class=widefat

id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt

value=ltphp if(isset($title)) echo esc_attr($title) gt gt

ltpgt

ltphp

াঅভযা উপরয class=widefat ফযফায কপরযগি এাআ িা ফযফায কযায কাযপরন পভড এয াআনট গপলডগট াপরনক সনদয পরয়পরি

30

মগদ এাআ িা ফযফায না কগয তাপরর ডকভন ডদখাপরফ গনপরচ ডদখন-

াঅভাপরদয উাআপরজট পলাগগনগটয ডকাড গনপরচ ডদওয়া র ltphp

Plugin Name Liton Widget

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

class Messager extends WP_Widget

function __construct()

$params=array(

description =gtDisplay message to readers

name =gt Message

)

parent__construct(Messager$params)

31

public function form($instance)

extract($instance)

print_r($instance)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title)gtgtTitle ltlabelgt

ltinput

class=widefat

id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt

value=ltphp if(isset($title)) echo esc_attr($title) gt gt

ltpgt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(description)gtgtDescription

ltlabelgt

lttextarea

class=widefat

rows=10

id=ltphp echo $this-gtget_field_id(description) gt

name=ltphp echo $this-gtget_field_name(description) gtgtltphp

if(isset($description)) echo esc_attr($description) gtlttextareagt

ltpgt

ltphp

public function widget($args$instance)

extract($args)

extract($instance)

echo $before_widget

echo $before_title$title$after_title

echo ltpgt$descriptionltpgt

echo $after_widget

add_action(widgets_initliton_register_message)

function liton_register_message()

32

register_widget(Messager)

gt

এফায াঅভযা ডযাপরফাডড ডথপরক একগট ডভপরজ ডদফ গবগজটযপরদযপরক-

াঅভযা এাআ উাআপরজটগট ডাাআনাগভক বাপরফ কপরযগি কাযন এখাপরন lth2gt lth3gt lth4gt এ ধযপরনয ডকান টযাগ াঅভযা ফযফায কগযগন াঅভযা গথভ ডডপরবর কযগিনা সতযাাং এ কাজগট াঅভাপরদয ানযবাপরফ কযা দযকায গির এগট গথভ ডডপরবরায ডদগখপরয় ডদপরফন ডম ডকভন টযাগ পরফ াাআডফাপরয াাআপরটয াাআডফাপরয ডকভন ডদখায় তা ডদখন- াঅভযা রগট গথপরভ এগট ডটসট কপরয ডদখফ েথভগট টপরয়গনট াআপররপরবন

33

এফায াঅপরযকগট গথপরভ ডদগখ-

34

াধযায়- িয়াঃ পলাগগন পাাংন

গকি ডফগক পাাংন __() পাাংন

__() পাাংনগট গএাআচগপরত াঅনায ডটকসটপরক ডযগড কপরয িানসপররন এফাং গযটানড কপরয উদাযন গপরপরফ াঅগন একগট বযারপরক __() পাাংপরনয ভপরধয ডবগযপরয়ফর গদপরয় assign করন ভপরন যাখপরফন এাআ পাাংনগট রগট াঅনডাযপরিায(_) গদপরয় গগঠত একগট নয় ltphp

$text=__(bdquoWordpress is a wonderful publishing platform‟‟liton_plugin‟)

gt

_e() পাাংন _e() পাাংনগট াঅনায ডটকসবপরট ডরাকারাাআজ কপরয এটা গএাআচগপরত echo এয ভত কাজ কপরয ডকান ডটকসটপরক গিপরন ডদখাপরনায জনয এফায একট ভজা কগয মা রপরক ডদপরখগি াঅপরগাআ- _e() পাাংনগট গদপরয় াঅপরগয পলাগগনগট এগডট কযফ ltphp

Plugin Name Liton Action

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(wp_footer liton_footer_action)

function liton_footer_action()

Output the translated text

_e( This site runs off the coolest platform ever ampmdash

WordPress

liton-plugin )

gt

35

এফায াঅউটট ডদগখ

esc_attr__() পাাংন এাআ পাাংনগট esc_attr() এয ভত এগট এাআচগটএভএর এগিগফউটপরক escape কপরয াঅভযা এফায esc_attr__() এফাং __() এাআ রগট পাাংনপরক একগট কপরয পলাগগন ততগয কযফ ltphp

Plugin Name Liton Esc Attr

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

A function that returns a link to the sites terms of service

page

function liton_terms_of_service_link()

return lta href=httpliton-onlinecomtos title=

esc_attr__( Visit the Terms of Service page boj-plugin ) gt __( Terms of

Service liton-plugin ) ltagt

Display the output of the liton_terms_of_service_link()

function

echo liton_terms_of_service_link()

gt

পলাগগনগটয াঅউটট ডদখন-

36

এযকভ াঅপরযা গকি পাাংন াঅপরি ডমগপররা াঅনাযা ডদপরখ ডনপরফন াআনটাযপরনট ডঘপরট

esc_html__() Function

esc_attr() Function

esc_url() Function

esc_js() Function

esc_html() Function

esc_attr_e() Function

esc_html_e() Function

_x() Function

_ex() Function

esc_attr_x() Function

esc_html_x() Function

_n() Function

_nx() Function

_n_noop() Function

_nx_noop() Function

Translation

bull Poedit httppoeditnet

bull GlotPress httpglotpressorg

bull Launchpad httpstranslationslaunchpadnet

bull Pootle httppootlelocamotionorg

bull KBabel httpi18nkdeorg

bull GNU Gettext httpgnuorgsoftwaregettext

GlotPress এখন ওপরয়ফ ডফড টর গপরপরফ ফযফায কযা পরচছ ওয়াডডে েপরজপরকটয ডিপরন একজন াথফা গটপরভয জনয িানসপররগটাং পটওয়যায গপরপরফ

37

াধযায়- াতাঃ পলাগগন গগকউগযগট

গগকউগযগট কগমপউটাপরযয বালায় ldquoগগকউগযগটrdquo ভাপরন বীগতকয একগট বদ ডমভন Cross Site

Scripting(XSS) Cross Site Request Forgery(CSRF) SQL Injection Privilege

Escalation Vulnerabilities এফাং Holes রফডর ডকাড একগট াবডাপরযয সযকষায জনয রভকীয কাযন পরত াপরয

পলাগগপরনয গগকউগযগট গক াঅনায পলাগগনগট ডমন গগকউয য় vulnerabilities data integrity এফাং reliability ডথপরক

াঅনায পলাগগনপরক গক গগকউগযগট ডদপরফন ওয়াডডপরে এনবায়যনপরভপরনট াঅনায পলাগগনপরক গগকউগযগট ডদয়া খফ কগঠন কাজ নয় এফাং খফ ভয় াপরকষ গফলয়ও নয় ওয়াডডপরেপরয গনজসব গকি পাাংন এপরকষপরতর াঅনাপরক খফাআ াাময কযপরফ

াআউজায াযগভন াঅভযা াপরনক পলাগগন াআনসটর কযায পরযাআ ডদপরখগি ডম মখনাআ এডগভন যাপরনর এ েপরফ কযপরত মাাআ তখন একগট এযয ডভপরজ াঅপর ডভপরজগট গনপরচয ভত-

ডরখা াঅপরি- You do not have sufficient permissionshellip এটা গনশচয়তা ডদয় ডম ডমপরকান এযাকন ীভাফি থাপরক গনগদডষট গকি যাাআট গদপরয় ওয়াডডপরেপরয একগট কভন পাাংন র current_user_can() একগট উদাযন ডদাআ-

38

ltphp

Capability

if ( current_user_can(install_plugins) )

wp_die( Insufficient permissions )

Role

if( current_user_can(editor) )

wp_die( You cannot edit this setting )

gt

খফ তাড়াতাগড় াঅগন এাআ current_user_can() পাাংন ডচক কযপরফন না কাযন এটা গনবডয কযপরফ get_currentuserinfo() এাআ পাাংপরনয উপরয াঅয এয ফযফাপরয ীভাফিতা াঅপরি এটা একগট পলাপরগফর পাাংন(pluggable function) াঅয এয ডরাপরকন পরচছ wp-

includespluggablephp মা পলাগগন এগকটব ফায য ডরাড য়

Nonces

ডকউ এগটপরক াঅফায Nonsense( গনপরফডাধ) বাফপরফন নাএগট ওয়াডডপরেপরয বালায় Nonces কগমপউটাপরযয বালায় nonce ফা cryptographic nonce পরচছ ldquonumber used once rdquo এটা ডিাট এফাং সপষট গকি য যানডভ গসটরাং ডমভন- াওয়াডড মা গকি গনপরদড কপরয Nonce গপরডন গপলড পভডপরক Retrieve ফা display কপরয-

একজন ওয়াডডপরে াআউজায ডমপরকান একগট এযাকন (delete update save and such) একগট াফপরজকট(একগট ডাসট পলাগগন ডগটাং াআতযাগদ) ২৪ ঘনটায একগট ভয় ডিভ

ডমভন ডাসট 50 গডগরট কযপরফন াঅনায ওয়াডডপরে বলগ ডথপরক তাপরর াঅনায গরঙকগট পরফ এযকভ- httpexamplecomwp-admin

postphppost=43ampaction=trashamp_wpnonce=83a08fcbc2

এখাপরন 83a08fcbc2 এগট র nonce মা ২৪ ঘনটা সথায়ী থাপরক রধভাতর এগট মগদ াঅনায িাযা ফযফরত য় এফাং গডগরট য় ডাসট 50 মখন াঅগন গরপরঙক গিক কপরযন ফপরচপরয় গযতবনড র ডম Nonce ডকান malicious াআউজায ফেপরত াপরযনা এফাং গঠক গরঙক িাড়া nonce এযয ডপরজ চপরর মায় ডমখাপরন াযগভন থাপরক না াঅপরযা গফসতাগযত ডদখন httpcodexwordpressorgWordPress_Nonces

39

Nonce URL ততগয এফায চরন াঅপরগয উদাযন ডথপরক Nonce URL ততগয কগয একগট ডাসট গডগরট কযায জনয wp_nonce_url() পাাংন ফযফায কযা য় ltphp

$url = wp_nonce_url( $url $action )

gt

েথভ যাযাগভটায $url পরচছ গসটরাং URL এপরডর এয মাপরক াঅগন কপরয়যী গসটরাং এয Nonce কযপরত চান াফযফহরত পলাগগপরনয গডগরট গরঙক এযকভ থাপরক- httpexamplecomwp-admineditphppage= liton

_utagsampliton_action=deleteampid=6

এখাপরন ডদখন যাযাগভটায liton_action এফাং এয টযাগ াঅাআগড গিতীয় যাযাগভটায পরচছ $action একগট গসটরাং মা াঅগন একগট াফপরজকট এয জনয একগট action ততগয কযপরফন উপরয ডদখরাভ delete এযাকন এয টযাগ াঅাআগড 6 সতযাাং $action যাযাগভটায পরত াপরয bdquoliton_utags-delete_tag6‟ গনপরচ ফাসতফ উদাযন ডদগখ- ltphp

$delete_url = add_query_arg(array( liton _action=gtdeleteid=gt$id) )

$nonced_url = wp_nonce_url( $delete_url bdquoliton _utags-delete_tag$id )

gt

lta href=ltphp echo $nonced_url gtgtdeleteltagt

এাআ টযাগগট পরফ গডগরট গরঙক এখাপরন add_query_arg() পাাংন ফযফায কযা পরয়পরি মা কাপরযনট URL ডক এযাপরয যাযাগভটায এয ভপরধয যাপরখ ানযবাপরফ ফরপরর এগট ডমাগ কপরয এযকভাঃ liton_action=deleteampid=6 amp liton_action=deleteampid=6

Nonce Form ততগয Nonce পভডপরকও ডোপরটকট কপরয wp_nonce_field() পাাংপরনয ভাধযপরভ ltphp

wp_nonce_field( $action $name $referer $echo ) gt

$action ( string) (optional) - action নাভ াআউগনক identifier optional

গকনত recommended $name (string) (optional) ndash গপরডন গপলড পভড ডবগযপরয়ফর নাভ $referer (boolean) (optional) ndash গডপলট গপরপরফ true থাপরক ডমখাপরন গপলড

ডবগরপরডন এয দযকায য়

40

$echo (boolean) (optional) - গডপলট গপরপরফ true থাপরক ডমখাপরন াঅউটট ডদখাপরনায ফা গপরডন পভড গপলড গযটানড কযায জনয দযকায য়

পপরভড াঅনায action এয নাভ গদন ltform method=postgt

lt-- some inputs here --gt

ltphp wp_nonce_field(name_of_my_actionname_of_nonce_field) gt

ltformgt

াঅভযা একগট পলাগগন ফানাপরফা ডমখাপরন াফযফরত টযাগগপররাপরক াঅভযা ভযানয়াগর গডগরট ফা গযপরনভ কযপরত াযফ এগট একট ফড় গকনত াপরনক গফলয়াআ াঅপরগাআ াঅপররাচনা কযা পরয়পরি ডদখপররাআ ফেপরত াযপরফন একগট ফাসতফধভডী উদাযন গনপরচ গদরাভ- ltphp

Plugin Name Liton Unused Tags

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add an entry for our option page to the Posts menu

add_action(admin_menu liton_utags_add_page)

function liton_utags_add_page()

add_posts_page( Unused Tags Unused Tagsmanage_optionsliton_utags

liton_utags_option_page )

Catch any liton_action parameter in query string

add_action( admin_init liton_utags_do_action )

Proceed to requested liton_action if applicable

function liton_utags_do_action()

if( isset( $_REQUEST[liton_action] ) )

return

if( current_user_can( manage_options ) )

wp_die( Insufficient privileges )

41

$id = $_REQUEST[id]

$action = $_REQUEST[liton_action]

if( $action == done )

add_action( admin_notices liton_utags_message )

return

check_admin_referer( liton_utags-$action_tag$id )

switch( $action )

case rename

$newtag = array( name =gt $_POST[name] slug =gt

$_POST[name] )

wp_update_term( $id post_tag $newtag )

break

case delete

wp_delete_term( $id post_tag )

break

wp_redirect( add_query_arg( array( liton_action =gt done )

) )

Admin notice

function liton_utags_message()

echo ltdiv class=updatedgtltpgtAction

completedltpgtltdivgt

Draw the tag management page

function liton_utags_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtUnused Tagslth2gt

ltphp

if( $tags = liton_utags_find_orphans() )

echo ltpgtYou currently have count( $tags ) unused

tagsltpgt

echo ltolgt

foreach( $tags as $tag )

42

$id = $tag-gtterm_id

$name = esc_attr( $tag-gtname )

$delete_url= add_query_arg(

array(liton_action=gtdeleteid=gt$id) )

$nonced_url= wp_nonce_url( $delete_url

liton_utags-delete_tag$id )

gt

ltligt

ltform action= method=postgt

ltphp wp_nonce_field( liton_utags-rename_tag$id )

gt

ltinput type=hidden name=liton_action

value=rename gt

ltinput type=hidden name=id value=ltphp echo

$id gt gt

ltinput type=text name=name value=ltphp echo

$name gt gt

ltinput type=submit value=Rename gt or

lta href=ltphp echo $nonced_url gtgtdeleteltagt

this tag

ltformgt

ltligt

ltphp

else gt

ltpgtYou have no unused tagsltpgt

ltphp endif gt

ltolgt

ltdivgt

ltphp

Find unused tags return them in an array

function liton_utags_find_orphans()

global $wpdb

$sql = SELECT termsterm_id termsname FROM

$wpdb-gtterms terms

INNER JOIN $wpdb-gtterm_taxonomy taxo

ON termsterm_id=taxoterm_id

WHERE taxotaxonomy = post_tag

43

AND taxocount=0

return $wpdb-gtget_results( $sql )

gt

ডযাপরফাপরডড এাআ পলাগগপরনয ডভন াওয়া মাপরফ ডাসট এয াফপরভন গপরপরফ গনপরচ ডদখন-

এফায পলাগগন ডভনপরত গিক কপরয ডদগখ পলাগগপরনয ডবতপরযয কাজ-

উপরয ডদখন াঅগভ একগট টযাগ ততগয কপরযগিরাভ l i নাপরভ এগট এখাপরন ডদখাপরচছ াঅগভ চাাআপরর এগট এগডট ফা গডগরট কযপরত াগয এফায গডগরট গরঙক এ ভাউপরয কাডয ডযপরখ গনপরচ গরঙক ডদখন ফা গডগরট করন একগট টযাগ াঅভায এখাপরন URL গট এযকভ httplocalhostdev-litonwp-

admineditphppage=liton_utagsampliton_action=doneampid=4amp_wpnonce=30a44b7

986

এখাপরন াঅগভ liton_action=done ফযফায কপরযগি Nonces এয পাাংনগপররায নাভ গনপরচ গদরাভ াঅনাযা ডদপরখ গনপরফন াআনটাযপরনট ডথপরক wp_nonce_field()

wp_nonce_url()

wp_verify_nonce()

wp_create_nonce()

44

check_admin_referer()

check_ajax_referer()

ডাটাপরফ াঅনাযা ডমপরত গএাআচগ গনপরয় কাজ কপরযন এগকউএর ডাটাপরফ এয াপরথ ফাাআ কভপরফী গযগচত এয গনটযাকস গপররা ডভাটাভগট ফায জানা একাআ বাপরফ াপরনপরকাআ ওয়াডডপরেপরও ডাটাপরফ ডকাড গরপরখন এটা ডকাগডাং এয জনয খাযা গদক াঅগভ নযভার গএাআচগ- এগকউএর ডকাড এয উদাযন গদগচছ- ltphp

$sql=rdquoINSERT INTO $wpdb-gtposts(post_title) VALUES(bdquo$title‟)rdquo

$wpdb-gtquery($sql) gt

এফায ওয়াডডপরেপরয সটযানডাডড ডকাগডাং গপরসটভ ডদখন- ltphp

$wpdb-gtinsert($wpdb-gtposts

array(bdquopost_title‟ =gt $title)

array(bdquos‟)

)

gt

ডাটাপরফ গগকউয কযায জনয াঅপরডট াাপরযন ডদখাফ- গনপরচয ডকাডগট খাযা েযাকগট ltphp

$wpdb-gtquery(ldquoUPDATE $wpdb-gtposts SET post_title=‟$newTitle‟ WHERE

ID=$my_idrdquo )

gt

উপরযয ভত কপরয না গরপরখ গনপরচয ভত কপরয গরখন- ltphp

$wpdb-gtupdate($wpdb-gtposts

Array(bdquopost_title‟ =gt‟$newTitle‟)

Array(bdquoID‟ =gt$my_id

)

gt

ানর বাপরফ ানযানয াাপরযন গপররা গরখপরফন

45

াধযায়- াঅটাঃ ডরাকারাাআপরজন এফাং Set t i ngs API

ডরাকারাাআপরজন ডরাকারাাআপরজন একগট গরতবনড গফলয় এয পাাংনগপররা র- load_theme_textdomain()

load_plugin_textdomain()

উদাযন- ltphp $var=__(bdquoHello‟‟domain‟) gt

ltphp _e(bdquoHello‟‟domain‟) gt

গফসতাগযত গনপরচয গরপরঙক ডদখন- httpcodexwordpressorgI18n_for_WordPress_Developers

ডগটাং API

ডগটাং API পরচছ াঅগন গকি ান ততগয কযপরফন মা াআনটাযনার বাপরফ াঅনায পলাগগপরন এপলাাআ পরফ মখন াঅগন াআউজায- গডপাাআন ান ততগয কযপরফন াঅনায পলাগগপরনয জনয তখন Settings

API ndashএ াঅনায ডকাড মতটা ারন জ করন Settings API াঅনায ডম কাজগপররা handle কপরয-

ওয়াডডপরেপরক জাগনপরয় ডদয় ডম াঅগন গনজসব ান ফযফায কযপরফন াঅনায াআনটপরক পাাংপরনয ভপরধয উপরেখ কযপরফ ডফগয বাগ ান ডজ গনপরজাআ ততগয কযপরফ $_POST ডাটা গপররাপরক ভগনটয কপরয ান ততগয এফাং াঅপরডট কপরয(মগদ েপরয়াজন য়)

Settings API পাাংন Settings API পাাংপরন গতনগট ডসট থাপরক- ১ েথপরভ ওয়াডডপরেপরক ফপরর ডম াঅগন নতন ডগটাং ফযফায কযপরফন াঅনায পলাগগপরনয জনয ২ এয পরয ডগটাং গডপাাআন করন (text areas input boxes and any

HTML form element) এফাং এপরদযপরক একাপরথ রে কপরয যাপরখ ৩ ওয়াডডপরেপরক াঅনায ডগটাং actual form এ ডদখাপরনায জনয ফপরর

46

এফায াঅভযা একগট পলাগগন ফানাপরফা Administration Page ndashএ ডযপাপরযনস গপরপরফ ডদখপরত াপরযন- httpcodexwordpressorgAdding_Administration_Menus

httpcodexwordpressorgFunction_Referenceadd_options_page

httpcodexwordpressorgAction_ReferenceActions_Run_During_an_Admin_P

age_Request

পলাগগপরনয এডগভন ডজ পরফ এযকভ- httpexamplecomwp-adminoptions-generalphppage=liton_myplugin

েথপরভ াঅভযা ডভন ততগয কযফ াঅপরগয ভত কপরয- Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

এফায ান ডজ এ পভড গনপরয় গকি ডগটাং ডদফ function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

উপরযয ডকাপরড াঅভযা একগট পপরভডয ভপরধয রধ াফগভট ফাটন এফাং My Plugin নাপরভ ডজ ততগয কপরযগি ডযাপরফাপরডড ডদখন-

47

ডগটাং এয াফ ডভন গপরপরফ My Plugin াঅপরি এফাং My Plugin ডত গিক কযপরর াঅভযা উপরযয ডজ ততগয কপরযগি ডমখাপরন াফগভট ফাটনগট ডদখাপরচছ এফায গতনগট যাযাগভটায ডযগজসটায কযফ- ltphp

register_setting( liton _myplugin_options liton _myplugin_options liton

_myplugin_validate_options)

gt

েথভগট ডগটাং রেপরয নাভ গিতীয়গট ান নাভ মা াঅভযা get_option() পাাংন গদপরয়ও ডপরত াগয ততীয়গট করফযাক পাাংন এগট একগট গসটরাং ডযপাপরযনস পাাংন এখাপরন াঅভযা নাভ

48

গদপরয়গি liton _myplugin_validate_options মা া কযপরফ পপরভডয কর ডব ডগটাং াঅভযা এটা পরয গডপাাআন কযফ

ডগটাং গডপাাআন ডকন add_settings_field() এফাং add_settings_section() পাাংন গদপরয় াঅভযা াঅভাপরদয কর ডগটাং গডপাাআন কযফ ltphp

add_settings_section( liton_myplugin_main My Plugin Settings

liton_myplugin_section_text liton _myplugin)

add_settings_field( liton _myplugin_text_string Enter text here

liton _myplugin_setting_input liton _myplugin liton _myplugin_main)

gt

add_settings_section() পাাংন গদপরয় াঅভযা ডদখাফ াঅপরর ডজ এ ডকন ডকভন ডদখাপরফ এয চাযগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ ডকন টাাআপরটর ltH3gt টযাপরগয ভপরধয করফযাক পাাংন এয নাভ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ (page= liton _myplugin এগট

URL এয াাং গপরপরফ থাকপরফ) গিতীয় যাযাগভটায add_settings_field() পপরভডয াআনট গপরপরফ ডদখাপরনা পরয়পরি এখাপরন াাচগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ পরযয গপপরলড গক গেনট কযা পরফ তা ডটকসট গপরপরফ ডদখাপরনা পরয়পরি(Enter text

here)

করফযাক পাাংন পপরভড গেনট কযপরফ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ ডগটাং ডপরজয ডকন গপলড মা add_settings_section() পাাংপরন গডপাাআন

কযা পরয়পরি ltphp

Explanations about this section

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

49

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton _myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name= liton _myplugin_options[text_string]

type=text value=$options[text_string] gt

gt

গিতীয় পাাংন ান বযার text_string ডক এযাপরযপরত ডসটায কপরয ডযপরখপরি এফায াআউজায াআনট বযাগরপরডট কযফ- ltphp

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace([^a-zA-Z]$input[text_string] )

return $valid

gt

পভডপরক ডযনডায কযফ- ltphp

Draw the options page

function liton_myplugin_options_page()

gt

ltdiv class=wrapgt

ltphp

screen_icon()

gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp

settings_fields( liton_myplugin_options)

do_settings_sections(liton_myplugin)

50

gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

settings_fields() পাাংনগট ডযপাপরযনস গপরপরফ ফযফায কযা পরয়পরি মা াঅভযা register_setting() পাাংপরন গডপরিয়ায কপরযগি do_settings_sections() পাাংনগট কর কযপরফ কর াঅউটট ডকন এফাং পভড গপলডপরক মা াঅভযা পরফড গডপাাআন কপরযগি াঅভাপরদয কাজ ডল এফায পরযা পলাগগনগট ডদখফ- ltphp

Plugin Name Settings API example

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

Draw the option page

function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save

Changes gt

ltformgtltdivgt

ltphp

51

Register and define the settings

add_action(admin_init liton_myplugin_admin_init)

function liton_myplugin_admin_init()

register_setting( liton_myplugin_options

liton_myplugin_options

liton_myplugin_validate_options )

add_settings_section( liton_myplugin_main My Plugin

Settings

liton_myplugin_section_text liton_myplugin )

add_settings_field( liton_myplugin_text_string Enter text

here

liton_myplugin_setting_input liton_myplugin

liton_myplugin_main )

Draw the section header

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton_myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name=liton_myplugin_options[text_string]

type=text value=$text_string gt

Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

return $valid

gt

52

ডদখন ডযাপরফাপরডড ডকভন ডদখায়-

পরয় ডগর াঅভাপরদয েথভ নডাাংগ পলাগগন ান ডজ াঅপরযকগট গজগন ডমটায জনয এতগকি পলাগগন URL এপরডর- httplocalhostdev-litonwp-adminoptions-

generalphppage=liton_mypluginampsettings-updated=true

াঅভায এখাপরন এযকভ ডদখাপরচছ ডটকসট ফপরকস ডকান গকি গরপরখ ডব কযায য এফাপরয াঅপরযকগট গজগন ডদখফ াঅভযা াপরনক ভয়াআ াপরনক পলাগগপরনয াআনট গপপরলড বর ডাটা াআনট কযপরর এযয ডভপরজ ডদখায় এাআ কাজগট কযফ এফায াঅভযা এখাপরন esc_attr() ফা esc_html() ফযফায কগযগন সতযাাং াঅভাপরদয গরগভপরটন থাকপরি ডবগরপরডট পাাংনগট একট এগডট কগয গনপরচয ভত কপরয Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

if( $valid[text_string] = $input[text_string] )

add_settings_error(liton_myplugin_text_stringliton_myplugin_texterror

53

Incorrect value enterederror)

return $valid

উপরয ডদখন add_settings_error() পাাংন ফযফায কপরযগি মা এযয ডচক কযপরফ পপরভডয াঅগভ একগট বর ডাটা(পরসপার কযাপরযকটায) াআনট কপরয ডদখরাভ এযয ডদখাপরচছ-

তায ভাপরন াঅভযা পর পরয়গি াঅনায পলাগগনগট এগডট কপরয ডনপরফন ডকায ডকন এফাং গপপরলডয গরসট গদরাভ াঅনাপরদয সগফধায জনয

54

CSSJS পাাআর মি কযা

াঅনায পলাগগপরন গএএ ফা জাবাগিে ডমাগ কযপরত পরত াপরয াঅগন চাাআপরর ফাগপরযয ডকান ফা াঅনায ততগয ডকান গএএ ফা জাবাগিে পাাআর ডমাগ কযপরত াপরযন তপরফ এপরকষপরতর াঅভযা ডমবাপরফ HTML এ পাাআর ডমাগ কগয ডযকভ না function liton_scripts()

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtojqueryjsrdquogtltscriptgt‟

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtoscriptjsrdquogtltscriptgt‟

add_action(bdquowp_head‟‟liton_scripts‟)

এগট মপনডরপর বর িগত গনপরচ ডদখন ওয়াডডপরেপর গকবাপরফ পাাআর মি কযপরত য়- function liton_scripts()

wp_enqueue_script(bdquojquery‟)

wp_enqueue_script(bdquotheme-scripts‟‟pathtoscriptsjs‟)

add_action(bdquowp_enqueue_script‟‟liton_scripts‟)

ানর বাপরফ াঅগন সটাাআরীট ডমাগ কযপরত াপরযন- function liton_styles()

wp_enqueue_ style (bdquocss‟)

wp_enqueue_ style (bdquotheme- styles‟pathto stylescss‟)

ডযপাপরযনস ডদখন- httpcodexwordpressorgFunction_Referencewp_enqueue_script

httpcodexwordpressorgFunction_Referencewp_enqueue_style

টডপরকাড টডপরকাড পরচছ ওয়াডডপরেপরয ডসপগগপক ডসপার টযাগ মা াঅগন ডাসট ফা ডপরজয ভপরধয াআনাটড কপরয ানয ডকান কনপরটনটপরক ওপরয়ফাাআপরটয ভপরধয গযপরপল কযপরত াযপরফন মগদ াঅগন গযারাগয টাাআপরয ডকান পলাগগন ফযফায কপরয থাপরকন তাপরর াঅনায ধাযনা থাকায কথা মাাআ ডাক াঅগভ কপরয়কগট উদাযি ডদখাফ

55

েথপরভ একগট পলাগগন ততগয কযফ ডমখাপরন add_shortcode() নাপরভয একগট পাাংন থাকপরফ এগট রগট যাযাগভটায েন কপরয েথভগট টডপরকাপরডয নাভ গিতীয়গট ডম পাাংনপরক কর কযপরফন ডগট াঅভযা একগট উদাযন ডদগখ- ltphp

Plugin Name Liton Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(litonhi)

function hi()

echo Hello World

gt

উপরয ডদখন খফ ডিাট গকনত াঅগন চাাআপরর এয ফযফায াপরনক গফসতত কযপরত াপরযন এখাপরন টডপরকাড নাভ পরচছ liton াঅয এগটপরক ডরখা য় এবাপরফ [liton] াঅভযা ডাপরসটয ভপরধয াআনাটড কপরয ডদগখ াঅউটট ডকভন ডদখায়-

এফায াঅউটট ডদগখ-

56

াঅভাপরদয ততগয কযা টডপরকাড পরবাপরফাআ কাজ কযপরি াঅপরযকগট উদাযন ডদখফ াঅনাযা াপরনপরকাআ গগর এডপরনস গনপরয় কাজ কপরযন াঅনাযা াপরনপরকাআ এডপরনস এয জনয পলাগগন ফযফায কপরযন গকনত চাাআপররাআ এাআ কাজগট াঅনাযা গনপরজয ভত কপরয াগজপরয় গনপরত াপরযন গগপররয কাপরি ফ ডাসট বযার ায়না াঅনাযা মাযা একসাটড াঅপরিন তাযা এটা বার কপরয জাপরনন তাাআ াপরনপরকাআ গগপররয ডকাড ফ ডপরজ ডদখাপরত চান না এজনয পলাগগন ফযফায কপরয রাব য়না কাযন পলাগগপরন জায়গা গপকসড থাপরক এপরত কপরয াঅগনডাং ও কভ য় াঅনাযা টডপরকাড ফযফায কপরয ডমপরকান জায়গায় এড ডদখাপরত াপরযন গনপরচ াঅগভ রগট টডপরকাড ততগয কপরযগি র‟ধযপরনয এড ডদখাপরনায জনয ltphp

Plugin Name Liton Adsense Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(adsense_468adsense_468_60)

add_shortcode(adsense_250adsense_250_250)

function adsense_468_60($atts)

return ltscript type=textjavascriptgtlt--

57

google_ad_client = ca-pub-0956247412222369

468x60 created 101510

google_ad_slot = 4372705450

google_ad_width = 468

google_ad_height = 60

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

function adsense_250_250($atts)

return ltscript type=textjavascriptgtlt--

google_ad_client = ca-pub-0956247412222369

250x250 created 81809

google_ad_slot = 9368091893

google_ad_width = 250

google_ad_height = 250

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

gt

একগট টডপরকাড ফযানায টাাআপরয জনয এফাং াঅপরযকগট ২৫০২৫০ াাআপরজয এফায ডাপরসট ডমপরকান একগট টডপরকাড াআনাটড করন ডমখাপরন াঅনায ডদখাপরনায েপরয়াজন ভপরন কপরযন াঅগভ রগট ডকাড ডটসট কপরয ডদখরাভ-

58

এফায াাআপরটয াঅউটট ডদগখ-

রগট এডাআ ডদখাপরচছ াঅপরযা াপরনক কাপরজ াঅগন টডপরকাড ফযফায কযপরত াপরযন ডযপাপরযনসাঃ httpcodexwordpressorgShortcode_API

59

াধযায়- নয়াঃ পলাগগন উদাযন

ওয়াডডপরেপরয ডডটটাাআভকপরভনট নামবায ফাাংরা কযায পলাগগন াঅভাপরক কপরয়কজন ফপররগিপররন ওয়াডডপরেপরয গডপলট ডডটটাাআভকপরভনট নামবায ফাাংরা য়না রযাাংগপরয়জ ফাাংরা কযায যও ডডটটাাআভকপরভনট নামবায গপররা াআাংপরযগজ ডথপরক মায় গনপরচয পলাগগনগট ফযফায কপরয ডদখপরত াপরযন- ltphp

Plugin Name Liton Bangla datetimecomment number

Plugin URI httpliton-onlinecomplugins

Description Bangla datetimecomment number

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

This function converts all english numbers to bangla number

function make_bangla_number($str)

$engNumber = array(1234567890)

$bangNumber = array( ১ ২ ৩ ৪ ৫ ৬ ৭ ৮ ৯ ০ ) $converted = str_replace($engNumber $bangNumber $str)

return $converted

add_filter( get_the_time make_bangla_number )

add_filter( the_date make_bangla_number )

add_filter( get_the_date make_bangla_number )

add_filter( comments_number make_bangla_number )

add_filter( get_comment_date make_bangla_number )

add_filter( get_comment_time make_bangla_number )

gt

60

সলাাআডায পলাগগন াঅভযা এাআ ফাআপরয়য কর গটউপরটাগযয়াপরর মা মা গখরাভ তা এফায একগট নডাাংগ পলাগগপরনয এপলাাআ কযফ সলাাআডায পলাগগন মপপরকড াঅভযা ফাাআ জাগন একগট ওপরয়ফাাআপরটয ডচাযা ারপরট ডদয় একগট সলাাআডায াপরনক ডাাআনাগভক ভপরন য় ডদখপরতও াপরনক বার রাপরগ এাআ পলাগগপরন াঅভযা এডগভন যাপরনর ডথপরক াআপরভজ ডমাগ কযফ এফাং তা াঅভাপরদয াাআপরট ডদখাফ চরন কাজ রর কগয- েথপরভ গনপরবা সলাাআডায এয ওপরয়ফাাআপরট মান এফাং jQuery Plugin ডাউনপররাড করন

ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom Version 10

gt

াঅভযা পলাগগপরনয ডডায ততগয কযরাভ

পলাগগন গরপরসট ডদখাপরচছ bdquoLitons Nivo Plugin‟ াঅভাপরদয েথভ কাজ পরচছ custom post

type ওয়াডডপরে পাাংনাগরগট একগট নতন কাসটভ ডজ ততগয কযপরত custom post type

ফযফহরত পরফ ডমখাপরন একগট াআপরভজ থাকপরফ াঅভযা রধ টাাআপরটর ডনভ এফাং াআপরভজ াঅপররাডায গপরপরফ গপচায াআপরভজ পাাংনাগরগট ফযফায কযফ function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_function 600 280 true)

61

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

add_action(init np_init)

উপরযয ডকাপরড np_init() পাাংনগট রক কপরযগি মা ডডায যান কযায াঅপরগ যান পরফ াঅয এজনয register_post_type() পাাংনপরক এয যাযাগভটায গদপরয় np_init() পাাংপরনয ডবতপরয মি কপরযগি এটা মগদ না কযতাভ তাপরর ldquoHeaders already sentrdquo ডভপরজ ডদখাত এাআ ডভপরজগটয াপরথ াপরনপরকাআ গযগচত াঅা কগয register_post_type() পাাংন গদপরয় াঅভযা াআপরভজ মি এফাং ভযাপরনজ কযফ ভরত াঅভযা একগট নতন custom post type ডমাগ কপরযগি np_images নাভ গদপরয় নতন custom post type ডক ডগটাং বযার গপরপরফ াঅযগপরভনট া কপরযগি $args ডবগযপরয়ফরগট ট ডরপরবর ডভন ততগয কপরয াঅপরগাআ ডদপরখগি পলাগগনগট এগকটপরবট কযপরর াঅভযা গনপরচয ভত ডদখপরত াফ-

এফায গিে এফাং সটাাআরীট ডক মি কযফ- add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

এফায রক কযা পাাংনগপররা গডপরিয়ায কগয- function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__) array( jquery ))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

62

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

উপরযয ডকাডগপররা নতন কপরয ফিডনা কযায গকি ডনাআ াঅপরগাআ wp_enqueue_style() এফাং wp_enqueue_script() মপপরকড ফরা পরয়পরি নতন াঅপরযকগট পাাআর ততগয করন একাআ গডপরযকটগযপরত scriptjs এফাং গনপরচয ডকাডটক গদন- jQuery(document)ready(function($)

$(slider)nivoSlider()

)

াআপরভজপরক গযাাআজ করন- add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

াঅভযা এাআ পলাগগনগটপরক উাআপরজট গপরপরফও ফযফায কযফ ডগট পরয ডদখফ াঅপরযকগট গজগন মগদ গথপরভ না ডদয়া থাপরক ডজনয থামবপরনাআর াপরাটড গদপরয় গদন- add_theme_support( post-thumbnails )

এফায ওয়াডডপরেপরয কাপরযনট ডাসট কপরয়যী কযায ডকাড াঅয $result ডবগযপরয়ফপরর ডমফ ltdivgt টযাগ ফযফায কযা পরয়পরি তা jQuery Plugin গট একসিাকট কপরয indexhtml ডজগটয ডভাআন সলাাআডায ডকাডগট ডদখন একাআ াঅপরি রধ ডখানকায ltdivgt টযাগ গপররাপরক কগ কপরয এাআ পলাগগপরন ফযফায কযা পরয়পরি এফায টডপরকাড গদন- add_shortcode(np-shortcode np_function)

এাআ টডপরকাড গএাআচগ পাাংনপরক রক কযপরফ এফাং এয ভধয ডথপরক সলাাআডপরায কনপরটনট ডক গযটানড কযপরফ াঅভাপরদয টডপরকাড পরচছ [np-shortcode] াঅভযা পলাগগপরন মাাআ এফাং একগট িগফ মি কগয গপচাযড াআপরভজ গপরপরফ গনপরচ ডদখন-

63

াঅগভ াঅপরযকগট ডজ ততগয কপরযগি ডমখাপরন টডপরকাড গদপরয়গি

াঅউটট ডজ ডদগখ এফায-

64

পরয় ডগর াঅভাপরদয সলাাআডায পলাগগন পরযা ডকাডগট গনপরচ গদরাভ- ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

65

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

66

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

এফায াঅগন মগদ উাআপরজট গপরপরফ ফযফায কযপরত চান তাপরর গনপরচয ডকাডটক গদন- class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

67

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

echo $after_widget

াঅপরযা রগট কাজ কযপরত পরফ াঅনাপরক এক াআপরভজ াাআজ উাআপরজট এয জনয গঠক কপরয গদপরত পরফ- add_image_size(np_widget 180 100 true)

াঅপরযকগট র উাআপরজট এযাকন রক ডমাগ কযা add_action(widgets_init np_widgets_init)

উাআপরজট পরযা ডকাড াঅফায গদরাভ- ltphp

Plugin Name Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Ciprian Turcu

Version 10

68

class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

69

echo $after_widget

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

70

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(widgets_init np_widgets_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

71

পলাগগন গনপরয় এত ডিাট গযপরয ডরখা মভফ নয় এজনযাআ ভপরন য় পলাগগন গনপরয় ডকউ ডরপরখন না কাযন এখাপরন এত গফলয় াঅপরি মা াঅপররাচনা কযপরত ডগপরর ৫০০ ডজ ায পরয় মাপরফ ডফাোয সগফধাপরথড াঅগভ মথামভফ উদাযন গদপরয় ডফাোপরনায ডচষটা কপরযগি াঅগভ এখাপরন টাপরগডট কপরযগি মাযা টকটাক জাপরন পলাগগন মপপরকড এডবানস ডরপরবপররয নয় কাযন তাযা জাপরনন াঅভায উপরেশয গির মাযা জানপরত চায় তাপরদযপরক জানাপরনা এখাপরন ডমফ গফলয় াঅপররাচনা কযা পরয়পরি তা ডভাটাভগট ভাপরনয একগট পলাগগন ফানাপরনায জনয মপরথষট তপরফ ভাপরনাননয়পরনয জনয াঅনাপরক গনপরজাআ খাপরজ গনপরত পরফ াঅনায জনয ডকানটা বার পরফ াঅগভ রধ গদক গনপরদডনা গদরাভ ভাতর এাআ ফাআগট রধভাতর ওয়াডডপরে রেপরয জনয ডরখা াপরনক বর ভরাগনত থাকপরত াপরয াঅনাযা কষভাসনদয দগষটপরত ডদখপরফন াঅগভ ডচষটা কপরযগি মতটা জ কপরয ডরখা মায় াপরনক ভয় ডদখা মায় ডম খফ ডিাট খাপরটা গফলয় গনপরয় াপরনপরকাআ নক কপরযন এটা গতয রাঃখজনক াঅনাযা গগপরর একট খাজপররাআ ভাধান াপরফন াঅপরগ গনপরজ ডচষটা করন তায পরয ানযপরক ভাধাপরনয জনয গজজঞাা করন াঅভায জনয ডদায়া কযপরফন বাপররা রাগপরর জানাপরফন খাযা রাগপররও জানাপরফন তাপররাআ াঅভায গযশরভ সবাথডক পরফ ভতাভত জাগনপরয় াঅভাপরক ডভাআর কযপরত াপরযন litonice09gmailcom |

72

Page 5: Wordpress Plugin Development

6

র র ৪৫ াধযায়- িয়াঃ পলাগগন পাাংন ৫৬ __() ৫৬ _e() ৫৬ esc_attr__() ৫৮ াধযায়- াতাঃ পলাগগন গগকউগযগট র ৬১ র র ৬১ র র ৬১ র র ৬২ Nonces ৬৩ Nonce URL র ৬৪ Nonce Form র ৬৫ ৭৩ াধযায়- াঅটাঃ ডরাকারাাআপরজন এফাং Set t i ngs API ৭৬ API ৭৬ Settings API ৭৭ ৮১ CSSJS র ৯১ ৯৩ াধযায়- নয়াঃ পলাগগন উদাযন র র র র ১০০ র ১০১

7

াধযায়- একাঃ চনা গকি কথা ওয়াডডপরেপরয েগত যপরয়পরি াপরনক বারফাা ওয়াডডপরে মপপরকড নতন কপরয গকি ফরায ডনাআ ডমপরকান ওয়াডডপরে ফযফাযকাযীয জনয পলাগগন একগট গরতবনড গফলয় পলাগগন াঅপরর গক ওয়াডডপরে পলাগগন াঅভাপরদযপরক াঅভাপরদয বলগ ওপরয়ফাাআপরটয পাাংনাগরগট ফগি কযপরত াাময কপরয াভানয াথফা ডকান যকভ ডোোগভাং জঞান িাড়াাআ ওয়াডডপরে পলাগগপরনয গনগদডষট ডকান াঅকায এফাং াঅকগত ডনাআ একগট পলাগগন ডমপরকান গকিাআ কযপরত াপরয ওয়াডডপরে বলগ ওপরয়ফাাআপরটয াঅভায পলাগগপরনয াংখযা খফ কভ গকি াফগর কযা য়গন াঅগভ ওয়াডডপরেপরয গকি গরগভপরটন গনপরয় কাজ কযগি এফাং এগপররা গনপরয়াআ ভরত কাজ কযগি গকবাপরফ াঅপরযা একসপরটনড কযা মায় মাাআ ডাক াঅগভ এখনও গকষানগফ গপরপরফ াঅগি

ফাআগট কাপরদয জনয াঅগন মগদ এাআ ফাআগট ডাউনপররাড কপরয থাপরকন তাপরর াঅগভ ধপরযাআ গনগচছ াঅগন একজন ওপরয়ফ ডডপরবরায এফাং াপরথ গকি ডোোগভাং জঞান াঅপরি পলাগগন ডডপরবরপরভপরনটয উপরেশয পরচছ াঅগন পলাগগন ডডপরবর কযপরফন াঅনায িাপরয়নট াঅগন ডমবাপরফ চান গঠক ডবাপরফ ডমপরকান ধযপরনয ওপরয়ফাাআট ততযীপরত ওয়াডডপরেপরয ফযগতিভ পলাটপভড াআপরতাভপরধযাআ েভাগিত এাআ ফাআগট গিরযানসাযপরদয জপরনযও মাযা তাপরদয গির ডাটডপরপাগরও এফাং ওয়াডডপরেপরয পাাংনাগরগট ফপরে কাজ কপরযন

ডোয়াজনীয় টর

Notepad ++( httpnotepad-plus-plusorgdownload )Dreamwaver

Mozilla Firefox (httpwwwmozillaorgen-USfirefoxnew) Google Crome

Firebug Extension (Search For both Firefox Chrome as you want)

Web Developer Extension (Search For both Firefox Chrome as you want)

Xampp with Wordpress Installation

FTP Client Example- Filezilla ওয়াডডপরে গকবাপরফ াআনসটর কযপরত য় তা নতন কপরয ডদখাপরনায গকি ডনাআ তফও মাযা নতন তাযা এখাপরন ডদখন ( httpgooglWJTp9 ) গকবাপরফ পলাগগন াআনসটর কযপরত য় তা এখাপরন ডদখন ( httpgooglpE8AD)

8

াধযায়- রাআাঃ পলাগগপরনয গঠন পলাগগন গক ওয়াডডপরেপরয পলাগগন র একগট PHP গিে মা ওয়াডডপরেপরয গনজসব পাাংনাগরগট গযফতডন কপরয াথফা গযফধডন কপরয ভরতাঃ একগট গপচায ফা গকি গপচায াঅভাপরদয াাআপরট ডমাগ কযায জনয াঅভযা পলাগগন াআনসটর ডদাআ একগট পলাগগপরনয কাপরজয ডকান গরগভট ডনাআ ড ডকান কাজগপররা কযপরত াযপরফ কাযন পলাগগন ডাউনপররাপরডয ডকান গনগদডষট াাআজ ডনাআ পলাগগন ওয়াডডপরেপরয াপরথ গকবাপরফ কাজ কপরয ওয়াডডপরেপর াপরনক গপচায াঅপরি গফগবনন API(Application Programming Interface)- এয জনয ডমগপররা গফগবননবাপরফ কাজ কপরয ওয়াডডপরেপর গনপরচ ডগপররা াঅপররাচনা কযা রাঃ

পলাগগনাঃ একপরট রক( hooks) ডমগপররা ওয়াডডপরেপরয গনগদডষট পাাংপরন এপরকস কপরয এগপররাপরক এনাফর কপরয

উাআপরজটাঃ পলাগগন গদপরয় উাআপরজট ততগয এফাং গযচারনা কযা টডপরকাডাঃ াঅনায পলাগগনপরক াপরাটড কযায জনয টডপরকাড ডমাগ কযা টডপরকাড র

একগট রক ডমটা একগট PHP পাাংনপরক এনাফর কপরয এফাং াঅনায ডাসট ফা ডজ এ েদডন কপরয াঅগভ পরয এ গফলপরয় গফসতাগযত ফরফ

HTTP এগট াঅনায পলাগগপরন HTTP গযপরকাপরয়সট াঠায় এাআ API কনপরটনট ডথপরক external URL াথফা Submit কযা কনপরটনট ডথপরক URL retrieve কপরয

ডগটাংাঃ াঅনায পলাগগপরনয ডগটাং াআনাটড াথফা ডগটাং ডকন ডগটাং API এয োথগভক সগফধা র গগকউগযগট কর ডগটাং ডাটা গযিায( গযপরাগধত) থাপরক সতযাাং মখন পলাগগন ডগটাং ডব কযায ভয় Cross Site Request Forgery (CSRF) এফাং Cross Site Scripting(XSS) গনপরয় গচনতায গকি ডনাআ

Options পলাগগপরনয কর ান জভা যাপরখ এফাং retrieve কপরয এগট নতন ান ততযী কপরয াঅপরগয ান াঅপরডট কপরয ান গডগরট কপরয এফাং ডমপরকান ান retrieve কপরয

Dashboard Widgets ডযাপরফাডড উাআপরজট ততগয কপরয ওয়াডডপরে ডযাপরফাপরডড automatically উাআপরজট েদডন এফাং কর কাসটভাাআপরজন গপচায ডমভন- গভগনভাাআজ ডরাগ ডর এফাং গিন ান

Rewrite াঅনায পলাগগপরনয জনয কাসটভ রর ততগয কযা এাআ API াঅনায static-end-point(custom-page) structure tags(postname) এফাং াগতগযি গপড গরঙক (feedjson)

9

Transients গকি াসথায়ী ান (cached data) ততগয কপরয াঅনায পলাগগপরনয জনয এাআ API গট Options API এয ানর

Database ওয়াডডপরেপরয ডাটাপরফপর েপরফ কপরয এগট াঅনায পলাগগপরনয ডাটাপরফপরজ গনপরচয কাজগপররা মপাদন কপরয- creatingupdatingdeleting and retrieving

কখন াঅনায পলাগগন ডরাড য় পলাগগন ততগয কযপরত ডগপরর এাআ ডফগক কাজগপররা াঅভাপরদয াফশযাআ জানপরত পরফ াঅভযা ডতা পলাগগন াআনসটর গদপরয়াআ খারা একফায ডবপরফও ডদগখনা এগট াঅপরর গকবাপরফ কখন ডরাড পরফ াাআপরটয উয কতটা াআপরপকট ডপরপরফ াঅগভ গনপরচ একগট ডায়াোভ গদরাভ াঅা কগয াঅয গকি ফরপরত পরফনা াঅভাপরক

Wordpress URL Called

wp-config Loaded

Functions Loaded

Plugins Loaded

Pluggables Loaded

Translations Loaded

Theme Loaded

Page Content

10

ওয়াডডপরে পলাগগন ডডপরবর কযায ৭গট কাযন

াঅগভ াআনটাযপরনট এ ldquoHow to Write a Plugin (httpgooglrCUY) rdquo গদপরয় াপরনক াচড কপরযগি াপরনক াঅগটডপরকর াঅপরি গকনত ভন ভত কপরয়কগট িাড়া ফরায ভত াাআগন ওয়াডডপরেপরয ldquoডকাপরডকসrdquo াঅপররাআ ওয়াডডপরে মপপরকড জানায জনয মপরথষট এটা পরয ফপরেগি ৭ গট কাযন ডকন াঅগন ওয়াডডপরে পলাগগন ফানাপরফনাঃ ১) াঅগন একগট পলাগগন মপপরকড জাপরনন গকনত এয ফাসতফায়ন িনদ কযপরিন না াঅভযা ডফগয বাগ ভয়াআ এাআ ভোয় গড় ২- ৩ গদন ধপরয একটা পলাগগন ডখাাজায জনয ফযয় কগয গকনত ভন ভত পলাগগন খাপরজ াাআ না গকনত এাআ ভয় এ একটা পলাগগন গরখা পরয় ডমত ২) াঅগন াঅপরগয ডকান পলাগগন ভগডপাাআ কযপরফন াপরনক ভয়াআ াঅনায িনদ ভত পলাগগন ডপররন গকনত াভানয গকি ডচি কযপররাআ াঅনায কাপরজ রাগপরফ এপরকষপরতর াঅনাপরক ডাআ পলাগগনগট ভগডপাাআ কযপরত জানপরত পরফ াপরনক ভয় পলাগগপরনয ডরখক ফযসত থাকপরত াপরযন এফাং াঅপরডট কযপরত াপরযন না এপরকষপরতর াঅগন ডাআ পলাগগনগট Aut hor Name ডচি কপরয গনপরত াপরযন তপরফ GPL Compatible license (httpgooglBOzm ) গঠক ডযপরখ াঅগন নযায় াগযগজনার পলাগগপরনয নতন বাডন ডফয কযপরত াপরযন ৩) ডকান পলাগগনপরক একসপরটনড কযপরত চান াপরনক ভয় একগট পলাগগন বার কাজ কপরয াাআপরটয জনয গকনত াঅগন াঅপরযা গকি গপচায ডমাগ কযপরত াপরযন ডমভন AJAX JQuery Effects াথফা াঅপরযা গকি রক রাগাপরত চান ডমন এগট ানয পলাগগপরনয াপরথ াভিে থাপরক তপরফ াফশযাআ GPL Compatible (httpgooglBOzm ) এয াপরথ াভিে পরত পরফ ৪) াঅগন মগদ াঅনায গথপরভয ফনপরমাগয ডকাড কযপরত চান এগট ভরত কাসটভ গথভ ডকাপরডয কথা ফরা পরয়পরি ডকান এগকসগসটাং গথপরভয ৫) াঅগন মগদ গথভ গডজাাআনায ন ৬) াঅগন মগদ টাকা উাজডন কযপরত চান পলাগগন ততযী কপরয ৭) াঅগন মগদ াঅনায াাআপরটয াআনকাগভাং গরঙক গফলড কযপরত চান

পলাগগপরনয ডপালডায সটরাকচায ডকভন পরফ কর ওয়াডডপরে পলাগগন wp-contentplugins গডপরযকটগযপরত াআনসটর য় গকি পলাগগপরন রধ একগট PHP পাাআর থাপরক গকনত াঅগভ ফ ভয় একগট ডপালডায কপরয পলাগগন ততগয কযায যাভড ডদফ পলাগগপরনয সটরাকচায পরত পরফ এযকভাঃ

11

Plugin Folder Name( াঅনায পলাগগন ডপালডায নাভ ডকান ডসপ ফা ডসপার কযাপরযকটায থাকা চরপরফ না) Main php file

js ডপালডায( জাবাগিে ফা Jquery file এয জনয) css ডপালডায( সটাাআরগট পাাআপররয জনয) phpinclude ডপালডায ( ানয php পাাআর)

একগট উদাযন ডদাআ পাাআপররয সটরাকচায ডকভন পরফ- litons-first-plugin

indexphp

js

css

includes

images

uninstallphp

পলাগগন ডডায

পলাগগপরনয ডডায িাড়া ডাআ পাাআর ডপালডাযগটপরক ওয়াডডপরে গচনপরত াযপরফ না পলাগগন ডডাযাআ পরচছ একভাতর েপরয়াজনীয় পাাংন মা ওয়াডডপরে দাফী কপরয ভাপরন াঅনাপরক পলাগগন ডরখায ররপরত PHP comment বলপরকয ভপরধয গকি াআনপযপরভন গদপরত পরফ মা এপরকফাপরয পাাআপররয েথপরভ াফসথান কপরয এখাপরন গকি কথা ফপরর যাগখ াঅগন মগদ াাআপরটয এাআও টাপরগডট কপরয পলাগগন ফানান তাপরর ডকান িপরভাআ াঅনায নাভ গদপরয় পলাগগন ফানাপরফন না ডমভনাঃ Litons Plugin এপরত এাআও ডত খাযা েবাফ পরড় গনপরচ উদাযন ডদয়া রাঃ ltphp

Plugin Name Litons Plugin পলাগগপরনয নাভ

Plugin URI httpliton-onlinecomplugin পলাগগপরনয URI Description This is a demo description পলাগগপরনয গফফযন Version 10 পলাগগপরনয বাডন Author Md Liton Arefin পলাগগন ডরখক

Author URI httpliton-onlinecom ডরখপরকয URI

gt

12

উপরযয িগফপরত ডদখন ওয়াডডপরেপরয ডযাপরফাপরডড াঅগভ পলাগগন ডডাপরয মা মা তথয গদপরয়গিরাভ তাাআ ডদখাপরচছ এটাাআ াঅনায োথগভক কাজ াঅগন রাাআপরনসও ডমাগ কযপরত াপরযন এবাপরফ- lt php

Copyright YEAR PLUGIN_AUTHOR_NAME (email PLUGIN AUTHOR

EMAIL)

This program is free software you can redistribute it andor modify

it under the terms of the GNU General Public License as published by

the Free Software Foundation either version 2 of the License or

(at your option) any later version

This program is distributed in the hope that it will be useful

but WITHOUT ANY WARRANTY without even the implied warranty of

MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE See the

GNU General Public License for more details

You should have received a copy of the GNU General Public License

along with this program if not write to the Free Software

Foundation Inc 51 Franklin St Fifth Floor Boston MA 02110-1301 USA

gt

পলাগগন াথ

একগট কভন কাজ র াঅনায পলাগগপরনয পাাআর এফাং ডপালডাযগপররাপরক ওয়াডডপরে াআনসটপররন গডপরযকটগযপরত ডযপায কযা াঅগন এাআ কাজগট রাআ বাপরফ কযপরত াপরযন- ডরাকার াবডায াথ াথফা সটানডাডড URL

13

ডরাকার াবডায াথাঃ ডরাকার াবডায াথ াঅনায কগমপউটাপরযয গডপরযকটগযয ভতাআ ডরাকার াবডায াথ াধাযনত ফযফায কযা য় মখন াঅনাপরক গনপরজয ডরাকার াবডাপরযয গকি পাাআর i ncl ude কযপরত য় একগট কভন েশন র- পলাগগন পাাআপররয াথ ডদখাপরনায গঠক িগত ডকানগট াঅনায পলাগগপরনয ডরাকার াথ ডদখাপরনায জনয াঅনাপরক plugin_dir_path() পাাংন ফযফায কযপরত পরফ plugin_dir_path() পাাংন পলাগগন গডপরযকটগযয গপগজকযার াথ একসিযাকট কপরয পাাআপররয নাভ ডথপরক ltphp plugin_dir_path($file) gt

Parameters

$file-(string)(required)- পলাগগন পাাআপররয নাভ এখন ডদগখ গকবাপরফ পলাগগন ডপালডাপরযয নাভ ডফয কযপরত য়-

ltphp

echo plugin_dir_path(__FILE__)

gt

এখাপরন গএাআচগ কনসটযানট __FILE__ ডক plugin_dir_path পাাংপরনয ভধয গদপরয় া কযারাভ এাআ পাাংন াবডায াথ ডদখাপরফ পলাগগন গডপরযকটগযয public_htmlwp-contentpluginsliton-plugin

একাআবাপরফ াঅগন মগদ plugin_dir_path() এাআ পাাংনপরক মগদ ডকান াফ- গডপরযকটগযয পাাআরপরক ডযপায কগয তাপরর গনপরচয ভত কপরয ডযপায কযপরত পরফ ltphp

echo plugin_dir_path(__FILE__)jsscriptsjs

gt

এাআ ডকাডগট গনপরচয ভত াথ ডদখাপরফ- public_htmlwp-contentpluginsliton-pluginjsscriptsjs

URL াথাঃ াঅপরযা গকি পাাংন াঅপরি ডমগপররা গদপরয় ওয়াডডপরেপরয URL ডদখাপরনা মায়

plugins_url() - পলাগগন গডপরযকটগযয পরযা URL ( ডমভনাঃ httpliton-onlinecomwp-contentplugins)

includes_url() - পরযা গডপরযকটগযয URL include কপরয ( ডমভন httpliton-onlinecomwp-includes)

14

content_url() - পরযা কপরনটনট গডপরযকটগয URL ( ডমভনাঃ httpliton-onlinecomwp-content )

admin_url() - পরযা এডগভন URL

( ডমভনাঃ httpliton-onlinecomwp-admin ) site_url() - কাপরযনট াাআট এয পরযা URL

( ডমভনাঃ httpliton-onlinecom ) home_url() - কাপরযনট াাআট এয পরযা ডাভ URL

( ডমভনাঃ httpliton-onlinecom )

াথ গনপরয় াঅপরযা গফসতাগযত ডদখপরত াপরযনাঃ httpcodexwordpressorgDetermining_Plugin_and_Content_Directories

httpcodexwordpressorgFunction_Referenceplugins_url

httpcodexwordpressorgFunction_Referenceplugin_dir_url

httpcodexwordpressorgFunction_Referenceplugin_dir_path

plugins_url() পাাংন াঅনায উততভ ফনধ পরত াপরয মখন াঅগন পলাগগন ডডপরবর কযপরফন

ltphp

plugins_url($path $plugin)

gt

Parameters

$path-(string)(optional)- গযপররগটব াথ URL $plugin- (string)(optional)- পলাগগন পাাআর মা াঅগন (__FILE__) এয ভাধযপরভ া কযপরত চান ডমভনাঃ ltphp

echo ltimg src=rdquoplugins_url(imagesiconpng__FILE)rdquogt

gt

এয পরযা URL পরফ ltimg src=rdquohttpliton-onlinecomwp-contentpluginsliton-pluginimagesiconpngrdquo gt

15

াধযায়- গতনাঃ রক

ওয়াডডপরে রক( Hook) গক ওয়াডডপরেপর রক ফরপরত াধাযনত add_action() াথফা add_filter() পাাংন ডক ডফাোয় এাআ রগট পাাংনপরক remove_action() াথফা remove_filter() গদপরয় ভপরি ডপরা মায় মগদও াপরনপরকয কাপরি রপরনগি ডম এাআ রগট পাাংপরনয ভপরধয ডকান াথডকয ডনাআ গকনত াঅপরর তা নয় গফযাট াথডকয াঅপরি এ রগট পাাংপরনয ভপরধয াঅগভ ভরত এাআ রগট পাাংন গদপরয়াআ গকি পলাগগন ফাগনপরয় ডদখাফ কাযন খফাআ গরতবিড এাআ রগট পাাংন মপপরকড বাপররাবাপরফ জানা

গপলটায রক (Filter Hooks)

গপলটায রক পাাংপরনয কাজ পরচছ কনপরটনটপরক ভগডপাাআ কযা গপলটায রক গদপরয় টাাআপরটর কনপরটনট াআতযাগদ ভগডপাাআ কযা মায় ডমভন টাাআপরটর এ ডকান টযাগ না থাকা গবগজটয কপরভপরনট ltgt t ag span t ag াআতযাগদ গদপরয় াাআপরটয ডরাঅউপরটয গযফতডন কপরয গদপরত াপরয ভাপরন ডকান কপরভপরনট মগদ এযকভ ht ml ডকাড াড কযা থাপরক তাপরর ডদখপরত খাযা রাগপরফ এগপররা াফশয এখন ওয়াডডপরে াপরটাপরভগটকযাগর কপরয গকনত এাআ কাজগপররা ভরত গপলটায রক গদপরয় কযা পরয় থাপরক গপলটায রক রাআ ধযপরনয add_filter() এফাং remove_filter() পাাংন খফ গরতবনড একগট কথা গপলটায রকপরক গযটানড কযপরত য় ltphp

add_filter($tag $function $priority $accepted_args)

gt

$tag- ডম রকপরক াঅগন ডযগজসটায কযপরত চান $function- ডম পাাংনপরক াঅগন াঅউটপরট গপলটায কপরয ডদখাপরত চান $priority- একগট াআগনটজায াংখযা মা াঅনায গপলটাযপরক িভানাপরয াজাপরফ মগদ ডকান

াংখযা না ডদয়া থাপরক তাপরর এগট ১০ গডপলট গপরপরফ থাপরক $ accepted_args- ডম াংখযক যাযাগভটায একগট পাাংন েি কযপরত াপরয গডপলট গপরপরফ

১ থাপরক াঅনায পাাংপরন ানততাঃ একগট যাযাগভটায থাকপরত পরফ মা গযটানড কযপরফ apply_filter($tag$value)

$tag- গপলটায রপরকয নাভ $value- রপরকয ভধয গদপরয় ডম যাযাগভটায া কযাপরফন

াঅভযা এখন একগট উদাযি ডদখফ ডমখাপরন টাাআপরটর এয েগতটা ওয়াডডপরক ফড় াপরতয াকষপরয রানতয কযফ গনপরচ একগট পলাগগন ডদখন- ltphp

Plugin Name Liton filter

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10

16

Author Md Liton Arefin

Author URI httpliton-onlinecom

add_filter(the_titleliton_modify_title)

function liton_modify_title($content)

return ucwords($content)

gt

পলাগগনগট এগকটপরবট কযায াঅপরগ ডাসট টাাআপরটর ডদখন-

এফায পলাগগনগট এগকটপরবট কযায পরয ডাসট টাাআপরটর ডদখন-

এাআ পলাগগনগট াঅভাপরদয াপরনক ভয়াআ কাপরজ রাগপরত াপরয কাযন াপরনপরকাআ াঅভযা এাআ পযভযাটগট িনদ কগয ঠাৎ কপরযাআ াঅভযা ডাসট টাাআপরটর গরখায ভয় ফড় াপরতয াকষয কযপরত বপরর ডমপরত াগয াঅভযা এাআ কাজগট খফ ডিাট একগট পলাগগন গদপরয় াপরটাপরভগটকবাপরফ কযপরত াগয

17

এখন াঅগভ গকি াগতগযি গফলয় গনপরয় াঅপররাচনা কযফ ডমগপররা ডভপরন চরপরর বগফষযপরতয জনয বার পরফ াঅগভ একগট পাাংন গরপরখগি- add_filter(the_titleliton_modify_title)

function liton_modify_title($content)

return ucwords($content)

একট গফসতাগযত ফরপরর াঅভযা the_title এয ভধয গদপরয় মা া কযফ তা গপলটায কযপরফ এখাপরন াঅভযা ucwords the_title এয ভধয গদপরয় া কপরযগি এফায াঅপরযা টড পভড ডদগখ add_filter(the_title ucwords)

তায ভাপরন পরযা পলাগগনগট পরফ এযকভ- ltphp

Plugin Name Liton filter

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_filter(the_title ucwords)

gt

গক খফ জ রাগপরি এখাপরন ফপরর যাগখ ডম ucwords এগট গযগব কযপরফ the_title মা া কযপরি এফাং াপরটাপরভগটকযাগর গযটানড কযপরফ the_title এ সতযাাং এখাপরন গযটানড এয দযকায ডনাআ এফায াঅগন মগদ গএাআচগ বাডন ৫৩ ফযফায কপরযন তাপরর গনপরচয ভত কপরয anonymous function ফযফায কযপরফন াঅনাযা জাবাগিে ডজকপরয়গয‟য াপরথ গযগচত এগট াপরনকটাাআ এযকভ ltphp

Plugin Name Liton filter

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_filter(the_title function($content)

return ucwords($content)

)

gt

বার কপরয ডদখন ডতা াথডকযটা ডকাথায় গনপরজ গনপরজ কাজ কযপরর এবাপরফ কযপরফন াফশযাআ এগট একট এডবানস ডরপরফপররয কাজ মগদও পলাগগন ফানাপরনায ডকষপরতর এগট এখপরনা াঅদড নয় কাযন াপরনপরকযাআ গএাআচগ বাডন এখপরনা ৪ এাআ ডথপরক ডগপরি সতযাাং এাআ িগতগট একানতাআ গনপরজয জনয

18

এযাকন রক (Action Hooks) Action Hooks পরচছ ড ভসত রক ডমগপররা ওয়াডডপরেপরয রাাআপ াাআপরকর গনপরয় কাজ কপরয Action Hooks রাআ ধযপরনয add_action() remove_action() এাআ রকগপররা কাজ কপরয মখন ডকান ডাসট ডব কযা য় ডাসট াফগর কযা য় কপরভনট কযা য় ডকান বলগ ডাপরসট াথফা ওপরয়ফাাআপরট ডডাযপটায ডজনাপরযট য় এগপররা েগতগট একগট একগট কপরয Actions মখন াআউজায তায এডগভগনপরসটরটয ডভনপরত েপরফ কপরয এগপররা ফাআ Action Hooks এখাপরন াঅভযা কনপরটনটপরক গপলটায কযগিনা াঅভযা ওয়াডডপরেপরয গনগদডষট পাাংনগপররাপরক রক কপরয কাজ কযগি াঅভযা একগট উদাযন ডদগখ- ltphp

Plugin Name Liton Action

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(wp_footer function($content)

echo Hello This is Liton Arefin

)

gt

াঅনাপরদয সগফধাপরথড ডফাোয জনয গনপরচয ভত কপরয গরখন- ltphp

Plugin Name Liton Action

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(wp_footer liton_footer_action)

function liton_footer_action($content)

echo Hello This is Liton Arefin

gt

াঅভযা খফ ডিাট একগট উদাযন গদপরয় ডদখরাভ ডম action রক গকবাপরফ কাজ কপরয গনপরচ ডদগখ াাআপরট ডকভন ডদখায়-

19

উপরযয িগফপরত ডদখন াঅগভ Hello This is Liton Arefin এাআ রাাআনগট গেনট কপরযগি এফাং তা পটাপরযয ফাভ াপর এপরকফাপরয গনপরচ ডদখাপরচছ এফায ডাড ডকাড এ ডদগখ াঅপররাআ এয গজন টা ডকাথায় াঅপরি

উপরয ডদখন পটাপরযয গঠক গনপরচাআ রাাআনগট ডদখাপরচছ এফায াঅপরযকগট ফাসতফ এফাং খফাআ গরতবনড উদাযন ডদগখ এাআ পলাগগনগটয কাজ পরফ মখনাআ ডকান কপরভনট ডাসট পরফ তখনাআ এডগভনপরক ডভাআর াঠাপরফ ডম নতন কপরভনট ডাসট পরয়পরি মগদও ওয়াডডপরে এাআ কাজগট কপরয থাপরক াঅভযা এাআ কাজগট ভযানয়ারী কপরয ডদগখ ltphp

Plugin Name Liton Comments Mail

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(comment_post function()

$email= get_bloginfo(admin_email)

wp_mail(

$email

New Comment Posted

A new comment has been left on your blog

)

)

gt

এখাপরন comment_post নাপরভয রপরক একগট ডবগযপরয়ফর $email ndashএ এডগভন ডভাআরপরক ডসটায কপরযগি মাপরত কপরয ডাাআনাগভক বাপরফ ড ডমপরকান াাআপরটয এডগভন ডভাআরপরক গডপরটকট কযপরত াপরয তপরফ এপরকষপরতর মগদ bloginfo(admin_email) ফযফায কযা ত তাপরর এডগভন ডভাআরপরক গডপরটকট কযত গকনত get_bloginfo(admin_email) ফযফায কযায পপরর াঅভযা াআপরভাআর বযারগটপরক গযটানড কপরয ডসটায কযগি এফাপরয ওয়াডডপরেপরয গফলটাআন ডভাআর পাাংন wp_mail(emailsubjectmessage) এয ভত কপরয গরপরখগি বার কপরয ডদখন পলাগগনগট এগকটপরবট কপরয ডদখন াঅনায াাআট মগদ ানরাাআপরন থাপরক তাপরর গনপরজাআ একগট কপরভনট কপরয ডদখন াঅনায এডগভন ডভাআপরর একগট ডভাআর চপরর ডগপরি

20

াধযায়- চাযাঃ পলাগগন ডকাগডাং সটযানডাডড

পলাগগন এগকটপরবনগডএগকটপরবন পাাংন াঅগন মখন একগট পলাগগনপরক এগকটব কপরযন তখনাআ এগকটপরবন পাাংন গিগায য় এাআ পাাংনপরক register_activation_hook() ফপরর ltphp register_activation_hook($file $function) gt

Parameters

$file- োাআভাগয পলাগগন পাাআপররয াথ

$function- ডম পাাংনগট গিগায পরফ মখন পলাগগন এগকটপরবট য় ডমভনাঃ- ltphp

register_activation_hook(__FILE__ bdquoliton_plugin_install‟)

function liton_plugin_install()

do something cool stuff

gt

াঅভযা একগট পলাগগন ফানাাআ এবাপরফ-

ltphp

Plugin Name Liton Version

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

register_activation_hook(__FILE__ liton_plugin_install)

function liton_plugin_install()

If(version_compare(get_bloginfo(version)51lt))

deactivate_plugins(basename(__FILE__))

deactivate our plugin

gt

মখন াঅভযা পলাগগন গডএগকটপরবট কগয তখন পলাগগন গডএগকটপরবন পাাংন কর য়

21

ltphp

register_deactivation_hook ($file $function) gt

-

ltphp

register_deactivation_hook (__FILE__ bdquoliton_plugin_install‟)

function liton_plugin_install()

do something

gt

াঅপরযকগট গরতবনড গফলয় র াঅনাআনসটর ওয়াডডপরে াঅনাপরক পলাগগন াঅনাআনসটর এয জনয রগট ান গদপরচছ- uninstallphp file and the uninstall hook

uninstallphp

এগট ডভাটাভগট েনপরমাগয িগত এ ডভথড ফযফায কযায জনয াঅনাপরক uninstallphp নাপরভ একগট পাাআর ততগয কযপরত পরফ াঅনায পলাগগন গডপরযকটগযপরত পাাআরগট গনপরচয ভত পরফ- ltphp

মগদ ওয়াডডপরে এগকসট কযায াপরথ াঅনাআনসটর কর কযা না য় If(defined(bdquoWP_UNINSTALL_PLUGIN‟))

exit()

delete_option(bdquoliton_plugin_options‟)

াগতগযি ান এফাং কাসটভ ডটগফর ভপরি ডপরন gt

Uninstall Hook

গিতীয় িগত র Uninstall Hook মগদ াঅগন ডকান পলাগগনপরক গডগরট কযপরত চান এফাং uninstallphp পাাআর না থাপরক তাপরর এাআ রক এগকসগকউট য়(মগদ থাপরক) ltphp

register_uninstall_hook($file$function)

gt

22

ডকাগডাং সটযানডাডড পলাগগন ফানাপরফন গকনত াঅনায ডকাড ডকভন পরফ গচনতা াঅপরত াপরয ওয়াডডপরে াঅনায জনয একগট সটযানডাডড গদপরয় গদপরয়পরি মা াঅনাপরক ওয়াডডপরেপরয জনয পলাগগন গরখপরত ডগপরর পপররা কযপরতাআ পরফ httpcodexwordpressorgWordPress_Coding_Standards

ডফগক একগট উদাযন গদরাভ গনপরচ- ltphp

Short description

Longer more detailed description

param type $varname1 Description

param type $varname2 Description

return type Description

function boj_super_function( $varname1 $varname2 )

do function stuff

gt

গএাআচগ সটানডাডড াঅভযা াপরনপরকাআ গএাআচগয টড পভড(lt gt) ফযফায কগয এটা মপিডরপর ফজডন করন কাযন াপরনক ডাগসটাং ডকামপাগনপরতাআ এটা গডপলট গপরপরফ ফনধ কপরয ডদয়া থাপরক সটযানডাডড টযাগ ফযফায করন(ltphp gt)

এগকউএর ডসটটপরভনট পলাগগন ততগযয ভয় াঅনাপরক াপরনক ভয়াআ ডাটাপরফ ডথপরক াআনপযপরভন গনপরত পরত াপরয াপরনক রাাআপরনয ডকাড গরখপরত পরত াপরয ডপরকষপরতর বার েযাকগট পরচছ এগকউএর এয কভানড গপররা ফড় াপরতয াকষপরয ডরখা ডমভন- SELECT username FROM table1 WHERE status = active

23

াধযায়- াাচাঃ ওয়াডডপরেপরয াপরথ াআগনটপরেন

ডভন এফাং াফ ডভন ততগয করন াঅভযা াপরনক পলাগগপরনাআ ডদগখ ডম একগট ডভন াঅাআপরটভ গপরপরফ াঅভাপরদয ডযাপরফাপরডড ডদখপরত াাআ এফাং ডাআ ডভনপরত গিক কযপরর ডগটাং ডজ াঅপর ডখাপরন পলাগগপরনয মাফতীয় ডগটাং গদপরয় াঅভযা পলাগগন কনগপগায কগয এফায এাআ চভৎকায কাজগট কযফ াঅভযা

ট ডরপরবর ডভন েথভ িগত পরচছ একগট ট ডরপরবর ডভন ততগয কযা ডমগট াঅভযা ডযাপরফাপরডড ডভন গরপরসট একগট নতন াঅাআপরটভ গপরপরফ ডমাগ কযফ ডভন ততগয কযায জনয াঅনাপরক add_menu_page( ) পাাংন ফযফায কযপরত পরফ ltphp

add_menu_page( page_title menu_title capability menu_slug functionicon_url

position )

gt

add_menu_page() পাাংন গনপরচয যাযাগভটাযগপররা াপরাটড কপরয page_title- াঅনায ডপরজয টাাআপরটর গক পরফ lttitlegt tag এয ভপরধয menu_title- ডযাপরফাপরডড াঅনায ডভনয নাভ capability- ফডগনমন capability রাগপরফ একগট ডভন গবউ পরত menu_slug- সলাগ নাভ মা ডভনপরক ডযপায কপরয- তপরফ এগট াআউগনক পরত পরফ function- একগট ডপরজয কনপরটনট ডদখপরত ডম পাাংন কর কযা য় icon_url- একগট কাসটভ াআপরভজ গরঙক ডভন াঅাআকন ডদখাপরনায জনয position- ডভনয গজন াডডায ডমখাপরন এটা ডদখাপরনা পরফ

এফায াঅভযা একগট ফাসতফ উদাযন ডদখফ- ltphp

Plugin Name Liton Menu

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action( admin_menu liton_menu)

function liton_menu()

24

create custom top-level menu

add_menu_page( Liton Menu Page Liton Menu Page manage_options

__FILE__ liton_menu_settings_page plugins_url( imageswp-logopng

__FILE__ ) )

gt

াঅভযা একগট ট ডরপরবর ডভন ততগয কযরাভ ডদখন ডযাপরফাপরডড ডকভন ডদখায়-

Liton Menu Page নাপরভ একগট ডভন ততগয পরয় ডগপরি এফাপরয াঅভযা াফপরভন কযফ ভাপরন Liton Menu Page এয গনপরচ গকি ডগটাং ডভন(মগদ েপরয়াজন য়) াফ ডভন ডযগজসটায কযায জনয add_submenu_page( ) পাাংন ফযফায কযা য় ltphp

add_submenu_page( parent_slug page_title menu_title capabilitymenu_slug

function )

gt

parent_slug- ডভন সলাগ মা াঅভযা াঅপরগ গডপাাআন কপরযগি menu_slug- মা ডভনপরক াফপরভনপরত ডযপায কযপরফ ফাগক পাাংনগপররা াঅপরগয ভতাআ

এফায াফপরভনয জনয গকি াগতগযি ডকাড ডমাগ কগয create submenu items

add_submenu_page( __FILE__ About My Plugin About manage_options

__FILE___about liton_menu_about_page )

add_submenu_page( __FILE__ Help with My Plugin Help

manage_options

__FILE___help liton_menu_help_page )

add_submenu_page( __FILE__ Uninstall My Plugin Uninstall

manage_options

__FILE___uninstall liton_menu_uninstall_page )

25

পরযা ডকাডগট পরফ এযকভ- ltphp

Plugin Name Liton Menu

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action( admin_menu liton_menu

)

function liton_menu()

create custom top-level menu

add_menu_page( Liton Menu Settings Page Liton Menu Page

manage_options __FILE__

liton_menu_settings_page

plugins_url( imageswp-logopng __FILE__ ) )

create submenu items

add_submenu_page( __FILE__ About My Plugin About manage_options

__FILE___about liton_menu_about_page )

add_submenu_page( __FILE__ Help with My Plugin Help

manage_options

__FILE___help liton_menu_help_page )

add_submenu_page( __FILE__ Uninstall My Plugin Uninstall

manage_options

__FILE___uninstall liton_menu_uninstall_page )

gt

গনপরচ ডদখন াফপরভনগপররা ততগয পরয় ডগপরি-

26

ডভনপরক াঅপরগয ডভনয াপরথ মি কযা এফায াঅগ গিতীয় িগতপরত মগদ াঅনায পলাগগপরনয একগট ভাতর ডজ থাপরক একগট ভাতর ডপরজাআ াঅনায কর ডগটাং পরয় মায় তাপরর এাআ িগত েন করন ডমভন ডয়াগযাং াাআটগপররায জনয রধ াঅনায াঅাআগডপযানপরপরজয াঅাআগড দযকায য় এযকভ পলাগগন এধযপরনয পলাগগপরনয জনয াঅনায াগতগযি ডভন ততগয কযায দযকায ডনাআ ফযাং এপরত কপরয াআউজায গফযি ডফাধ কযপরত াপরযন এ ধযপরনয পলাগগনগপররা ডগটাং এয াফপরভন গপরপরফ থাপরক add_options_page() এাআ পাাংন গদপরয় এফ ডভন ডযগজসটায কযা য় ltphp

add_options_page( page_title menu_title capability

menu_slug function)

gt

এফায চরন এযকভ একগট ডভন ততগয কগয- ltphp

Plugin Name Liton Sub Menu

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action( admin_menu liton_submenu)

function liton_submenu()

create a submenu under Settings

add_options_page( Liton Menu Settings Page Liton Menu Page

manage_options __FILE__

liton_menu_settings_page)

27

gt

াফপরভন ততগয পরয় ডগপরি চরন ডদগখ ডযাপরফাপরডড ডকভন ডদখায়-

এপরকফাপরয গনপরচয গদপরক ডদখন Liton Menu Page নাপরভ একগট ডভন ততগয পরয়পরি

উাআপরজট ততগয কযা উাআপরজট ততগয কযায জনয ওয়াডডপরে WP-Widget িা গদপরয় ততগয কযা য় উাআপরজট এয একগট পযভযাট ডদখন গনপরচ ltphp

class My_Widget extends WP_Widget

function My_Widget()

processes the widget

function form($instance)

displays the widget form in the admin dashboard

function update($new_instance $old_instance)

process widget options to save

function widget($args $instance)

displays the widget

gt

28

উাআপরজট ডযগজসটায কযায জনয widget_init() পাাংনপরক রক কযা য় চরন একগট উাআপরজট ততগয কগয- ltphp

Plugin Name Liton Widget

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

class Messager extends WP_Widget

function __construct()

$params=array(

description =gtDisplay message to readers

name =gt Message

)

parent__construct(Messager $params)

public function form()

public function widget()

add_action(widgets_initliton_register_message)

function liton_register_message()

register_widget(Messager)

gt

29

খফ াধাযন একগট উাআপরজট পলাগগন এগট াঅভযা াআউজাযপরদযপরক একগট ডভপরজ ডদখাপরফা াাআডফাপরয ডটাাআ কযায ডচষটা কযগি এখন পলাগগনগট এগকটপরবট কপরয ডদগখ-

াঅভাপরদয উাআপরজটগট ডদখাপরচছ এফায াঅপরযা গকি পাাংনার কাজ কগয এগট মগদ াাআডফাপরয ডরাগ কপরয ডদন তাপরর ডকান কাজ কযপরফ না কাযন াঅভযা এখপরনা গকিাআ কগযগন পভড পাাংপরন গকি কাজ কগয মা উাআপরজট টাাআপরটর গপরপরফ ডদখাপরফ- public function form($instance)

extract($instance)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title)gtgtTitle ltlabelgt

ltinput

class=widefat

id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt

value=ltphp if(isset($title)) echo esc_attr($title) gt gt

ltpgt

ltphp

াঅভযা উপরয class=widefat ফযফায কপরযগি এাআ িা ফযফায কযায কাযপরন পভড এয াআনট গপলডগট াপরনক সনদয পরয়পরি

30

মগদ এাআ িা ফযফায না কগয তাপরর ডকভন ডদখাপরফ গনপরচ ডদখন-

াঅভাপরদয উাআপরজট পলাগগনগটয ডকাড গনপরচ ডদওয়া র ltphp

Plugin Name Liton Widget

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

class Messager extends WP_Widget

function __construct()

$params=array(

description =gtDisplay message to readers

name =gt Message

)

parent__construct(Messager$params)

31

public function form($instance)

extract($instance)

print_r($instance)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title)gtgtTitle ltlabelgt

ltinput

class=widefat

id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt

value=ltphp if(isset($title)) echo esc_attr($title) gt gt

ltpgt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(description)gtgtDescription

ltlabelgt

lttextarea

class=widefat

rows=10

id=ltphp echo $this-gtget_field_id(description) gt

name=ltphp echo $this-gtget_field_name(description) gtgtltphp

if(isset($description)) echo esc_attr($description) gtlttextareagt

ltpgt

ltphp

public function widget($args$instance)

extract($args)

extract($instance)

echo $before_widget

echo $before_title$title$after_title

echo ltpgt$descriptionltpgt

echo $after_widget

add_action(widgets_initliton_register_message)

function liton_register_message()

32

register_widget(Messager)

gt

এফায াঅভযা ডযাপরফাডড ডথপরক একগট ডভপরজ ডদফ গবগজটযপরদযপরক-

াঅভযা এাআ উাআপরজটগট ডাাআনাগভক বাপরফ কপরযগি কাযন এখাপরন lth2gt lth3gt lth4gt এ ধযপরনয ডকান টযাগ াঅভযা ফযফায কগযগন াঅভযা গথভ ডডপরবর কযগিনা সতযাাং এ কাজগট াঅভাপরদয ানযবাপরফ কযা দযকায গির এগট গথভ ডডপরবরায ডদগখপরয় ডদপরফন ডম ডকভন টযাগ পরফ াাআডফাপরয াাআপরটয াাআডফাপরয ডকভন ডদখায় তা ডদখন- াঅভযা রগট গথপরভ এগট ডটসট কপরয ডদখফ েথভগট টপরয়গনট াআপররপরবন

33

এফায াঅপরযকগট গথপরভ ডদগখ-

34

াধযায়- িয়াঃ পলাগগন পাাংন

গকি ডফগক পাাংন __() পাাংন

__() পাাংনগট গএাআচগপরত াঅনায ডটকসটপরক ডযগড কপরয িানসপররন এফাং গযটানড কপরয উদাযন গপরপরফ াঅগন একগট বযারপরক __() পাাংপরনয ভপরধয ডবগযপরয়ফর গদপরয় assign করন ভপরন যাখপরফন এাআ পাাংনগট রগট াঅনডাযপরিায(_) গদপরয় গগঠত একগট নয় ltphp

$text=__(bdquoWordpress is a wonderful publishing platform‟‟liton_plugin‟)

gt

_e() পাাংন _e() পাাংনগট াঅনায ডটকসবপরট ডরাকারাাআজ কপরয এটা গএাআচগপরত echo এয ভত কাজ কপরয ডকান ডটকসটপরক গিপরন ডদখাপরনায জনয এফায একট ভজা কগয মা রপরক ডদপরখগি াঅপরগাআ- _e() পাাংনগট গদপরয় াঅপরগয পলাগগনগট এগডট কযফ ltphp

Plugin Name Liton Action

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(wp_footer liton_footer_action)

function liton_footer_action()

Output the translated text

_e( This site runs off the coolest platform ever ampmdash

WordPress

liton-plugin )

gt

35

এফায াঅউটট ডদগখ

esc_attr__() পাাংন এাআ পাাংনগট esc_attr() এয ভত এগট এাআচগটএভএর এগিগফউটপরক escape কপরয াঅভযা এফায esc_attr__() এফাং __() এাআ রগট পাাংনপরক একগট কপরয পলাগগন ততগয কযফ ltphp

Plugin Name Liton Esc Attr

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

A function that returns a link to the sites terms of service

page

function liton_terms_of_service_link()

return lta href=httpliton-onlinecomtos title=

esc_attr__( Visit the Terms of Service page boj-plugin ) gt __( Terms of

Service liton-plugin ) ltagt

Display the output of the liton_terms_of_service_link()

function

echo liton_terms_of_service_link()

gt

পলাগগনগটয াঅউটট ডদখন-

36

এযকভ াঅপরযা গকি পাাংন াঅপরি ডমগপররা াঅনাযা ডদপরখ ডনপরফন াআনটাযপরনট ডঘপরট

esc_html__() Function

esc_attr() Function

esc_url() Function

esc_js() Function

esc_html() Function

esc_attr_e() Function

esc_html_e() Function

_x() Function

_ex() Function

esc_attr_x() Function

esc_html_x() Function

_n() Function

_nx() Function

_n_noop() Function

_nx_noop() Function

Translation

bull Poedit httppoeditnet

bull GlotPress httpglotpressorg

bull Launchpad httpstranslationslaunchpadnet

bull Pootle httppootlelocamotionorg

bull KBabel httpi18nkdeorg

bull GNU Gettext httpgnuorgsoftwaregettext

GlotPress এখন ওপরয়ফ ডফড টর গপরপরফ ফযফায কযা পরচছ ওয়াডডে েপরজপরকটয ডিপরন একজন াথফা গটপরভয জনয িানসপররগটাং পটওয়যায গপরপরফ

37

াধযায়- াতাঃ পলাগগন গগকউগযগট

গগকউগযগট কগমপউটাপরযয বালায় ldquoগগকউগযগটrdquo ভাপরন বীগতকয একগট বদ ডমভন Cross Site

Scripting(XSS) Cross Site Request Forgery(CSRF) SQL Injection Privilege

Escalation Vulnerabilities এফাং Holes রফডর ডকাড একগট াবডাপরযয সযকষায জনয রভকীয কাযন পরত াপরয

পলাগগপরনয গগকউগযগট গক াঅনায পলাগগনগট ডমন গগকউয য় vulnerabilities data integrity এফাং reliability ডথপরক

াঅনায পলাগগনপরক গক গগকউগযগট ডদপরফন ওয়াডডপরে এনবায়যনপরভপরনট াঅনায পলাগগনপরক গগকউগযগট ডদয়া খফ কগঠন কাজ নয় এফাং খফ ভয় াপরকষ গফলয়ও নয় ওয়াডডপরেপরয গনজসব গকি পাাংন এপরকষপরতর াঅনাপরক খফাআ াাময কযপরফ

াআউজায াযগভন াঅভযা াপরনক পলাগগন াআনসটর কযায পরযাআ ডদপরখগি ডম মখনাআ এডগভন যাপরনর এ েপরফ কযপরত মাাআ তখন একগট এযয ডভপরজ াঅপর ডভপরজগট গনপরচয ভত-

ডরখা াঅপরি- You do not have sufficient permissionshellip এটা গনশচয়তা ডদয় ডম ডমপরকান এযাকন ীভাফি থাপরক গনগদডষট গকি যাাআট গদপরয় ওয়াডডপরেপরয একগট কভন পাাংন র current_user_can() একগট উদাযন ডদাআ-

38

ltphp

Capability

if ( current_user_can(install_plugins) )

wp_die( Insufficient permissions )

Role

if( current_user_can(editor) )

wp_die( You cannot edit this setting )

gt

খফ তাড়াতাগড় াঅগন এাআ current_user_can() পাাংন ডচক কযপরফন না কাযন এটা গনবডয কযপরফ get_currentuserinfo() এাআ পাাংপরনয উপরয াঅয এয ফযফাপরয ীভাফিতা াঅপরি এটা একগট পলাপরগফর পাাংন(pluggable function) াঅয এয ডরাপরকন পরচছ wp-

includespluggablephp মা পলাগগন এগকটব ফায য ডরাড য়

Nonces

ডকউ এগটপরক াঅফায Nonsense( গনপরফডাধ) বাফপরফন নাএগট ওয়াডডপরেপরয বালায় Nonces কগমপউটাপরযয বালায় nonce ফা cryptographic nonce পরচছ ldquonumber used once rdquo এটা ডিাট এফাং সপষট গকি য যানডভ গসটরাং ডমভন- াওয়াডড মা গকি গনপরদড কপরয Nonce গপরডন গপলড পভডপরক Retrieve ফা display কপরয-

একজন ওয়াডডপরে াআউজায ডমপরকান একগট এযাকন (delete update save and such) একগট াফপরজকট(একগট ডাসট পলাগগন ডগটাং াআতযাগদ) ২৪ ঘনটায একগট ভয় ডিভ

ডমভন ডাসট 50 গডগরট কযপরফন াঅনায ওয়াডডপরে বলগ ডথপরক তাপরর াঅনায গরঙকগট পরফ এযকভ- httpexamplecomwp-admin

postphppost=43ampaction=trashamp_wpnonce=83a08fcbc2

এখাপরন 83a08fcbc2 এগট র nonce মা ২৪ ঘনটা সথায়ী থাপরক রধভাতর এগট মগদ াঅনায িাযা ফযফরত য় এফাং গডগরট য় ডাসট 50 মখন াঅগন গরপরঙক গিক কপরযন ফপরচপরয় গযতবনড র ডম Nonce ডকান malicious াআউজায ফেপরত াপরযনা এফাং গঠক গরঙক িাড়া nonce এযয ডপরজ চপরর মায় ডমখাপরন াযগভন থাপরক না াঅপরযা গফসতাগযত ডদখন httpcodexwordpressorgWordPress_Nonces

39

Nonce URL ততগয এফায চরন াঅপরগয উদাযন ডথপরক Nonce URL ততগয কগয একগট ডাসট গডগরট কযায জনয wp_nonce_url() পাাংন ফযফায কযা য় ltphp

$url = wp_nonce_url( $url $action )

gt

েথভ যাযাগভটায $url পরচছ গসটরাং URL এপরডর এয মাপরক াঅগন কপরয়যী গসটরাং এয Nonce কযপরত চান াফযফহরত পলাগগপরনয গডগরট গরঙক এযকভ থাপরক- httpexamplecomwp-admineditphppage= liton

_utagsampliton_action=deleteampid=6

এখাপরন ডদখন যাযাগভটায liton_action এফাং এয টযাগ াঅাআগড গিতীয় যাযাগভটায পরচছ $action একগট গসটরাং মা াঅগন একগট াফপরজকট এয জনয একগট action ততগয কযপরফন উপরয ডদখরাভ delete এযাকন এয টযাগ াঅাআগড 6 সতযাাং $action যাযাগভটায পরত াপরয bdquoliton_utags-delete_tag6‟ গনপরচ ফাসতফ উদাযন ডদগখ- ltphp

$delete_url = add_query_arg(array( liton _action=gtdeleteid=gt$id) )

$nonced_url = wp_nonce_url( $delete_url bdquoliton _utags-delete_tag$id )

gt

lta href=ltphp echo $nonced_url gtgtdeleteltagt

এাআ টযাগগট পরফ গডগরট গরঙক এখাপরন add_query_arg() পাাংন ফযফায কযা পরয়পরি মা কাপরযনট URL ডক এযাপরয যাযাগভটায এয ভপরধয যাপরখ ানযবাপরফ ফরপরর এগট ডমাগ কপরয এযকভাঃ liton_action=deleteampid=6 amp liton_action=deleteampid=6

Nonce Form ততগয Nonce পভডপরকও ডোপরটকট কপরয wp_nonce_field() পাাংপরনয ভাধযপরভ ltphp

wp_nonce_field( $action $name $referer $echo ) gt

$action ( string) (optional) - action নাভ াআউগনক identifier optional

গকনত recommended $name (string) (optional) ndash গপরডন গপলড পভড ডবগযপরয়ফর নাভ $referer (boolean) (optional) ndash গডপলট গপরপরফ true থাপরক ডমখাপরন গপলড

ডবগরপরডন এয দযকায য়

40

$echo (boolean) (optional) - গডপলট গপরপরফ true থাপরক ডমখাপরন াঅউটট ডদখাপরনায ফা গপরডন পভড গপলড গযটানড কযায জনয দযকায য়

পপরভড াঅনায action এয নাভ গদন ltform method=postgt

lt-- some inputs here --gt

ltphp wp_nonce_field(name_of_my_actionname_of_nonce_field) gt

ltformgt

াঅভযা একগট পলাগগন ফানাপরফা ডমখাপরন াফযফরত টযাগগপররাপরক াঅভযা ভযানয়াগর গডগরট ফা গযপরনভ কযপরত াযফ এগট একট ফড় গকনত াপরনক গফলয়াআ াঅপরগাআ াঅপররাচনা কযা পরয়পরি ডদখপররাআ ফেপরত াযপরফন একগট ফাসতফধভডী উদাযন গনপরচ গদরাভ- ltphp

Plugin Name Liton Unused Tags

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add an entry for our option page to the Posts menu

add_action(admin_menu liton_utags_add_page)

function liton_utags_add_page()

add_posts_page( Unused Tags Unused Tagsmanage_optionsliton_utags

liton_utags_option_page )

Catch any liton_action parameter in query string

add_action( admin_init liton_utags_do_action )

Proceed to requested liton_action if applicable

function liton_utags_do_action()

if( isset( $_REQUEST[liton_action] ) )

return

if( current_user_can( manage_options ) )

wp_die( Insufficient privileges )

41

$id = $_REQUEST[id]

$action = $_REQUEST[liton_action]

if( $action == done )

add_action( admin_notices liton_utags_message )

return

check_admin_referer( liton_utags-$action_tag$id )

switch( $action )

case rename

$newtag = array( name =gt $_POST[name] slug =gt

$_POST[name] )

wp_update_term( $id post_tag $newtag )

break

case delete

wp_delete_term( $id post_tag )

break

wp_redirect( add_query_arg( array( liton_action =gt done )

) )

Admin notice

function liton_utags_message()

echo ltdiv class=updatedgtltpgtAction

completedltpgtltdivgt

Draw the tag management page

function liton_utags_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtUnused Tagslth2gt

ltphp

if( $tags = liton_utags_find_orphans() )

echo ltpgtYou currently have count( $tags ) unused

tagsltpgt

echo ltolgt

foreach( $tags as $tag )

42

$id = $tag-gtterm_id

$name = esc_attr( $tag-gtname )

$delete_url= add_query_arg(

array(liton_action=gtdeleteid=gt$id) )

$nonced_url= wp_nonce_url( $delete_url

liton_utags-delete_tag$id )

gt

ltligt

ltform action= method=postgt

ltphp wp_nonce_field( liton_utags-rename_tag$id )

gt

ltinput type=hidden name=liton_action

value=rename gt

ltinput type=hidden name=id value=ltphp echo

$id gt gt

ltinput type=text name=name value=ltphp echo

$name gt gt

ltinput type=submit value=Rename gt or

lta href=ltphp echo $nonced_url gtgtdeleteltagt

this tag

ltformgt

ltligt

ltphp

else gt

ltpgtYou have no unused tagsltpgt

ltphp endif gt

ltolgt

ltdivgt

ltphp

Find unused tags return them in an array

function liton_utags_find_orphans()

global $wpdb

$sql = SELECT termsterm_id termsname FROM

$wpdb-gtterms terms

INNER JOIN $wpdb-gtterm_taxonomy taxo

ON termsterm_id=taxoterm_id

WHERE taxotaxonomy = post_tag

43

AND taxocount=0

return $wpdb-gtget_results( $sql )

gt

ডযাপরফাপরডড এাআ পলাগগপরনয ডভন াওয়া মাপরফ ডাসট এয াফপরভন গপরপরফ গনপরচ ডদখন-

এফায পলাগগন ডভনপরত গিক কপরয ডদগখ পলাগগপরনয ডবতপরযয কাজ-

উপরয ডদখন াঅগভ একগট টযাগ ততগয কপরযগিরাভ l i নাপরভ এগট এখাপরন ডদখাপরচছ াঅগভ চাাআপরর এগট এগডট ফা গডগরট কযপরত াগয এফায গডগরট গরঙক এ ভাউপরয কাডয ডযপরখ গনপরচ গরঙক ডদখন ফা গডগরট করন একগট টযাগ াঅভায এখাপরন URL গট এযকভ httplocalhostdev-litonwp-

admineditphppage=liton_utagsampliton_action=doneampid=4amp_wpnonce=30a44b7

986

এখাপরন াঅগভ liton_action=done ফযফায কপরযগি Nonces এয পাাংনগপররায নাভ গনপরচ গদরাভ াঅনাযা ডদপরখ গনপরফন াআনটাযপরনট ডথপরক wp_nonce_field()

wp_nonce_url()

wp_verify_nonce()

wp_create_nonce()

44

check_admin_referer()

check_ajax_referer()

ডাটাপরফ াঅনাযা ডমপরত গএাআচগ গনপরয় কাজ কপরযন এগকউএর ডাটাপরফ এয াপরথ ফাাআ কভপরফী গযগচত এয গনটযাকস গপররা ডভাটাভগট ফায জানা একাআ বাপরফ াপরনপরকাআ ওয়াডডপরেপরও ডাটাপরফ ডকাড গরপরখন এটা ডকাগডাং এয জনয খাযা গদক াঅগভ নযভার গএাআচগ- এগকউএর ডকাড এয উদাযন গদগচছ- ltphp

$sql=rdquoINSERT INTO $wpdb-gtposts(post_title) VALUES(bdquo$title‟)rdquo

$wpdb-gtquery($sql) gt

এফায ওয়াডডপরেপরয সটযানডাডড ডকাগডাং গপরসটভ ডদখন- ltphp

$wpdb-gtinsert($wpdb-gtposts

array(bdquopost_title‟ =gt $title)

array(bdquos‟)

)

gt

ডাটাপরফ গগকউয কযায জনয াঅপরডট াাপরযন ডদখাফ- গনপরচয ডকাডগট খাযা েযাকগট ltphp

$wpdb-gtquery(ldquoUPDATE $wpdb-gtposts SET post_title=‟$newTitle‟ WHERE

ID=$my_idrdquo )

gt

উপরযয ভত কপরয না গরপরখ গনপরচয ভত কপরয গরখন- ltphp

$wpdb-gtupdate($wpdb-gtposts

Array(bdquopost_title‟ =gt‟$newTitle‟)

Array(bdquoID‟ =gt$my_id

)

gt

ানর বাপরফ ানযানয াাপরযন গপররা গরখপরফন

45

াধযায়- াঅটাঃ ডরাকারাাআপরজন এফাং Set t i ngs API

ডরাকারাাআপরজন ডরাকারাাআপরজন একগট গরতবনড গফলয় এয পাাংনগপররা র- load_theme_textdomain()

load_plugin_textdomain()

উদাযন- ltphp $var=__(bdquoHello‟‟domain‟) gt

ltphp _e(bdquoHello‟‟domain‟) gt

গফসতাগযত গনপরচয গরপরঙক ডদখন- httpcodexwordpressorgI18n_for_WordPress_Developers

ডগটাং API

ডগটাং API পরচছ াঅগন গকি ান ততগয কযপরফন মা াআনটাযনার বাপরফ াঅনায পলাগগপরন এপলাাআ পরফ মখন াঅগন াআউজায- গডপাাআন ান ততগয কযপরফন াঅনায পলাগগপরনয জনয তখন Settings

API ndashএ াঅনায ডকাড মতটা ারন জ করন Settings API াঅনায ডম কাজগপররা handle কপরয-

ওয়াডডপরেপরক জাগনপরয় ডদয় ডম াঅগন গনজসব ান ফযফায কযপরফন াঅনায াআনটপরক পাাংপরনয ভপরধয উপরেখ কযপরফ ডফগয বাগ ান ডজ গনপরজাআ ততগয কযপরফ $_POST ডাটা গপররাপরক ভগনটয কপরয ান ততগয এফাং াঅপরডট কপরয(মগদ েপরয়াজন য়)

Settings API পাাংন Settings API পাাংপরন গতনগট ডসট থাপরক- ১ েথপরভ ওয়াডডপরেপরক ফপরর ডম াঅগন নতন ডগটাং ফযফায কযপরফন াঅনায পলাগগপরনয জনয ২ এয পরয ডগটাং গডপাাআন করন (text areas input boxes and any

HTML form element) এফাং এপরদযপরক একাপরথ রে কপরয যাপরখ ৩ ওয়াডডপরেপরক াঅনায ডগটাং actual form এ ডদখাপরনায জনয ফপরর

46

এফায াঅভযা একগট পলাগগন ফানাপরফা Administration Page ndashএ ডযপাপরযনস গপরপরফ ডদখপরত াপরযন- httpcodexwordpressorgAdding_Administration_Menus

httpcodexwordpressorgFunction_Referenceadd_options_page

httpcodexwordpressorgAction_ReferenceActions_Run_During_an_Admin_P

age_Request

পলাগগপরনয এডগভন ডজ পরফ এযকভ- httpexamplecomwp-adminoptions-generalphppage=liton_myplugin

েথপরভ াঅভযা ডভন ততগয কযফ াঅপরগয ভত কপরয- Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

এফায ান ডজ এ পভড গনপরয় গকি ডগটাং ডদফ function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

উপরযয ডকাপরড াঅভযা একগট পপরভডয ভপরধয রধ াফগভট ফাটন এফাং My Plugin নাপরভ ডজ ততগয কপরযগি ডযাপরফাপরডড ডদখন-

47

ডগটাং এয াফ ডভন গপরপরফ My Plugin াঅপরি এফাং My Plugin ডত গিক কযপরর াঅভযা উপরযয ডজ ততগয কপরযগি ডমখাপরন াফগভট ফাটনগট ডদখাপরচছ এফায গতনগট যাযাগভটায ডযগজসটায কযফ- ltphp

register_setting( liton _myplugin_options liton _myplugin_options liton

_myplugin_validate_options)

gt

েথভগট ডগটাং রেপরয নাভ গিতীয়গট ান নাভ মা াঅভযা get_option() পাাংন গদপরয়ও ডপরত াগয ততীয়গট করফযাক পাাংন এগট একগট গসটরাং ডযপাপরযনস পাাংন এখাপরন াঅভযা নাভ

48

গদপরয়গি liton _myplugin_validate_options মা া কযপরফ পপরভডয কর ডব ডগটাং াঅভযা এটা পরয গডপাাআন কযফ

ডগটাং গডপাাআন ডকন add_settings_field() এফাং add_settings_section() পাাংন গদপরয় াঅভযা াঅভাপরদয কর ডগটাং গডপাাআন কযফ ltphp

add_settings_section( liton_myplugin_main My Plugin Settings

liton_myplugin_section_text liton _myplugin)

add_settings_field( liton _myplugin_text_string Enter text here

liton _myplugin_setting_input liton _myplugin liton _myplugin_main)

gt

add_settings_section() পাাংন গদপরয় াঅভযা ডদখাফ াঅপরর ডজ এ ডকন ডকভন ডদখাপরফ এয চাযগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ ডকন টাাআপরটর ltH3gt টযাপরগয ভপরধয করফযাক পাাংন এয নাভ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ (page= liton _myplugin এগট

URL এয াাং গপরপরফ থাকপরফ) গিতীয় যাযাগভটায add_settings_field() পপরভডয াআনট গপরপরফ ডদখাপরনা পরয়পরি এখাপরন াাচগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ পরযয গপপরলড গক গেনট কযা পরফ তা ডটকসট গপরপরফ ডদখাপরনা পরয়পরি(Enter text

here)

করফযাক পাাংন পপরভড গেনট কযপরফ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ ডগটাং ডপরজয ডকন গপলড মা add_settings_section() পাাংপরন গডপাাআন

কযা পরয়পরি ltphp

Explanations about this section

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

49

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton _myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name= liton _myplugin_options[text_string]

type=text value=$options[text_string] gt

gt

গিতীয় পাাংন ান বযার text_string ডক এযাপরযপরত ডসটায কপরয ডযপরখপরি এফায াআউজায াআনট বযাগরপরডট কযফ- ltphp

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace([^a-zA-Z]$input[text_string] )

return $valid

gt

পভডপরক ডযনডায কযফ- ltphp

Draw the options page

function liton_myplugin_options_page()

gt

ltdiv class=wrapgt

ltphp

screen_icon()

gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp

settings_fields( liton_myplugin_options)

do_settings_sections(liton_myplugin)

50

gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

settings_fields() পাাংনগট ডযপাপরযনস গপরপরফ ফযফায কযা পরয়পরি মা াঅভযা register_setting() পাাংপরন গডপরিয়ায কপরযগি do_settings_sections() পাাংনগট কর কযপরফ কর াঅউটট ডকন এফাং পভড গপলডপরক মা াঅভযা পরফড গডপাাআন কপরযগি াঅভাপরদয কাজ ডল এফায পরযা পলাগগনগট ডদখফ- ltphp

Plugin Name Settings API example

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

Draw the option page

function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save

Changes gt

ltformgtltdivgt

ltphp

51

Register and define the settings

add_action(admin_init liton_myplugin_admin_init)

function liton_myplugin_admin_init()

register_setting( liton_myplugin_options

liton_myplugin_options

liton_myplugin_validate_options )

add_settings_section( liton_myplugin_main My Plugin

Settings

liton_myplugin_section_text liton_myplugin )

add_settings_field( liton_myplugin_text_string Enter text

here

liton_myplugin_setting_input liton_myplugin

liton_myplugin_main )

Draw the section header

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton_myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name=liton_myplugin_options[text_string]

type=text value=$text_string gt

Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

return $valid

gt

52

ডদখন ডযাপরফাপরডড ডকভন ডদখায়-

পরয় ডগর াঅভাপরদয েথভ নডাাংগ পলাগগন ান ডজ াঅপরযকগট গজগন ডমটায জনয এতগকি পলাগগন URL এপরডর- httplocalhostdev-litonwp-adminoptions-

generalphppage=liton_mypluginampsettings-updated=true

াঅভায এখাপরন এযকভ ডদখাপরচছ ডটকসট ফপরকস ডকান গকি গরপরখ ডব কযায য এফাপরয াঅপরযকগট গজগন ডদখফ াঅভযা াপরনক ভয়াআ াপরনক পলাগগপরনয াআনট গপপরলড বর ডাটা াআনট কযপরর এযয ডভপরজ ডদখায় এাআ কাজগট কযফ এফায াঅভযা এখাপরন esc_attr() ফা esc_html() ফযফায কগযগন সতযাাং াঅভাপরদয গরগভপরটন থাকপরি ডবগরপরডট পাাংনগট একট এগডট কগয গনপরচয ভত কপরয Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

if( $valid[text_string] = $input[text_string] )

add_settings_error(liton_myplugin_text_stringliton_myplugin_texterror

53

Incorrect value enterederror)

return $valid

উপরয ডদখন add_settings_error() পাাংন ফযফায কপরযগি মা এযয ডচক কযপরফ পপরভডয াঅগভ একগট বর ডাটা(পরসপার কযাপরযকটায) াআনট কপরয ডদখরাভ এযয ডদখাপরচছ-

তায ভাপরন াঅভযা পর পরয়গি াঅনায পলাগগনগট এগডট কপরয ডনপরফন ডকায ডকন এফাং গপপরলডয গরসট গদরাভ াঅনাপরদয সগফধায জনয

54

CSSJS পাাআর মি কযা

াঅনায পলাগগপরন গএএ ফা জাবাগিে ডমাগ কযপরত পরত াপরয াঅগন চাাআপরর ফাগপরযয ডকান ফা াঅনায ততগয ডকান গএএ ফা জাবাগিে পাাআর ডমাগ কযপরত াপরযন তপরফ এপরকষপরতর াঅভযা ডমবাপরফ HTML এ পাাআর ডমাগ কগয ডযকভ না function liton_scripts()

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtojqueryjsrdquogtltscriptgt‟

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtoscriptjsrdquogtltscriptgt‟

add_action(bdquowp_head‟‟liton_scripts‟)

এগট মপনডরপর বর িগত গনপরচ ডদখন ওয়াডডপরেপর গকবাপরফ পাাআর মি কযপরত য়- function liton_scripts()

wp_enqueue_script(bdquojquery‟)

wp_enqueue_script(bdquotheme-scripts‟‟pathtoscriptsjs‟)

add_action(bdquowp_enqueue_script‟‟liton_scripts‟)

ানর বাপরফ াঅগন সটাাআরীট ডমাগ কযপরত াপরযন- function liton_styles()

wp_enqueue_ style (bdquocss‟)

wp_enqueue_ style (bdquotheme- styles‟pathto stylescss‟)

ডযপাপরযনস ডদখন- httpcodexwordpressorgFunction_Referencewp_enqueue_script

httpcodexwordpressorgFunction_Referencewp_enqueue_style

টডপরকাড টডপরকাড পরচছ ওয়াডডপরেপরয ডসপগগপক ডসপার টযাগ মা াঅগন ডাসট ফা ডপরজয ভপরধয াআনাটড কপরয ানয ডকান কনপরটনটপরক ওপরয়ফাাআপরটয ভপরধয গযপরপল কযপরত াযপরফন মগদ াঅগন গযারাগয টাাআপরয ডকান পলাগগন ফযফায কপরয থাপরকন তাপরর াঅনায ধাযনা থাকায কথা মাাআ ডাক াঅগভ কপরয়কগট উদাযি ডদখাফ

55

েথপরভ একগট পলাগগন ততগয কযফ ডমখাপরন add_shortcode() নাপরভয একগট পাাংন থাকপরফ এগট রগট যাযাগভটায েন কপরয েথভগট টডপরকাপরডয নাভ গিতীয়গট ডম পাাংনপরক কর কযপরফন ডগট াঅভযা একগট উদাযন ডদগখ- ltphp

Plugin Name Liton Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(litonhi)

function hi()

echo Hello World

gt

উপরয ডদখন খফ ডিাট গকনত াঅগন চাাআপরর এয ফযফায াপরনক গফসতত কযপরত াপরযন এখাপরন টডপরকাড নাভ পরচছ liton াঅয এগটপরক ডরখা য় এবাপরফ [liton] াঅভযা ডাপরসটয ভপরধয াআনাটড কপরয ডদগখ াঅউটট ডকভন ডদখায়-

এফায াঅউটট ডদগখ-

56

াঅভাপরদয ততগয কযা টডপরকাড পরবাপরফাআ কাজ কযপরি াঅপরযকগট উদাযন ডদখফ াঅনাযা াপরনপরকাআ গগর এডপরনস গনপরয় কাজ কপরযন াঅনাযা াপরনপরকাআ এডপরনস এয জনয পলাগগন ফযফায কপরযন গকনত চাাআপররাআ এাআ কাজগট াঅনাযা গনপরজয ভত কপরয াগজপরয় গনপরত াপরযন গগপররয কাপরি ফ ডাসট বযার ায়না াঅনাযা মাযা একসাটড াঅপরিন তাযা এটা বার কপরয জাপরনন তাাআ াপরনপরকাআ গগপররয ডকাড ফ ডপরজ ডদখাপরত চান না এজনয পলাগগন ফযফায কপরয রাব য়না কাযন পলাগগপরন জায়গা গপকসড থাপরক এপরত কপরয াঅগনডাং ও কভ য় াঅনাযা টডপরকাড ফযফায কপরয ডমপরকান জায়গায় এড ডদখাপরত াপরযন গনপরচ াঅগভ রগট টডপরকাড ততগয কপরযগি র‟ধযপরনয এড ডদখাপরনায জনয ltphp

Plugin Name Liton Adsense Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(adsense_468adsense_468_60)

add_shortcode(adsense_250adsense_250_250)

function adsense_468_60($atts)

return ltscript type=textjavascriptgtlt--

57

google_ad_client = ca-pub-0956247412222369

468x60 created 101510

google_ad_slot = 4372705450

google_ad_width = 468

google_ad_height = 60

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

function adsense_250_250($atts)

return ltscript type=textjavascriptgtlt--

google_ad_client = ca-pub-0956247412222369

250x250 created 81809

google_ad_slot = 9368091893

google_ad_width = 250

google_ad_height = 250

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

gt

একগট টডপরকাড ফযানায টাাআপরয জনয এফাং াঅপরযকগট ২৫০২৫০ াাআপরজয এফায ডাপরসট ডমপরকান একগট টডপরকাড াআনাটড করন ডমখাপরন াঅনায ডদখাপরনায েপরয়াজন ভপরন কপরযন াঅগভ রগট ডকাড ডটসট কপরয ডদখরাভ-

58

এফায াাআপরটয াঅউটট ডদগখ-

রগট এডাআ ডদখাপরচছ াঅপরযা াপরনক কাপরজ াঅগন টডপরকাড ফযফায কযপরত াপরযন ডযপাপরযনসাঃ httpcodexwordpressorgShortcode_API

59

াধযায়- নয়াঃ পলাগগন উদাযন

ওয়াডডপরেপরয ডডটটাাআভকপরভনট নামবায ফাাংরা কযায পলাগগন াঅভাপরক কপরয়কজন ফপররগিপররন ওয়াডডপরেপরয গডপলট ডডটটাাআভকপরভনট নামবায ফাাংরা য়না রযাাংগপরয়জ ফাাংরা কযায যও ডডটটাাআভকপরভনট নামবায গপররা াআাংপরযগজ ডথপরক মায় গনপরচয পলাগগনগট ফযফায কপরয ডদখপরত াপরযন- ltphp

Plugin Name Liton Bangla datetimecomment number

Plugin URI httpliton-onlinecomplugins

Description Bangla datetimecomment number

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

This function converts all english numbers to bangla number

function make_bangla_number($str)

$engNumber = array(1234567890)

$bangNumber = array( ১ ২ ৩ ৪ ৫ ৬ ৭ ৮ ৯ ০ ) $converted = str_replace($engNumber $bangNumber $str)

return $converted

add_filter( get_the_time make_bangla_number )

add_filter( the_date make_bangla_number )

add_filter( get_the_date make_bangla_number )

add_filter( comments_number make_bangla_number )

add_filter( get_comment_date make_bangla_number )

add_filter( get_comment_time make_bangla_number )

gt

60

সলাাআডায পলাগগন াঅভযা এাআ ফাআপরয়য কর গটউপরটাগযয়াপরর মা মা গখরাভ তা এফায একগট নডাাংগ পলাগগপরনয এপলাাআ কযফ সলাাআডায পলাগগন মপপরকড াঅভযা ফাাআ জাগন একগট ওপরয়ফাাআপরটয ডচাযা ারপরট ডদয় একগট সলাাআডায াপরনক ডাাআনাগভক ভপরন য় ডদখপরতও াপরনক বার রাপরগ এাআ পলাগগপরন াঅভযা এডগভন যাপরনর ডথপরক াআপরভজ ডমাগ কযফ এফাং তা াঅভাপরদয াাআপরট ডদখাফ চরন কাজ রর কগয- েথপরভ গনপরবা সলাাআডায এয ওপরয়ফাাআপরট মান এফাং jQuery Plugin ডাউনপররাড করন

ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom Version 10

gt

াঅভযা পলাগগপরনয ডডায ততগয কযরাভ

পলাগগন গরপরসট ডদখাপরচছ bdquoLitons Nivo Plugin‟ াঅভাপরদয েথভ কাজ পরচছ custom post

type ওয়াডডপরে পাাংনাগরগট একগট নতন কাসটভ ডজ ততগয কযপরত custom post type

ফযফহরত পরফ ডমখাপরন একগট াআপরভজ থাকপরফ াঅভযা রধ টাাআপরটর ডনভ এফাং াআপরভজ াঅপররাডায গপরপরফ গপচায াআপরভজ পাাংনাগরগট ফযফায কযফ function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_function 600 280 true)

61

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

add_action(init np_init)

উপরযয ডকাপরড np_init() পাাংনগট রক কপরযগি মা ডডায যান কযায াঅপরগ যান পরফ াঅয এজনয register_post_type() পাাংনপরক এয যাযাগভটায গদপরয় np_init() পাাংপরনয ডবতপরয মি কপরযগি এটা মগদ না কযতাভ তাপরর ldquoHeaders already sentrdquo ডভপরজ ডদখাত এাআ ডভপরজগটয াপরথ াপরনপরকাআ গযগচত াঅা কগয register_post_type() পাাংন গদপরয় াঅভযা াআপরভজ মি এফাং ভযাপরনজ কযফ ভরত াঅভযা একগট নতন custom post type ডমাগ কপরযগি np_images নাভ গদপরয় নতন custom post type ডক ডগটাং বযার গপরপরফ াঅযগপরভনট া কপরযগি $args ডবগযপরয়ফরগট ট ডরপরবর ডভন ততগয কপরয াঅপরগাআ ডদপরখগি পলাগগনগট এগকটপরবট কযপরর াঅভযা গনপরচয ভত ডদখপরত াফ-

এফায গিে এফাং সটাাআরীট ডক মি কযফ- add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

এফায রক কযা পাাংনগপররা গডপরিয়ায কগয- function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__) array( jquery ))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

62

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

উপরযয ডকাডগপররা নতন কপরয ফিডনা কযায গকি ডনাআ াঅপরগাআ wp_enqueue_style() এফাং wp_enqueue_script() মপপরকড ফরা পরয়পরি নতন াঅপরযকগট পাাআর ততগয করন একাআ গডপরযকটগযপরত scriptjs এফাং গনপরচয ডকাডটক গদন- jQuery(document)ready(function($)

$(slider)nivoSlider()

)

াআপরভজপরক গযাাআজ করন- add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

াঅভযা এাআ পলাগগনগটপরক উাআপরজট গপরপরফও ফযফায কযফ ডগট পরয ডদখফ াঅপরযকগট গজগন মগদ গথপরভ না ডদয়া থাপরক ডজনয থামবপরনাআর াপরাটড গদপরয় গদন- add_theme_support( post-thumbnails )

এফায ওয়াডডপরেপরয কাপরযনট ডাসট কপরয়যী কযায ডকাড াঅয $result ডবগযপরয়ফপরর ডমফ ltdivgt টযাগ ফযফায কযা পরয়পরি তা jQuery Plugin গট একসিাকট কপরয indexhtml ডজগটয ডভাআন সলাাআডায ডকাডগট ডদখন একাআ াঅপরি রধ ডখানকায ltdivgt টযাগ গপররাপরক কগ কপরয এাআ পলাগগপরন ফযফায কযা পরয়পরি এফায টডপরকাড গদন- add_shortcode(np-shortcode np_function)

এাআ টডপরকাড গএাআচগ পাাংনপরক রক কযপরফ এফাং এয ভধয ডথপরক সলাাআডপরায কনপরটনট ডক গযটানড কযপরফ াঅভাপরদয টডপরকাড পরচছ [np-shortcode] াঅভযা পলাগগপরন মাাআ এফাং একগট িগফ মি কগয গপচাযড াআপরভজ গপরপরফ গনপরচ ডদখন-

63

াঅগভ াঅপরযকগট ডজ ততগয কপরযগি ডমখাপরন টডপরকাড গদপরয়গি

াঅউটট ডজ ডদগখ এফায-

64

পরয় ডগর াঅভাপরদয সলাাআডায পলাগগন পরযা ডকাডগট গনপরচ গদরাভ- ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

65

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

66

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

এফায াঅগন মগদ উাআপরজট গপরপরফ ফযফায কযপরত চান তাপরর গনপরচয ডকাডটক গদন- class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

67

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

echo $after_widget

াঅপরযা রগট কাজ কযপরত পরফ াঅনাপরক এক াআপরভজ াাআজ উাআপরজট এয জনয গঠক কপরয গদপরত পরফ- add_image_size(np_widget 180 100 true)

াঅপরযকগট র উাআপরজট এযাকন রক ডমাগ কযা add_action(widgets_init np_widgets_init)

উাআপরজট পরযা ডকাড াঅফায গদরাভ- ltphp

Plugin Name Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Ciprian Turcu

Version 10

68

class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

69

echo $after_widget

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

70

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(widgets_init np_widgets_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

71

পলাগগন গনপরয় এত ডিাট গযপরয ডরখা মভফ নয় এজনযাআ ভপরন য় পলাগগন গনপরয় ডকউ ডরপরখন না কাযন এখাপরন এত গফলয় াঅপরি মা াঅপররাচনা কযপরত ডগপরর ৫০০ ডজ ায পরয় মাপরফ ডফাোয সগফধাপরথড াঅগভ মথামভফ উদাযন গদপরয় ডফাোপরনায ডচষটা কপরযগি াঅগভ এখাপরন টাপরগডট কপরযগি মাযা টকটাক জাপরন পলাগগন মপপরকড এডবানস ডরপরবপররয নয় কাযন তাযা জাপরনন াঅভায উপরেশয গির মাযা জানপরত চায় তাপরদযপরক জানাপরনা এখাপরন ডমফ গফলয় াঅপররাচনা কযা পরয়পরি তা ডভাটাভগট ভাপরনয একগট পলাগগন ফানাপরনায জনয মপরথষট তপরফ ভাপরনাননয়পরনয জনয াঅনাপরক গনপরজাআ খাপরজ গনপরত পরফ াঅনায জনয ডকানটা বার পরফ াঅগভ রধ গদক গনপরদডনা গদরাভ ভাতর এাআ ফাআগট রধভাতর ওয়াডডপরে রেপরয জনয ডরখা াপরনক বর ভরাগনত থাকপরত াপরয াঅনাযা কষভাসনদয দগষটপরত ডদখপরফন াঅগভ ডচষটা কপরযগি মতটা জ কপরয ডরখা মায় াপরনক ভয় ডদখা মায় ডম খফ ডিাট খাপরটা গফলয় গনপরয় াপরনপরকাআ নক কপরযন এটা গতয রাঃখজনক াঅনাযা গগপরর একট খাজপররাআ ভাধান াপরফন াঅপরগ গনপরজ ডচষটা করন তায পরয ানযপরক ভাধাপরনয জনয গজজঞাা করন াঅভায জনয ডদায়া কযপরফন বাপররা রাগপরর জানাপরফন খাযা রাগপররও জানাপরফন তাপররাআ াঅভায গযশরভ সবাথডক পরফ ভতাভত জাগনপরয় াঅভাপরক ডভাআর কযপরত াপরযন litonice09gmailcom |

72

Page 6: Wordpress Plugin Development

7

াধযায়- একাঃ চনা গকি কথা ওয়াডডপরেপরয েগত যপরয়পরি াপরনক বারফাা ওয়াডডপরে মপপরকড নতন কপরয গকি ফরায ডনাআ ডমপরকান ওয়াডডপরে ফযফাযকাযীয জনয পলাগগন একগট গরতবনড গফলয় পলাগগন াঅপরর গক ওয়াডডপরে পলাগগন াঅভাপরদযপরক াঅভাপরদয বলগ ওপরয়ফাাআপরটয পাাংনাগরগট ফগি কযপরত াাময কপরয াভানয াথফা ডকান যকভ ডোোগভাং জঞান িাড়াাআ ওয়াডডপরে পলাগগপরনয গনগদডষট ডকান াঅকায এফাং াঅকগত ডনাআ একগট পলাগগন ডমপরকান গকিাআ কযপরত াপরয ওয়াডডপরে বলগ ওপরয়ফাাআপরটয াঅভায পলাগগপরনয াংখযা খফ কভ গকি াফগর কযা য়গন াঅগভ ওয়াডডপরেপরয গকি গরগভপরটন গনপরয় কাজ কযগি এফাং এগপররা গনপরয়াআ ভরত কাজ কযগি গকবাপরফ াঅপরযা একসপরটনড কযা মায় মাাআ ডাক াঅগভ এখনও গকষানগফ গপরপরফ াঅগি

ফাআগট কাপরদয জনয াঅগন মগদ এাআ ফাআগট ডাউনপররাড কপরয থাপরকন তাপরর াঅগভ ধপরযাআ গনগচছ াঅগন একজন ওপরয়ফ ডডপরবরায এফাং াপরথ গকি ডোোগভাং জঞান াঅপরি পলাগগন ডডপরবরপরভপরনটয উপরেশয পরচছ াঅগন পলাগগন ডডপরবর কযপরফন াঅনায িাপরয়নট াঅগন ডমবাপরফ চান গঠক ডবাপরফ ডমপরকান ধযপরনয ওপরয়ফাাআট ততযীপরত ওয়াডডপরেপরয ফযগতিভ পলাটপভড াআপরতাভপরধযাআ েভাগিত এাআ ফাআগট গিরযানসাযপরদয জপরনযও মাযা তাপরদয গির ডাটডপরপাগরও এফাং ওয়াডডপরেপরয পাাংনাগরগট ফপরে কাজ কপরযন

ডোয়াজনীয় টর

Notepad ++( httpnotepad-plus-plusorgdownload )Dreamwaver

Mozilla Firefox (httpwwwmozillaorgen-USfirefoxnew) Google Crome

Firebug Extension (Search For both Firefox Chrome as you want)

Web Developer Extension (Search For both Firefox Chrome as you want)

Xampp with Wordpress Installation

FTP Client Example- Filezilla ওয়াডডপরে গকবাপরফ াআনসটর কযপরত য় তা নতন কপরয ডদখাপরনায গকি ডনাআ তফও মাযা নতন তাযা এখাপরন ডদখন ( httpgooglWJTp9 ) গকবাপরফ পলাগগন াআনসটর কযপরত য় তা এখাপরন ডদখন ( httpgooglpE8AD)

8

াধযায়- রাআাঃ পলাগগপরনয গঠন পলাগগন গক ওয়াডডপরেপরয পলাগগন র একগট PHP গিে মা ওয়াডডপরেপরয গনজসব পাাংনাগরগট গযফতডন কপরয াথফা গযফধডন কপরয ভরতাঃ একগট গপচায ফা গকি গপচায াঅভাপরদয াাআপরট ডমাগ কযায জনয াঅভযা পলাগগন াআনসটর ডদাআ একগট পলাগগপরনয কাপরজয ডকান গরগভট ডনাআ ড ডকান কাজগপররা কযপরত াযপরফ কাযন পলাগগন ডাউনপররাপরডয ডকান গনগদডষট াাআজ ডনাআ পলাগগন ওয়াডডপরেপরয াপরথ গকবাপরফ কাজ কপরয ওয়াডডপরেপর াপরনক গপচায াঅপরি গফগবনন API(Application Programming Interface)- এয জনয ডমগপররা গফগবননবাপরফ কাজ কপরয ওয়াডডপরেপর গনপরচ ডগপররা াঅপররাচনা কযা রাঃ

পলাগগনাঃ একপরট রক( hooks) ডমগপররা ওয়াডডপরেপরয গনগদডষট পাাংপরন এপরকস কপরয এগপররাপরক এনাফর কপরয

উাআপরজটাঃ পলাগগন গদপরয় উাআপরজট ততগয এফাং গযচারনা কযা টডপরকাডাঃ াঅনায পলাগগনপরক াপরাটড কযায জনয টডপরকাড ডমাগ কযা টডপরকাড র

একগট রক ডমটা একগট PHP পাাংনপরক এনাফর কপরয এফাং াঅনায ডাসট ফা ডজ এ েদডন কপরয াঅগভ পরয এ গফলপরয় গফসতাগযত ফরফ

HTTP এগট াঅনায পলাগগপরন HTTP গযপরকাপরয়সট াঠায় এাআ API কনপরটনট ডথপরক external URL াথফা Submit কযা কনপরটনট ডথপরক URL retrieve কপরয

ডগটাংাঃ াঅনায পলাগগপরনয ডগটাং াআনাটড াথফা ডগটাং ডকন ডগটাং API এয োথগভক সগফধা র গগকউগযগট কর ডগটাং ডাটা গযিায( গযপরাগধত) থাপরক সতযাাং মখন পলাগগন ডগটাং ডব কযায ভয় Cross Site Request Forgery (CSRF) এফাং Cross Site Scripting(XSS) গনপরয় গচনতায গকি ডনাআ

Options পলাগগপরনয কর ান জভা যাপরখ এফাং retrieve কপরয এগট নতন ান ততযী কপরয াঅপরগয ান াঅপরডট কপরয ান গডগরট কপরয এফাং ডমপরকান ান retrieve কপরয

Dashboard Widgets ডযাপরফাডড উাআপরজট ততগয কপরয ওয়াডডপরে ডযাপরফাপরডড automatically উাআপরজট েদডন এফাং কর কাসটভাাআপরজন গপচায ডমভন- গভগনভাাআজ ডরাগ ডর এফাং গিন ান

Rewrite াঅনায পলাগগপরনয জনয কাসটভ রর ততগয কযা এাআ API াঅনায static-end-point(custom-page) structure tags(postname) এফাং াগতগযি গপড গরঙক (feedjson)

9

Transients গকি াসথায়ী ান (cached data) ততগয কপরয াঅনায পলাগগপরনয জনয এাআ API গট Options API এয ানর

Database ওয়াডডপরেপরয ডাটাপরফপর েপরফ কপরয এগট াঅনায পলাগগপরনয ডাটাপরফপরজ গনপরচয কাজগপররা মপাদন কপরয- creatingupdatingdeleting and retrieving

কখন াঅনায পলাগগন ডরাড য় পলাগগন ততগয কযপরত ডগপরর এাআ ডফগক কাজগপররা াঅভাপরদয াফশযাআ জানপরত পরফ াঅভযা ডতা পলাগগন াআনসটর গদপরয়াআ খারা একফায ডবপরফও ডদগখনা এগট াঅপরর গকবাপরফ কখন ডরাড পরফ াাআপরটয উয কতটা াআপরপকট ডপরপরফ াঅগভ গনপরচ একগট ডায়াোভ গদরাভ াঅা কগয াঅয গকি ফরপরত পরফনা াঅভাপরক

Wordpress URL Called

wp-config Loaded

Functions Loaded

Plugins Loaded

Pluggables Loaded

Translations Loaded

Theme Loaded

Page Content

10

ওয়াডডপরে পলাগগন ডডপরবর কযায ৭গট কাযন

াঅগভ াআনটাযপরনট এ ldquoHow to Write a Plugin (httpgooglrCUY) rdquo গদপরয় াপরনক াচড কপরযগি াপরনক াঅগটডপরকর াঅপরি গকনত ভন ভত কপরয়কগট িাড়া ফরায ভত াাআগন ওয়াডডপরেপরয ldquoডকাপরডকসrdquo াঅপররাআ ওয়াডডপরে মপপরকড জানায জনয মপরথষট এটা পরয ফপরেগি ৭ গট কাযন ডকন াঅগন ওয়াডডপরে পলাগগন ফানাপরফনাঃ ১) াঅগন একগট পলাগগন মপপরকড জাপরনন গকনত এয ফাসতফায়ন িনদ কযপরিন না াঅভযা ডফগয বাগ ভয়াআ এাআ ভোয় গড় ২- ৩ গদন ধপরয একটা পলাগগন ডখাাজায জনয ফযয় কগয গকনত ভন ভত পলাগগন খাপরজ াাআ না গকনত এাআ ভয় এ একটা পলাগগন গরখা পরয় ডমত ২) াঅগন াঅপরগয ডকান পলাগগন ভগডপাাআ কযপরফন াপরনক ভয়াআ াঅনায িনদ ভত পলাগগন ডপররন গকনত াভানয গকি ডচি কযপররাআ াঅনায কাপরজ রাগপরফ এপরকষপরতর াঅনাপরক ডাআ পলাগগনগট ভগডপাাআ কযপরত জানপরত পরফ াপরনক ভয় পলাগগপরনয ডরখক ফযসত থাকপরত াপরযন এফাং াঅপরডট কযপরত াপরযন না এপরকষপরতর াঅগন ডাআ পলাগগনগট Aut hor Name ডচি কপরয গনপরত াপরযন তপরফ GPL Compatible license (httpgooglBOzm ) গঠক ডযপরখ াঅগন নযায় াগযগজনার পলাগগপরনয নতন বাডন ডফয কযপরত াপরযন ৩) ডকান পলাগগনপরক একসপরটনড কযপরত চান াপরনক ভয় একগট পলাগগন বার কাজ কপরয াাআপরটয জনয গকনত াঅগন াঅপরযা গকি গপচায ডমাগ কযপরত াপরযন ডমভন AJAX JQuery Effects াথফা াঅপরযা গকি রক রাগাপরত চান ডমন এগট ানয পলাগগপরনয াপরথ াভিে থাপরক তপরফ াফশযাআ GPL Compatible (httpgooglBOzm ) এয াপরথ াভিে পরত পরফ ৪) াঅগন মগদ াঅনায গথপরভয ফনপরমাগয ডকাড কযপরত চান এগট ভরত কাসটভ গথভ ডকাপরডয কথা ফরা পরয়পরি ডকান এগকসগসটাং গথপরভয ৫) াঅগন মগদ গথভ গডজাাআনায ন ৬) াঅগন মগদ টাকা উাজডন কযপরত চান পলাগগন ততযী কপরয ৭) াঅগন মগদ াঅনায াাআপরটয াআনকাগভাং গরঙক গফলড কযপরত চান

পলাগগপরনয ডপালডায সটরাকচায ডকভন পরফ কর ওয়াডডপরে পলাগগন wp-contentplugins গডপরযকটগযপরত াআনসটর য় গকি পলাগগপরন রধ একগট PHP পাাআর থাপরক গকনত াঅগভ ফ ভয় একগট ডপালডায কপরয পলাগগন ততগয কযায যাভড ডদফ পলাগগপরনয সটরাকচায পরত পরফ এযকভাঃ

11

Plugin Folder Name( াঅনায পলাগগন ডপালডায নাভ ডকান ডসপ ফা ডসপার কযাপরযকটায থাকা চরপরফ না) Main php file

js ডপালডায( জাবাগিে ফা Jquery file এয জনয) css ডপালডায( সটাাআরগট পাাআপররয জনয) phpinclude ডপালডায ( ানয php পাাআর)

একগট উদাযন ডদাআ পাাআপররয সটরাকচায ডকভন পরফ- litons-first-plugin

indexphp

js

css

includes

images

uninstallphp

পলাগগন ডডায

পলাগগপরনয ডডায িাড়া ডাআ পাাআর ডপালডাযগটপরক ওয়াডডপরে গচনপরত াযপরফ না পলাগগন ডডাযাআ পরচছ একভাতর েপরয়াজনীয় পাাংন মা ওয়াডডপরে দাফী কপরয ভাপরন াঅনাপরক পলাগগন ডরখায ররপরত PHP comment বলপরকয ভপরধয গকি াআনপযপরভন গদপরত পরফ মা এপরকফাপরয পাাআপররয েথপরভ াফসথান কপরয এখাপরন গকি কথা ফপরর যাগখ াঅগন মগদ াাআপরটয এাআও টাপরগডট কপরয পলাগগন ফানান তাপরর ডকান িপরভাআ াঅনায নাভ গদপরয় পলাগগন ফানাপরফন না ডমভনাঃ Litons Plugin এপরত এাআও ডত খাযা েবাফ পরড় গনপরচ উদাযন ডদয়া রাঃ ltphp

Plugin Name Litons Plugin পলাগগপরনয নাভ

Plugin URI httpliton-onlinecomplugin পলাগগপরনয URI Description This is a demo description পলাগগপরনয গফফযন Version 10 পলাগগপরনয বাডন Author Md Liton Arefin পলাগগন ডরখক

Author URI httpliton-onlinecom ডরখপরকয URI

gt

12

উপরযয িগফপরত ডদখন ওয়াডডপরেপরয ডযাপরফাপরডড াঅগভ পলাগগন ডডাপরয মা মা তথয গদপরয়গিরাভ তাাআ ডদখাপরচছ এটাাআ াঅনায োথগভক কাজ াঅগন রাাআপরনসও ডমাগ কযপরত াপরযন এবাপরফ- lt php

Copyright YEAR PLUGIN_AUTHOR_NAME (email PLUGIN AUTHOR

EMAIL)

This program is free software you can redistribute it andor modify

it under the terms of the GNU General Public License as published by

the Free Software Foundation either version 2 of the License or

(at your option) any later version

This program is distributed in the hope that it will be useful

but WITHOUT ANY WARRANTY without even the implied warranty of

MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE See the

GNU General Public License for more details

You should have received a copy of the GNU General Public License

along with this program if not write to the Free Software

Foundation Inc 51 Franklin St Fifth Floor Boston MA 02110-1301 USA

gt

পলাগগন াথ

একগট কভন কাজ র াঅনায পলাগগপরনয পাাআর এফাং ডপালডাযগপররাপরক ওয়াডডপরে াআনসটপররন গডপরযকটগযপরত ডযপায কযা াঅগন এাআ কাজগট রাআ বাপরফ কযপরত াপরযন- ডরাকার াবডায াথ াথফা সটানডাডড URL

13

ডরাকার াবডায াথাঃ ডরাকার াবডায াথ াঅনায কগমপউটাপরযয গডপরযকটগযয ভতাআ ডরাকার াবডায াথ াধাযনত ফযফায কযা য় মখন াঅনাপরক গনপরজয ডরাকার াবডাপরযয গকি পাাআর i ncl ude কযপরত য় একগট কভন েশন র- পলাগগন পাাআপররয াথ ডদখাপরনায গঠক িগত ডকানগট াঅনায পলাগগপরনয ডরাকার াথ ডদখাপরনায জনয াঅনাপরক plugin_dir_path() পাাংন ফযফায কযপরত পরফ plugin_dir_path() পাাংন পলাগগন গডপরযকটগযয গপগজকযার াথ একসিযাকট কপরয পাাআপররয নাভ ডথপরক ltphp plugin_dir_path($file) gt

Parameters

$file-(string)(required)- পলাগগন পাাআপররয নাভ এখন ডদগখ গকবাপরফ পলাগগন ডপালডাপরযয নাভ ডফয কযপরত য়-

ltphp

echo plugin_dir_path(__FILE__)

gt

এখাপরন গএাআচগ কনসটযানট __FILE__ ডক plugin_dir_path পাাংপরনয ভধয গদপরয় া কযারাভ এাআ পাাংন াবডায াথ ডদখাপরফ পলাগগন গডপরযকটগযয public_htmlwp-contentpluginsliton-plugin

একাআবাপরফ াঅগন মগদ plugin_dir_path() এাআ পাাংনপরক মগদ ডকান াফ- গডপরযকটগযয পাাআরপরক ডযপায কগয তাপরর গনপরচয ভত কপরয ডযপায কযপরত পরফ ltphp

echo plugin_dir_path(__FILE__)jsscriptsjs

gt

এাআ ডকাডগট গনপরচয ভত াথ ডদখাপরফ- public_htmlwp-contentpluginsliton-pluginjsscriptsjs

URL াথাঃ াঅপরযা গকি পাাংন াঅপরি ডমগপররা গদপরয় ওয়াডডপরেপরয URL ডদখাপরনা মায়

plugins_url() - পলাগগন গডপরযকটগযয পরযা URL ( ডমভনাঃ httpliton-onlinecomwp-contentplugins)

includes_url() - পরযা গডপরযকটগযয URL include কপরয ( ডমভন httpliton-onlinecomwp-includes)

14

content_url() - পরযা কপরনটনট গডপরযকটগয URL ( ডমভনাঃ httpliton-onlinecomwp-content )

admin_url() - পরযা এডগভন URL

( ডমভনাঃ httpliton-onlinecomwp-admin ) site_url() - কাপরযনট াাআট এয পরযা URL

( ডমভনাঃ httpliton-onlinecom ) home_url() - কাপরযনট াাআট এয পরযা ডাভ URL

( ডমভনাঃ httpliton-onlinecom )

াথ গনপরয় াঅপরযা গফসতাগযত ডদখপরত াপরযনাঃ httpcodexwordpressorgDetermining_Plugin_and_Content_Directories

httpcodexwordpressorgFunction_Referenceplugins_url

httpcodexwordpressorgFunction_Referenceplugin_dir_url

httpcodexwordpressorgFunction_Referenceplugin_dir_path

plugins_url() পাাংন াঅনায উততভ ফনধ পরত াপরয মখন াঅগন পলাগগন ডডপরবর কযপরফন

ltphp

plugins_url($path $plugin)

gt

Parameters

$path-(string)(optional)- গযপররগটব াথ URL $plugin- (string)(optional)- পলাগগন পাাআর মা াঅগন (__FILE__) এয ভাধযপরভ া কযপরত চান ডমভনাঃ ltphp

echo ltimg src=rdquoplugins_url(imagesiconpng__FILE)rdquogt

gt

এয পরযা URL পরফ ltimg src=rdquohttpliton-onlinecomwp-contentpluginsliton-pluginimagesiconpngrdquo gt

15

াধযায়- গতনাঃ রক

ওয়াডডপরে রক( Hook) গক ওয়াডডপরেপর রক ফরপরত াধাযনত add_action() াথফা add_filter() পাাংন ডক ডফাোয় এাআ রগট পাাংনপরক remove_action() াথফা remove_filter() গদপরয় ভপরি ডপরা মায় মগদও াপরনপরকয কাপরি রপরনগি ডম এাআ রগট পাাংপরনয ভপরধয ডকান াথডকয ডনাআ গকনত াঅপরর তা নয় গফযাট াথডকয াঅপরি এ রগট পাাংপরনয ভপরধয াঅগভ ভরত এাআ রগট পাাংন গদপরয়াআ গকি পলাগগন ফাগনপরয় ডদখাফ কাযন খফাআ গরতবিড এাআ রগট পাাংন মপপরকড বাপররাবাপরফ জানা

গপলটায রক (Filter Hooks)

গপলটায রক পাাংপরনয কাজ পরচছ কনপরটনটপরক ভগডপাাআ কযা গপলটায রক গদপরয় টাাআপরটর কনপরটনট াআতযাগদ ভগডপাাআ কযা মায় ডমভন টাাআপরটর এ ডকান টযাগ না থাকা গবগজটয কপরভপরনট ltgt t ag span t ag াআতযাগদ গদপরয় াাআপরটয ডরাঅউপরটয গযফতডন কপরয গদপরত াপরয ভাপরন ডকান কপরভপরনট মগদ এযকভ ht ml ডকাড াড কযা থাপরক তাপরর ডদখপরত খাযা রাগপরফ এগপররা াফশয এখন ওয়াডডপরে াপরটাপরভগটকযাগর কপরয গকনত এাআ কাজগপররা ভরত গপলটায রক গদপরয় কযা পরয় থাপরক গপলটায রক রাআ ধযপরনয add_filter() এফাং remove_filter() পাাংন খফ গরতবনড একগট কথা গপলটায রকপরক গযটানড কযপরত য় ltphp

add_filter($tag $function $priority $accepted_args)

gt

$tag- ডম রকপরক াঅগন ডযগজসটায কযপরত চান $function- ডম পাাংনপরক াঅগন াঅউটপরট গপলটায কপরয ডদখাপরত চান $priority- একগট াআগনটজায াংখযা মা াঅনায গপলটাযপরক িভানাপরয াজাপরফ মগদ ডকান

াংখযা না ডদয়া থাপরক তাপরর এগট ১০ গডপলট গপরপরফ থাপরক $ accepted_args- ডম াংখযক যাযাগভটায একগট পাাংন েি কযপরত াপরয গডপলট গপরপরফ

১ থাপরক াঅনায পাাংপরন ানততাঃ একগট যাযাগভটায থাকপরত পরফ মা গযটানড কযপরফ apply_filter($tag$value)

$tag- গপলটায রপরকয নাভ $value- রপরকয ভধয গদপরয় ডম যাযাগভটায া কযাপরফন

াঅভযা এখন একগট উদাযি ডদখফ ডমখাপরন টাাআপরটর এয েগতটা ওয়াডডপরক ফড় াপরতয াকষপরয রানতয কযফ গনপরচ একগট পলাগগন ডদখন- ltphp

Plugin Name Liton filter

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10

16

Author Md Liton Arefin

Author URI httpliton-onlinecom

add_filter(the_titleliton_modify_title)

function liton_modify_title($content)

return ucwords($content)

gt

পলাগগনগট এগকটপরবট কযায াঅপরগ ডাসট টাাআপরটর ডদখন-

এফায পলাগগনগট এগকটপরবট কযায পরয ডাসট টাাআপরটর ডদখন-

এাআ পলাগগনগট াঅভাপরদয াপরনক ভয়াআ কাপরজ রাগপরত াপরয কাযন াপরনপরকাআ াঅভযা এাআ পযভযাটগট িনদ কগয ঠাৎ কপরযাআ াঅভযা ডাসট টাাআপরটর গরখায ভয় ফড় াপরতয াকষয কযপরত বপরর ডমপরত াগয াঅভযা এাআ কাজগট খফ ডিাট একগট পলাগগন গদপরয় াপরটাপরভগটকবাপরফ কযপরত াগয

17

এখন াঅগভ গকি াগতগযি গফলয় গনপরয় াঅপররাচনা কযফ ডমগপররা ডভপরন চরপরর বগফষযপরতয জনয বার পরফ াঅগভ একগট পাাংন গরপরখগি- add_filter(the_titleliton_modify_title)

function liton_modify_title($content)

return ucwords($content)

একট গফসতাগযত ফরপরর াঅভযা the_title এয ভধয গদপরয় মা া কযফ তা গপলটায কযপরফ এখাপরন াঅভযা ucwords the_title এয ভধয গদপরয় া কপরযগি এফায াঅপরযা টড পভড ডদগখ add_filter(the_title ucwords)

তায ভাপরন পরযা পলাগগনগট পরফ এযকভ- ltphp

Plugin Name Liton filter

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_filter(the_title ucwords)

gt

গক খফ জ রাগপরি এখাপরন ফপরর যাগখ ডম ucwords এগট গযগব কযপরফ the_title মা া কযপরি এফাং াপরটাপরভগটকযাগর গযটানড কযপরফ the_title এ সতযাাং এখাপরন গযটানড এয দযকায ডনাআ এফায াঅগন মগদ গএাআচগ বাডন ৫৩ ফযফায কপরযন তাপরর গনপরচয ভত কপরয anonymous function ফযফায কযপরফন াঅনাযা জাবাগিে ডজকপরয়গয‟য াপরথ গযগচত এগট াপরনকটাাআ এযকভ ltphp

Plugin Name Liton filter

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_filter(the_title function($content)

return ucwords($content)

)

gt

বার কপরয ডদখন ডতা াথডকযটা ডকাথায় গনপরজ গনপরজ কাজ কযপরর এবাপরফ কযপরফন াফশযাআ এগট একট এডবানস ডরপরফপররয কাজ মগদও পলাগগন ফানাপরনায ডকষপরতর এগট এখপরনা াঅদড নয় কাযন াপরনপরকযাআ গএাআচগ বাডন এখপরনা ৪ এাআ ডথপরক ডগপরি সতযাাং এাআ িগতগট একানতাআ গনপরজয জনয

18

এযাকন রক (Action Hooks) Action Hooks পরচছ ড ভসত রক ডমগপররা ওয়াডডপরেপরয রাাআপ াাআপরকর গনপরয় কাজ কপরয Action Hooks রাআ ধযপরনয add_action() remove_action() এাআ রকগপররা কাজ কপরয মখন ডকান ডাসট ডব কযা য় ডাসট াফগর কযা য় কপরভনট কযা য় ডকান বলগ ডাপরসট াথফা ওপরয়ফাাআপরট ডডাযপটায ডজনাপরযট য় এগপররা েগতগট একগট একগট কপরয Actions মখন াআউজায তায এডগভগনপরসটরটয ডভনপরত েপরফ কপরয এগপররা ফাআ Action Hooks এখাপরন াঅভযা কনপরটনটপরক গপলটায কযগিনা াঅভযা ওয়াডডপরেপরয গনগদডষট পাাংনগপররাপরক রক কপরয কাজ কযগি াঅভযা একগট উদাযন ডদগখ- ltphp

Plugin Name Liton Action

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(wp_footer function($content)

echo Hello This is Liton Arefin

)

gt

াঅনাপরদয সগফধাপরথড ডফাোয জনয গনপরচয ভত কপরয গরখন- ltphp

Plugin Name Liton Action

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(wp_footer liton_footer_action)

function liton_footer_action($content)

echo Hello This is Liton Arefin

gt

াঅভযা খফ ডিাট একগট উদাযন গদপরয় ডদখরাভ ডম action রক গকবাপরফ কাজ কপরয গনপরচ ডদগখ াাআপরট ডকভন ডদখায়-

19

উপরযয িগফপরত ডদখন াঅগভ Hello This is Liton Arefin এাআ রাাআনগট গেনট কপরযগি এফাং তা পটাপরযয ফাভ াপর এপরকফাপরয গনপরচ ডদখাপরচছ এফায ডাড ডকাড এ ডদগখ াঅপররাআ এয গজন টা ডকাথায় াঅপরি

উপরয ডদখন পটাপরযয গঠক গনপরচাআ রাাআনগট ডদখাপরচছ এফায াঅপরযকগট ফাসতফ এফাং খফাআ গরতবনড উদাযন ডদগখ এাআ পলাগগনগটয কাজ পরফ মখনাআ ডকান কপরভনট ডাসট পরফ তখনাআ এডগভনপরক ডভাআর াঠাপরফ ডম নতন কপরভনট ডাসট পরয়পরি মগদও ওয়াডডপরে এাআ কাজগট কপরয থাপরক াঅভযা এাআ কাজগট ভযানয়ারী কপরয ডদগখ ltphp

Plugin Name Liton Comments Mail

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(comment_post function()

$email= get_bloginfo(admin_email)

wp_mail(

$email

New Comment Posted

A new comment has been left on your blog

)

)

gt

এখাপরন comment_post নাপরভয রপরক একগট ডবগযপরয়ফর $email ndashএ এডগভন ডভাআরপরক ডসটায কপরযগি মাপরত কপরয ডাাআনাগভক বাপরফ ড ডমপরকান াাআপরটয এডগভন ডভাআরপরক গডপরটকট কযপরত াপরয তপরফ এপরকষপরতর মগদ bloginfo(admin_email) ফযফায কযা ত তাপরর এডগভন ডভাআরপরক গডপরটকট কযত গকনত get_bloginfo(admin_email) ফযফায কযায পপরর াঅভযা াআপরভাআর বযারগটপরক গযটানড কপরয ডসটায কযগি এফাপরয ওয়াডডপরেপরয গফলটাআন ডভাআর পাাংন wp_mail(emailsubjectmessage) এয ভত কপরয গরপরখগি বার কপরয ডদখন পলাগগনগট এগকটপরবট কপরয ডদখন াঅনায াাআট মগদ ানরাাআপরন থাপরক তাপরর গনপরজাআ একগট কপরভনট কপরয ডদখন াঅনায এডগভন ডভাআপরর একগট ডভাআর চপরর ডগপরি

20

াধযায়- চাযাঃ পলাগগন ডকাগডাং সটযানডাডড

পলাগগন এগকটপরবনগডএগকটপরবন পাাংন াঅগন মখন একগট পলাগগনপরক এগকটব কপরযন তখনাআ এগকটপরবন পাাংন গিগায য় এাআ পাাংনপরক register_activation_hook() ফপরর ltphp register_activation_hook($file $function) gt

Parameters

$file- োাআভাগয পলাগগন পাাআপররয াথ

$function- ডম পাাংনগট গিগায পরফ মখন পলাগগন এগকটপরবট য় ডমভনাঃ- ltphp

register_activation_hook(__FILE__ bdquoliton_plugin_install‟)

function liton_plugin_install()

do something cool stuff

gt

াঅভযা একগট পলাগগন ফানাাআ এবাপরফ-

ltphp

Plugin Name Liton Version

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

register_activation_hook(__FILE__ liton_plugin_install)

function liton_plugin_install()

If(version_compare(get_bloginfo(version)51lt))

deactivate_plugins(basename(__FILE__))

deactivate our plugin

gt

মখন াঅভযা পলাগগন গডএগকটপরবট কগয তখন পলাগগন গডএগকটপরবন পাাংন কর য়

21

ltphp

register_deactivation_hook ($file $function) gt

-

ltphp

register_deactivation_hook (__FILE__ bdquoliton_plugin_install‟)

function liton_plugin_install()

do something

gt

াঅপরযকগট গরতবনড গফলয় র াঅনাআনসটর ওয়াডডপরে াঅনাপরক পলাগগন াঅনাআনসটর এয জনয রগট ান গদপরচছ- uninstallphp file and the uninstall hook

uninstallphp

এগট ডভাটাভগট েনপরমাগয িগত এ ডভথড ফযফায কযায জনয াঅনাপরক uninstallphp নাপরভ একগট পাাআর ততগয কযপরত পরফ াঅনায পলাগগন গডপরযকটগযপরত পাাআরগট গনপরচয ভত পরফ- ltphp

মগদ ওয়াডডপরে এগকসট কযায াপরথ াঅনাআনসটর কর কযা না য় If(defined(bdquoWP_UNINSTALL_PLUGIN‟))

exit()

delete_option(bdquoliton_plugin_options‟)

াগতগযি ান এফাং কাসটভ ডটগফর ভপরি ডপরন gt

Uninstall Hook

গিতীয় িগত র Uninstall Hook মগদ াঅগন ডকান পলাগগনপরক গডগরট কযপরত চান এফাং uninstallphp পাাআর না থাপরক তাপরর এাআ রক এগকসগকউট য়(মগদ থাপরক) ltphp

register_uninstall_hook($file$function)

gt

22

ডকাগডাং সটযানডাডড পলাগগন ফানাপরফন গকনত াঅনায ডকাড ডকভন পরফ গচনতা াঅপরত াপরয ওয়াডডপরে াঅনায জনয একগট সটযানডাডড গদপরয় গদপরয়পরি মা াঅনাপরক ওয়াডডপরেপরয জনয পলাগগন গরখপরত ডগপরর পপররা কযপরতাআ পরফ httpcodexwordpressorgWordPress_Coding_Standards

ডফগক একগট উদাযন গদরাভ গনপরচ- ltphp

Short description

Longer more detailed description

param type $varname1 Description

param type $varname2 Description

return type Description

function boj_super_function( $varname1 $varname2 )

do function stuff

gt

গএাআচগ সটানডাডড াঅভযা াপরনপরকাআ গএাআচগয টড পভড(lt gt) ফযফায কগয এটা মপিডরপর ফজডন করন কাযন াপরনক ডাগসটাং ডকামপাগনপরতাআ এটা গডপলট গপরপরফ ফনধ কপরয ডদয়া থাপরক সটযানডাডড টযাগ ফযফায করন(ltphp gt)

এগকউএর ডসটটপরভনট পলাগগন ততগযয ভয় াঅনাপরক াপরনক ভয়াআ ডাটাপরফ ডথপরক াআনপযপরভন গনপরত পরত াপরয াপরনক রাাআপরনয ডকাড গরখপরত পরত াপরয ডপরকষপরতর বার েযাকগট পরচছ এগকউএর এয কভানড গপররা ফড় াপরতয াকষপরয ডরখা ডমভন- SELECT username FROM table1 WHERE status = active

23

াধযায়- াাচাঃ ওয়াডডপরেপরয াপরথ াআগনটপরেন

ডভন এফাং াফ ডভন ততগয করন াঅভযা াপরনক পলাগগপরনাআ ডদগখ ডম একগট ডভন াঅাআপরটভ গপরপরফ াঅভাপরদয ডযাপরফাপরডড ডদখপরত াাআ এফাং ডাআ ডভনপরত গিক কযপরর ডগটাং ডজ াঅপর ডখাপরন পলাগগপরনয মাফতীয় ডগটাং গদপরয় াঅভযা পলাগগন কনগপগায কগয এফায এাআ চভৎকায কাজগট কযফ াঅভযা

ট ডরপরবর ডভন েথভ িগত পরচছ একগট ট ডরপরবর ডভন ততগয কযা ডমগট াঅভযা ডযাপরফাপরডড ডভন গরপরসট একগট নতন াঅাআপরটভ গপরপরফ ডমাগ কযফ ডভন ততগয কযায জনয াঅনাপরক add_menu_page( ) পাাংন ফযফায কযপরত পরফ ltphp

add_menu_page( page_title menu_title capability menu_slug functionicon_url

position )

gt

add_menu_page() পাাংন গনপরচয যাযাগভটাযগপররা াপরাটড কপরয page_title- াঅনায ডপরজয টাাআপরটর গক পরফ lttitlegt tag এয ভপরধয menu_title- ডযাপরফাপরডড াঅনায ডভনয নাভ capability- ফডগনমন capability রাগপরফ একগট ডভন গবউ পরত menu_slug- সলাগ নাভ মা ডভনপরক ডযপায কপরয- তপরফ এগট াআউগনক পরত পরফ function- একগট ডপরজয কনপরটনট ডদখপরত ডম পাাংন কর কযা য় icon_url- একগট কাসটভ াআপরভজ গরঙক ডভন াঅাআকন ডদখাপরনায জনয position- ডভনয গজন াডডায ডমখাপরন এটা ডদখাপরনা পরফ

এফায াঅভযা একগট ফাসতফ উদাযন ডদখফ- ltphp

Plugin Name Liton Menu

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action( admin_menu liton_menu)

function liton_menu()

24

create custom top-level menu

add_menu_page( Liton Menu Page Liton Menu Page manage_options

__FILE__ liton_menu_settings_page plugins_url( imageswp-logopng

__FILE__ ) )

gt

াঅভযা একগট ট ডরপরবর ডভন ততগয কযরাভ ডদখন ডযাপরফাপরডড ডকভন ডদখায়-

Liton Menu Page নাপরভ একগট ডভন ততগয পরয় ডগপরি এফাপরয াঅভযা াফপরভন কযফ ভাপরন Liton Menu Page এয গনপরচ গকি ডগটাং ডভন(মগদ েপরয়াজন য়) াফ ডভন ডযগজসটায কযায জনয add_submenu_page( ) পাাংন ফযফায কযা য় ltphp

add_submenu_page( parent_slug page_title menu_title capabilitymenu_slug

function )

gt

parent_slug- ডভন সলাগ মা াঅভযা াঅপরগ গডপাাআন কপরযগি menu_slug- মা ডভনপরক াফপরভনপরত ডযপায কযপরফ ফাগক পাাংনগপররা াঅপরগয ভতাআ

এফায াফপরভনয জনয গকি াগতগযি ডকাড ডমাগ কগয create submenu items

add_submenu_page( __FILE__ About My Plugin About manage_options

__FILE___about liton_menu_about_page )

add_submenu_page( __FILE__ Help with My Plugin Help

manage_options

__FILE___help liton_menu_help_page )

add_submenu_page( __FILE__ Uninstall My Plugin Uninstall

manage_options

__FILE___uninstall liton_menu_uninstall_page )

25

পরযা ডকাডগট পরফ এযকভ- ltphp

Plugin Name Liton Menu

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action( admin_menu liton_menu

)

function liton_menu()

create custom top-level menu

add_menu_page( Liton Menu Settings Page Liton Menu Page

manage_options __FILE__

liton_menu_settings_page

plugins_url( imageswp-logopng __FILE__ ) )

create submenu items

add_submenu_page( __FILE__ About My Plugin About manage_options

__FILE___about liton_menu_about_page )

add_submenu_page( __FILE__ Help with My Plugin Help

manage_options

__FILE___help liton_menu_help_page )

add_submenu_page( __FILE__ Uninstall My Plugin Uninstall

manage_options

__FILE___uninstall liton_menu_uninstall_page )

gt

গনপরচ ডদখন াফপরভনগপররা ততগয পরয় ডগপরি-

26

ডভনপরক াঅপরগয ডভনয াপরথ মি কযা এফায াঅগ গিতীয় িগতপরত মগদ াঅনায পলাগগপরনয একগট ভাতর ডজ থাপরক একগট ভাতর ডপরজাআ াঅনায কর ডগটাং পরয় মায় তাপরর এাআ িগত েন করন ডমভন ডয়াগযাং াাআটগপররায জনয রধ াঅনায াঅাআগডপযানপরপরজয াঅাআগড দযকায য় এযকভ পলাগগন এধযপরনয পলাগগপরনয জনয াঅনায াগতগযি ডভন ততগয কযায দযকায ডনাআ ফযাং এপরত কপরয াআউজায গফযি ডফাধ কযপরত াপরযন এ ধযপরনয পলাগগনগপররা ডগটাং এয াফপরভন গপরপরফ থাপরক add_options_page() এাআ পাাংন গদপরয় এফ ডভন ডযগজসটায কযা য় ltphp

add_options_page( page_title menu_title capability

menu_slug function)

gt

এফায চরন এযকভ একগট ডভন ততগয কগয- ltphp

Plugin Name Liton Sub Menu

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action( admin_menu liton_submenu)

function liton_submenu()

create a submenu under Settings

add_options_page( Liton Menu Settings Page Liton Menu Page

manage_options __FILE__

liton_menu_settings_page)

27

gt

াফপরভন ততগয পরয় ডগপরি চরন ডদগখ ডযাপরফাপরডড ডকভন ডদখায়-

এপরকফাপরয গনপরচয গদপরক ডদখন Liton Menu Page নাপরভ একগট ডভন ততগয পরয়পরি

উাআপরজট ততগয কযা উাআপরজট ততগয কযায জনয ওয়াডডপরে WP-Widget িা গদপরয় ততগয কযা য় উাআপরজট এয একগট পযভযাট ডদখন গনপরচ ltphp

class My_Widget extends WP_Widget

function My_Widget()

processes the widget

function form($instance)

displays the widget form in the admin dashboard

function update($new_instance $old_instance)

process widget options to save

function widget($args $instance)

displays the widget

gt

28

উাআপরজট ডযগজসটায কযায জনয widget_init() পাাংনপরক রক কযা য় চরন একগট উাআপরজট ততগয কগয- ltphp

Plugin Name Liton Widget

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

class Messager extends WP_Widget

function __construct()

$params=array(

description =gtDisplay message to readers

name =gt Message

)

parent__construct(Messager $params)

public function form()

public function widget()

add_action(widgets_initliton_register_message)

function liton_register_message()

register_widget(Messager)

gt

29

খফ াধাযন একগট উাআপরজট পলাগগন এগট াঅভযা াআউজাযপরদযপরক একগট ডভপরজ ডদখাপরফা াাআডফাপরয ডটাাআ কযায ডচষটা কযগি এখন পলাগগনগট এগকটপরবট কপরয ডদগখ-

াঅভাপরদয উাআপরজটগট ডদখাপরচছ এফায াঅপরযা গকি পাাংনার কাজ কগয এগট মগদ াাআডফাপরয ডরাগ কপরয ডদন তাপরর ডকান কাজ কযপরফ না কাযন াঅভযা এখপরনা গকিাআ কগযগন পভড পাাংপরন গকি কাজ কগয মা উাআপরজট টাাআপরটর গপরপরফ ডদখাপরফ- public function form($instance)

extract($instance)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title)gtgtTitle ltlabelgt

ltinput

class=widefat

id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt

value=ltphp if(isset($title)) echo esc_attr($title) gt gt

ltpgt

ltphp

াঅভযা উপরয class=widefat ফযফায কপরযগি এাআ িা ফযফায কযায কাযপরন পভড এয াআনট গপলডগট াপরনক সনদয পরয়পরি

30

মগদ এাআ িা ফযফায না কগয তাপরর ডকভন ডদখাপরফ গনপরচ ডদখন-

াঅভাপরদয উাআপরজট পলাগগনগটয ডকাড গনপরচ ডদওয়া র ltphp

Plugin Name Liton Widget

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

class Messager extends WP_Widget

function __construct()

$params=array(

description =gtDisplay message to readers

name =gt Message

)

parent__construct(Messager$params)

31

public function form($instance)

extract($instance)

print_r($instance)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title)gtgtTitle ltlabelgt

ltinput

class=widefat

id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt

value=ltphp if(isset($title)) echo esc_attr($title) gt gt

ltpgt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(description)gtgtDescription

ltlabelgt

lttextarea

class=widefat

rows=10

id=ltphp echo $this-gtget_field_id(description) gt

name=ltphp echo $this-gtget_field_name(description) gtgtltphp

if(isset($description)) echo esc_attr($description) gtlttextareagt

ltpgt

ltphp

public function widget($args$instance)

extract($args)

extract($instance)

echo $before_widget

echo $before_title$title$after_title

echo ltpgt$descriptionltpgt

echo $after_widget

add_action(widgets_initliton_register_message)

function liton_register_message()

32

register_widget(Messager)

gt

এফায াঅভযা ডযাপরফাডড ডথপরক একগট ডভপরজ ডদফ গবগজটযপরদযপরক-

াঅভযা এাআ উাআপরজটগট ডাাআনাগভক বাপরফ কপরযগি কাযন এখাপরন lth2gt lth3gt lth4gt এ ধযপরনয ডকান টযাগ াঅভযা ফযফায কগযগন াঅভযা গথভ ডডপরবর কযগিনা সতযাাং এ কাজগট াঅভাপরদয ানযবাপরফ কযা দযকায গির এগট গথভ ডডপরবরায ডদগখপরয় ডদপরফন ডম ডকভন টযাগ পরফ াাআডফাপরয াাআপরটয াাআডফাপরয ডকভন ডদখায় তা ডদখন- াঅভযা রগট গথপরভ এগট ডটসট কপরয ডদখফ েথভগট টপরয়গনট াআপররপরবন

33

এফায াঅপরযকগট গথপরভ ডদগখ-

34

াধযায়- িয়াঃ পলাগগন পাাংন

গকি ডফগক পাাংন __() পাাংন

__() পাাংনগট গএাআচগপরত াঅনায ডটকসটপরক ডযগড কপরয িানসপররন এফাং গযটানড কপরয উদাযন গপরপরফ াঅগন একগট বযারপরক __() পাাংপরনয ভপরধয ডবগযপরয়ফর গদপরয় assign করন ভপরন যাখপরফন এাআ পাাংনগট রগট াঅনডাযপরিায(_) গদপরয় গগঠত একগট নয় ltphp

$text=__(bdquoWordpress is a wonderful publishing platform‟‟liton_plugin‟)

gt

_e() পাাংন _e() পাাংনগট াঅনায ডটকসবপরট ডরাকারাাআজ কপরয এটা গএাআচগপরত echo এয ভত কাজ কপরয ডকান ডটকসটপরক গিপরন ডদখাপরনায জনয এফায একট ভজা কগয মা রপরক ডদপরখগি াঅপরগাআ- _e() পাাংনগট গদপরয় াঅপরগয পলাগগনগট এগডট কযফ ltphp

Plugin Name Liton Action

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(wp_footer liton_footer_action)

function liton_footer_action()

Output the translated text

_e( This site runs off the coolest platform ever ampmdash

WordPress

liton-plugin )

gt

35

এফায াঅউটট ডদগখ

esc_attr__() পাাংন এাআ পাাংনগট esc_attr() এয ভত এগট এাআচগটএভএর এগিগফউটপরক escape কপরয াঅভযা এফায esc_attr__() এফাং __() এাআ রগট পাাংনপরক একগট কপরয পলাগগন ততগয কযফ ltphp

Plugin Name Liton Esc Attr

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

A function that returns a link to the sites terms of service

page

function liton_terms_of_service_link()

return lta href=httpliton-onlinecomtos title=

esc_attr__( Visit the Terms of Service page boj-plugin ) gt __( Terms of

Service liton-plugin ) ltagt

Display the output of the liton_terms_of_service_link()

function

echo liton_terms_of_service_link()

gt

পলাগগনগটয াঅউটট ডদখন-

36

এযকভ াঅপরযা গকি পাাংন াঅপরি ডমগপররা াঅনাযা ডদপরখ ডনপরফন াআনটাযপরনট ডঘপরট

esc_html__() Function

esc_attr() Function

esc_url() Function

esc_js() Function

esc_html() Function

esc_attr_e() Function

esc_html_e() Function

_x() Function

_ex() Function

esc_attr_x() Function

esc_html_x() Function

_n() Function

_nx() Function

_n_noop() Function

_nx_noop() Function

Translation

bull Poedit httppoeditnet

bull GlotPress httpglotpressorg

bull Launchpad httpstranslationslaunchpadnet

bull Pootle httppootlelocamotionorg

bull KBabel httpi18nkdeorg

bull GNU Gettext httpgnuorgsoftwaregettext

GlotPress এখন ওপরয়ফ ডফড টর গপরপরফ ফযফায কযা পরচছ ওয়াডডে েপরজপরকটয ডিপরন একজন াথফা গটপরভয জনয িানসপররগটাং পটওয়যায গপরপরফ

37

াধযায়- াতাঃ পলাগগন গগকউগযগট

গগকউগযগট কগমপউটাপরযয বালায় ldquoগগকউগযগটrdquo ভাপরন বীগতকয একগট বদ ডমভন Cross Site

Scripting(XSS) Cross Site Request Forgery(CSRF) SQL Injection Privilege

Escalation Vulnerabilities এফাং Holes রফডর ডকাড একগট াবডাপরযয সযকষায জনয রভকীয কাযন পরত াপরয

পলাগগপরনয গগকউগযগট গক াঅনায পলাগগনগট ডমন গগকউয য় vulnerabilities data integrity এফাং reliability ডথপরক

াঅনায পলাগগনপরক গক গগকউগযগট ডদপরফন ওয়াডডপরে এনবায়যনপরভপরনট াঅনায পলাগগনপরক গগকউগযগট ডদয়া খফ কগঠন কাজ নয় এফাং খফ ভয় াপরকষ গফলয়ও নয় ওয়াডডপরেপরয গনজসব গকি পাাংন এপরকষপরতর াঅনাপরক খফাআ াাময কযপরফ

াআউজায াযগভন াঅভযা াপরনক পলাগগন াআনসটর কযায পরযাআ ডদপরখগি ডম মখনাআ এডগভন যাপরনর এ েপরফ কযপরত মাাআ তখন একগট এযয ডভপরজ াঅপর ডভপরজগট গনপরচয ভত-

ডরখা াঅপরি- You do not have sufficient permissionshellip এটা গনশচয়তা ডদয় ডম ডমপরকান এযাকন ীভাফি থাপরক গনগদডষট গকি যাাআট গদপরয় ওয়াডডপরেপরয একগট কভন পাাংন র current_user_can() একগট উদাযন ডদাআ-

38

ltphp

Capability

if ( current_user_can(install_plugins) )

wp_die( Insufficient permissions )

Role

if( current_user_can(editor) )

wp_die( You cannot edit this setting )

gt

খফ তাড়াতাগড় াঅগন এাআ current_user_can() পাাংন ডচক কযপরফন না কাযন এটা গনবডয কযপরফ get_currentuserinfo() এাআ পাাংপরনয উপরয াঅয এয ফযফাপরয ীভাফিতা াঅপরি এটা একগট পলাপরগফর পাাংন(pluggable function) াঅয এয ডরাপরকন পরচছ wp-

includespluggablephp মা পলাগগন এগকটব ফায য ডরাড য়

Nonces

ডকউ এগটপরক াঅফায Nonsense( গনপরফডাধ) বাফপরফন নাএগট ওয়াডডপরেপরয বালায় Nonces কগমপউটাপরযয বালায় nonce ফা cryptographic nonce পরচছ ldquonumber used once rdquo এটা ডিাট এফাং সপষট গকি য যানডভ গসটরাং ডমভন- াওয়াডড মা গকি গনপরদড কপরয Nonce গপরডন গপলড পভডপরক Retrieve ফা display কপরয-

একজন ওয়াডডপরে াআউজায ডমপরকান একগট এযাকন (delete update save and such) একগট াফপরজকট(একগট ডাসট পলাগগন ডগটাং াআতযাগদ) ২৪ ঘনটায একগট ভয় ডিভ

ডমভন ডাসট 50 গডগরট কযপরফন াঅনায ওয়াডডপরে বলগ ডথপরক তাপরর াঅনায গরঙকগট পরফ এযকভ- httpexamplecomwp-admin

postphppost=43ampaction=trashamp_wpnonce=83a08fcbc2

এখাপরন 83a08fcbc2 এগট র nonce মা ২৪ ঘনটা সথায়ী থাপরক রধভাতর এগট মগদ াঅনায িাযা ফযফরত য় এফাং গডগরট য় ডাসট 50 মখন াঅগন গরপরঙক গিক কপরযন ফপরচপরয় গযতবনড র ডম Nonce ডকান malicious াআউজায ফেপরত াপরযনা এফাং গঠক গরঙক িাড়া nonce এযয ডপরজ চপরর মায় ডমখাপরন াযগভন থাপরক না াঅপরযা গফসতাগযত ডদখন httpcodexwordpressorgWordPress_Nonces

39

Nonce URL ততগয এফায চরন াঅপরগয উদাযন ডথপরক Nonce URL ততগয কগয একগট ডাসট গডগরট কযায জনয wp_nonce_url() পাাংন ফযফায কযা য় ltphp

$url = wp_nonce_url( $url $action )

gt

েথভ যাযাগভটায $url পরচছ গসটরাং URL এপরডর এয মাপরক াঅগন কপরয়যী গসটরাং এয Nonce কযপরত চান াফযফহরত পলাগগপরনয গডগরট গরঙক এযকভ থাপরক- httpexamplecomwp-admineditphppage= liton

_utagsampliton_action=deleteampid=6

এখাপরন ডদখন যাযাগভটায liton_action এফাং এয টযাগ াঅাআগড গিতীয় যাযাগভটায পরচছ $action একগট গসটরাং মা াঅগন একগট াফপরজকট এয জনয একগট action ততগয কযপরফন উপরয ডদখরাভ delete এযাকন এয টযাগ াঅাআগড 6 সতযাাং $action যাযাগভটায পরত াপরয bdquoliton_utags-delete_tag6‟ গনপরচ ফাসতফ উদাযন ডদগখ- ltphp

$delete_url = add_query_arg(array( liton _action=gtdeleteid=gt$id) )

$nonced_url = wp_nonce_url( $delete_url bdquoliton _utags-delete_tag$id )

gt

lta href=ltphp echo $nonced_url gtgtdeleteltagt

এাআ টযাগগট পরফ গডগরট গরঙক এখাপরন add_query_arg() পাাংন ফযফায কযা পরয়পরি মা কাপরযনট URL ডক এযাপরয যাযাগভটায এয ভপরধয যাপরখ ানযবাপরফ ফরপরর এগট ডমাগ কপরয এযকভাঃ liton_action=deleteampid=6 amp liton_action=deleteampid=6

Nonce Form ততগয Nonce পভডপরকও ডোপরটকট কপরয wp_nonce_field() পাাংপরনয ভাধযপরভ ltphp

wp_nonce_field( $action $name $referer $echo ) gt

$action ( string) (optional) - action নাভ াআউগনক identifier optional

গকনত recommended $name (string) (optional) ndash গপরডন গপলড পভড ডবগযপরয়ফর নাভ $referer (boolean) (optional) ndash গডপলট গপরপরফ true থাপরক ডমখাপরন গপলড

ডবগরপরডন এয দযকায য়

40

$echo (boolean) (optional) - গডপলট গপরপরফ true থাপরক ডমখাপরন াঅউটট ডদখাপরনায ফা গপরডন পভড গপলড গযটানড কযায জনয দযকায য়

পপরভড াঅনায action এয নাভ গদন ltform method=postgt

lt-- some inputs here --gt

ltphp wp_nonce_field(name_of_my_actionname_of_nonce_field) gt

ltformgt

াঅভযা একগট পলাগগন ফানাপরফা ডমখাপরন াফযফরত টযাগগপররাপরক াঅভযা ভযানয়াগর গডগরট ফা গযপরনভ কযপরত াযফ এগট একট ফড় গকনত াপরনক গফলয়াআ াঅপরগাআ াঅপররাচনা কযা পরয়পরি ডদখপররাআ ফেপরত াযপরফন একগট ফাসতফধভডী উদাযন গনপরচ গদরাভ- ltphp

Plugin Name Liton Unused Tags

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add an entry for our option page to the Posts menu

add_action(admin_menu liton_utags_add_page)

function liton_utags_add_page()

add_posts_page( Unused Tags Unused Tagsmanage_optionsliton_utags

liton_utags_option_page )

Catch any liton_action parameter in query string

add_action( admin_init liton_utags_do_action )

Proceed to requested liton_action if applicable

function liton_utags_do_action()

if( isset( $_REQUEST[liton_action] ) )

return

if( current_user_can( manage_options ) )

wp_die( Insufficient privileges )

41

$id = $_REQUEST[id]

$action = $_REQUEST[liton_action]

if( $action == done )

add_action( admin_notices liton_utags_message )

return

check_admin_referer( liton_utags-$action_tag$id )

switch( $action )

case rename

$newtag = array( name =gt $_POST[name] slug =gt

$_POST[name] )

wp_update_term( $id post_tag $newtag )

break

case delete

wp_delete_term( $id post_tag )

break

wp_redirect( add_query_arg( array( liton_action =gt done )

) )

Admin notice

function liton_utags_message()

echo ltdiv class=updatedgtltpgtAction

completedltpgtltdivgt

Draw the tag management page

function liton_utags_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtUnused Tagslth2gt

ltphp

if( $tags = liton_utags_find_orphans() )

echo ltpgtYou currently have count( $tags ) unused

tagsltpgt

echo ltolgt

foreach( $tags as $tag )

42

$id = $tag-gtterm_id

$name = esc_attr( $tag-gtname )

$delete_url= add_query_arg(

array(liton_action=gtdeleteid=gt$id) )

$nonced_url= wp_nonce_url( $delete_url

liton_utags-delete_tag$id )

gt

ltligt

ltform action= method=postgt

ltphp wp_nonce_field( liton_utags-rename_tag$id )

gt

ltinput type=hidden name=liton_action

value=rename gt

ltinput type=hidden name=id value=ltphp echo

$id gt gt

ltinput type=text name=name value=ltphp echo

$name gt gt

ltinput type=submit value=Rename gt or

lta href=ltphp echo $nonced_url gtgtdeleteltagt

this tag

ltformgt

ltligt

ltphp

else gt

ltpgtYou have no unused tagsltpgt

ltphp endif gt

ltolgt

ltdivgt

ltphp

Find unused tags return them in an array

function liton_utags_find_orphans()

global $wpdb

$sql = SELECT termsterm_id termsname FROM

$wpdb-gtterms terms

INNER JOIN $wpdb-gtterm_taxonomy taxo

ON termsterm_id=taxoterm_id

WHERE taxotaxonomy = post_tag

43

AND taxocount=0

return $wpdb-gtget_results( $sql )

gt

ডযাপরফাপরডড এাআ পলাগগপরনয ডভন াওয়া মাপরফ ডাসট এয াফপরভন গপরপরফ গনপরচ ডদখন-

এফায পলাগগন ডভনপরত গিক কপরয ডদগখ পলাগগপরনয ডবতপরযয কাজ-

উপরয ডদখন াঅগভ একগট টযাগ ততগয কপরযগিরাভ l i নাপরভ এগট এখাপরন ডদখাপরচছ াঅগভ চাাআপরর এগট এগডট ফা গডগরট কযপরত াগয এফায গডগরট গরঙক এ ভাউপরয কাডয ডযপরখ গনপরচ গরঙক ডদখন ফা গডগরট করন একগট টযাগ াঅভায এখাপরন URL গট এযকভ httplocalhostdev-litonwp-

admineditphppage=liton_utagsampliton_action=doneampid=4amp_wpnonce=30a44b7

986

এখাপরন াঅগভ liton_action=done ফযফায কপরযগি Nonces এয পাাংনগপররায নাভ গনপরচ গদরাভ াঅনাযা ডদপরখ গনপরফন াআনটাযপরনট ডথপরক wp_nonce_field()

wp_nonce_url()

wp_verify_nonce()

wp_create_nonce()

44

check_admin_referer()

check_ajax_referer()

ডাটাপরফ াঅনাযা ডমপরত গএাআচগ গনপরয় কাজ কপরযন এগকউএর ডাটাপরফ এয াপরথ ফাাআ কভপরফী গযগচত এয গনটযাকস গপররা ডভাটাভগট ফায জানা একাআ বাপরফ াপরনপরকাআ ওয়াডডপরেপরও ডাটাপরফ ডকাড গরপরখন এটা ডকাগডাং এয জনয খাযা গদক াঅগভ নযভার গএাআচগ- এগকউএর ডকাড এয উদাযন গদগচছ- ltphp

$sql=rdquoINSERT INTO $wpdb-gtposts(post_title) VALUES(bdquo$title‟)rdquo

$wpdb-gtquery($sql) gt

এফায ওয়াডডপরেপরয সটযানডাডড ডকাগডাং গপরসটভ ডদখন- ltphp

$wpdb-gtinsert($wpdb-gtposts

array(bdquopost_title‟ =gt $title)

array(bdquos‟)

)

gt

ডাটাপরফ গগকউয কযায জনয াঅপরডট াাপরযন ডদখাফ- গনপরচয ডকাডগট খাযা েযাকগট ltphp

$wpdb-gtquery(ldquoUPDATE $wpdb-gtposts SET post_title=‟$newTitle‟ WHERE

ID=$my_idrdquo )

gt

উপরযয ভত কপরয না গরপরখ গনপরচয ভত কপরয গরখন- ltphp

$wpdb-gtupdate($wpdb-gtposts

Array(bdquopost_title‟ =gt‟$newTitle‟)

Array(bdquoID‟ =gt$my_id

)

gt

ানর বাপরফ ানযানয াাপরযন গপররা গরখপরফন

45

াধযায়- াঅটাঃ ডরাকারাাআপরজন এফাং Set t i ngs API

ডরাকারাাআপরজন ডরাকারাাআপরজন একগট গরতবনড গফলয় এয পাাংনগপররা র- load_theme_textdomain()

load_plugin_textdomain()

উদাযন- ltphp $var=__(bdquoHello‟‟domain‟) gt

ltphp _e(bdquoHello‟‟domain‟) gt

গফসতাগযত গনপরচয গরপরঙক ডদখন- httpcodexwordpressorgI18n_for_WordPress_Developers

ডগটাং API

ডগটাং API পরচছ াঅগন গকি ান ততগয কযপরফন মা াআনটাযনার বাপরফ াঅনায পলাগগপরন এপলাাআ পরফ মখন াঅগন াআউজায- গডপাাআন ান ততগয কযপরফন াঅনায পলাগগপরনয জনয তখন Settings

API ndashএ াঅনায ডকাড মতটা ারন জ করন Settings API াঅনায ডম কাজগপররা handle কপরয-

ওয়াডডপরেপরক জাগনপরয় ডদয় ডম াঅগন গনজসব ান ফযফায কযপরফন াঅনায াআনটপরক পাাংপরনয ভপরধয উপরেখ কযপরফ ডফগয বাগ ান ডজ গনপরজাআ ততগয কযপরফ $_POST ডাটা গপররাপরক ভগনটয কপরয ান ততগয এফাং াঅপরডট কপরয(মগদ েপরয়াজন য়)

Settings API পাাংন Settings API পাাংপরন গতনগট ডসট থাপরক- ১ েথপরভ ওয়াডডপরেপরক ফপরর ডম াঅগন নতন ডগটাং ফযফায কযপরফন াঅনায পলাগগপরনয জনয ২ এয পরয ডগটাং গডপাাআন করন (text areas input boxes and any

HTML form element) এফাং এপরদযপরক একাপরথ রে কপরয যাপরখ ৩ ওয়াডডপরেপরক াঅনায ডগটাং actual form এ ডদখাপরনায জনয ফপরর

46

এফায াঅভযা একগট পলাগগন ফানাপরফা Administration Page ndashএ ডযপাপরযনস গপরপরফ ডদখপরত াপরযন- httpcodexwordpressorgAdding_Administration_Menus

httpcodexwordpressorgFunction_Referenceadd_options_page

httpcodexwordpressorgAction_ReferenceActions_Run_During_an_Admin_P

age_Request

পলাগগপরনয এডগভন ডজ পরফ এযকভ- httpexamplecomwp-adminoptions-generalphppage=liton_myplugin

েথপরভ াঅভযা ডভন ততগয কযফ াঅপরগয ভত কপরয- Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

এফায ান ডজ এ পভড গনপরয় গকি ডগটাং ডদফ function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

উপরযয ডকাপরড াঅভযা একগট পপরভডয ভপরধয রধ াফগভট ফাটন এফাং My Plugin নাপরভ ডজ ততগয কপরযগি ডযাপরফাপরডড ডদখন-

47

ডগটাং এয াফ ডভন গপরপরফ My Plugin াঅপরি এফাং My Plugin ডত গিক কযপরর াঅভযা উপরযয ডজ ততগয কপরযগি ডমখাপরন াফগভট ফাটনগট ডদখাপরচছ এফায গতনগট যাযাগভটায ডযগজসটায কযফ- ltphp

register_setting( liton _myplugin_options liton _myplugin_options liton

_myplugin_validate_options)

gt

েথভগট ডগটাং রেপরয নাভ গিতীয়গট ান নাভ মা াঅভযা get_option() পাাংন গদপরয়ও ডপরত াগয ততীয়গট করফযাক পাাংন এগট একগট গসটরাং ডযপাপরযনস পাাংন এখাপরন াঅভযা নাভ

48

গদপরয়গি liton _myplugin_validate_options মা া কযপরফ পপরভডয কর ডব ডগটাং াঅভযা এটা পরয গডপাাআন কযফ

ডগটাং গডপাাআন ডকন add_settings_field() এফাং add_settings_section() পাাংন গদপরয় াঅভযা াঅভাপরদয কর ডগটাং গডপাাআন কযফ ltphp

add_settings_section( liton_myplugin_main My Plugin Settings

liton_myplugin_section_text liton _myplugin)

add_settings_field( liton _myplugin_text_string Enter text here

liton _myplugin_setting_input liton _myplugin liton _myplugin_main)

gt

add_settings_section() পাাংন গদপরয় াঅভযা ডদখাফ াঅপরর ডজ এ ডকন ডকভন ডদখাপরফ এয চাযগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ ডকন টাাআপরটর ltH3gt টযাপরগয ভপরধয করফযাক পাাংন এয নাভ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ (page= liton _myplugin এগট

URL এয াাং গপরপরফ থাকপরফ) গিতীয় যাযাগভটায add_settings_field() পপরভডয াআনট গপরপরফ ডদখাপরনা পরয়পরি এখাপরন াাচগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ পরযয গপপরলড গক গেনট কযা পরফ তা ডটকসট গপরপরফ ডদখাপরনা পরয়পরি(Enter text

here)

করফযাক পাাংন পপরভড গেনট কযপরফ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ ডগটাং ডপরজয ডকন গপলড মা add_settings_section() পাাংপরন গডপাাআন

কযা পরয়পরি ltphp

Explanations about this section

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

49

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton _myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name= liton _myplugin_options[text_string]

type=text value=$options[text_string] gt

gt

গিতীয় পাাংন ান বযার text_string ডক এযাপরযপরত ডসটায কপরয ডযপরখপরি এফায াআউজায াআনট বযাগরপরডট কযফ- ltphp

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace([^a-zA-Z]$input[text_string] )

return $valid

gt

পভডপরক ডযনডায কযফ- ltphp

Draw the options page

function liton_myplugin_options_page()

gt

ltdiv class=wrapgt

ltphp

screen_icon()

gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp

settings_fields( liton_myplugin_options)

do_settings_sections(liton_myplugin)

50

gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

settings_fields() পাাংনগট ডযপাপরযনস গপরপরফ ফযফায কযা পরয়পরি মা াঅভযা register_setting() পাাংপরন গডপরিয়ায কপরযগি do_settings_sections() পাাংনগট কর কযপরফ কর াঅউটট ডকন এফাং পভড গপলডপরক মা াঅভযা পরফড গডপাাআন কপরযগি াঅভাপরদয কাজ ডল এফায পরযা পলাগগনগট ডদখফ- ltphp

Plugin Name Settings API example

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

Draw the option page

function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save

Changes gt

ltformgtltdivgt

ltphp

51

Register and define the settings

add_action(admin_init liton_myplugin_admin_init)

function liton_myplugin_admin_init()

register_setting( liton_myplugin_options

liton_myplugin_options

liton_myplugin_validate_options )

add_settings_section( liton_myplugin_main My Plugin

Settings

liton_myplugin_section_text liton_myplugin )

add_settings_field( liton_myplugin_text_string Enter text

here

liton_myplugin_setting_input liton_myplugin

liton_myplugin_main )

Draw the section header

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton_myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name=liton_myplugin_options[text_string]

type=text value=$text_string gt

Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

return $valid

gt

52

ডদখন ডযাপরফাপরডড ডকভন ডদখায়-

পরয় ডগর াঅভাপরদয েথভ নডাাংগ পলাগগন ান ডজ াঅপরযকগট গজগন ডমটায জনয এতগকি পলাগগন URL এপরডর- httplocalhostdev-litonwp-adminoptions-

generalphppage=liton_mypluginampsettings-updated=true

াঅভায এখাপরন এযকভ ডদখাপরচছ ডটকসট ফপরকস ডকান গকি গরপরখ ডব কযায য এফাপরয াঅপরযকগট গজগন ডদখফ াঅভযা াপরনক ভয়াআ াপরনক পলাগগপরনয াআনট গপপরলড বর ডাটা াআনট কযপরর এযয ডভপরজ ডদখায় এাআ কাজগট কযফ এফায াঅভযা এখাপরন esc_attr() ফা esc_html() ফযফায কগযগন সতযাাং াঅভাপরদয গরগভপরটন থাকপরি ডবগরপরডট পাাংনগট একট এগডট কগয গনপরচয ভত কপরয Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

if( $valid[text_string] = $input[text_string] )

add_settings_error(liton_myplugin_text_stringliton_myplugin_texterror

53

Incorrect value enterederror)

return $valid

উপরয ডদখন add_settings_error() পাাংন ফযফায কপরযগি মা এযয ডচক কযপরফ পপরভডয াঅগভ একগট বর ডাটা(পরসপার কযাপরযকটায) াআনট কপরয ডদখরাভ এযয ডদখাপরচছ-

তায ভাপরন াঅভযা পর পরয়গি াঅনায পলাগগনগট এগডট কপরয ডনপরফন ডকায ডকন এফাং গপপরলডয গরসট গদরাভ াঅনাপরদয সগফধায জনয

54

CSSJS পাাআর মি কযা

াঅনায পলাগগপরন গএএ ফা জাবাগিে ডমাগ কযপরত পরত াপরয াঅগন চাাআপরর ফাগপরযয ডকান ফা াঅনায ততগয ডকান গএএ ফা জাবাগিে পাাআর ডমাগ কযপরত াপরযন তপরফ এপরকষপরতর াঅভযা ডমবাপরফ HTML এ পাাআর ডমাগ কগয ডযকভ না function liton_scripts()

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtojqueryjsrdquogtltscriptgt‟

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtoscriptjsrdquogtltscriptgt‟

add_action(bdquowp_head‟‟liton_scripts‟)

এগট মপনডরপর বর িগত গনপরচ ডদখন ওয়াডডপরেপর গকবাপরফ পাাআর মি কযপরত য়- function liton_scripts()

wp_enqueue_script(bdquojquery‟)

wp_enqueue_script(bdquotheme-scripts‟‟pathtoscriptsjs‟)

add_action(bdquowp_enqueue_script‟‟liton_scripts‟)

ানর বাপরফ াঅগন সটাাআরীট ডমাগ কযপরত াপরযন- function liton_styles()

wp_enqueue_ style (bdquocss‟)

wp_enqueue_ style (bdquotheme- styles‟pathto stylescss‟)

ডযপাপরযনস ডদখন- httpcodexwordpressorgFunction_Referencewp_enqueue_script

httpcodexwordpressorgFunction_Referencewp_enqueue_style

টডপরকাড টডপরকাড পরচছ ওয়াডডপরেপরয ডসপগগপক ডসপার টযাগ মা াঅগন ডাসট ফা ডপরজয ভপরধয াআনাটড কপরয ানয ডকান কনপরটনটপরক ওপরয়ফাাআপরটয ভপরধয গযপরপল কযপরত াযপরফন মগদ াঅগন গযারাগয টাাআপরয ডকান পলাগগন ফযফায কপরয থাপরকন তাপরর াঅনায ধাযনা থাকায কথা মাাআ ডাক াঅগভ কপরয়কগট উদাযি ডদখাফ

55

েথপরভ একগট পলাগগন ততগয কযফ ডমখাপরন add_shortcode() নাপরভয একগট পাাংন থাকপরফ এগট রগট যাযাগভটায েন কপরয েথভগট টডপরকাপরডয নাভ গিতীয়গট ডম পাাংনপরক কর কযপরফন ডগট াঅভযা একগট উদাযন ডদগখ- ltphp

Plugin Name Liton Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(litonhi)

function hi()

echo Hello World

gt

উপরয ডদখন খফ ডিাট গকনত াঅগন চাাআপরর এয ফযফায াপরনক গফসতত কযপরত াপরযন এখাপরন টডপরকাড নাভ পরচছ liton াঅয এগটপরক ডরখা য় এবাপরফ [liton] াঅভযা ডাপরসটয ভপরধয াআনাটড কপরয ডদগখ াঅউটট ডকভন ডদখায়-

এফায াঅউটট ডদগখ-

56

াঅভাপরদয ততগয কযা টডপরকাড পরবাপরফাআ কাজ কযপরি াঅপরযকগট উদাযন ডদখফ াঅনাযা াপরনপরকাআ গগর এডপরনস গনপরয় কাজ কপরযন াঅনাযা াপরনপরকাআ এডপরনস এয জনয পলাগগন ফযফায কপরযন গকনত চাাআপররাআ এাআ কাজগট াঅনাযা গনপরজয ভত কপরয াগজপরয় গনপরত াপরযন গগপররয কাপরি ফ ডাসট বযার ায়না াঅনাযা মাযা একসাটড াঅপরিন তাযা এটা বার কপরয জাপরনন তাাআ াপরনপরকাআ গগপররয ডকাড ফ ডপরজ ডদখাপরত চান না এজনয পলাগগন ফযফায কপরয রাব য়না কাযন পলাগগপরন জায়গা গপকসড থাপরক এপরত কপরয াঅগনডাং ও কভ য় াঅনাযা টডপরকাড ফযফায কপরয ডমপরকান জায়গায় এড ডদখাপরত াপরযন গনপরচ াঅগভ রগট টডপরকাড ততগয কপরযগি র‟ধযপরনয এড ডদখাপরনায জনয ltphp

Plugin Name Liton Adsense Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(adsense_468adsense_468_60)

add_shortcode(adsense_250adsense_250_250)

function adsense_468_60($atts)

return ltscript type=textjavascriptgtlt--

57

google_ad_client = ca-pub-0956247412222369

468x60 created 101510

google_ad_slot = 4372705450

google_ad_width = 468

google_ad_height = 60

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

function adsense_250_250($atts)

return ltscript type=textjavascriptgtlt--

google_ad_client = ca-pub-0956247412222369

250x250 created 81809

google_ad_slot = 9368091893

google_ad_width = 250

google_ad_height = 250

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

gt

একগট টডপরকাড ফযানায টাাআপরয জনয এফাং াঅপরযকগট ২৫০২৫০ াাআপরজয এফায ডাপরসট ডমপরকান একগট টডপরকাড াআনাটড করন ডমখাপরন াঅনায ডদখাপরনায েপরয়াজন ভপরন কপরযন াঅগভ রগট ডকাড ডটসট কপরয ডদখরাভ-

58

এফায াাআপরটয াঅউটট ডদগখ-

রগট এডাআ ডদখাপরচছ াঅপরযা াপরনক কাপরজ াঅগন টডপরকাড ফযফায কযপরত াপরযন ডযপাপরযনসাঃ httpcodexwordpressorgShortcode_API

59

াধযায়- নয়াঃ পলাগগন উদাযন

ওয়াডডপরেপরয ডডটটাাআভকপরভনট নামবায ফাাংরা কযায পলাগগন াঅভাপরক কপরয়কজন ফপররগিপররন ওয়াডডপরেপরয গডপলট ডডটটাাআভকপরভনট নামবায ফাাংরা য়না রযাাংগপরয়জ ফাাংরা কযায যও ডডটটাাআভকপরভনট নামবায গপররা াআাংপরযগজ ডথপরক মায় গনপরচয পলাগগনগট ফযফায কপরয ডদখপরত াপরযন- ltphp

Plugin Name Liton Bangla datetimecomment number

Plugin URI httpliton-onlinecomplugins

Description Bangla datetimecomment number

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

This function converts all english numbers to bangla number

function make_bangla_number($str)

$engNumber = array(1234567890)

$bangNumber = array( ১ ২ ৩ ৪ ৫ ৬ ৭ ৮ ৯ ০ ) $converted = str_replace($engNumber $bangNumber $str)

return $converted

add_filter( get_the_time make_bangla_number )

add_filter( the_date make_bangla_number )

add_filter( get_the_date make_bangla_number )

add_filter( comments_number make_bangla_number )

add_filter( get_comment_date make_bangla_number )

add_filter( get_comment_time make_bangla_number )

gt

60

সলাাআডায পলাগগন াঅভযা এাআ ফাআপরয়য কর গটউপরটাগযয়াপরর মা মা গখরাভ তা এফায একগট নডাাংগ পলাগগপরনয এপলাাআ কযফ সলাাআডায পলাগগন মপপরকড াঅভযা ফাাআ জাগন একগট ওপরয়ফাাআপরটয ডচাযা ারপরট ডদয় একগট সলাাআডায াপরনক ডাাআনাগভক ভপরন য় ডদখপরতও াপরনক বার রাপরগ এাআ পলাগগপরন াঅভযা এডগভন যাপরনর ডথপরক াআপরভজ ডমাগ কযফ এফাং তা াঅভাপরদয াাআপরট ডদখাফ চরন কাজ রর কগয- েথপরভ গনপরবা সলাাআডায এয ওপরয়ফাাআপরট মান এফাং jQuery Plugin ডাউনপররাড করন

ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom Version 10

gt

াঅভযা পলাগগপরনয ডডায ততগয কযরাভ

পলাগগন গরপরসট ডদখাপরচছ bdquoLitons Nivo Plugin‟ াঅভাপরদয েথভ কাজ পরচছ custom post

type ওয়াডডপরে পাাংনাগরগট একগট নতন কাসটভ ডজ ততগয কযপরত custom post type

ফযফহরত পরফ ডমখাপরন একগট াআপরভজ থাকপরফ াঅভযা রধ টাাআপরটর ডনভ এফাং াআপরভজ াঅপররাডায গপরপরফ গপচায াআপরভজ পাাংনাগরগট ফযফায কযফ function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_function 600 280 true)

61

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

add_action(init np_init)

উপরযয ডকাপরড np_init() পাাংনগট রক কপরযগি মা ডডায যান কযায াঅপরগ যান পরফ াঅয এজনয register_post_type() পাাংনপরক এয যাযাগভটায গদপরয় np_init() পাাংপরনয ডবতপরয মি কপরযগি এটা মগদ না কযতাভ তাপরর ldquoHeaders already sentrdquo ডভপরজ ডদখাত এাআ ডভপরজগটয াপরথ াপরনপরকাআ গযগচত াঅা কগয register_post_type() পাাংন গদপরয় াঅভযা াআপরভজ মি এফাং ভযাপরনজ কযফ ভরত াঅভযা একগট নতন custom post type ডমাগ কপরযগি np_images নাভ গদপরয় নতন custom post type ডক ডগটাং বযার গপরপরফ াঅযগপরভনট া কপরযগি $args ডবগযপরয়ফরগট ট ডরপরবর ডভন ততগয কপরয াঅপরগাআ ডদপরখগি পলাগগনগট এগকটপরবট কযপরর াঅভযা গনপরচয ভত ডদখপরত াফ-

এফায গিে এফাং সটাাআরীট ডক মি কযফ- add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

এফায রক কযা পাাংনগপররা গডপরিয়ায কগয- function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__) array( jquery ))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

62

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

উপরযয ডকাডগপররা নতন কপরয ফিডনা কযায গকি ডনাআ াঅপরগাআ wp_enqueue_style() এফাং wp_enqueue_script() মপপরকড ফরা পরয়পরি নতন াঅপরযকগট পাাআর ততগয করন একাআ গডপরযকটগযপরত scriptjs এফাং গনপরচয ডকাডটক গদন- jQuery(document)ready(function($)

$(slider)nivoSlider()

)

াআপরভজপরক গযাাআজ করন- add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

াঅভযা এাআ পলাগগনগটপরক উাআপরজট গপরপরফও ফযফায কযফ ডগট পরয ডদখফ াঅপরযকগট গজগন মগদ গথপরভ না ডদয়া থাপরক ডজনয থামবপরনাআর াপরাটড গদপরয় গদন- add_theme_support( post-thumbnails )

এফায ওয়াডডপরেপরয কাপরযনট ডাসট কপরয়যী কযায ডকাড াঅয $result ডবগযপরয়ফপরর ডমফ ltdivgt টযাগ ফযফায কযা পরয়পরি তা jQuery Plugin গট একসিাকট কপরয indexhtml ডজগটয ডভাআন সলাাআডায ডকাডগট ডদখন একাআ াঅপরি রধ ডখানকায ltdivgt টযাগ গপররাপরক কগ কপরয এাআ পলাগগপরন ফযফায কযা পরয়পরি এফায টডপরকাড গদন- add_shortcode(np-shortcode np_function)

এাআ টডপরকাড গএাআচগ পাাংনপরক রক কযপরফ এফাং এয ভধয ডথপরক সলাাআডপরায কনপরটনট ডক গযটানড কযপরফ াঅভাপরদয টডপরকাড পরচছ [np-shortcode] াঅভযা পলাগগপরন মাাআ এফাং একগট িগফ মি কগয গপচাযড াআপরভজ গপরপরফ গনপরচ ডদখন-

63

াঅগভ াঅপরযকগট ডজ ততগয কপরযগি ডমখাপরন টডপরকাড গদপরয়গি

াঅউটট ডজ ডদগখ এফায-

64

পরয় ডগর াঅভাপরদয সলাাআডায পলাগগন পরযা ডকাডগট গনপরচ গদরাভ- ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

65

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

66

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

এফায াঅগন মগদ উাআপরজট গপরপরফ ফযফায কযপরত চান তাপরর গনপরচয ডকাডটক গদন- class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

67

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

echo $after_widget

াঅপরযা রগট কাজ কযপরত পরফ াঅনাপরক এক াআপরভজ াাআজ উাআপরজট এয জনয গঠক কপরয গদপরত পরফ- add_image_size(np_widget 180 100 true)

াঅপরযকগট র উাআপরজট এযাকন রক ডমাগ কযা add_action(widgets_init np_widgets_init)

উাআপরজট পরযা ডকাড াঅফায গদরাভ- ltphp

Plugin Name Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Ciprian Turcu

Version 10

68

class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

69

echo $after_widget

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

70

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(widgets_init np_widgets_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

71

পলাগগন গনপরয় এত ডিাট গযপরয ডরখা মভফ নয় এজনযাআ ভপরন য় পলাগগন গনপরয় ডকউ ডরপরখন না কাযন এখাপরন এত গফলয় াঅপরি মা াঅপররাচনা কযপরত ডগপরর ৫০০ ডজ ায পরয় মাপরফ ডফাোয সগফধাপরথড াঅগভ মথামভফ উদাযন গদপরয় ডফাোপরনায ডচষটা কপরযগি াঅগভ এখাপরন টাপরগডট কপরযগি মাযা টকটাক জাপরন পলাগগন মপপরকড এডবানস ডরপরবপররয নয় কাযন তাযা জাপরনন াঅভায উপরেশয গির মাযা জানপরত চায় তাপরদযপরক জানাপরনা এখাপরন ডমফ গফলয় াঅপররাচনা কযা পরয়পরি তা ডভাটাভগট ভাপরনয একগট পলাগগন ফানাপরনায জনয মপরথষট তপরফ ভাপরনাননয়পরনয জনয াঅনাপরক গনপরজাআ খাপরজ গনপরত পরফ াঅনায জনয ডকানটা বার পরফ াঅগভ রধ গদক গনপরদডনা গদরাভ ভাতর এাআ ফাআগট রধভাতর ওয়াডডপরে রেপরয জনয ডরখা াপরনক বর ভরাগনত থাকপরত াপরয াঅনাযা কষভাসনদয দগষটপরত ডদখপরফন াঅগভ ডচষটা কপরযগি মতটা জ কপরয ডরখা মায় াপরনক ভয় ডদখা মায় ডম খফ ডিাট খাপরটা গফলয় গনপরয় াপরনপরকাআ নক কপরযন এটা গতয রাঃখজনক াঅনাযা গগপরর একট খাজপররাআ ভাধান াপরফন াঅপরগ গনপরজ ডচষটা করন তায পরয ানযপরক ভাধাপরনয জনয গজজঞাা করন াঅভায জনয ডদায়া কযপরফন বাপররা রাগপরর জানাপরফন খাযা রাগপররও জানাপরফন তাপররাআ াঅভায গযশরভ সবাথডক পরফ ভতাভত জাগনপরয় াঅভাপরক ডভাআর কযপরত াপরযন litonice09gmailcom |

72

Page 7: Wordpress Plugin Development

8

াধযায়- রাআাঃ পলাগগপরনয গঠন পলাগগন গক ওয়াডডপরেপরয পলাগগন র একগট PHP গিে মা ওয়াডডপরেপরয গনজসব পাাংনাগরগট গযফতডন কপরয াথফা গযফধডন কপরয ভরতাঃ একগট গপচায ফা গকি গপচায াঅভাপরদয াাআপরট ডমাগ কযায জনয াঅভযা পলাগগন াআনসটর ডদাআ একগট পলাগগপরনয কাপরজয ডকান গরগভট ডনাআ ড ডকান কাজগপররা কযপরত াযপরফ কাযন পলাগগন ডাউনপররাপরডয ডকান গনগদডষট াাআজ ডনাআ পলাগগন ওয়াডডপরেপরয াপরথ গকবাপরফ কাজ কপরয ওয়াডডপরেপর াপরনক গপচায াঅপরি গফগবনন API(Application Programming Interface)- এয জনয ডমগপররা গফগবননবাপরফ কাজ কপরয ওয়াডডপরেপর গনপরচ ডগপররা াঅপররাচনা কযা রাঃ

পলাগগনাঃ একপরট রক( hooks) ডমগপররা ওয়াডডপরেপরয গনগদডষট পাাংপরন এপরকস কপরয এগপররাপরক এনাফর কপরয

উাআপরজটাঃ পলাগগন গদপরয় উাআপরজট ততগয এফাং গযচারনা কযা টডপরকাডাঃ াঅনায পলাগগনপরক াপরাটড কযায জনয টডপরকাড ডমাগ কযা টডপরকাড র

একগট রক ডমটা একগট PHP পাাংনপরক এনাফর কপরয এফাং াঅনায ডাসট ফা ডজ এ েদডন কপরয াঅগভ পরয এ গফলপরয় গফসতাগযত ফরফ

HTTP এগট াঅনায পলাগগপরন HTTP গযপরকাপরয়সট াঠায় এাআ API কনপরটনট ডথপরক external URL াথফা Submit কযা কনপরটনট ডথপরক URL retrieve কপরয

ডগটাংাঃ াঅনায পলাগগপরনয ডগটাং াআনাটড াথফা ডগটাং ডকন ডগটাং API এয োথগভক সগফধা র গগকউগযগট কর ডগটাং ডাটা গযিায( গযপরাগধত) থাপরক সতযাাং মখন পলাগগন ডগটাং ডব কযায ভয় Cross Site Request Forgery (CSRF) এফাং Cross Site Scripting(XSS) গনপরয় গচনতায গকি ডনাআ

Options পলাগগপরনয কর ান জভা যাপরখ এফাং retrieve কপরয এগট নতন ান ততযী কপরয াঅপরগয ান াঅপরডট কপরয ান গডগরট কপরয এফাং ডমপরকান ান retrieve কপরয

Dashboard Widgets ডযাপরফাডড উাআপরজট ততগয কপরয ওয়াডডপরে ডযাপরফাপরডড automatically উাআপরজট েদডন এফাং কর কাসটভাাআপরজন গপচায ডমভন- গভগনভাাআজ ডরাগ ডর এফাং গিন ান

Rewrite াঅনায পলাগগপরনয জনয কাসটভ রর ততগয কযা এাআ API াঅনায static-end-point(custom-page) structure tags(postname) এফাং াগতগযি গপড গরঙক (feedjson)

9

Transients গকি াসথায়ী ান (cached data) ততগয কপরয াঅনায পলাগগপরনয জনয এাআ API গট Options API এয ানর

Database ওয়াডডপরেপরয ডাটাপরফপর েপরফ কপরয এগট াঅনায পলাগগপরনয ডাটাপরফপরজ গনপরচয কাজগপররা মপাদন কপরয- creatingupdatingdeleting and retrieving

কখন াঅনায পলাগগন ডরাড য় পলাগগন ততগয কযপরত ডগপরর এাআ ডফগক কাজগপররা াঅভাপরদয াফশযাআ জানপরত পরফ াঅভযা ডতা পলাগগন াআনসটর গদপরয়াআ খারা একফায ডবপরফও ডদগখনা এগট াঅপরর গকবাপরফ কখন ডরাড পরফ াাআপরটয উয কতটা াআপরপকট ডপরপরফ াঅগভ গনপরচ একগট ডায়াোভ গদরাভ াঅা কগয াঅয গকি ফরপরত পরফনা াঅভাপরক

Wordpress URL Called

wp-config Loaded

Functions Loaded

Plugins Loaded

Pluggables Loaded

Translations Loaded

Theme Loaded

Page Content

10

ওয়াডডপরে পলাগগন ডডপরবর কযায ৭গট কাযন

াঅগভ াআনটাযপরনট এ ldquoHow to Write a Plugin (httpgooglrCUY) rdquo গদপরয় াপরনক াচড কপরযগি াপরনক াঅগটডপরকর াঅপরি গকনত ভন ভত কপরয়কগট িাড়া ফরায ভত াাআগন ওয়াডডপরেপরয ldquoডকাপরডকসrdquo াঅপররাআ ওয়াডডপরে মপপরকড জানায জনয মপরথষট এটা পরয ফপরেগি ৭ গট কাযন ডকন াঅগন ওয়াডডপরে পলাগগন ফানাপরফনাঃ ১) াঅগন একগট পলাগগন মপপরকড জাপরনন গকনত এয ফাসতফায়ন িনদ কযপরিন না াঅভযা ডফগয বাগ ভয়াআ এাআ ভোয় গড় ২- ৩ গদন ধপরয একটা পলাগগন ডখাাজায জনয ফযয় কগয গকনত ভন ভত পলাগগন খাপরজ াাআ না গকনত এাআ ভয় এ একটা পলাগগন গরখা পরয় ডমত ২) াঅগন াঅপরগয ডকান পলাগগন ভগডপাাআ কযপরফন াপরনক ভয়াআ াঅনায িনদ ভত পলাগগন ডপররন গকনত াভানয গকি ডচি কযপররাআ াঅনায কাপরজ রাগপরফ এপরকষপরতর াঅনাপরক ডাআ পলাগগনগট ভগডপাাআ কযপরত জানপরত পরফ াপরনক ভয় পলাগগপরনয ডরখক ফযসত থাকপরত াপরযন এফাং াঅপরডট কযপরত াপরযন না এপরকষপরতর াঅগন ডাআ পলাগগনগট Aut hor Name ডচি কপরয গনপরত াপরযন তপরফ GPL Compatible license (httpgooglBOzm ) গঠক ডযপরখ াঅগন নযায় াগযগজনার পলাগগপরনয নতন বাডন ডফয কযপরত াপরযন ৩) ডকান পলাগগনপরক একসপরটনড কযপরত চান াপরনক ভয় একগট পলাগগন বার কাজ কপরয াাআপরটয জনয গকনত াঅগন াঅপরযা গকি গপচায ডমাগ কযপরত াপরযন ডমভন AJAX JQuery Effects াথফা াঅপরযা গকি রক রাগাপরত চান ডমন এগট ানয পলাগগপরনয াপরথ াভিে থাপরক তপরফ াফশযাআ GPL Compatible (httpgooglBOzm ) এয াপরথ াভিে পরত পরফ ৪) াঅগন মগদ াঅনায গথপরভয ফনপরমাগয ডকাড কযপরত চান এগট ভরত কাসটভ গথভ ডকাপরডয কথা ফরা পরয়পরি ডকান এগকসগসটাং গথপরভয ৫) াঅগন মগদ গথভ গডজাাআনায ন ৬) াঅগন মগদ টাকা উাজডন কযপরত চান পলাগগন ততযী কপরয ৭) াঅগন মগদ াঅনায াাআপরটয াআনকাগভাং গরঙক গফলড কযপরত চান

পলাগগপরনয ডপালডায সটরাকচায ডকভন পরফ কর ওয়াডডপরে পলাগগন wp-contentplugins গডপরযকটগযপরত াআনসটর য় গকি পলাগগপরন রধ একগট PHP পাাআর থাপরক গকনত াঅগভ ফ ভয় একগট ডপালডায কপরয পলাগগন ততগয কযায যাভড ডদফ পলাগগপরনয সটরাকচায পরত পরফ এযকভাঃ

11

Plugin Folder Name( াঅনায পলাগগন ডপালডায নাভ ডকান ডসপ ফা ডসপার কযাপরযকটায থাকা চরপরফ না) Main php file

js ডপালডায( জাবাগিে ফা Jquery file এয জনয) css ডপালডায( সটাাআরগট পাাআপররয জনয) phpinclude ডপালডায ( ানয php পাাআর)

একগট উদাযন ডদাআ পাাআপররয সটরাকচায ডকভন পরফ- litons-first-plugin

indexphp

js

css

includes

images

uninstallphp

পলাগগন ডডায

পলাগগপরনয ডডায িাড়া ডাআ পাাআর ডপালডাযগটপরক ওয়াডডপরে গচনপরত াযপরফ না পলাগগন ডডাযাআ পরচছ একভাতর েপরয়াজনীয় পাাংন মা ওয়াডডপরে দাফী কপরয ভাপরন াঅনাপরক পলাগগন ডরখায ররপরত PHP comment বলপরকয ভপরধয গকি াআনপযপরভন গদপরত পরফ মা এপরকফাপরয পাাআপররয েথপরভ াফসথান কপরয এখাপরন গকি কথা ফপরর যাগখ াঅগন মগদ াাআপরটয এাআও টাপরগডট কপরয পলাগগন ফানান তাপরর ডকান িপরভাআ াঅনায নাভ গদপরয় পলাগগন ফানাপরফন না ডমভনাঃ Litons Plugin এপরত এাআও ডত খাযা েবাফ পরড় গনপরচ উদাযন ডদয়া রাঃ ltphp

Plugin Name Litons Plugin পলাগগপরনয নাভ

Plugin URI httpliton-onlinecomplugin পলাগগপরনয URI Description This is a demo description পলাগগপরনয গফফযন Version 10 পলাগগপরনয বাডন Author Md Liton Arefin পলাগগন ডরখক

Author URI httpliton-onlinecom ডরখপরকয URI

gt

12

উপরযয িগফপরত ডদখন ওয়াডডপরেপরয ডযাপরফাপরডড াঅগভ পলাগগন ডডাপরয মা মা তথয গদপরয়গিরাভ তাাআ ডদখাপরচছ এটাাআ াঅনায োথগভক কাজ াঅগন রাাআপরনসও ডমাগ কযপরত াপরযন এবাপরফ- lt php

Copyright YEAR PLUGIN_AUTHOR_NAME (email PLUGIN AUTHOR

EMAIL)

This program is free software you can redistribute it andor modify

it under the terms of the GNU General Public License as published by

the Free Software Foundation either version 2 of the License or

(at your option) any later version

This program is distributed in the hope that it will be useful

but WITHOUT ANY WARRANTY without even the implied warranty of

MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE See the

GNU General Public License for more details

You should have received a copy of the GNU General Public License

along with this program if not write to the Free Software

Foundation Inc 51 Franklin St Fifth Floor Boston MA 02110-1301 USA

gt

পলাগগন াথ

একগট কভন কাজ র াঅনায পলাগগপরনয পাাআর এফাং ডপালডাযগপররাপরক ওয়াডডপরে াআনসটপররন গডপরযকটগযপরত ডযপায কযা াঅগন এাআ কাজগট রাআ বাপরফ কযপরত াপরযন- ডরাকার াবডায াথ াথফা সটানডাডড URL

13

ডরাকার াবডায াথাঃ ডরাকার াবডায াথ াঅনায কগমপউটাপরযয গডপরযকটগযয ভতাআ ডরাকার াবডায াথ াধাযনত ফযফায কযা য় মখন াঅনাপরক গনপরজয ডরাকার াবডাপরযয গকি পাাআর i ncl ude কযপরত য় একগট কভন েশন র- পলাগগন পাাআপররয াথ ডদখাপরনায গঠক িগত ডকানগট াঅনায পলাগগপরনয ডরাকার াথ ডদখাপরনায জনয াঅনাপরক plugin_dir_path() পাাংন ফযফায কযপরত পরফ plugin_dir_path() পাাংন পলাগগন গডপরযকটগযয গপগজকযার াথ একসিযাকট কপরয পাাআপররয নাভ ডথপরক ltphp plugin_dir_path($file) gt

Parameters

$file-(string)(required)- পলাগগন পাাআপররয নাভ এখন ডদগখ গকবাপরফ পলাগগন ডপালডাপরযয নাভ ডফয কযপরত য়-

ltphp

echo plugin_dir_path(__FILE__)

gt

এখাপরন গএাআচগ কনসটযানট __FILE__ ডক plugin_dir_path পাাংপরনয ভধয গদপরয় া কযারাভ এাআ পাাংন াবডায াথ ডদখাপরফ পলাগগন গডপরযকটগযয public_htmlwp-contentpluginsliton-plugin

একাআবাপরফ াঅগন মগদ plugin_dir_path() এাআ পাাংনপরক মগদ ডকান াফ- গডপরযকটগযয পাাআরপরক ডযপায কগয তাপরর গনপরচয ভত কপরয ডযপায কযপরত পরফ ltphp

echo plugin_dir_path(__FILE__)jsscriptsjs

gt

এাআ ডকাডগট গনপরচয ভত াথ ডদখাপরফ- public_htmlwp-contentpluginsliton-pluginjsscriptsjs

URL াথাঃ াঅপরযা গকি পাাংন াঅপরি ডমগপররা গদপরয় ওয়াডডপরেপরয URL ডদখাপরনা মায়

plugins_url() - পলাগগন গডপরযকটগযয পরযা URL ( ডমভনাঃ httpliton-onlinecomwp-contentplugins)

includes_url() - পরযা গডপরযকটগযয URL include কপরয ( ডমভন httpliton-onlinecomwp-includes)

14

content_url() - পরযা কপরনটনট গডপরযকটগয URL ( ডমভনাঃ httpliton-onlinecomwp-content )

admin_url() - পরযা এডগভন URL

( ডমভনাঃ httpliton-onlinecomwp-admin ) site_url() - কাপরযনট াাআট এয পরযা URL

( ডমভনাঃ httpliton-onlinecom ) home_url() - কাপরযনট াাআট এয পরযা ডাভ URL

( ডমভনাঃ httpliton-onlinecom )

াথ গনপরয় াঅপরযা গফসতাগযত ডদখপরত াপরযনাঃ httpcodexwordpressorgDetermining_Plugin_and_Content_Directories

httpcodexwordpressorgFunction_Referenceplugins_url

httpcodexwordpressorgFunction_Referenceplugin_dir_url

httpcodexwordpressorgFunction_Referenceplugin_dir_path

plugins_url() পাাংন াঅনায উততভ ফনধ পরত াপরয মখন াঅগন পলাগগন ডডপরবর কযপরফন

ltphp

plugins_url($path $plugin)

gt

Parameters

$path-(string)(optional)- গযপররগটব াথ URL $plugin- (string)(optional)- পলাগগন পাাআর মা াঅগন (__FILE__) এয ভাধযপরভ া কযপরত চান ডমভনাঃ ltphp

echo ltimg src=rdquoplugins_url(imagesiconpng__FILE)rdquogt

gt

এয পরযা URL পরফ ltimg src=rdquohttpliton-onlinecomwp-contentpluginsliton-pluginimagesiconpngrdquo gt

15

াধযায়- গতনাঃ রক

ওয়াডডপরে রক( Hook) গক ওয়াডডপরেপর রক ফরপরত াধাযনত add_action() াথফা add_filter() পাাংন ডক ডফাোয় এাআ রগট পাাংনপরক remove_action() াথফা remove_filter() গদপরয় ভপরি ডপরা মায় মগদও াপরনপরকয কাপরি রপরনগি ডম এাআ রগট পাাংপরনয ভপরধয ডকান াথডকয ডনাআ গকনত াঅপরর তা নয় গফযাট াথডকয াঅপরি এ রগট পাাংপরনয ভপরধয াঅগভ ভরত এাআ রগট পাাংন গদপরয়াআ গকি পলাগগন ফাগনপরয় ডদখাফ কাযন খফাআ গরতবিড এাআ রগট পাাংন মপপরকড বাপররাবাপরফ জানা

গপলটায রক (Filter Hooks)

গপলটায রক পাাংপরনয কাজ পরচছ কনপরটনটপরক ভগডপাাআ কযা গপলটায রক গদপরয় টাাআপরটর কনপরটনট াআতযাগদ ভগডপাাআ কযা মায় ডমভন টাাআপরটর এ ডকান টযাগ না থাকা গবগজটয কপরভপরনট ltgt t ag span t ag াআতযাগদ গদপরয় াাআপরটয ডরাঅউপরটয গযফতডন কপরয গদপরত াপরয ভাপরন ডকান কপরভপরনট মগদ এযকভ ht ml ডকাড াড কযা থাপরক তাপরর ডদখপরত খাযা রাগপরফ এগপররা াফশয এখন ওয়াডডপরে াপরটাপরভগটকযাগর কপরয গকনত এাআ কাজগপররা ভরত গপলটায রক গদপরয় কযা পরয় থাপরক গপলটায রক রাআ ধযপরনয add_filter() এফাং remove_filter() পাাংন খফ গরতবনড একগট কথা গপলটায রকপরক গযটানড কযপরত য় ltphp

add_filter($tag $function $priority $accepted_args)

gt

$tag- ডম রকপরক াঅগন ডযগজসটায কযপরত চান $function- ডম পাাংনপরক াঅগন াঅউটপরট গপলটায কপরয ডদখাপরত চান $priority- একগট াআগনটজায াংখযা মা াঅনায গপলটাযপরক িভানাপরয াজাপরফ মগদ ডকান

াংখযা না ডদয়া থাপরক তাপরর এগট ১০ গডপলট গপরপরফ থাপরক $ accepted_args- ডম াংখযক যাযাগভটায একগট পাাংন েি কযপরত াপরয গডপলট গপরপরফ

১ থাপরক াঅনায পাাংপরন ানততাঃ একগট যাযাগভটায থাকপরত পরফ মা গযটানড কযপরফ apply_filter($tag$value)

$tag- গপলটায রপরকয নাভ $value- রপরকয ভধয গদপরয় ডম যাযাগভটায া কযাপরফন

াঅভযা এখন একগট উদাযি ডদখফ ডমখাপরন টাাআপরটর এয েগতটা ওয়াডডপরক ফড় াপরতয াকষপরয রানতয কযফ গনপরচ একগট পলাগগন ডদখন- ltphp

Plugin Name Liton filter

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10

16

Author Md Liton Arefin

Author URI httpliton-onlinecom

add_filter(the_titleliton_modify_title)

function liton_modify_title($content)

return ucwords($content)

gt

পলাগগনগট এগকটপরবট কযায াঅপরগ ডাসট টাাআপরটর ডদখন-

এফায পলাগগনগট এগকটপরবট কযায পরয ডাসট টাাআপরটর ডদখন-

এাআ পলাগগনগট াঅভাপরদয াপরনক ভয়াআ কাপরজ রাগপরত াপরয কাযন াপরনপরকাআ াঅভযা এাআ পযভযাটগট িনদ কগয ঠাৎ কপরযাআ াঅভযা ডাসট টাাআপরটর গরখায ভয় ফড় াপরতয াকষয কযপরত বপরর ডমপরত াগয াঅভযা এাআ কাজগট খফ ডিাট একগট পলাগগন গদপরয় াপরটাপরভগটকবাপরফ কযপরত াগয

17

এখন াঅগভ গকি াগতগযি গফলয় গনপরয় াঅপররাচনা কযফ ডমগপররা ডভপরন চরপরর বগফষযপরতয জনয বার পরফ াঅগভ একগট পাাংন গরপরখগি- add_filter(the_titleliton_modify_title)

function liton_modify_title($content)

return ucwords($content)

একট গফসতাগযত ফরপরর াঅভযা the_title এয ভধয গদপরয় মা া কযফ তা গপলটায কযপরফ এখাপরন াঅভযা ucwords the_title এয ভধয গদপরয় া কপরযগি এফায াঅপরযা টড পভড ডদগখ add_filter(the_title ucwords)

তায ভাপরন পরযা পলাগগনগট পরফ এযকভ- ltphp

Plugin Name Liton filter

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_filter(the_title ucwords)

gt

গক খফ জ রাগপরি এখাপরন ফপরর যাগখ ডম ucwords এগট গযগব কযপরফ the_title মা া কযপরি এফাং াপরটাপরভগটকযাগর গযটানড কযপরফ the_title এ সতযাাং এখাপরন গযটানড এয দযকায ডনাআ এফায াঅগন মগদ গএাআচগ বাডন ৫৩ ফযফায কপরযন তাপরর গনপরচয ভত কপরয anonymous function ফযফায কযপরফন াঅনাযা জাবাগিে ডজকপরয়গয‟য াপরথ গযগচত এগট াপরনকটাাআ এযকভ ltphp

Plugin Name Liton filter

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_filter(the_title function($content)

return ucwords($content)

)

gt

বার কপরয ডদখন ডতা াথডকযটা ডকাথায় গনপরজ গনপরজ কাজ কযপরর এবাপরফ কযপরফন াফশযাআ এগট একট এডবানস ডরপরফপররয কাজ মগদও পলাগগন ফানাপরনায ডকষপরতর এগট এখপরনা াঅদড নয় কাযন াপরনপরকযাআ গএাআচগ বাডন এখপরনা ৪ এাআ ডথপরক ডগপরি সতযাাং এাআ িগতগট একানতাআ গনপরজয জনয

18

এযাকন রক (Action Hooks) Action Hooks পরচছ ড ভসত রক ডমগপররা ওয়াডডপরেপরয রাাআপ াাআপরকর গনপরয় কাজ কপরয Action Hooks রাআ ধযপরনয add_action() remove_action() এাআ রকগপররা কাজ কপরয মখন ডকান ডাসট ডব কযা য় ডাসট াফগর কযা য় কপরভনট কযা য় ডকান বলগ ডাপরসট াথফা ওপরয়ফাাআপরট ডডাযপটায ডজনাপরযট য় এগপররা েগতগট একগট একগট কপরয Actions মখন াআউজায তায এডগভগনপরসটরটয ডভনপরত েপরফ কপরয এগপররা ফাআ Action Hooks এখাপরন াঅভযা কনপরটনটপরক গপলটায কযগিনা াঅভযা ওয়াডডপরেপরয গনগদডষট পাাংনগপররাপরক রক কপরয কাজ কযগি াঅভযা একগট উদাযন ডদগখ- ltphp

Plugin Name Liton Action

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(wp_footer function($content)

echo Hello This is Liton Arefin

)

gt

াঅনাপরদয সগফধাপরথড ডফাোয জনয গনপরচয ভত কপরয গরখন- ltphp

Plugin Name Liton Action

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(wp_footer liton_footer_action)

function liton_footer_action($content)

echo Hello This is Liton Arefin

gt

াঅভযা খফ ডিাট একগট উদাযন গদপরয় ডদখরাভ ডম action রক গকবাপরফ কাজ কপরয গনপরচ ডদগখ াাআপরট ডকভন ডদখায়-

19

উপরযয িগফপরত ডদখন াঅগভ Hello This is Liton Arefin এাআ রাাআনগট গেনট কপরযগি এফাং তা পটাপরযয ফাভ াপর এপরকফাপরয গনপরচ ডদখাপরচছ এফায ডাড ডকাড এ ডদগখ াঅপররাআ এয গজন টা ডকাথায় াঅপরি

উপরয ডদখন পটাপরযয গঠক গনপরচাআ রাাআনগট ডদখাপরচছ এফায াঅপরযকগট ফাসতফ এফাং খফাআ গরতবনড উদাযন ডদগখ এাআ পলাগগনগটয কাজ পরফ মখনাআ ডকান কপরভনট ডাসট পরফ তখনাআ এডগভনপরক ডভাআর াঠাপরফ ডম নতন কপরভনট ডাসট পরয়পরি মগদও ওয়াডডপরে এাআ কাজগট কপরয থাপরক াঅভযা এাআ কাজগট ভযানয়ারী কপরয ডদগখ ltphp

Plugin Name Liton Comments Mail

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(comment_post function()

$email= get_bloginfo(admin_email)

wp_mail(

$email

New Comment Posted

A new comment has been left on your blog

)

)

gt

এখাপরন comment_post নাপরভয রপরক একগট ডবগযপরয়ফর $email ndashএ এডগভন ডভাআরপরক ডসটায কপরযগি মাপরত কপরয ডাাআনাগভক বাপরফ ড ডমপরকান াাআপরটয এডগভন ডভাআরপরক গডপরটকট কযপরত াপরয তপরফ এপরকষপরতর মগদ bloginfo(admin_email) ফযফায কযা ত তাপরর এডগভন ডভাআরপরক গডপরটকট কযত গকনত get_bloginfo(admin_email) ফযফায কযায পপরর াঅভযা াআপরভাআর বযারগটপরক গযটানড কপরয ডসটায কযগি এফাপরয ওয়াডডপরেপরয গফলটাআন ডভাআর পাাংন wp_mail(emailsubjectmessage) এয ভত কপরয গরপরখগি বার কপরয ডদখন পলাগগনগট এগকটপরবট কপরয ডদখন াঅনায াাআট মগদ ানরাাআপরন থাপরক তাপরর গনপরজাআ একগট কপরভনট কপরয ডদখন াঅনায এডগভন ডভাআপরর একগট ডভাআর চপরর ডগপরি

20

াধযায়- চাযাঃ পলাগগন ডকাগডাং সটযানডাডড

পলাগগন এগকটপরবনগডএগকটপরবন পাাংন াঅগন মখন একগট পলাগগনপরক এগকটব কপরযন তখনাআ এগকটপরবন পাাংন গিগায য় এাআ পাাংনপরক register_activation_hook() ফপরর ltphp register_activation_hook($file $function) gt

Parameters

$file- োাআভাগয পলাগগন পাাআপররয াথ

$function- ডম পাাংনগট গিগায পরফ মখন পলাগগন এগকটপরবট য় ডমভনাঃ- ltphp

register_activation_hook(__FILE__ bdquoliton_plugin_install‟)

function liton_plugin_install()

do something cool stuff

gt

াঅভযা একগট পলাগগন ফানাাআ এবাপরফ-

ltphp

Plugin Name Liton Version

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

register_activation_hook(__FILE__ liton_plugin_install)

function liton_plugin_install()

If(version_compare(get_bloginfo(version)51lt))

deactivate_plugins(basename(__FILE__))

deactivate our plugin

gt

মখন াঅভযা পলাগগন গডএগকটপরবট কগয তখন পলাগগন গডএগকটপরবন পাাংন কর য়

21

ltphp

register_deactivation_hook ($file $function) gt

-

ltphp

register_deactivation_hook (__FILE__ bdquoliton_plugin_install‟)

function liton_plugin_install()

do something

gt

াঅপরযকগট গরতবনড গফলয় র াঅনাআনসটর ওয়াডডপরে াঅনাপরক পলাগগন াঅনাআনসটর এয জনয রগট ান গদপরচছ- uninstallphp file and the uninstall hook

uninstallphp

এগট ডভাটাভগট েনপরমাগয িগত এ ডভথড ফযফায কযায জনয াঅনাপরক uninstallphp নাপরভ একগট পাাআর ততগয কযপরত পরফ াঅনায পলাগগন গডপরযকটগযপরত পাাআরগট গনপরচয ভত পরফ- ltphp

মগদ ওয়াডডপরে এগকসট কযায াপরথ াঅনাআনসটর কর কযা না য় If(defined(bdquoWP_UNINSTALL_PLUGIN‟))

exit()

delete_option(bdquoliton_plugin_options‟)

াগতগযি ান এফাং কাসটভ ডটগফর ভপরি ডপরন gt

Uninstall Hook

গিতীয় িগত র Uninstall Hook মগদ াঅগন ডকান পলাগগনপরক গডগরট কযপরত চান এফাং uninstallphp পাাআর না থাপরক তাপরর এাআ রক এগকসগকউট য়(মগদ থাপরক) ltphp

register_uninstall_hook($file$function)

gt

22

ডকাগডাং সটযানডাডড পলাগগন ফানাপরফন গকনত াঅনায ডকাড ডকভন পরফ গচনতা াঅপরত াপরয ওয়াডডপরে াঅনায জনয একগট সটযানডাডড গদপরয় গদপরয়পরি মা াঅনাপরক ওয়াডডপরেপরয জনয পলাগগন গরখপরত ডগপরর পপররা কযপরতাআ পরফ httpcodexwordpressorgWordPress_Coding_Standards

ডফগক একগট উদাযন গদরাভ গনপরচ- ltphp

Short description

Longer more detailed description

param type $varname1 Description

param type $varname2 Description

return type Description

function boj_super_function( $varname1 $varname2 )

do function stuff

gt

গএাআচগ সটানডাডড াঅভযা াপরনপরকাআ গএাআচগয টড পভড(lt gt) ফযফায কগয এটা মপিডরপর ফজডন করন কাযন াপরনক ডাগসটাং ডকামপাগনপরতাআ এটা গডপলট গপরপরফ ফনধ কপরয ডদয়া থাপরক সটযানডাডড টযাগ ফযফায করন(ltphp gt)

এগকউএর ডসটটপরভনট পলাগগন ততগযয ভয় াঅনাপরক াপরনক ভয়াআ ডাটাপরফ ডথপরক াআনপযপরভন গনপরত পরত াপরয াপরনক রাাআপরনয ডকাড গরখপরত পরত াপরয ডপরকষপরতর বার েযাকগট পরচছ এগকউএর এয কভানড গপররা ফড় াপরতয াকষপরয ডরখা ডমভন- SELECT username FROM table1 WHERE status = active

23

াধযায়- াাচাঃ ওয়াডডপরেপরয াপরথ াআগনটপরেন

ডভন এফাং াফ ডভন ততগয করন াঅভযা াপরনক পলাগগপরনাআ ডদগখ ডম একগট ডভন াঅাআপরটভ গপরপরফ াঅভাপরদয ডযাপরফাপরডড ডদখপরত াাআ এফাং ডাআ ডভনপরত গিক কযপরর ডগটাং ডজ াঅপর ডখাপরন পলাগগপরনয মাফতীয় ডগটাং গদপরয় াঅভযা পলাগগন কনগপগায কগয এফায এাআ চভৎকায কাজগট কযফ াঅভযা

ট ডরপরবর ডভন েথভ িগত পরচছ একগট ট ডরপরবর ডভন ততগয কযা ডমগট াঅভযা ডযাপরফাপরডড ডভন গরপরসট একগট নতন াঅাআপরটভ গপরপরফ ডমাগ কযফ ডভন ততগয কযায জনয াঅনাপরক add_menu_page( ) পাাংন ফযফায কযপরত পরফ ltphp

add_menu_page( page_title menu_title capability menu_slug functionicon_url

position )

gt

add_menu_page() পাাংন গনপরচয যাযাগভটাযগপররা াপরাটড কপরয page_title- াঅনায ডপরজয টাাআপরটর গক পরফ lttitlegt tag এয ভপরধয menu_title- ডযাপরফাপরডড াঅনায ডভনয নাভ capability- ফডগনমন capability রাগপরফ একগট ডভন গবউ পরত menu_slug- সলাগ নাভ মা ডভনপরক ডযপায কপরয- তপরফ এগট াআউগনক পরত পরফ function- একগট ডপরজয কনপরটনট ডদখপরত ডম পাাংন কর কযা য় icon_url- একগট কাসটভ াআপরভজ গরঙক ডভন াঅাআকন ডদখাপরনায জনয position- ডভনয গজন াডডায ডমখাপরন এটা ডদখাপরনা পরফ

এফায াঅভযা একগট ফাসতফ উদাযন ডদখফ- ltphp

Plugin Name Liton Menu

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action( admin_menu liton_menu)

function liton_menu()

24

create custom top-level menu

add_menu_page( Liton Menu Page Liton Menu Page manage_options

__FILE__ liton_menu_settings_page plugins_url( imageswp-logopng

__FILE__ ) )

gt

াঅভযা একগট ট ডরপরবর ডভন ততগয কযরাভ ডদখন ডযাপরফাপরডড ডকভন ডদখায়-

Liton Menu Page নাপরভ একগট ডভন ততগয পরয় ডগপরি এফাপরয াঅভযা াফপরভন কযফ ভাপরন Liton Menu Page এয গনপরচ গকি ডগটাং ডভন(মগদ েপরয়াজন য়) াফ ডভন ডযগজসটায কযায জনয add_submenu_page( ) পাাংন ফযফায কযা য় ltphp

add_submenu_page( parent_slug page_title menu_title capabilitymenu_slug

function )

gt

parent_slug- ডভন সলাগ মা াঅভযা াঅপরগ গডপাাআন কপরযগি menu_slug- মা ডভনপরক াফপরভনপরত ডযপায কযপরফ ফাগক পাাংনগপররা াঅপরগয ভতাআ

এফায াফপরভনয জনয গকি াগতগযি ডকাড ডমাগ কগয create submenu items

add_submenu_page( __FILE__ About My Plugin About manage_options

__FILE___about liton_menu_about_page )

add_submenu_page( __FILE__ Help with My Plugin Help

manage_options

__FILE___help liton_menu_help_page )

add_submenu_page( __FILE__ Uninstall My Plugin Uninstall

manage_options

__FILE___uninstall liton_menu_uninstall_page )

25

পরযা ডকাডগট পরফ এযকভ- ltphp

Plugin Name Liton Menu

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action( admin_menu liton_menu

)

function liton_menu()

create custom top-level menu

add_menu_page( Liton Menu Settings Page Liton Menu Page

manage_options __FILE__

liton_menu_settings_page

plugins_url( imageswp-logopng __FILE__ ) )

create submenu items

add_submenu_page( __FILE__ About My Plugin About manage_options

__FILE___about liton_menu_about_page )

add_submenu_page( __FILE__ Help with My Plugin Help

manage_options

__FILE___help liton_menu_help_page )

add_submenu_page( __FILE__ Uninstall My Plugin Uninstall

manage_options

__FILE___uninstall liton_menu_uninstall_page )

gt

গনপরচ ডদখন াফপরভনগপররা ততগয পরয় ডগপরি-

26

ডভনপরক াঅপরগয ডভনয াপরথ মি কযা এফায াঅগ গিতীয় িগতপরত মগদ াঅনায পলাগগপরনয একগট ভাতর ডজ থাপরক একগট ভাতর ডপরজাআ াঅনায কর ডগটাং পরয় মায় তাপরর এাআ িগত েন করন ডমভন ডয়াগযাং াাআটগপররায জনয রধ াঅনায াঅাআগডপযানপরপরজয াঅাআগড দযকায য় এযকভ পলাগগন এধযপরনয পলাগগপরনয জনয াঅনায াগতগযি ডভন ততগয কযায দযকায ডনাআ ফযাং এপরত কপরয াআউজায গফযি ডফাধ কযপরত াপরযন এ ধযপরনয পলাগগনগপররা ডগটাং এয াফপরভন গপরপরফ থাপরক add_options_page() এাআ পাাংন গদপরয় এফ ডভন ডযগজসটায কযা য় ltphp

add_options_page( page_title menu_title capability

menu_slug function)

gt

এফায চরন এযকভ একগট ডভন ততগয কগয- ltphp

Plugin Name Liton Sub Menu

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action( admin_menu liton_submenu)

function liton_submenu()

create a submenu under Settings

add_options_page( Liton Menu Settings Page Liton Menu Page

manage_options __FILE__

liton_menu_settings_page)

27

gt

াফপরভন ততগয পরয় ডগপরি চরন ডদগখ ডযাপরফাপরডড ডকভন ডদখায়-

এপরকফাপরয গনপরচয গদপরক ডদখন Liton Menu Page নাপরভ একগট ডভন ততগয পরয়পরি

উাআপরজট ততগয কযা উাআপরজট ততগয কযায জনয ওয়াডডপরে WP-Widget িা গদপরয় ততগয কযা য় উাআপরজট এয একগট পযভযাট ডদখন গনপরচ ltphp

class My_Widget extends WP_Widget

function My_Widget()

processes the widget

function form($instance)

displays the widget form in the admin dashboard

function update($new_instance $old_instance)

process widget options to save

function widget($args $instance)

displays the widget

gt

28

উাআপরজট ডযগজসটায কযায জনয widget_init() পাাংনপরক রক কযা য় চরন একগট উাআপরজট ততগয কগয- ltphp

Plugin Name Liton Widget

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

class Messager extends WP_Widget

function __construct()

$params=array(

description =gtDisplay message to readers

name =gt Message

)

parent__construct(Messager $params)

public function form()

public function widget()

add_action(widgets_initliton_register_message)

function liton_register_message()

register_widget(Messager)

gt

29

খফ াধাযন একগট উাআপরজট পলাগগন এগট াঅভযা াআউজাযপরদযপরক একগট ডভপরজ ডদখাপরফা াাআডফাপরয ডটাাআ কযায ডচষটা কযগি এখন পলাগগনগট এগকটপরবট কপরয ডদগখ-

াঅভাপরদয উাআপরজটগট ডদখাপরচছ এফায াঅপরযা গকি পাাংনার কাজ কগয এগট মগদ াাআডফাপরয ডরাগ কপরয ডদন তাপরর ডকান কাজ কযপরফ না কাযন াঅভযা এখপরনা গকিাআ কগযগন পভড পাাংপরন গকি কাজ কগয মা উাআপরজট টাাআপরটর গপরপরফ ডদখাপরফ- public function form($instance)

extract($instance)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title)gtgtTitle ltlabelgt

ltinput

class=widefat

id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt

value=ltphp if(isset($title)) echo esc_attr($title) gt gt

ltpgt

ltphp

াঅভযা উপরয class=widefat ফযফায কপরযগি এাআ িা ফযফায কযায কাযপরন পভড এয াআনট গপলডগট াপরনক সনদয পরয়পরি

30

মগদ এাআ িা ফযফায না কগয তাপরর ডকভন ডদখাপরফ গনপরচ ডদখন-

াঅভাপরদয উাআপরজট পলাগগনগটয ডকাড গনপরচ ডদওয়া র ltphp

Plugin Name Liton Widget

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

class Messager extends WP_Widget

function __construct()

$params=array(

description =gtDisplay message to readers

name =gt Message

)

parent__construct(Messager$params)

31

public function form($instance)

extract($instance)

print_r($instance)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title)gtgtTitle ltlabelgt

ltinput

class=widefat

id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt

value=ltphp if(isset($title)) echo esc_attr($title) gt gt

ltpgt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(description)gtgtDescription

ltlabelgt

lttextarea

class=widefat

rows=10

id=ltphp echo $this-gtget_field_id(description) gt

name=ltphp echo $this-gtget_field_name(description) gtgtltphp

if(isset($description)) echo esc_attr($description) gtlttextareagt

ltpgt

ltphp

public function widget($args$instance)

extract($args)

extract($instance)

echo $before_widget

echo $before_title$title$after_title

echo ltpgt$descriptionltpgt

echo $after_widget

add_action(widgets_initliton_register_message)

function liton_register_message()

32

register_widget(Messager)

gt

এফায াঅভযা ডযাপরফাডড ডথপরক একগট ডভপরজ ডদফ গবগজটযপরদযপরক-

াঅভযা এাআ উাআপরজটগট ডাাআনাগভক বাপরফ কপরযগি কাযন এখাপরন lth2gt lth3gt lth4gt এ ধযপরনয ডকান টযাগ াঅভযা ফযফায কগযগন াঅভযা গথভ ডডপরবর কযগিনা সতযাাং এ কাজগট াঅভাপরদয ানযবাপরফ কযা দযকায গির এগট গথভ ডডপরবরায ডদগখপরয় ডদপরফন ডম ডকভন টযাগ পরফ াাআডফাপরয াাআপরটয াাআডফাপরয ডকভন ডদখায় তা ডদখন- াঅভযা রগট গথপরভ এগট ডটসট কপরয ডদখফ েথভগট টপরয়গনট াআপররপরবন

33

এফায াঅপরযকগট গথপরভ ডদগখ-

34

াধযায়- িয়াঃ পলাগগন পাাংন

গকি ডফগক পাাংন __() পাাংন

__() পাাংনগট গএাআচগপরত াঅনায ডটকসটপরক ডযগড কপরয িানসপররন এফাং গযটানড কপরয উদাযন গপরপরফ াঅগন একগট বযারপরক __() পাাংপরনয ভপরধয ডবগযপরয়ফর গদপরয় assign করন ভপরন যাখপরফন এাআ পাাংনগট রগট াঅনডাযপরিায(_) গদপরয় গগঠত একগট নয় ltphp

$text=__(bdquoWordpress is a wonderful publishing platform‟‟liton_plugin‟)

gt

_e() পাাংন _e() পাাংনগট াঅনায ডটকসবপরট ডরাকারাাআজ কপরয এটা গএাআচগপরত echo এয ভত কাজ কপরয ডকান ডটকসটপরক গিপরন ডদখাপরনায জনয এফায একট ভজা কগয মা রপরক ডদপরখগি াঅপরগাআ- _e() পাাংনগট গদপরয় াঅপরগয পলাগগনগট এগডট কযফ ltphp

Plugin Name Liton Action

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(wp_footer liton_footer_action)

function liton_footer_action()

Output the translated text

_e( This site runs off the coolest platform ever ampmdash

WordPress

liton-plugin )

gt

35

এফায াঅউটট ডদগখ

esc_attr__() পাাংন এাআ পাাংনগট esc_attr() এয ভত এগট এাআচগটএভএর এগিগফউটপরক escape কপরয াঅভযা এফায esc_attr__() এফাং __() এাআ রগট পাাংনপরক একগট কপরয পলাগগন ততগয কযফ ltphp

Plugin Name Liton Esc Attr

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

A function that returns a link to the sites terms of service

page

function liton_terms_of_service_link()

return lta href=httpliton-onlinecomtos title=

esc_attr__( Visit the Terms of Service page boj-plugin ) gt __( Terms of

Service liton-plugin ) ltagt

Display the output of the liton_terms_of_service_link()

function

echo liton_terms_of_service_link()

gt

পলাগগনগটয াঅউটট ডদখন-

36

এযকভ াঅপরযা গকি পাাংন াঅপরি ডমগপররা াঅনাযা ডদপরখ ডনপরফন াআনটাযপরনট ডঘপরট

esc_html__() Function

esc_attr() Function

esc_url() Function

esc_js() Function

esc_html() Function

esc_attr_e() Function

esc_html_e() Function

_x() Function

_ex() Function

esc_attr_x() Function

esc_html_x() Function

_n() Function

_nx() Function

_n_noop() Function

_nx_noop() Function

Translation

bull Poedit httppoeditnet

bull GlotPress httpglotpressorg

bull Launchpad httpstranslationslaunchpadnet

bull Pootle httppootlelocamotionorg

bull KBabel httpi18nkdeorg

bull GNU Gettext httpgnuorgsoftwaregettext

GlotPress এখন ওপরয়ফ ডফড টর গপরপরফ ফযফায কযা পরচছ ওয়াডডে েপরজপরকটয ডিপরন একজন াথফা গটপরভয জনয িানসপররগটাং পটওয়যায গপরপরফ

37

াধযায়- াতাঃ পলাগগন গগকউগযগট

গগকউগযগট কগমপউটাপরযয বালায় ldquoগগকউগযগটrdquo ভাপরন বীগতকয একগট বদ ডমভন Cross Site

Scripting(XSS) Cross Site Request Forgery(CSRF) SQL Injection Privilege

Escalation Vulnerabilities এফাং Holes রফডর ডকাড একগট াবডাপরযয সযকষায জনয রভকীয কাযন পরত াপরয

পলাগগপরনয গগকউগযগট গক াঅনায পলাগগনগট ডমন গগকউয য় vulnerabilities data integrity এফাং reliability ডথপরক

াঅনায পলাগগনপরক গক গগকউগযগট ডদপরফন ওয়াডডপরে এনবায়যনপরভপরনট াঅনায পলাগগনপরক গগকউগযগট ডদয়া খফ কগঠন কাজ নয় এফাং খফ ভয় াপরকষ গফলয়ও নয় ওয়াডডপরেপরয গনজসব গকি পাাংন এপরকষপরতর াঅনাপরক খফাআ াাময কযপরফ

াআউজায াযগভন াঅভযা াপরনক পলাগগন াআনসটর কযায পরযাআ ডদপরখগি ডম মখনাআ এডগভন যাপরনর এ েপরফ কযপরত মাাআ তখন একগট এযয ডভপরজ াঅপর ডভপরজগট গনপরচয ভত-

ডরখা াঅপরি- You do not have sufficient permissionshellip এটা গনশচয়তা ডদয় ডম ডমপরকান এযাকন ীভাফি থাপরক গনগদডষট গকি যাাআট গদপরয় ওয়াডডপরেপরয একগট কভন পাাংন র current_user_can() একগট উদাযন ডদাআ-

38

ltphp

Capability

if ( current_user_can(install_plugins) )

wp_die( Insufficient permissions )

Role

if( current_user_can(editor) )

wp_die( You cannot edit this setting )

gt

খফ তাড়াতাগড় াঅগন এাআ current_user_can() পাাংন ডচক কযপরফন না কাযন এটা গনবডয কযপরফ get_currentuserinfo() এাআ পাাংপরনয উপরয াঅয এয ফযফাপরয ীভাফিতা াঅপরি এটা একগট পলাপরগফর পাাংন(pluggable function) াঅয এয ডরাপরকন পরচছ wp-

includespluggablephp মা পলাগগন এগকটব ফায য ডরাড য়

Nonces

ডকউ এগটপরক াঅফায Nonsense( গনপরফডাধ) বাফপরফন নাএগট ওয়াডডপরেপরয বালায় Nonces কগমপউটাপরযয বালায় nonce ফা cryptographic nonce পরচছ ldquonumber used once rdquo এটা ডিাট এফাং সপষট গকি য যানডভ গসটরাং ডমভন- াওয়াডড মা গকি গনপরদড কপরয Nonce গপরডন গপলড পভডপরক Retrieve ফা display কপরয-

একজন ওয়াডডপরে াআউজায ডমপরকান একগট এযাকন (delete update save and such) একগট াফপরজকট(একগট ডাসট পলাগগন ডগটাং াআতযাগদ) ২৪ ঘনটায একগট ভয় ডিভ

ডমভন ডাসট 50 গডগরট কযপরফন াঅনায ওয়াডডপরে বলগ ডথপরক তাপরর াঅনায গরঙকগট পরফ এযকভ- httpexamplecomwp-admin

postphppost=43ampaction=trashamp_wpnonce=83a08fcbc2

এখাপরন 83a08fcbc2 এগট র nonce মা ২৪ ঘনটা সথায়ী থাপরক রধভাতর এগট মগদ াঅনায িাযা ফযফরত য় এফাং গডগরট য় ডাসট 50 মখন াঅগন গরপরঙক গিক কপরযন ফপরচপরয় গযতবনড র ডম Nonce ডকান malicious াআউজায ফেপরত াপরযনা এফাং গঠক গরঙক িাড়া nonce এযয ডপরজ চপরর মায় ডমখাপরন াযগভন থাপরক না াঅপরযা গফসতাগযত ডদখন httpcodexwordpressorgWordPress_Nonces

39

Nonce URL ততগয এফায চরন াঅপরগয উদাযন ডথপরক Nonce URL ততগয কগয একগট ডাসট গডগরট কযায জনয wp_nonce_url() পাাংন ফযফায কযা য় ltphp

$url = wp_nonce_url( $url $action )

gt

েথভ যাযাগভটায $url পরচছ গসটরাং URL এপরডর এয মাপরক াঅগন কপরয়যী গসটরাং এয Nonce কযপরত চান াফযফহরত পলাগগপরনয গডগরট গরঙক এযকভ থাপরক- httpexamplecomwp-admineditphppage= liton

_utagsampliton_action=deleteampid=6

এখাপরন ডদখন যাযাগভটায liton_action এফাং এয টযাগ াঅাআগড গিতীয় যাযাগভটায পরচছ $action একগট গসটরাং মা াঅগন একগট াফপরজকট এয জনয একগট action ততগয কযপরফন উপরয ডদখরাভ delete এযাকন এয টযাগ াঅাআগড 6 সতযাাং $action যাযাগভটায পরত াপরয bdquoliton_utags-delete_tag6‟ গনপরচ ফাসতফ উদাযন ডদগখ- ltphp

$delete_url = add_query_arg(array( liton _action=gtdeleteid=gt$id) )

$nonced_url = wp_nonce_url( $delete_url bdquoliton _utags-delete_tag$id )

gt

lta href=ltphp echo $nonced_url gtgtdeleteltagt

এাআ টযাগগট পরফ গডগরট গরঙক এখাপরন add_query_arg() পাাংন ফযফায কযা পরয়পরি মা কাপরযনট URL ডক এযাপরয যাযাগভটায এয ভপরধয যাপরখ ানযবাপরফ ফরপরর এগট ডমাগ কপরয এযকভাঃ liton_action=deleteampid=6 amp liton_action=deleteampid=6

Nonce Form ততগয Nonce পভডপরকও ডোপরটকট কপরয wp_nonce_field() পাাংপরনয ভাধযপরভ ltphp

wp_nonce_field( $action $name $referer $echo ) gt

$action ( string) (optional) - action নাভ াআউগনক identifier optional

গকনত recommended $name (string) (optional) ndash গপরডন গপলড পভড ডবগযপরয়ফর নাভ $referer (boolean) (optional) ndash গডপলট গপরপরফ true থাপরক ডমখাপরন গপলড

ডবগরপরডন এয দযকায য়

40

$echo (boolean) (optional) - গডপলট গপরপরফ true থাপরক ডমখাপরন াঅউটট ডদখাপরনায ফা গপরডন পভড গপলড গযটানড কযায জনয দযকায য়

পপরভড াঅনায action এয নাভ গদন ltform method=postgt

lt-- some inputs here --gt

ltphp wp_nonce_field(name_of_my_actionname_of_nonce_field) gt

ltformgt

াঅভযা একগট পলাগগন ফানাপরফা ডমখাপরন াফযফরত টযাগগপররাপরক াঅভযা ভযানয়াগর গডগরট ফা গযপরনভ কযপরত াযফ এগট একট ফড় গকনত াপরনক গফলয়াআ াঅপরগাআ াঅপররাচনা কযা পরয়পরি ডদখপররাআ ফেপরত াযপরফন একগট ফাসতফধভডী উদাযন গনপরচ গদরাভ- ltphp

Plugin Name Liton Unused Tags

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add an entry for our option page to the Posts menu

add_action(admin_menu liton_utags_add_page)

function liton_utags_add_page()

add_posts_page( Unused Tags Unused Tagsmanage_optionsliton_utags

liton_utags_option_page )

Catch any liton_action parameter in query string

add_action( admin_init liton_utags_do_action )

Proceed to requested liton_action if applicable

function liton_utags_do_action()

if( isset( $_REQUEST[liton_action] ) )

return

if( current_user_can( manage_options ) )

wp_die( Insufficient privileges )

41

$id = $_REQUEST[id]

$action = $_REQUEST[liton_action]

if( $action == done )

add_action( admin_notices liton_utags_message )

return

check_admin_referer( liton_utags-$action_tag$id )

switch( $action )

case rename

$newtag = array( name =gt $_POST[name] slug =gt

$_POST[name] )

wp_update_term( $id post_tag $newtag )

break

case delete

wp_delete_term( $id post_tag )

break

wp_redirect( add_query_arg( array( liton_action =gt done )

) )

Admin notice

function liton_utags_message()

echo ltdiv class=updatedgtltpgtAction

completedltpgtltdivgt

Draw the tag management page

function liton_utags_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtUnused Tagslth2gt

ltphp

if( $tags = liton_utags_find_orphans() )

echo ltpgtYou currently have count( $tags ) unused

tagsltpgt

echo ltolgt

foreach( $tags as $tag )

42

$id = $tag-gtterm_id

$name = esc_attr( $tag-gtname )

$delete_url= add_query_arg(

array(liton_action=gtdeleteid=gt$id) )

$nonced_url= wp_nonce_url( $delete_url

liton_utags-delete_tag$id )

gt

ltligt

ltform action= method=postgt

ltphp wp_nonce_field( liton_utags-rename_tag$id )

gt

ltinput type=hidden name=liton_action

value=rename gt

ltinput type=hidden name=id value=ltphp echo

$id gt gt

ltinput type=text name=name value=ltphp echo

$name gt gt

ltinput type=submit value=Rename gt or

lta href=ltphp echo $nonced_url gtgtdeleteltagt

this tag

ltformgt

ltligt

ltphp

else gt

ltpgtYou have no unused tagsltpgt

ltphp endif gt

ltolgt

ltdivgt

ltphp

Find unused tags return them in an array

function liton_utags_find_orphans()

global $wpdb

$sql = SELECT termsterm_id termsname FROM

$wpdb-gtterms terms

INNER JOIN $wpdb-gtterm_taxonomy taxo

ON termsterm_id=taxoterm_id

WHERE taxotaxonomy = post_tag

43

AND taxocount=0

return $wpdb-gtget_results( $sql )

gt

ডযাপরফাপরডড এাআ পলাগগপরনয ডভন াওয়া মাপরফ ডাসট এয াফপরভন গপরপরফ গনপরচ ডদখন-

এফায পলাগগন ডভনপরত গিক কপরয ডদগখ পলাগগপরনয ডবতপরযয কাজ-

উপরয ডদখন াঅগভ একগট টযাগ ততগয কপরযগিরাভ l i নাপরভ এগট এখাপরন ডদখাপরচছ াঅগভ চাাআপরর এগট এগডট ফা গডগরট কযপরত াগয এফায গডগরট গরঙক এ ভাউপরয কাডয ডযপরখ গনপরচ গরঙক ডদখন ফা গডগরট করন একগট টযাগ াঅভায এখাপরন URL গট এযকভ httplocalhostdev-litonwp-

admineditphppage=liton_utagsampliton_action=doneampid=4amp_wpnonce=30a44b7

986

এখাপরন াঅগভ liton_action=done ফযফায কপরযগি Nonces এয পাাংনগপররায নাভ গনপরচ গদরাভ াঅনাযা ডদপরখ গনপরফন াআনটাযপরনট ডথপরক wp_nonce_field()

wp_nonce_url()

wp_verify_nonce()

wp_create_nonce()

44

check_admin_referer()

check_ajax_referer()

ডাটাপরফ াঅনাযা ডমপরত গএাআচগ গনপরয় কাজ কপরযন এগকউএর ডাটাপরফ এয াপরথ ফাাআ কভপরফী গযগচত এয গনটযাকস গপররা ডভাটাভগট ফায জানা একাআ বাপরফ াপরনপরকাআ ওয়াডডপরেপরও ডাটাপরফ ডকাড গরপরখন এটা ডকাগডাং এয জনয খাযা গদক াঅগভ নযভার গএাআচগ- এগকউএর ডকাড এয উদাযন গদগচছ- ltphp

$sql=rdquoINSERT INTO $wpdb-gtposts(post_title) VALUES(bdquo$title‟)rdquo

$wpdb-gtquery($sql) gt

এফায ওয়াডডপরেপরয সটযানডাডড ডকাগডাং গপরসটভ ডদখন- ltphp

$wpdb-gtinsert($wpdb-gtposts

array(bdquopost_title‟ =gt $title)

array(bdquos‟)

)

gt

ডাটাপরফ গগকউয কযায জনয াঅপরডট াাপরযন ডদখাফ- গনপরচয ডকাডগট খাযা েযাকগট ltphp

$wpdb-gtquery(ldquoUPDATE $wpdb-gtposts SET post_title=‟$newTitle‟ WHERE

ID=$my_idrdquo )

gt

উপরযয ভত কপরয না গরপরখ গনপরচয ভত কপরয গরখন- ltphp

$wpdb-gtupdate($wpdb-gtposts

Array(bdquopost_title‟ =gt‟$newTitle‟)

Array(bdquoID‟ =gt$my_id

)

gt

ানর বাপরফ ানযানয াাপরযন গপররা গরখপরফন

45

াধযায়- াঅটাঃ ডরাকারাাআপরজন এফাং Set t i ngs API

ডরাকারাাআপরজন ডরাকারাাআপরজন একগট গরতবনড গফলয় এয পাাংনগপররা র- load_theme_textdomain()

load_plugin_textdomain()

উদাযন- ltphp $var=__(bdquoHello‟‟domain‟) gt

ltphp _e(bdquoHello‟‟domain‟) gt

গফসতাগযত গনপরচয গরপরঙক ডদখন- httpcodexwordpressorgI18n_for_WordPress_Developers

ডগটাং API

ডগটাং API পরচছ াঅগন গকি ান ততগয কযপরফন মা াআনটাযনার বাপরফ াঅনায পলাগগপরন এপলাাআ পরফ মখন াঅগন াআউজায- গডপাাআন ান ততগয কযপরফন াঅনায পলাগগপরনয জনয তখন Settings

API ndashএ াঅনায ডকাড মতটা ারন জ করন Settings API াঅনায ডম কাজগপররা handle কপরয-

ওয়াডডপরেপরক জাগনপরয় ডদয় ডম াঅগন গনজসব ান ফযফায কযপরফন াঅনায াআনটপরক পাাংপরনয ভপরধয উপরেখ কযপরফ ডফগয বাগ ান ডজ গনপরজাআ ততগয কযপরফ $_POST ডাটা গপররাপরক ভগনটয কপরয ান ততগয এফাং াঅপরডট কপরয(মগদ েপরয়াজন য়)

Settings API পাাংন Settings API পাাংপরন গতনগট ডসট থাপরক- ১ েথপরভ ওয়াডডপরেপরক ফপরর ডম াঅগন নতন ডগটাং ফযফায কযপরফন াঅনায পলাগগপরনয জনয ২ এয পরয ডগটাং গডপাাআন করন (text areas input boxes and any

HTML form element) এফাং এপরদযপরক একাপরথ রে কপরয যাপরখ ৩ ওয়াডডপরেপরক াঅনায ডগটাং actual form এ ডদখাপরনায জনয ফপরর

46

এফায াঅভযা একগট পলাগগন ফানাপরফা Administration Page ndashএ ডযপাপরযনস গপরপরফ ডদখপরত াপরযন- httpcodexwordpressorgAdding_Administration_Menus

httpcodexwordpressorgFunction_Referenceadd_options_page

httpcodexwordpressorgAction_ReferenceActions_Run_During_an_Admin_P

age_Request

পলাগগপরনয এডগভন ডজ পরফ এযকভ- httpexamplecomwp-adminoptions-generalphppage=liton_myplugin

েথপরভ াঅভযা ডভন ততগয কযফ াঅপরগয ভত কপরয- Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

এফায ান ডজ এ পভড গনপরয় গকি ডগটাং ডদফ function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

উপরযয ডকাপরড াঅভযা একগট পপরভডয ভপরধয রধ াফগভট ফাটন এফাং My Plugin নাপরভ ডজ ততগয কপরযগি ডযাপরফাপরডড ডদখন-

47

ডগটাং এয াফ ডভন গপরপরফ My Plugin াঅপরি এফাং My Plugin ডত গিক কযপরর াঅভযা উপরযয ডজ ততগয কপরযগি ডমখাপরন াফগভট ফাটনগট ডদখাপরচছ এফায গতনগট যাযাগভটায ডযগজসটায কযফ- ltphp

register_setting( liton _myplugin_options liton _myplugin_options liton

_myplugin_validate_options)

gt

েথভগট ডগটাং রেপরয নাভ গিতীয়গট ান নাভ মা াঅভযা get_option() পাাংন গদপরয়ও ডপরত াগয ততীয়গট করফযাক পাাংন এগট একগট গসটরাং ডযপাপরযনস পাাংন এখাপরন াঅভযা নাভ

48

গদপরয়গি liton _myplugin_validate_options মা া কযপরফ পপরভডয কর ডব ডগটাং াঅভযা এটা পরয গডপাাআন কযফ

ডগটাং গডপাাআন ডকন add_settings_field() এফাং add_settings_section() পাাংন গদপরয় াঅভযা াঅভাপরদয কর ডগটাং গডপাাআন কযফ ltphp

add_settings_section( liton_myplugin_main My Plugin Settings

liton_myplugin_section_text liton _myplugin)

add_settings_field( liton _myplugin_text_string Enter text here

liton _myplugin_setting_input liton _myplugin liton _myplugin_main)

gt

add_settings_section() পাাংন গদপরয় াঅভযা ডদখাফ াঅপরর ডজ এ ডকন ডকভন ডদখাপরফ এয চাযগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ ডকন টাাআপরটর ltH3gt টযাপরগয ভপরধয করফযাক পাাংন এয নাভ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ (page= liton _myplugin এগট

URL এয াাং গপরপরফ থাকপরফ) গিতীয় যাযাগভটায add_settings_field() পপরভডয াআনট গপরপরফ ডদখাপরনা পরয়পরি এখাপরন াাচগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ পরযয গপপরলড গক গেনট কযা পরফ তা ডটকসট গপরপরফ ডদখাপরনা পরয়পরি(Enter text

here)

করফযাক পাাংন পপরভড গেনট কযপরফ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ ডগটাং ডপরজয ডকন গপলড মা add_settings_section() পাাংপরন গডপাাআন

কযা পরয়পরি ltphp

Explanations about this section

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

49

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton _myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name= liton _myplugin_options[text_string]

type=text value=$options[text_string] gt

gt

গিতীয় পাাংন ান বযার text_string ডক এযাপরযপরত ডসটায কপরয ডযপরখপরি এফায াআউজায াআনট বযাগরপরডট কযফ- ltphp

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace([^a-zA-Z]$input[text_string] )

return $valid

gt

পভডপরক ডযনডায কযফ- ltphp

Draw the options page

function liton_myplugin_options_page()

gt

ltdiv class=wrapgt

ltphp

screen_icon()

gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp

settings_fields( liton_myplugin_options)

do_settings_sections(liton_myplugin)

50

gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

settings_fields() পাাংনগট ডযপাপরযনস গপরপরফ ফযফায কযা পরয়পরি মা াঅভযা register_setting() পাাংপরন গডপরিয়ায কপরযগি do_settings_sections() পাাংনগট কর কযপরফ কর াঅউটট ডকন এফাং পভড গপলডপরক মা াঅভযা পরফড গডপাাআন কপরযগি াঅভাপরদয কাজ ডল এফায পরযা পলাগগনগট ডদখফ- ltphp

Plugin Name Settings API example

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

Draw the option page

function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save

Changes gt

ltformgtltdivgt

ltphp

51

Register and define the settings

add_action(admin_init liton_myplugin_admin_init)

function liton_myplugin_admin_init()

register_setting( liton_myplugin_options

liton_myplugin_options

liton_myplugin_validate_options )

add_settings_section( liton_myplugin_main My Plugin

Settings

liton_myplugin_section_text liton_myplugin )

add_settings_field( liton_myplugin_text_string Enter text

here

liton_myplugin_setting_input liton_myplugin

liton_myplugin_main )

Draw the section header

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton_myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name=liton_myplugin_options[text_string]

type=text value=$text_string gt

Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

return $valid

gt

52

ডদখন ডযাপরফাপরডড ডকভন ডদখায়-

পরয় ডগর াঅভাপরদয েথভ নডাাংগ পলাগগন ান ডজ াঅপরযকগট গজগন ডমটায জনয এতগকি পলাগগন URL এপরডর- httplocalhostdev-litonwp-adminoptions-

generalphppage=liton_mypluginampsettings-updated=true

াঅভায এখাপরন এযকভ ডদখাপরচছ ডটকসট ফপরকস ডকান গকি গরপরখ ডব কযায য এফাপরয াঅপরযকগট গজগন ডদখফ াঅভযা াপরনক ভয়াআ াপরনক পলাগগপরনয াআনট গপপরলড বর ডাটা াআনট কযপরর এযয ডভপরজ ডদখায় এাআ কাজগট কযফ এফায াঅভযা এখাপরন esc_attr() ফা esc_html() ফযফায কগযগন সতযাাং াঅভাপরদয গরগভপরটন থাকপরি ডবগরপরডট পাাংনগট একট এগডট কগয গনপরচয ভত কপরয Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

if( $valid[text_string] = $input[text_string] )

add_settings_error(liton_myplugin_text_stringliton_myplugin_texterror

53

Incorrect value enterederror)

return $valid

উপরয ডদখন add_settings_error() পাাংন ফযফায কপরযগি মা এযয ডচক কযপরফ পপরভডয াঅগভ একগট বর ডাটা(পরসপার কযাপরযকটায) াআনট কপরয ডদখরাভ এযয ডদখাপরচছ-

তায ভাপরন াঅভযা পর পরয়গি াঅনায পলাগগনগট এগডট কপরয ডনপরফন ডকায ডকন এফাং গপপরলডয গরসট গদরাভ াঅনাপরদয সগফধায জনয

54

CSSJS পাাআর মি কযা

াঅনায পলাগগপরন গএএ ফা জাবাগিে ডমাগ কযপরত পরত াপরয াঅগন চাাআপরর ফাগপরযয ডকান ফা াঅনায ততগয ডকান গএএ ফা জাবাগিে পাাআর ডমাগ কযপরত াপরযন তপরফ এপরকষপরতর াঅভযা ডমবাপরফ HTML এ পাাআর ডমাগ কগয ডযকভ না function liton_scripts()

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtojqueryjsrdquogtltscriptgt‟

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtoscriptjsrdquogtltscriptgt‟

add_action(bdquowp_head‟‟liton_scripts‟)

এগট মপনডরপর বর িগত গনপরচ ডদখন ওয়াডডপরেপর গকবাপরফ পাাআর মি কযপরত য়- function liton_scripts()

wp_enqueue_script(bdquojquery‟)

wp_enqueue_script(bdquotheme-scripts‟‟pathtoscriptsjs‟)

add_action(bdquowp_enqueue_script‟‟liton_scripts‟)

ানর বাপরফ াঅগন সটাাআরীট ডমাগ কযপরত াপরযন- function liton_styles()

wp_enqueue_ style (bdquocss‟)

wp_enqueue_ style (bdquotheme- styles‟pathto stylescss‟)

ডযপাপরযনস ডদখন- httpcodexwordpressorgFunction_Referencewp_enqueue_script

httpcodexwordpressorgFunction_Referencewp_enqueue_style

টডপরকাড টডপরকাড পরচছ ওয়াডডপরেপরয ডসপগগপক ডসপার টযাগ মা াঅগন ডাসট ফা ডপরজয ভপরধয াআনাটড কপরয ানয ডকান কনপরটনটপরক ওপরয়ফাাআপরটয ভপরধয গযপরপল কযপরত াযপরফন মগদ াঅগন গযারাগয টাাআপরয ডকান পলাগগন ফযফায কপরয থাপরকন তাপরর াঅনায ধাযনা থাকায কথা মাাআ ডাক াঅগভ কপরয়কগট উদাযি ডদখাফ

55

েথপরভ একগট পলাগগন ততগয কযফ ডমখাপরন add_shortcode() নাপরভয একগট পাাংন থাকপরফ এগট রগট যাযাগভটায েন কপরয েথভগট টডপরকাপরডয নাভ গিতীয়গট ডম পাাংনপরক কর কযপরফন ডগট াঅভযা একগট উদাযন ডদগখ- ltphp

Plugin Name Liton Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(litonhi)

function hi()

echo Hello World

gt

উপরয ডদখন খফ ডিাট গকনত াঅগন চাাআপরর এয ফযফায াপরনক গফসতত কযপরত াপরযন এখাপরন টডপরকাড নাভ পরচছ liton াঅয এগটপরক ডরখা য় এবাপরফ [liton] াঅভযা ডাপরসটয ভপরধয াআনাটড কপরয ডদগখ াঅউটট ডকভন ডদখায়-

এফায াঅউটট ডদগখ-

56

াঅভাপরদয ততগয কযা টডপরকাড পরবাপরফাআ কাজ কযপরি াঅপরযকগট উদাযন ডদখফ াঅনাযা াপরনপরকাআ গগর এডপরনস গনপরয় কাজ কপরযন াঅনাযা াপরনপরকাআ এডপরনস এয জনয পলাগগন ফযফায কপরযন গকনত চাাআপররাআ এাআ কাজগট াঅনাযা গনপরজয ভত কপরয াগজপরয় গনপরত াপরযন গগপররয কাপরি ফ ডাসট বযার ায়না াঅনাযা মাযা একসাটড াঅপরিন তাযা এটা বার কপরয জাপরনন তাাআ াপরনপরকাআ গগপররয ডকাড ফ ডপরজ ডদখাপরত চান না এজনয পলাগগন ফযফায কপরয রাব য়না কাযন পলাগগপরন জায়গা গপকসড থাপরক এপরত কপরয াঅগনডাং ও কভ য় াঅনাযা টডপরকাড ফযফায কপরয ডমপরকান জায়গায় এড ডদখাপরত াপরযন গনপরচ াঅগভ রগট টডপরকাড ততগয কপরযগি র‟ধযপরনয এড ডদখাপরনায জনয ltphp

Plugin Name Liton Adsense Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(adsense_468adsense_468_60)

add_shortcode(adsense_250adsense_250_250)

function adsense_468_60($atts)

return ltscript type=textjavascriptgtlt--

57

google_ad_client = ca-pub-0956247412222369

468x60 created 101510

google_ad_slot = 4372705450

google_ad_width = 468

google_ad_height = 60

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

function adsense_250_250($atts)

return ltscript type=textjavascriptgtlt--

google_ad_client = ca-pub-0956247412222369

250x250 created 81809

google_ad_slot = 9368091893

google_ad_width = 250

google_ad_height = 250

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

gt

একগট টডপরকাড ফযানায টাাআপরয জনয এফাং াঅপরযকগট ২৫০২৫০ াাআপরজয এফায ডাপরসট ডমপরকান একগট টডপরকাড াআনাটড করন ডমখাপরন াঅনায ডদখাপরনায েপরয়াজন ভপরন কপরযন াঅগভ রগট ডকাড ডটসট কপরয ডদখরাভ-

58

এফায াাআপরটয াঅউটট ডদগখ-

রগট এডাআ ডদখাপরচছ াঅপরযা াপরনক কাপরজ াঅগন টডপরকাড ফযফায কযপরত াপরযন ডযপাপরযনসাঃ httpcodexwordpressorgShortcode_API

59

াধযায়- নয়াঃ পলাগগন উদাযন

ওয়াডডপরেপরয ডডটটাাআভকপরভনট নামবায ফাাংরা কযায পলাগগন াঅভাপরক কপরয়কজন ফপররগিপররন ওয়াডডপরেপরয গডপলট ডডটটাাআভকপরভনট নামবায ফাাংরা য়না রযাাংগপরয়জ ফাাংরা কযায যও ডডটটাাআভকপরভনট নামবায গপররা াআাংপরযগজ ডথপরক মায় গনপরচয পলাগগনগট ফযফায কপরয ডদখপরত াপরযন- ltphp

Plugin Name Liton Bangla datetimecomment number

Plugin URI httpliton-onlinecomplugins

Description Bangla datetimecomment number

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

This function converts all english numbers to bangla number

function make_bangla_number($str)

$engNumber = array(1234567890)

$bangNumber = array( ১ ২ ৩ ৪ ৫ ৬ ৭ ৮ ৯ ০ ) $converted = str_replace($engNumber $bangNumber $str)

return $converted

add_filter( get_the_time make_bangla_number )

add_filter( the_date make_bangla_number )

add_filter( get_the_date make_bangla_number )

add_filter( comments_number make_bangla_number )

add_filter( get_comment_date make_bangla_number )

add_filter( get_comment_time make_bangla_number )

gt

60

সলাাআডায পলাগগন াঅভযা এাআ ফাআপরয়য কর গটউপরটাগযয়াপরর মা মা গখরাভ তা এফায একগট নডাাংগ পলাগগপরনয এপলাাআ কযফ সলাাআডায পলাগগন মপপরকড াঅভযা ফাাআ জাগন একগট ওপরয়ফাাআপরটয ডচাযা ারপরট ডদয় একগট সলাাআডায াপরনক ডাাআনাগভক ভপরন য় ডদখপরতও াপরনক বার রাপরগ এাআ পলাগগপরন াঅভযা এডগভন যাপরনর ডথপরক াআপরভজ ডমাগ কযফ এফাং তা াঅভাপরদয াাআপরট ডদখাফ চরন কাজ রর কগয- েথপরভ গনপরবা সলাাআডায এয ওপরয়ফাাআপরট মান এফাং jQuery Plugin ডাউনপররাড করন

ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom Version 10

gt

াঅভযা পলাগগপরনয ডডায ততগয কযরাভ

পলাগগন গরপরসট ডদখাপরচছ bdquoLitons Nivo Plugin‟ াঅভাপরদয েথভ কাজ পরচছ custom post

type ওয়াডডপরে পাাংনাগরগট একগট নতন কাসটভ ডজ ততগয কযপরত custom post type

ফযফহরত পরফ ডমখাপরন একগট াআপরভজ থাকপরফ াঅভযা রধ টাাআপরটর ডনভ এফাং াআপরভজ াঅপররাডায গপরপরফ গপচায াআপরভজ পাাংনাগরগট ফযফায কযফ function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_function 600 280 true)

61

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

add_action(init np_init)

উপরযয ডকাপরড np_init() পাাংনগট রক কপরযগি মা ডডায যান কযায াঅপরগ যান পরফ াঅয এজনয register_post_type() পাাংনপরক এয যাযাগভটায গদপরয় np_init() পাাংপরনয ডবতপরয মি কপরযগি এটা মগদ না কযতাভ তাপরর ldquoHeaders already sentrdquo ডভপরজ ডদখাত এাআ ডভপরজগটয াপরথ াপরনপরকাআ গযগচত াঅা কগয register_post_type() পাাংন গদপরয় াঅভযা াআপরভজ মি এফাং ভযাপরনজ কযফ ভরত াঅভযা একগট নতন custom post type ডমাগ কপরযগি np_images নাভ গদপরয় নতন custom post type ডক ডগটাং বযার গপরপরফ াঅযগপরভনট া কপরযগি $args ডবগযপরয়ফরগট ট ডরপরবর ডভন ততগয কপরয াঅপরগাআ ডদপরখগি পলাগগনগট এগকটপরবট কযপরর াঅভযা গনপরচয ভত ডদখপরত াফ-

এফায গিে এফাং সটাাআরীট ডক মি কযফ- add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

এফায রক কযা পাাংনগপররা গডপরিয়ায কগয- function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__) array( jquery ))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

62

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

উপরযয ডকাডগপররা নতন কপরয ফিডনা কযায গকি ডনাআ াঅপরগাআ wp_enqueue_style() এফাং wp_enqueue_script() মপপরকড ফরা পরয়পরি নতন াঅপরযকগট পাাআর ততগয করন একাআ গডপরযকটগযপরত scriptjs এফাং গনপরচয ডকাডটক গদন- jQuery(document)ready(function($)

$(slider)nivoSlider()

)

াআপরভজপরক গযাাআজ করন- add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

াঅভযা এাআ পলাগগনগটপরক উাআপরজট গপরপরফও ফযফায কযফ ডগট পরয ডদখফ াঅপরযকগট গজগন মগদ গথপরভ না ডদয়া থাপরক ডজনয থামবপরনাআর াপরাটড গদপরয় গদন- add_theme_support( post-thumbnails )

এফায ওয়াডডপরেপরয কাপরযনট ডাসট কপরয়যী কযায ডকাড াঅয $result ডবগযপরয়ফপরর ডমফ ltdivgt টযাগ ফযফায কযা পরয়পরি তা jQuery Plugin গট একসিাকট কপরয indexhtml ডজগটয ডভাআন সলাাআডায ডকাডগট ডদখন একাআ াঅপরি রধ ডখানকায ltdivgt টযাগ গপররাপরক কগ কপরয এাআ পলাগগপরন ফযফায কযা পরয়পরি এফায টডপরকাড গদন- add_shortcode(np-shortcode np_function)

এাআ টডপরকাড গএাআচগ পাাংনপরক রক কযপরফ এফাং এয ভধয ডথপরক সলাাআডপরায কনপরটনট ডক গযটানড কযপরফ াঅভাপরদয টডপরকাড পরচছ [np-shortcode] াঅভযা পলাগগপরন মাাআ এফাং একগট িগফ মি কগয গপচাযড াআপরভজ গপরপরফ গনপরচ ডদখন-

63

াঅগভ াঅপরযকগট ডজ ততগয কপরযগি ডমখাপরন টডপরকাড গদপরয়গি

াঅউটট ডজ ডদগখ এফায-

64

পরয় ডগর াঅভাপরদয সলাাআডায পলাগগন পরযা ডকাডগট গনপরচ গদরাভ- ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

65

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

66

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

এফায াঅগন মগদ উাআপরজট গপরপরফ ফযফায কযপরত চান তাপরর গনপরচয ডকাডটক গদন- class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

67

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

echo $after_widget

াঅপরযা রগট কাজ কযপরত পরফ াঅনাপরক এক াআপরভজ াাআজ উাআপরজট এয জনয গঠক কপরয গদপরত পরফ- add_image_size(np_widget 180 100 true)

াঅপরযকগট র উাআপরজট এযাকন রক ডমাগ কযা add_action(widgets_init np_widgets_init)

উাআপরজট পরযা ডকাড াঅফায গদরাভ- ltphp

Plugin Name Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Ciprian Turcu

Version 10

68

class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

69

echo $after_widget

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

70

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(widgets_init np_widgets_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

71

পলাগগন গনপরয় এত ডিাট গযপরয ডরখা মভফ নয় এজনযাআ ভপরন য় পলাগগন গনপরয় ডকউ ডরপরখন না কাযন এখাপরন এত গফলয় াঅপরি মা াঅপররাচনা কযপরত ডগপরর ৫০০ ডজ ায পরয় মাপরফ ডফাোয সগফধাপরথড াঅগভ মথামভফ উদাযন গদপরয় ডফাোপরনায ডচষটা কপরযগি াঅগভ এখাপরন টাপরগডট কপরযগি মাযা টকটাক জাপরন পলাগগন মপপরকড এডবানস ডরপরবপররয নয় কাযন তাযা জাপরনন াঅভায উপরেশয গির মাযা জানপরত চায় তাপরদযপরক জানাপরনা এখাপরন ডমফ গফলয় াঅপররাচনা কযা পরয়পরি তা ডভাটাভগট ভাপরনয একগট পলাগগন ফানাপরনায জনয মপরথষট তপরফ ভাপরনাননয়পরনয জনয াঅনাপরক গনপরজাআ খাপরজ গনপরত পরফ াঅনায জনয ডকানটা বার পরফ াঅগভ রধ গদক গনপরদডনা গদরাভ ভাতর এাআ ফাআগট রধভাতর ওয়াডডপরে রেপরয জনয ডরখা াপরনক বর ভরাগনত থাকপরত াপরয াঅনাযা কষভাসনদয দগষটপরত ডদখপরফন াঅগভ ডচষটা কপরযগি মতটা জ কপরয ডরখা মায় াপরনক ভয় ডদখা মায় ডম খফ ডিাট খাপরটা গফলয় গনপরয় াপরনপরকাআ নক কপরযন এটা গতয রাঃখজনক াঅনাযা গগপরর একট খাজপররাআ ভাধান াপরফন াঅপরগ গনপরজ ডচষটা করন তায পরয ানযপরক ভাধাপরনয জনয গজজঞাা করন াঅভায জনয ডদায়া কযপরফন বাপররা রাগপরর জানাপরফন খাযা রাগপররও জানাপরফন তাপররাআ াঅভায গযশরভ সবাথডক পরফ ভতাভত জাগনপরয় াঅভাপরক ডভাআর কযপরত াপরযন litonice09gmailcom |

72

Page 8: Wordpress Plugin Development

9

Transients গকি াসথায়ী ান (cached data) ততগয কপরয াঅনায পলাগগপরনয জনয এাআ API গট Options API এয ানর

Database ওয়াডডপরেপরয ডাটাপরফপর েপরফ কপরয এগট াঅনায পলাগগপরনয ডাটাপরফপরজ গনপরচয কাজগপররা মপাদন কপরয- creatingupdatingdeleting and retrieving

কখন াঅনায পলাগগন ডরাড য় পলাগগন ততগয কযপরত ডগপরর এাআ ডফগক কাজগপররা াঅভাপরদয াফশযাআ জানপরত পরফ াঅভযা ডতা পলাগগন াআনসটর গদপরয়াআ খারা একফায ডবপরফও ডদগখনা এগট াঅপরর গকবাপরফ কখন ডরাড পরফ াাআপরটয উয কতটা াআপরপকট ডপরপরফ াঅগভ গনপরচ একগট ডায়াোভ গদরাভ াঅা কগয াঅয গকি ফরপরত পরফনা াঅভাপরক

Wordpress URL Called

wp-config Loaded

Functions Loaded

Plugins Loaded

Pluggables Loaded

Translations Loaded

Theme Loaded

Page Content

10

ওয়াডডপরে পলাগগন ডডপরবর কযায ৭গট কাযন

াঅগভ াআনটাযপরনট এ ldquoHow to Write a Plugin (httpgooglrCUY) rdquo গদপরয় াপরনক াচড কপরযগি াপরনক াঅগটডপরকর াঅপরি গকনত ভন ভত কপরয়কগট িাড়া ফরায ভত াাআগন ওয়াডডপরেপরয ldquoডকাপরডকসrdquo াঅপররাআ ওয়াডডপরে মপপরকড জানায জনয মপরথষট এটা পরয ফপরেগি ৭ গট কাযন ডকন াঅগন ওয়াডডপরে পলাগগন ফানাপরফনাঃ ১) াঅগন একগট পলাগগন মপপরকড জাপরনন গকনত এয ফাসতফায়ন িনদ কযপরিন না াঅভযা ডফগয বাগ ভয়াআ এাআ ভোয় গড় ২- ৩ গদন ধপরয একটা পলাগগন ডখাাজায জনয ফযয় কগয গকনত ভন ভত পলাগগন খাপরজ াাআ না গকনত এাআ ভয় এ একটা পলাগগন গরখা পরয় ডমত ২) াঅগন াঅপরগয ডকান পলাগগন ভগডপাাআ কযপরফন াপরনক ভয়াআ াঅনায িনদ ভত পলাগগন ডপররন গকনত াভানয গকি ডচি কযপররাআ াঅনায কাপরজ রাগপরফ এপরকষপরতর াঅনাপরক ডাআ পলাগগনগট ভগডপাাআ কযপরত জানপরত পরফ াপরনক ভয় পলাগগপরনয ডরখক ফযসত থাকপরত াপরযন এফাং াঅপরডট কযপরত াপরযন না এপরকষপরতর াঅগন ডাআ পলাগগনগট Aut hor Name ডচি কপরয গনপরত াপরযন তপরফ GPL Compatible license (httpgooglBOzm ) গঠক ডযপরখ াঅগন নযায় াগযগজনার পলাগগপরনয নতন বাডন ডফয কযপরত াপরযন ৩) ডকান পলাগগনপরক একসপরটনড কযপরত চান াপরনক ভয় একগট পলাগগন বার কাজ কপরয াাআপরটয জনয গকনত াঅগন াঅপরযা গকি গপচায ডমাগ কযপরত াপরযন ডমভন AJAX JQuery Effects াথফা াঅপরযা গকি রক রাগাপরত চান ডমন এগট ানয পলাগগপরনয াপরথ াভিে থাপরক তপরফ াফশযাআ GPL Compatible (httpgooglBOzm ) এয াপরথ াভিে পরত পরফ ৪) াঅগন মগদ াঅনায গথপরভয ফনপরমাগয ডকাড কযপরত চান এগট ভরত কাসটভ গথভ ডকাপরডয কথা ফরা পরয়পরি ডকান এগকসগসটাং গথপরভয ৫) াঅগন মগদ গথভ গডজাাআনায ন ৬) াঅগন মগদ টাকা উাজডন কযপরত চান পলাগগন ততযী কপরয ৭) াঅগন মগদ াঅনায াাআপরটয াআনকাগভাং গরঙক গফলড কযপরত চান

পলাগগপরনয ডপালডায সটরাকচায ডকভন পরফ কর ওয়াডডপরে পলাগগন wp-contentplugins গডপরযকটগযপরত াআনসটর য় গকি পলাগগপরন রধ একগট PHP পাাআর থাপরক গকনত াঅগভ ফ ভয় একগট ডপালডায কপরয পলাগগন ততগয কযায যাভড ডদফ পলাগগপরনয সটরাকচায পরত পরফ এযকভাঃ

11

Plugin Folder Name( াঅনায পলাগগন ডপালডায নাভ ডকান ডসপ ফা ডসপার কযাপরযকটায থাকা চরপরফ না) Main php file

js ডপালডায( জাবাগিে ফা Jquery file এয জনয) css ডপালডায( সটাাআরগট পাাআপররয জনয) phpinclude ডপালডায ( ানয php পাাআর)

একগট উদাযন ডদাআ পাাআপররয সটরাকচায ডকভন পরফ- litons-first-plugin

indexphp

js

css

includes

images

uninstallphp

পলাগগন ডডায

পলাগগপরনয ডডায িাড়া ডাআ পাাআর ডপালডাযগটপরক ওয়াডডপরে গচনপরত াযপরফ না পলাগগন ডডাযাআ পরচছ একভাতর েপরয়াজনীয় পাাংন মা ওয়াডডপরে দাফী কপরয ভাপরন াঅনাপরক পলাগগন ডরখায ররপরত PHP comment বলপরকয ভপরধয গকি াআনপযপরভন গদপরত পরফ মা এপরকফাপরয পাাআপররয েথপরভ াফসথান কপরয এখাপরন গকি কথা ফপরর যাগখ াঅগন মগদ াাআপরটয এাআও টাপরগডট কপরয পলাগগন ফানান তাপরর ডকান িপরভাআ াঅনায নাভ গদপরয় পলাগগন ফানাপরফন না ডমভনাঃ Litons Plugin এপরত এাআও ডত খাযা েবাফ পরড় গনপরচ উদাযন ডদয়া রাঃ ltphp

Plugin Name Litons Plugin পলাগগপরনয নাভ

Plugin URI httpliton-onlinecomplugin পলাগগপরনয URI Description This is a demo description পলাগগপরনয গফফযন Version 10 পলাগগপরনয বাডন Author Md Liton Arefin পলাগগন ডরখক

Author URI httpliton-onlinecom ডরখপরকয URI

gt

12

উপরযয িগফপরত ডদখন ওয়াডডপরেপরয ডযাপরফাপরডড াঅগভ পলাগগন ডডাপরয মা মা তথয গদপরয়গিরাভ তাাআ ডদখাপরচছ এটাাআ াঅনায োথগভক কাজ াঅগন রাাআপরনসও ডমাগ কযপরত াপরযন এবাপরফ- lt php

Copyright YEAR PLUGIN_AUTHOR_NAME (email PLUGIN AUTHOR

EMAIL)

This program is free software you can redistribute it andor modify

it under the terms of the GNU General Public License as published by

the Free Software Foundation either version 2 of the License or

(at your option) any later version

This program is distributed in the hope that it will be useful

but WITHOUT ANY WARRANTY without even the implied warranty of

MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE See the

GNU General Public License for more details

You should have received a copy of the GNU General Public License

along with this program if not write to the Free Software

Foundation Inc 51 Franklin St Fifth Floor Boston MA 02110-1301 USA

gt

পলাগগন াথ

একগট কভন কাজ র াঅনায পলাগগপরনয পাাআর এফাং ডপালডাযগপররাপরক ওয়াডডপরে াআনসটপররন গডপরযকটগযপরত ডযপায কযা াঅগন এাআ কাজগট রাআ বাপরফ কযপরত াপরযন- ডরাকার াবডায াথ াথফা সটানডাডড URL

13

ডরাকার াবডায াথাঃ ডরাকার াবডায াথ াঅনায কগমপউটাপরযয গডপরযকটগযয ভতাআ ডরাকার াবডায াথ াধাযনত ফযফায কযা য় মখন াঅনাপরক গনপরজয ডরাকার াবডাপরযয গকি পাাআর i ncl ude কযপরত য় একগট কভন েশন র- পলাগগন পাাআপররয াথ ডদখাপরনায গঠক িগত ডকানগট াঅনায পলাগগপরনয ডরাকার াথ ডদখাপরনায জনয াঅনাপরক plugin_dir_path() পাাংন ফযফায কযপরত পরফ plugin_dir_path() পাাংন পলাগগন গডপরযকটগযয গপগজকযার াথ একসিযাকট কপরয পাাআপররয নাভ ডথপরক ltphp plugin_dir_path($file) gt

Parameters

$file-(string)(required)- পলাগগন পাাআপররয নাভ এখন ডদগখ গকবাপরফ পলাগগন ডপালডাপরযয নাভ ডফয কযপরত য়-

ltphp

echo plugin_dir_path(__FILE__)

gt

এখাপরন গএাআচগ কনসটযানট __FILE__ ডক plugin_dir_path পাাংপরনয ভধয গদপরয় া কযারাভ এাআ পাাংন াবডায াথ ডদখাপরফ পলাগগন গডপরযকটগযয public_htmlwp-contentpluginsliton-plugin

একাআবাপরফ াঅগন মগদ plugin_dir_path() এাআ পাাংনপরক মগদ ডকান াফ- গডপরযকটগযয পাাআরপরক ডযপায কগয তাপরর গনপরচয ভত কপরয ডযপায কযপরত পরফ ltphp

echo plugin_dir_path(__FILE__)jsscriptsjs

gt

এাআ ডকাডগট গনপরচয ভত াথ ডদখাপরফ- public_htmlwp-contentpluginsliton-pluginjsscriptsjs

URL াথাঃ াঅপরযা গকি পাাংন াঅপরি ডমগপররা গদপরয় ওয়াডডপরেপরয URL ডদখাপরনা মায়

plugins_url() - পলাগগন গডপরযকটগযয পরযা URL ( ডমভনাঃ httpliton-onlinecomwp-contentplugins)

includes_url() - পরযা গডপরযকটগযয URL include কপরয ( ডমভন httpliton-onlinecomwp-includes)

14

content_url() - পরযা কপরনটনট গডপরযকটগয URL ( ডমভনাঃ httpliton-onlinecomwp-content )

admin_url() - পরযা এডগভন URL

( ডমভনাঃ httpliton-onlinecomwp-admin ) site_url() - কাপরযনট াাআট এয পরযা URL

( ডমভনাঃ httpliton-onlinecom ) home_url() - কাপরযনট াাআট এয পরযা ডাভ URL

( ডমভনাঃ httpliton-onlinecom )

াথ গনপরয় াঅপরযা গফসতাগযত ডদখপরত াপরযনাঃ httpcodexwordpressorgDetermining_Plugin_and_Content_Directories

httpcodexwordpressorgFunction_Referenceplugins_url

httpcodexwordpressorgFunction_Referenceplugin_dir_url

httpcodexwordpressorgFunction_Referenceplugin_dir_path

plugins_url() পাাংন াঅনায উততভ ফনধ পরত াপরয মখন াঅগন পলাগগন ডডপরবর কযপরফন

ltphp

plugins_url($path $plugin)

gt

Parameters

$path-(string)(optional)- গযপররগটব াথ URL $plugin- (string)(optional)- পলাগগন পাাআর মা াঅগন (__FILE__) এয ভাধযপরভ া কযপরত চান ডমভনাঃ ltphp

echo ltimg src=rdquoplugins_url(imagesiconpng__FILE)rdquogt

gt

এয পরযা URL পরফ ltimg src=rdquohttpliton-onlinecomwp-contentpluginsliton-pluginimagesiconpngrdquo gt

15

াধযায়- গতনাঃ রক

ওয়াডডপরে রক( Hook) গক ওয়াডডপরেপর রক ফরপরত াধাযনত add_action() াথফা add_filter() পাাংন ডক ডফাোয় এাআ রগট পাাংনপরক remove_action() াথফা remove_filter() গদপরয় ভপরি ডপরা মায় মগদও াপরনপরকয কাপরি রপরনগি ডম এাআ রগট পাাংপরনয ভপরধয ডকান াথডকয ডনাআ গকনত াঅপরর তা নয় গফযাট াথডকয াঅপরি এ রগট পাাংপরনয ভপরধয াঅগভ ভরত এাআ রগট পাাংন গদপরয়াআ গকি পলাগগন ফাগনপরয় ডদখাফ কাযন খফাআ গরতবিড এাআ রগট পাাংন মপপরকড বাপররাবাপরফ জানা

গপলটায রক (Filter Hooks)

গপলটায রক পাাংপরনয কাজ পরচছ কনপরটনটপরক ভগডপাাআ কযা গপলটায রক গদপরয় টাাআপরটর কনপরটনট াআতযাগদ ভগডপাাআ কযা মায় ডমভন টাাআপরটর এ ডকান টযাগ না থাকা গবগজটয কপরভপরনট ltgt t ag span t ag াআতযাগদ গদপরয় াাআপরটয ডরাঅউপরটয গযফতডন কপরয গদপরত াপরয ভাপরন ডকান কপরভপরনট মগদ এযকভ ht ml ডকাড াড কযা থাপরক তাপরর ডদখপরত খাযা রাগপরফ এগপররা াফশয এখন ওয়াডডপরে াপরটাপরভগটকযাগর কপরয গকনত এাআ কাজগপররা ভরত গপলটায রক গদপরয় কযা পরয় থাপরক গপলটায রক রাআ ধযপরনয add_filter() এফাং remove_filter() পাাংন খফ গরতবনড একগট কথা গপলটায রকপরক গযটানড কযপরত য় ltphp

add_filter($tag $function $priority $accepted_args)

gt

$tag- ডম রকপরক াঅগন ডযগজসটায কযপরত চান $function- ডম পাাংনপরক াঅগন াঅউটপরট গপলটায কপরয ডদখাপরত চান $priority- একগট াআগনটজায াংখযা মা াঅনায গপলটাযপরক িভানাপরয াজাপরফ মগদ ডকান

াংখযা না ডদয়া থাপরক তাপরর এগট ১০ গডপলট গপরপরফ থাপরক $ accepted_args- ডম াংখযক যাযাগভটায একগট পাাংন েি কযপরত াপরয গডপলট গপরপরফ

১ থাপরক াঅনায পাাংপরন ানততাঃ একগট যাযাগভটায থাকপরত পরফ মা গযটানড কযপরফ apply_filter($tag$value)

$tag- গপলটায রপরকয নাভ $value- রপরকয ভধয গদপরয় ডম যাযাগভটায া কযাপরফন

াঅভযা এখন একগট উদাযি ডদখফ ডমখাপরন টাাআপরটর এয েগতটা ওয়াডডপরক ফড় াপরতয াকষপরয রানতয কযফ গনপরচ একগট পলাগগন ডদখন- ltphp

Plugin Name Liton filter

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10

16

Author Md Liton Arefin

Author URI httpliton-onlinecom

add_filter(the_titleliton_modify_title)

function liton_modify_title($content)

return ucwords($content)

gt

পলাগগনগট এগকটপরবট কযায াঅপরগ ডাসট টাাআপরটর ডদখন-

এফায পলাগগনগট এগকটপরবট কযায পরয ডাসট টাাআপরটর ডদখন-

এাআ পলাগগনগট াঅভাপরদয াপরনক ভয়াআ কাপরজ রাগপরত াপরয কাযন াপরনপরকাআ াঅভযা এাআ পযভযাটগট িনদ কগয ঠাৎ কপরযাআ াঅভযা ডাসট টাাআপরটর গরখায ভয় ফড় াপরতয াকষয কযপরত বপরর ডমপরত াগয াঅভযা এাআ কাজগট খফ ডিাট একগট পলাগগন গদপরয় াপরটাপরভগটকবাপরফ কযপরত াগয

17

এখন াঅগভ গকি াগতগযি গফলয় গনপরয় াঅপররাচনা কযফ ডমগপররা ডভপরন চরপরর বগফষযপরতয জনয বার পরফ াঅগভ একগট পাাংন গরপরখগি- add_filter(the_titleliton_modify_title)

function liton_modify_title($content)

return ucwords($content)

একট গফসতাগযত ফরপরর াঅভযা the_title এয ভধয গদপরয় মা া কযফ তা গপলটায কযপরফ এখাপরন াঅভযা ucwords the_title এয ভধয গদপরয় া কপরযগি এফায াঅপরযা টড পভড ডদগখ add_filter(the_title ucwords)

তায ভাপরন পরযা পলাগগনগট পরফ এযকভ- ltphp

Plugin Name Liton filter

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_filter(the_title ucwords)

gt

গক খফ জ রাগপরি এখাপরন ফপরর যাগখ ডম ucwords এগট গযগব কযপরফ the_title মা া কযপরি এফাং াপরটাপরভগটকযাগর গযটানড কযপরফ the_title এ সতযাাং এখাপরন গযটানড এয দযকায ডনাআ এফায াঅগন মগদ গএাআচগ বাডন ৫৩ ফযফায কপরযন তাপরর গনপরচয ভত কপরয anonymous function ফযফায কযপরফন াঅনাযা জাবাগিে ডজকপরয়গয‟য াপরথ গযগচত এগট াপরনকটাাআ এযকভ ltphp

Plugin Name Liton filter

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_filter(the_title function($content)

return ucwords($content)

)

gt

বার কপরয ডদখন ডতা াথডকযটা ডকাথায় গনপরজ গনপরজ কাজ কযপরর এবাপরফ কযপরফন াফশযাআ এগট একট এডবানস ডরপরফপররয কাজ মগদও পলাগগন ফানাপরনায ডকষপরতর এগট এখপরনা াঅদড নয় কাযন াপরনপরকযাআ গএাআচগ বাডন এখপরনা ৪ এাআ ডথপরক ডগপরি সতযাাং এাআ িগতগট একানতাআ গনপরজয জনয

18

এযাকন রক (Action Hooks) Action Hooks পরচছ ড ভসত রক ডমগপররা ওয়াডডপরেপরয রাাআপ াাআপরকর গনপরয় কাজ কপরয Action Hooks রাআ ধযপরনয add_action() remove_action() এাআ রকগপররা কাজ কপরয মখন ডকান ডাসট ডব কযা য় ডাসট াফগর কযা য় কপরভনট কযা য় ডকান বলগ ডাপরসট াথফা ওপরয়ফাাআপরট ডডাযপটায ডজনাপরযট য় এগপররা েগতগট একগট একগট কপরয Actions মখন াআউজায তায এডগভগনপরসটরটয ডভনপরত েপরফ কপরয এগপররা ফাআ Action Hooks এখাপরন াঅভযা কনপরটনটপরক গপলটায কযগিনা াঅভযা ওয়াডডপরেপরয গনগদডষট পাাংনগপররাপরক রক কপরয কাজ কযগি াঅভযা একগট উদাযন ডদগখ- ltphp

Plugin Name Liton Action

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(wp_footer function($content)

echo Hello This is Liton Arefin

)

gt

াঅনাপরদয সগফধাপরথড ডফাোয জনয গনপরচয ভত কপরয গরখন- ltphp

Plugin Name Liton Action

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(wp_footer liton_footer_action)

function liton_footer_action($content)

echo Hello This is Liton Arefin

gt

াঅভযা খফ ডিাট একগট উদাযন গদপরয় ডদখরাভ ডম action রক গকবাপরফ কাজ কপরয গনপরচ ডদগখ াাআপরট ডকভন ডদখায়-

19

উপরযয িগফপরত ডদখন াঅগভ Hello This is Liton Arefin এাআ রাাআনগট গেনট কপরযগি এফাং তা পটাপরযয ফাভ াপর এপরকফাপরয গনপরচ ডদখাপরচছ এফায ডাড ডকাড এ ডদগখ াঅপররাআ এয গজন টা ডকাথায় াঅপরি

উপরয ডদখন পটাপরযয গঠক গনপরচাআ রাাআনগট ডদখাপরচছ এফায াঅপরযকগট ফাসতফ এফাং খফাআ গরতবনড উদাযন ডদগখ এাআ পলাগগনগটয কাজ পরফ মখনাআ ডকান কপরভনট ডাসট পরফ তখনাআ এডগভনপরক ডভাআর াঠাপরফ ডম নতন কপরভনট ডাসট পরয়পরি মগদও ওয়াডডপরে এাআ কাজগট কপরয থাপরক াঅভযা এাআ কাজগট ভযানয়ারী কপরয ডদগখ ltphp

Plugin Name Liton Comments Mail

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(comment_post function()

$email= get_bloginfo(admin_email)

wp_mail(

$email

New Comment Posted

A new comment has been left on your blog

)

)

gt

এখাপরন comment_post নাপরভয রপরক একগট ডবগযপরয়ফর $email ndashএ এডগভন ডভাআরপরক ডসটায কপরযগি মাপরত কপরয ডাাআনাগভক বাপরফ ড ডমপরকান াাআপরটয এডগভন ডভাআরপরক গডপরটকট কযপরত াপরয তপরফ এপরকষপরতর মগদ bloginfo(admin_email) ফযফায কযা ত তাপরর এডগভন ডভাআরপরক গডপরটকট কযত গকনত get_bloginfo(admin_email) ফযফায কযায পপরর াঅভযা াআপরভাআর বযারগটপরক গযটানড কপরয ডসটায কযগি এফাপরয ওয়াডডপরেপরয গফলটাআন ডভাআর পাাংন wp_mail(emailsubjectmessage) এয ভত কপরয গরপরখগি বার কপরয ডদখন পলাগগনগট এগকটপরবট কপরয ডদখন াঅনায াাআট মগদ ানরাাআপরন থাপরক তাপরর গনপরজাআ একগট কপরভনট কপরয ডদখন াঅনায এডগভন ডভাআপরর একগট ডভাআর চপরর ডগপরি

20

াধযায়- চাযাঃ পলাগগন ডকাগডাং সটযানডাডড

পলাগগন এগকটপরবনগডএগকটপরবন পাাংন াঅগন মখন একগট পলাগগনপরক এগকটব কপরযন তখনাআ এগকটপরবন পাাংন গিগায য় এাআ পাাংনপরক register_activation_hook() ফপরর ltphp register_activation_hook($file $function) gt

Parameters

$file- োাআভাগয পলাগগন পাাআপররয াথ

$function- ডম পাাংনগট গিগায পরফ মখন পলাগগন এগকটপরবট য় ডমভনাঃ- ltphp

register_activation_hook(__FILE__ bdquoliton_plugin_install‟)

function liton_plugin_install()

do something cool stuff

gt

াঅভযা একগট পলাগগন ফানাাআ এবাপরফ-

ltphp

Plugin Name Liton Version

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

register_activation_hook(__FILE__ liton_plugin_install)

function liton_plugin_install()

If(version_compare(get_bloginfo(version)51lt))

deactivate_plugins(basename(__FILE__))

deactivate our plugin

gt

মখন াঅভযা পলাগগন গডএগকটপরবট কগয তখন পলাগগন গডএগকটপরবন পাাংন কর য়

21

ltphp

register_deactivation_hook ($file $function) gt

-

ltphp

register_deactivation_hook (__FILE__ bdquoliton_plugin_install‟)

function liton_plugin_install()

do something

gt

াঅপরযকগট গরতবনড গফলয় র াঅনাআনসটর ওয়াডডপরে াঅনাপরক পলাগগন াঅনাআনসটর এয জনয রগট ান গদপরচছ- uninstallphp file and the uninstall hook

uninstallphp

এগট ডভাটাভগট েনপরমাগয িগত এ ডভথড ফযফায কযায জনয াঅনাপরক uninstallphp নাপরভ একগট পাাআর ততগয কযপরত পরফ াঅনায পলাগগন গডপরযকটগযপরত পাাআরগট গনপরচয ভত পরফ- ltphp

মগদ ওয়াডডপরে এগকসট কযায াপরথ াঅনাআনসটর কর কযা না য় If(defined(bdquoWP_UNINSTALL_PLUGIN‟))

exit()

delete_option(bdquoliton_plugin_options‟)

াগতগযি ান এফাং কাসটভ ডটগফর ভপরি ডপরন gt

Uninstall Hook

গিতীয় িগত র Uninstall Hook মগদ াঅগন ডকান পলাগগনপরক গডগরট কযপরত চান এফাং uninstallphp পাাআর না থাপরক তাপরর এাআ রক এগকসগকউট য়(মগদ থাপরক) ltphp

register_uninstall_hook($file$function)

gt

22

ডকাগডাং সটযানডাডড পলাগগন ফানাপরফন গকনত াঅনায ডকাড ডকভন পরফ গচনতা াঅপরত াপরয ওয়াডডপরে াঅনায জনয একগট সটযানডাডড গদপরয় গদপরয়পরি মা াঅনাপরক ওয়াডডপরেপরয জনয পলাগগন গরখপরত ডগপরর পপররা কযপরতাআ পরফ httpcodexwordpressorgWordPress_Coding_Standards

ডফগক একগট উদাযন গদরাভ গনপরচ- ltphp

Short description

Longer more detailed description

param type $varname1 Description

param type $varname2 Description

return type Description

function boj_super_function( $varname1 $varname2 )

do function stuff

gt

গএাআচগ সটানডাডড াঅভযা াপরনপরকাআ গএাআচগয টড পভড(lt gt) ফযফায কগয এটা মপিডরপর ফজডন করন কাযন াপরনক ডাগসটাং ডকামপাগনপরতাআ এটা গডপলট গপরপরফ ফনধ কপরয ডদয়া থাপরক সটযানডাডড টযাগ ফযফায করন(ltphp gt)

এগকউএর ডসটটপরভনট পলাগগন ততগযয ভয় াঅনাপরক াপরনক ভয়াআ ডাটাপরফ ডথপরক াআনপযপরভন গনপরত পরত াপরয াপরনক রাাআপরনয ডকাড গরখপরত পরত াপরয ডপরকষপরতর বার েযাকগট পরচছ এগকউএর এয কভানড গপররা ফড় াপরতয াকষপরয ডরখা ডমভন- SELECT username FROM table1 WHERE status = active

23

াধযায়- াাচাঃ ওয়াডডপরেপরয াপরথ াআগনটপরেন

ডভন এফাং াফ ডভন ততগয করন াঅভযা াপরনক পলাগগপরনাআ ডদগখ ডম একগট ডভন াঅাআপরটভ গপরপরফ াঅভাপরদয ডযাপরফাপরডড ডদখপরত াাআ এফাং ডাআ ডভনপরত গিক কযপরর ডগটাং ডজ াঅপর ডখাপরন পলাগগপরনয মাফতীয় ডগটাং গদপরয় াঅভযা পলাগগন কনগপগায কগয এফায এাআ চভৎকায কাজগট কযফ াঅভযা

ট ডরপরবর ডভন েথভ িগত পরচছ একগট ট ডরপরবর ডভন ততগয কযা ডমগট াঅভযা ডযাপরফাপরডড ডভন গরপরসট একগট নতন াঅাআপরটভ গপরপরফ ডমাগ কযফ ডভন ততগয কযায জনয াঅনাপরক add_menu_page( ) পাাংন ফযফায কযপরত পরফ ltphp

add_menu_page( page_title menu_title capability menu_slug functionicon_url

position )

gt

add_menu_page() পাাংন গনপরচয যাযাগভটাযগপররা াপরাটড কপরয page_title- াঅনায ডপরজয টাাআপরটর গক পরফ lttitlegt tag এয ভপরধয menu_title- ডযাপরফাপরডড াঅনায ডভনয নাভ capability- ফডগনমন capability রাগপরফ একগট ডভন গবউ পরত menu_slug- সলাগ নাভ মা ডভনপরক ডযপায কপরয- তপরফ এগট াআউগনক পরত পরফ function- একগট ডপরজয কনপরটনট ডদখপরত ডম পাাংন কর কযা য় icon_url- একগট কাসটভ াআপরভজ গরঙক ডভন াঅাআকন ডদখাপরনায জনয position- ডভনয গজন াডডায ডমখাপরন এটা ডদখাপরনা পরফ

এফায াঅভযা একগট ফাসতফ উদাযন ডদখফ- ltphp

Plugin Name Liton Menu

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action( admin_menu liton_menu)

function liton_menu()

24

create custom top-level menu

add_menu_page( Liton Menu Page Liton Menu Page manage_options

__FILE__ liton_menu_settings_page plugins_url( imageswp-logopng

__FILE__ ) )

gt

াঅভযা একগট ট ডরপরবর ডভন ততগয কযরাভ ডদখন ডযাপরফাপরডড ডকভন ডদখায়-

Liton Menu Page নাপরভ একগট ডভন ততগয পরয় ডগপরি এফাপরয াঅভযা াফপরভন কযফ ভাপরন Liton Menu Page এয গনপরচ গকি ডগটাং ডভন(মগদ েপরয়াজন য়) াফ ডভন ডযগজসটায কযায জনয add_submenu_page( ) পাাংন ফযফায কযা য় ltphp

add_submenu_page( parent_slug page_title menu_title capabilitymenu_slug

function )

gt

parent_slug- ডভন সলাগ মা াঅভযা াঅপরগ গডপাাআন কপরযগি menu_slug- মা ডভনপরক াফপরভনপরত ডযপায কযপরফ ফাগক পাাংনগপররা াঅপরগয ভতাআ

এফায াফপরভনয জনয গকি াগতগযি ডকাড ডমাগ কগয create submenu items

add_submenu_page( __FILE__ About My Plugin About manage_options

__FILE___about liton_menu_about_page )

add_submenu_page( __FILE__ Help with My Plugin Help

manage_options

__FILE___help liton_menu_help_page )

add_submenu_page( __FILE__ Uninstall My Plugin Uninstall

manage_options

__FILE___uninstall liton_menu_uninstall_page )

25

পরযা ডকাডগট পরফ এযকভ- ltphp

Plugin Name Liton Menu

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action( admin_menu liton_menu

)

function liton_menu()

create custom top-level menu

add_menu_page( Liton Menu Settings Page Liton Menu Page

manage_options __FILE__

liton_menu_settings_page

plugins_url( imageswp-logopng __FILE__ ) )

create submenu items

add_submenu_page( __FILE__ About My Plugin About manage_options

__FILE___about liton_menu_about_page )

add_submenu_page( __FILE__ Help with My Plugin Help

manage_options

__FILE___help liton_menu_help_page )

add_submenu_page( __FILE__ Uninstall My Plugin Uninstall

manage_options

__FILE___uninstall liton_menu_uninstall_page )

gt

গনপরচ ডদখন াফপরভনগপররা ততগয পরয় ডগপরি-

26

ডভনপরক াঅপরগয ডভনয াপরথ মি কযা এফায াঅগ গিতীয় িগতপরত মগদ াঅনায পলাগগপরনয একগট ভাতর ডজ থাপরক একগট ভাতর ডপরজাআ াঅনায কর ডগটাং পরয় মায় তাপরর এাআ িগত েন করন ডমভন ডয়াগযাং াাআটগপররায জনয রধ াঅনায াঅাআগডপযানপরপরজয াঅাআগড দযকায য় এযকভ পলাগগন এধযপরনয পলাগগপরনয জনয াঅনায াগতগযি ডভন ততগয কযায দযকায ডনাআ ফযাং এপরত কপরয াআউজায গফযি ডফাধ কযপরত াপরযন এ ধযপরনয পলাগগনগপররা ডগটাং এয াফপরভন গপরপরফ থাপরক add_options_page() এাআ পাাংন গদপরয় এফ ডভন ডযগজসটায কযা য় ltphp

add_options_page( page_title menu_title capability

menu_slug function)

gt

এফায চরন এযকভ একগট ডভন ততগয কগয- ltphp

Plugin Name Liton Sub Menu

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action( admin_menu liton_submenu)

function liton_submenu()

create a submenu under Settings

add_options_page( Liton Menu Settings Page Liton Menu Page

manage_options __FILE__

liton_menu_settings_page)

27

gt

াফপরভন ততগয পরয় ডগপরি চরন ডদগখ ডযাপরফাপরডড ডকভন ডদখায়-

এপরকফাপরয গনপরচয গদপরক ডদখন Liton Menu Page নাপরভ একগট ডভন ততগয পরয়পরি

উাআপরজট ততগয কযা উাআপরজট ততগয কযায জনয ওয়াডডপরে WP-Widget িা গদপরয় ততগয কযা য় উাআপরজট এয একগট পযভযাট ডদখন গনপরচ ltphp

class My_Widget extends WP_Widget

function My_Widget()

processes the widget

function form($instance)

displays the widget form in the admin dashboard

function update($new_instance $old_instance)

process widget options to save

function widget($args $instance)

displays the widget

gt

28

উাআপরজট ডযগজসটায কযায জনয widget_init() পাাংনপরক রক কযা য় চরন একগট উাআপরজট ততগয কগয- ltphp

Plugin Name Liton Widget

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

class Messager extends WP_Widget

function __construct()

$params=array(

description =gtDisplay message to readers

name =gt Message

)

parent__construct(Messager $params)

public function form()

public function widget()

add_action(widgets_initliton_register_message)

function liton_register_message()

register_widget(Messager)

gt

29

খফ াধাযন একগট উাআপরজট পলাগগন এগট াঅভযা াআউজাযপরদযপরক একগট ডভপরজ ডদখাপরফা াাআডফাপরয ডটাাআ কযায ডচষটা কযগি এখন পলাগগনগট এগকটপরবট কপরয ডদগখ-

াঅভাপরদয উাআপরজটগট ডদখাপরচছ এফায াঅপরযা গকি পাাংনার কাজ কগয এগট মগদ াাআডফাপরয ডরাগ কপরয ডদন তাপরর ডকান কাজ কযপরফ না কাযন াঅভযা এখপরনা গকিাআ কগযগন পভড পাাংপরন গকি কাজ কগয মা উাআপরজট টাাআপরটর গপরপরফ ডদখাপরফ- public function form($instance)

extract($instance)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title)gtgtTitle ltlabelgt

ltinput

class=widefat

id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt

value=ltphp if(isset($title)) echo esc_attr($title) gt gt

ltpgt

ltphp

াঅভযা উপরয class=widefat ফযফায কপরযগি এাআ িা ফযফায কযায কাযপরন পভড এয াআনট গপলডগট াপরনক সনদয পরয়পরি

30

মগদ এাআ িা ফযফায না কগয তাপরর ডকভন ডদখাপরফ গনপরচ ডদখন-

াঅভাপরদয উাআপরজট পলাগগনগটয ডকাড গনপরচ ডদওয়া র ltphp

Plugin Name Liton Widget

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

class Messager extends WP_Widget

function __construct()

$params=array(

description =gtDisplay message to readers

name =gt Message

)

parent__construct(Messager$params)

31

public function form($instance)

extract($instance)

print_r($instance)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title)gtgtTitle ltlabelgt

ltinput

class=widefat

id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt

value=ltphp if(isset($title)) echo esc_attr($title) gt gt

ltpgt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(description)gtgtDescription

ltlabelgt

lttextarea

class=widefat

rows=10

id=ltphp echo $this-gtget_field_id(description) gt

name=ltphp echo $this-gtget_field_name(description) gtgtltphp

if(isset($description)) echo esc_attr($description) gtlttextareagt

ltpgt

ltphp

public function widget($args$instance)

extract($args)

extract($instance)

echo $before_widget

echo $before_title$title$after_title

echo ltpgt$descriptionltpgt

echo $after_widget

add_action(widgets_initliton_register_message)

function liton_register_message()

32

register_widget(Messager)

gt

এফায াঅভযা ডযাপরফাডড ডথপরক একগট ডভপরজ ডদফ গবগজটযপরদযপরক-

াঅভযা এাআ উাআপরজটগট ডাাআনাগভক বাপরফ কপরযগি কাযন এখাপরন lth2gt lth3gt lth4gt এ ধযপরনয ডকান টযাগ াঅভযা ফযফায কগযগন াঅভযা গথভ ডডপরবর কযগিনা সতযাাং এ কাজগট াঅভাপরদয ানযবাপরফ কযা দযকায গির এগট গথভ ডডপরবরায ডদগখপরয় ডদপরফন ডম ডকভন টযাগ পরফ াাআডফাপরয াাআপরটয াাআডফাপরয ডকভন ডদখায় তা ডদখন- াঅভযা রগট গথপরভ এগট ডটসট কপরয ডদখফ েথভগট টপরয়গনট াআপররপরবন

33

এফায াঅপরযকগট গথপরভ ডদগখ-

34

াধযায়- িয়াঃ পলাগগন পাাংন

গকি ডফগক পাাংন __() পাাংন

__() পাাংনগট গএাআচগপরত াঅনায ডটকসটপরক ডযগড কপরয িানসপররন এফাং গযটানড কপরয উদাযন গপরপরফ াঅগন একগট বযারপরক __() পাাংপরনয ভপরধয ডবগযপরয়ফর গদপরয় assign করন ভপরন যাখপরফন এাআ পাাংনগট রগট াঅনডাযপরিায(_) গদপরয় গগঠত একগট নয় ltphp

$text=__(bdquoWordpress is a wonderful publishing platform‟‟liton_plugin‟)

gt

_e() পাাংন _e() পাাংনগট াঅনায ডটকসবপরট ডরাকারাাআজ কপরয এটা গএাআচগপরত echo এয ভত কাজ কপরয ডকান ডটকসটপরক গিপরন ডদখাপরনায জনয এফায একট ভজা কগয মা রপরক ডদপরখগি াঅপরগাআ- _e() পাাংনগট গদপরয় াঅপরগয পলাগগনগট এগডট কযফ ltphp

Plugin Name Liton Action

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(wp_footer liton_footer_action)

function liton_footer_action()

Output the translated text

_e( This site runs off the coolest platform ever ampmdash

WordPress

liton-plugin )

gt

35

এফায াঅউটট ডদগখ

esc_attr__() পাাংন এাআ পাাংনগট esc_attr() এয ভত এগট এাআচগটএভএর এগিগফউটপরক escape কপরয াঅভযা এফায esc_attr__() এফাং __() এাআ রগট পাাংনপরক একগট কপরয পলাগগন ততগয কযফ ltphp

Plugin Name Liton Esc Attr

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

A function that returns a link to the sites terms of service

page

function liton_terms_of_service_link()

return lta href=httpliton-onlinecomtos title=

esc_attr__( Visit the Terms of Service page boj-plugin ) gt __( Terms of

Service liton-plugin ) ltagt

Display the output of the liton_terms_of_service_link()

function

echo liton_terms_of_service_link()

gt

পলাগগনগটয াঅউটট ডদখন-

36

এযকভ াঅপরযা গকি পাাংন াঅপরি ডমগপররা াঅনাযা ডদপরখ ডনপরফন াআনটাযপরনট ডঘপরট

esc_html__() Function

esc_attr() Function

esc_url() Function

esc_js() Function

esc_html() Function

esc_attr_e() Function

esc_html_e() Function

_x() Function

_ex() Function

esc_attr_x() Function

esc_html_x() Function

_n() Function

_nx() Function

_n_noop() Function

_nx_noop() Function

Translation

bull Poedit httppoeditnet

bull GlotPress httpglotpressorg

bull Launchpad httpstranslationslaunchpadnet

bull Pootle httppootlelocamotionorg

bull KBabel httpi18nkdeorg

bull GNU Gettext httpgnuorgsoftwaregettext

GlotPress এখন ওপরয়ফ ডফড টর গপরপরফ ফযফায কযা পরচছ ওয়াডডে েপরজপরকটয ডিপরন একজন াথফা গটপরভয জনয িানসপররগটাং পটওয়যায গপরপরফ

37

াধযায়- াতাঃ পলাগগন গগকউগযগট

গগকউগযগট কগমপউটাপরযয বালায় ldquoগগকউগযগটrdquo ভাপরন বীগতকয একগট বদ ডমভন Cross Site

Scripting(XSS) Cross Site Request Forgery(CSRF) SQL Injection Privilege

Escalation Vulnerabilities এফাং Holes রফডর ডকাড একগট াবডাপরযয সযকষায জনয রভকীয কাযন পরত াপরয

পলাগগপরনয গগকউগযগট গক াঅনায পলাগগনগট ডমন গগকউয য় vulnerabilities data integrity এফাং reliability ডথপরক

াঅনায পলাগগনপরক গক গগকউগযগট ডদপরফন ওয়াডডপরে এনবায়যনপরভপরনট াঅনায পলাগগনপরক গগকউগযগট ডদয়া খফ কগঠন কাজ নয় এফাং খফ ভয় াপরকষ গফলয়ও নয় ওয়াডডপরেপরয গনজসব গকি পাাংন এপরকষপরতর াঅনাপরক খফাআ াাময কযপরফ

াআউজায াযগভন াঅভযা াপরনক পলাগগন াআনসটর কযায পরযাআ ডদপরখগি ডম মখনাআ এডগভন যাপরনর এ েপরফ কযপরত মাাআ তখন একগট এযয ডভপরজ াঅপর ডভপরজগট গনপরচয ভত-

ডরখা াঅপরি- You do not have sufficient permissionshellip এটা গনশচয়তা ডদয় ডম ডমপরকান এযাকন ীভাফি থাপরক গনগদডষট গকি যাাআট গদপরয় ওয়াডডপরেপরয একগট কভন পাাংন র current_user_can() একগট উদাযন ডদাআ-

38

ltphp

Capability

if ( current_user_can(install_plugins) )

wp_die( Insufficient permissions )

Role

if( current_user_can(editor) )

wp_die( You cannot edit this setting )

gt

খফ তাড়াতাগড় াঅগন এাআ current_user_can() পাাংন ডচক কযপরফন না কাযন এটা গনবডয কযপরফ get_currentuserinfo() এাআ পাাংপরনয উপরয াঅয এয ফযফাপরয ীভাফিতা াঅপরি এটা একগট পলাপরগফর পাাংন(pluggable function) াঅয এয ডরাপরকন পরচছ wp-

includespluggablephp মা পলাগগন এগকটব ফায য ডরাড য়

Nonces

ডকউ এগটপরক াঅফায Nonsense( গনপরফডাধ) বাফপরফন নাএগট ওয়াডডপরেপরয বালায় Nonces কগমপউটাপরযয বালায় nonce ফা cryptographic nonce পরচছ ldquonumber used once rdquo এটা ডিাট এফাং সপষট গকি য যানডভ গসটরাং ডমভন- াওয়াডড মা গকি গনপরদড কপরয Nonce গপরডন গপলড পভডপরক Retrieve ফা display কপরয-

একজন ওয়াডডপরে াআউজায ডমপরকান একগট এযাকন (delete update save and such) একগট াফপরজকট(একগট ডাসট পলাগগন ডগটাং াআতযাগদ) ২৪ ঘনটায একগট ভয় ডিভ

ডমভন ডাসট 50 গডগরট কযপরফন াঅনায ওয়াডডপরে বলগ ডথপরক তাপরর াঅনায গরঙকগট পরফ এযকভ- httpexamplecomwp-admin

postphppost=43ampaction=trashamp_wpnonce=83a08fcbc2

এখাপরন 83a08fcbc2 এগট র nonce মা ২৪ ঘনটা সথায়ী থাপরক রধভাতর এগট মগদ াঅনায িাযা ফযফরত য় এফাং গডগরট য় ডাসট 50 মখন াঅগন গরপরঙক গিক কপরযন ফপরচপরয় গযতবনড র ডম Nonce ডকান malicious াআউজায ফেপরত াপরযনা এফাং গঠক গরঙক িাড়া nonce এযয ডপরজ চপরর মায় ডমখাপরন াযগভন থাপরক না াঅপরযা গফসতাগযত ডদখন httpcodexwordpressorgWordPress_Nonces

39

Nonce URL ততগয এফায চরন াঅপরগয উদাযন ডথপরক Nonce URL ততগয কগয একগট ডাসট গডগরট কযায জনয wp_nonce_url() পাাংন ফযফায কযা য় ltphp

$url = wp_nonce_url( $url $action )

gt

েথভ যাযাগভটায $url পরচছ গসটরাং URL এপরডর এয মাপরক াঅগন কপরয়যী গসটরাং এয Nonce কযপরত চান াফযফহরত পলাগগপরনয গডগরট গরঙক এযকভ থাপরক- httpexamplecomwp-admineditphppage= liton

_utagsampliton_action=deleteampid=6

এখাপরন ডদখন যাযাগভটায liton_action এফাং এয টযাগ াঅাআগড গিতীয় যাযাগভটায পরচছ $action একগট গসটরাং মা াঅগন একগট াফপরজকট এয জনয একগট action ততগয কযপরফন উপরয ডদখরাভ delete এযাকন এয টযাগ াঅাআগড 6 সতযাাং $action যাযাগভটায পরত াপরয bdquoliton_utags-delete_tag6‟ গনপরচ ফাসতফ উদাযন ডদগখ- ltphp

$delete_url = add_query_arg(array( liton _action=gtdeleteid=gt$id) )

$nonced_url = wp_nonce_url( $delete_url bdquoliton _utags-delete_tag$id )

gt

lta href=ltphp echo $nonced_url gtgtdeleteltagt

এাআ টযাগগট পরফ গডগরট গরঙক এখাপরন add_query_arg() পাাংন ফযফায কযা পরয়পরি মা কাপরযনট URL ডক এযাপরয যাযাগভটায এয ভপরধয যাপরখ ানযবাপরফ ফরপরর এগট ডমাগ কপরয এযকভাঃ liton_action=deleteampid=6 amp liton_action=deleteampid=6

Nonce Form ততগয Nonce পভডপরকও ডোপরটকট কপরয wp_nonce_field() পাাংপরনয ভাধযপরভ ltphp

wp_nonce_field( $action $name $referer $echo ) gt

$action ( string) (optional) - action নাভ াআউগনক identifier optional

গকনত recommended $name (string) (optional) ndash গপরডন গপলড পভড ডবগযপরয়ফর নাভ $referer (boolean) (optional) ndash গডপলট গপরপরফ true থাপরক ডমখাপরন গপলড

ডবগরপরডন এয দযকায য়

40

$echo (boolean) (optional) - গডপলট গপরপরফ true থাপরক ডমখাপরন াঅউটট ডদখাপরনায ফা গপরডন পভড গপলড গযটানড কযায জনয দযকায য়

পপরভড াঅনায action এয নাভ গদন ltform method=postgt

lt-- some inputs here --gt

ltphp wp_nonce_field(name_of_my_actionname_of_nonce_field) gt

ltformgt

াঅভযা একগট পলাগগন ফানাপরফা ডমখাপরন াফযফরত টযাগগপররাপরক াঅভযা ভযানয়াগর গডগরট ফা গযপরনভ কযপরত াযফ এগট একট ফড় গকনত াপরনক গফলয়াআ াঅপরগাআ াঅপররাচনা কযা পরয়পরি ডদখপররাআ ফেপরত াযপরফন একগট ফাসতফধভডী উদাযন গনপরচ গদরাভ- ltphp

Plugin Name Liton Unused Tags

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add an entry for our option page to the Posts menu

add_action(admin_menu liton_utags_add_page)

function liton_utags_add_page()

add_posts_page( Unused Tags Unused Tagsmanage_optionsliton_utags

liton_utags_option_page )

Catch any liton_action parameter in query string

add_action( admin_init liton_utags_do_action )

Proceed to requested liton_action if applicable

function liton_utags_do_action()

if( isset( $_REQUEST[liton_action] ) )

return

if( current_user_can( manage_options ) )

wp_die( Insufficient privileges )

41

$id = $_REQUEST[id]

$action = $_REQUEST[liton_action]

if( $action == done )

add_action( admin_notices liton_utags_message )

return

check_admin_referer( liton_utags-$action_tag$id )

switch( $action )

case rename

$newtag = array( name =gt $_POST[name] slug =gt

$_POST[name] )

wp_update_term( $id post_tag $newtag )

break

case delete

wp_delete_term( $id post_tag )

break

wp_redirect( add_query_arg( array( liton_action =gt done )

) )

Admin notice

function liton_utags_message()

echo ltdiv class=updatedgtltpgtAction

completedltpgtltdivgt

Draw the tag management page

function liton_utags_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtUnused Tagslth2gt

ltphp

if( $tags = liton_utags_find_orphans() )

echo ltpgtYou currently have count( $tags ) unused

tagsltpgt

echo ltolgt

foreach( $tags as $tag )

42

$id = $tag-gtterm_id

$name = esc_attr( $tag-gtname )

$delete_url= add_query_arg(

array(liton_action=gtdeleteid=gt$id) )

$nonced_url= wp_nonce_url( $delete_url

liton_utags-delete_tag$id )

gt

ltligt

ltform action= method=postgt

ltphp wp_nonce_field( liton_utags-rename_tag$id )

gt

ltinput type=hidden name=liton_action

value=rename gt

ltinput type=hidden name=id value=ltphp echo

$id gt gt

ltinput type=text name=name value=ltphp echo

$name gt gt

ltinput type=submit value=Rename gt or

lta href=ltphp echo $nonced_url gtgtdeleteltagt

this tag

ltformgt

ltligt

ltphp

else gt

ltpgtYou have no unused tagsltpgt

ltphp endif gt

ltolgt

ltdivgt

ltphp

Find unused tags return them in an array

function liton_utags_find_orphans()

global $wpdb

$sql = SELECT termsterm_id termsname FROM

$wpdb-gtterms terms

INNER JOIN $wpdb-gtterm_taxonomy taxo

ON termsterm_id=taxoterm_id

WHERE taxotaxonomy = post_tag

43

AND taxocount=0

return $wpdb-gtget_results( $sql )

gt

ডযাপরফাপরডড এাআ পলাগগপরনয ডভন াওয়া মাপরফ ডাসট এয াফপরভন গপরপরফ গনপরচ ডদখন-

এফায পলাগগন ডভনপরত গিক কপরয ডদগখ পলাগগপরনয ডবতপরযয কাজ-

উপরয ডদখন াঅগভ একগট টযাগ ততগয কপরযগিরাভ l i নাপরভ এগট এখাপরন ডদখাপরচছ াঅগভ চাাআপরর এগট এগডট ফা গডগরট কযপরত াগয এফায গডগরট গরঙক এ ভাউপরয কাডয ডযপরখ গনপরচ গরঙক ডদখন ফা গডগরট করন একগট টযাগ াঅভায এখাপরন URL গট এযকভ httplocalhostdev-litonwp-

admineditphppage=liton_utagsampliton_action=doneampid=4amp_wpnonce=30a44b7

986

এখাপরন াঅগভ liton_action=done ফযফায কপরযগি Nonces এয পাাংনগপররায নাভ গনপরচ গদরাভ াঅনাযা ডদপরখ গনপরফন াআনটাযপরনট ডথপরক wp_nonce_field()

wp_nonce_url()

wp_verify_nonce()

wp_create_nonce()

44

check_admin_referer()

check_ajax_referer()

ডাটাপরফ াঅনাযা ডমপরত গএাআচগ গনপরয় কাজ কপরযন এগকউএর ডাটাপরফ এয াপরথ ফাাআ কভপরফী গযগচত এয গনটযাকস গপররা ডভাটাভগট ফায জানা একাআ বাপরফ াপরনপরকাআ ওয়াডডপরেপরও ডাটাপরফ ডকাড গরপরখন এটা ডকাগডাং এয জনয খাযা গদক াঅগভ নযভার গএাআচগ- এগকউএর ডকাড এয উদাযন গদগচছ- ltphp

$sql=rdquoINSERT INTO $wpdb-gtposts(post_title) VALUES(bdquo$title‟)rdquo

$wpdb-gtquery($sql) gt

এফায ওয়াডডপরেপরয সটযানডাডড ডকাগডাং গপরসটভ ডদখন- ltphp

$wpdb-gtinsert($wpdb-gtposts

array(bdquopost_title‟ =gt $title)

array(bdquos‟)

)

gt

ডাটাপরফ গগকউয কযায জনয াঅপরডট াাপরযন ডদখাফ- গনপরচয ডকাডগট খাযা েযাকগট ltphp

$wpdb-gtquery(ldquoUPDATE $wpdb-gtposts SET post_title=‟$newTitle‟ WHERE

ID=$my_idrdquo )

gt

উপরযয ভত কপরয না গরপরখ গনপরচয ভত কপরয গরখন- ltphp

$wpdb-gtupdate($wpdb-gtposts

Array(bdquopost_title‟ =gt‟$newTitle‟)

Array(bdquoID‟ =gt$my_id

)

gt

ানর বাপরফ ানযানয াাপরযন গপররা গরখপরফন

45

াধযায়- াঅটাঃ ডরাকারাাআপরজন এফাং Set t i ngs API

ডরাকারাাআপরজন ডরাকারাাআপরজন একগট গরতবনড গফলয় এয পাাংনগপররা র- load_theme_textdomain()

load_plugin_textdomain()

উদাযন- ltphp $var=__(bdquoHello‟‟domain‟) gt

ltphp _e(bdquoHello‟‟domain‟) gt

গফসতাগযত গনপরচয গরপরঙক ডদখন- httpcodexwordpressorgI18n_for_WordPress_Developers

ডগটাং API

ডগটাং API পরচছ াঅগন গকি ান ততগয কযপরফন মা াআনটাযনার বাপরফ াঅনায পলাগগপরন এপলাাআ পরফ মখন াঅগন াআউজায- গডপাাআন ান ততগয কযপরফন াঅনায পলাগগপরনয জনয তখন Settings

API ndashএ াঅনায ডকাড মতটা ারন জ করন Settings API াঅনায ডম কাজগপররা handle কপরয-

ওয়াডডপরেপরক জাগনপরয় ডদয় ডম াঅগন গনজসব ান ফযফায কযপরফন াঅনায াআনটপরক পাাংপরনয ভপরধয উপরেখ কযপরফ ডফগয বাগ ান ডজ গনপরজাআ ততগয কযপরফ $_POST ডাটা গপররাপরক ভগনটয কপরয ান ততগয এফাং াঅপরডট কপরয(মগদ েপরয়াজন য়)

Settings API পাাংন Settings API পাাংপরন গতনগট ডসট থাপরক- ১ েথপরভ ওয়াডডপরেপরক ফপরর ডম াঅগন নতন ডগটাং ফযফায কযপরফন াঅনায পলাগগপরনয জনয ২ এয পরয ডগটাং গডপাাআন করন (text areas input boxes and any

HTML form element) এফাং এপরদযপরক একাপরথ রে কপরয যাপরখ ৩ ওয়াডডপরেপরক াঅনায ডগটাং actual form এ ডদখাপরনায জনয ফপরর

46

এফায াঅভযা একগট পলাগগন ফানাপরফা Administration Page ndashএ ডযপাপরযনস গপরপরফ ডদখপরত াপরযন- httpcodexwordpressorgAdding_Administration_Menus

httpcodexwordpressorgFunction_Referenceadd_options_page

httpcodexwordpressorgAction_ReferenceActions_Run_During_an_Admin_P

age_Request

পলাগগপরনয এডগভন ডজ পরফ এযকভ- httpexamplecomwp-adminoptions-generalphppage=liton_myplugin

েথপরভ াঅভযা ডভন ততগয কযফ াঅপরগয ভত কপরয- Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

এফায ান ডজ এ পভড গনপরয় গকি ডগটাং ডদফ function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

উপরযয ডকাপরড াঅভযা একগট পপরভডয ভপরধয রধ াফগভট ফাটন এফাং My Plugin নাপরভ ডজ ততগয কপরযগি ডযাপরফাপরডড ডদখন-

47

ডগটাং এয াফ ডভন গপরপরফ My Plugin াঅপরি এফাং My Plugin ডত গিক কযপরর াঅভযা উপরযয ডজ ততগয কপরযগি ডমখাপরন াফগভট ফাটনগট ডদখাপরচছ এফায গতনগট যাযাগভটায ডযগজসটায কযফ- ltphp

register_setting( liton _myplugin_options liton _myplugin_options liton

_myplugin_validate_options)

gt

েথভগট ডগটাং রেপরয নাভ গিতীয়গট ান নাভ মা াঅভযা get_option() পাাংন গদপরয়ও ডপরত াগয ততীয়গট করফযাক পাাংন এগট একগট গসটরাং ডযপাপরযনস পাাংন এখাপরন াঅভযা নাভ

48

গদপরয়গি liton _myplugin_validate_options মা া কযপরফ পপরভডয কর ডব ডগটাং াঅভযা এটা পরয গডপাাআন কযফ

ডগটাং গডপাাআন ডকন add_settings_field() এফাং add_settings_section() পাাংন গদপরয় াঅভযা াঅভাপরদয কর ডগটাং গডপাাআন কযফ ltphp

add_settings_section( liton_myplugin_main My Plugin Settings

liton_myplugin_section_text liton _myplugin)

add_settings_field( liton _myplugin_text_string Enter text here

liton _myplugin_setting_input liton _myplugin liton _myplugin_main)

gt

add_settings_section() পাাংন গদপরয় াঅভযা ডদখাফ াঅপরর ডজ এ ডকন ডকভন ডদখাপরফ এয চাযগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ ডকন টাাআপরটর ltH3gt টযাপরগয ভপরধয করফযাক পাাংন এয নাভ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ (page= liton _myplugin এগট

URL এয াাং গপরপরফ থাকপরফ) গিতীয় যাযাগভটায add_settings_field() পপরভডয াআনট গপরপরফ ডদখাপরনা পরয়পরি এখাপরন াাচগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ পরযয গপপরলড গক গেনট কযা পরফ তা ডটকসট গপরপরফ ডদখাপরনা পরয়পরি(Enter text

here)

করফযাক পাাংন পপরভড গেনট কযপরফ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ ডগটাং ডপরজয ডকন গপলড মা add_settings_section() পাাংপরন গডপাাআন

কযা পরয়পরি ltphp

Explanations about this section

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

49

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton _myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name= liton _myplugin_options[text_string]

type=text value=$options[text_string] gt

gt

গিতীয় পাাংন ান বযার text_string ডক এযাপরযপরত ডসটায কপরয ডযপরখপরি এফায াআউজায াআনট বযাগরপরডট কযফ- ltphp

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace([^a-zA-Z]$input[text_string] )

return $valid

gt

পভডপরক ডযনডায কযফ- ltphp

Draw the options page

function liton_myplugin_options_page()

gt

ltdiv class=wrapgt

ltphp

screen_icon()

gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp

settings_fields( liton_myplugin_options)

do_settings_sections(liton_myplugin)

50

gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

settings_fields() পাাংনগট ডযপাপরযনস গপরপরফ ফযফায কযা পরয়পরি মা াঅভযা register_setting() পাাংপরন গডপরিয়ায কপরযগি do_settings_sections() পাাংনগট কর কযপরফ কর াঅউটট ডকন এফাং পভড গপলডপরক মা াঅভযা পরফড গডপাাআন কপরযগি াঅভাপরদয কাজ ডল এফায পরযা পলাগগনগট ডদখফ- ltphp

Plugin Name Settings API example

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

Draw the option page

function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save

Changes gt

ltformgtltdivgt

ltphp

51

Register and define the settings

add_action(admin_init liton_myplugin_admin_init)

function liton_myplugin_admin_init()

register_setting( liton_myplugin_options

liton_myplugin_options

liton_myplugin_validate_options )

add_settings_section( liton_myplugin_main My Plugin

Settings

liton_myplugin_section_text liton_myplugin )

add_settings_field( liton_myplugin_text_string Enter text

here

liton_myplugin_setting_input liton_myplugin

liton_myplugin_main )

Draw the section header

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton_myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name=liton_myplugin_options[text_string]

type=text value=$text_string gt

Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

return $valid

gt

52

ডদখন ডযাপরফাপরডড ডকভন ডদখায়-

পরয় ডগর াঅভাপরদয েথভ নডাাংগ পলাগগন ান ডজ াঅপরযকগট গজগন ডমটায জনয এতগকি পলাগগন URL এপরডর- httplocalhostdev-litonwp-adminoptions-

generalphppage=liton_mypluginampsettings-updated=true

াঅভায এখাপরন এযকভ ডদখাপরচছ ডটকসট ফপরকস ডকান গকি গরপরখ ডব কযায য এফাপরয াঅপরযকগট গজগন ডদখফ াঅভযা াপরনক ভয়াআ াপরনক পলাগগপরনয াআনট গপপরলড বর ডাটা াআনট কযপরর এযয ডভপরজ ডদখায় এাআ কাজগট কযফ এফায াঅভযা এখাপরন esc_attr() ফা esc_html() ফযফায কগযগন সতযাাং াঅভাপরদয গরগভপরটন থাকপরি ডবগরপরডট পাাংনগট একট এগডট কগয গনপরচয ভত কপরয Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

if( $valid[text_string] = $input[text_string] )

add_settings_error(liton_myplugin_text_stringliton_myplugin_texterror

53

Incorrect value enterederror)

return $valid

উপরয ডদখন add_settings_error() পাাংন ফযফায কপরযগি মা এযয ডচক কযপরফ পপরভডয াঅগভ একগট বর ডাটা(পরসপার কযাপরযকটায) াআনট কপরয ডদখরাভ এযয ডদখাপরচছ-

তায ভাপরন াঅভযা পর পরয়গি াঅনায পলাগগনগট এগডট কপরয ডনপরফন ডকায ডকন এফাং গপপরলডয গরসট গদরাভ াঅনাপরদয সগফধায জনয

54

CSSJS পাাআর মি কযা

াঅনায পলাগগপরন গএএ ফা জাবাগিে ডমাগ কযপরত পরত াপরয াঅগন চাাআপরর ফাগপরযয ডকান ফা াঅনায ততগয ডকান গএএ ফা জাবাগিে পাাআর ডমাগ কযপরত াপরযন তপরফ এপরকষপরতর াঅভযা ডমবাপরফ HTML এ পাাআর ডমাগ কগয ডযকভ না function liton_scripts()

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtojqueryjsrdquogtltscriptgt‟

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtoscriptjsrdquogtltscriptgt‟

add_action(bdquowp_head‟‟liton_scripts‟)

এগট মপনডরপর বর িগত গনপরচ ডদখন ওয়াডডপরেপর গকবাপরফ পাাআর মি কযপরত য়- function liton_scripts()

wp_enqueue_script(bdquojquery‟)

wp_enqueue_script(bdquotheme-scripts‟‟pathtoscriptsjs‟)

add_action(bdquowp_enqueue_script‟‟liton_scripts‟)

ানর বাপরফ াঅগন সটাাআরীট ডমাগ কযপরত াপরযন- function liton_styles()

wp_enqueue_ style (bdquocss‟)

wp_enqueue_ style (bdquotheme- styles‟pathto stylescss‟)

ডযপাপরযনস ডদখন- httpcodexwordpressorgFunction_Referencewp_enqueue_script

httpcodexwordpressorgFunction_Referencewp_enqueue_style

টডপরকাড টডপরকাড পরচছ ওয়াডডপরেপরয ডসপগগপক ডসপার টযাগ মা াঅগন ডাসট ফা ডপরজয ভপরধয াআনাটড কপরয ানয ডকান কনপরটনটপরক ওপরয়ফাাআপরটয ভপরধয গযপরপল কযপরত াযপরফন মগদ াঅগন গযারাগয টাাআপরয ডকান পলাগগন ফযফায কপরয থাপরকন তাপরর াঅনায ধাযনা থাকায কথা মাাআ ডাক াঅগভ কপরয়কগট উদাযি ডদখাফ

55

েথপরভ একগট পলাগগন ততগয কযফ ডমখাপরন add_shortcode() নাপরভয একগট পাাংন থাকপরফ এগট রগট যাযাগভটায েন কপরয েথভগট টডপরকাপরডয নাভ গিতীয়গট ডম পাাংনপরক কর কযপরফন ডগট াঅভযা একগট উদাযন ডদগখ- ltphp

Plugin Name Liton Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(litonhi)

function hi()

echo Hello World

gt

উপরয ডদখন খফ ডিাট গকনত াঅগন চাাআপরর এয ফযফায াপরনক গফসতত কযপরত াপরযন এখাপরন টডপরকাড নাভ পরচছ liton াঅয এগটপরক ডরখা য় এবাপরফ [liton] াঅভযা ডাপরসটয ভপরধয াআনাটড কপরয ডদগখ াঅউটট ডকভন ডদখায়-

এফায াঅউটট ডদগখ-

56

াঅভাপরদয ততগয কযা টডপরকাড পরবাপরফাআ কাজ কযপরি াঅপরযকগট উদাযন ডদখফ াঅনাযা াপরনপরকাআ গগর এডপরনস গনপরয় কাজ কপরযন াঅনাযা াপরনপরকাআ এডপরনস এয জনয পলাগগন ফযফায কপরযন গকনত চাাআপররাআ এাআ কাজগট াঅনাযা গনপরজয ভত কপরয াগজপরয় গনপরত াপরযন গগপররয কাপরি ফ ডাসট বযার ায়না াঅনাযা মাযা একসাটড াঅপরিন তাযা এটা বার কপরয জাপরনন তাাআ াপরনপরকাআ গগপররয ডকাড ফ ডপরজ ডদখাপরত চান না এজনয পলাগগন ফযফায কপরয রাব য়না কাযন পলাগগপরন জায়গা গপকসড থাপরক এপরত কপরয াঅগনডাং ও কভ য় াঅনাযা টডপরকাড ফযফায কপরয ডমপরকান জায়গায় এড ডদখাপরত াপরযন গনপরচ াঅগভ রগট টডপরকাড ততগয কপরযগি র‟ধযপরনয এড ডদখাপরনায জনয ltphp

Plugin Name Liton Adsense Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(adsense_468adsense_468_60)

add_shortcode(adsense_250adsense_250_250)

function adsense_468_60($atts)

return ltscript type=textjavascriptgtlt--

57

google_ad_client = ca-pub-0956247412222369

468x60 created 101510

google_ad_slot = 4372705450

google_ad_width = 468

google_ad_height = 60

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

function adsense_250_250($atts)

return ltscript type=textjavascriptgtlt--

google_ad_client = ca-pub-0956247412222369

250x250 created 81809

google_ad_slot = 9368091893

google_ad_width = 250

google_ad_height = 250

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

gt

একগট টডপরকাড ফযানায টাাআপরয জনয এফাং াঅপরযকগট ২৫০২৫০ াাআপরজয এফায ডাপরসট ডমপরকান একগট টডপরকাড াআনাটড করন ডমখাপরন াঅনায ডদখাপরনায েপরয়াজন ভপরন কপরযন াঅগভ রগট ডকাড ডটসট কপরয ডদখরাভ-

58

এফায াাআপরটয াঅউটট ডদগখ-

রগট এডাআ ডদখাপরচছ াঅপরযা াপরনক কাপরজ াঅগন টডপরকাড ফযফায কযপরত াপরযন ডযপাপরযনসাঃ httpcodexwordpressorgShortcode_API

59

াধযায়- নয়াঃ পলাগগন উদাযন

ওয়াডডপরেপরয ডডটটাাআভকপরভনট নামবায ফাাংরা কযায পলাগগন াঅভাপরক কপরয়কজন ফপররগিপররন ওয়াডডপরেপরয গডপলট ডডটটাাআভকপরভনট নামবায ফাাংরা য়না রযাাংগপরয়জ ফাাংরা কযায যও ডডটটাাআভকপরভনট নামবায গপররা াআাংপরযগজ ডথপরক মায় গনপরচয পলাগগনগট ফযফায কপরয ডদখপরত াপরযন- ltphp

Plugin Name Liton Bangla datetimecomment number

Plugin URI httpliton-onlinecomplugins

Description Bangla datetimecomment number

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

This function converts all english numbers to bangla number

function make_bangla_number($str)

$engNumber = array(1234567890)

$bangNumber = array( ১ ২ ৩ ৪ ৫ ৬ ৭ ৮ ৯ ০ ) $converted = str_replace($engNumber $bangNumber $str)

return $converted

add_filter( get_the_time make_bangla_number )

add_filter( the_date make_bangla_number )

add_filter( get_the_date make_bangla_number )

add_filter( comments_number make_bangla_number )

add_filter( get_comment_date make_bangla_number )

add_filter( get_comment_time make_bangla_number )

gt

60

সলাাআডায পলাগগন াঅভযা এাআ ফাআপরয়য কর গটউপরটাগযয়াপরর মা মা গখরাভ তা এফায একগট নডাাংগ পলাগগপরনয এপলাাআ কযফ সলাাআডায পলাগগন মপপরকড াঅভযা ফাাআ জাগন একগট ওপরয়ফাাআপরটয ডচাযা ারপরট ডদয় একগট সলাাআডায াপরনক ডাাআনাগভক ভপরন য় ডদখপরতও াপরনক বার রাপরগ এাআ পলাগগপরন াঅভযা এডগভন যাপরনর ডথপরক াআপরভজ ডমাগ কযফ এফাং তা াঅভাপরদয াাআপরট ডদখাফ চরন কাজ রর কগয- েথপরভ গনপরবা সলাাআডায এয ওপরয়ফাাআপরট মান এফাং jQuery Plugin ডাউনপররাড করন

ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom Version 10

gt

াঅভযা পলাগগপরনয ডডায ততগয কযরাভ

পলাগগন গরপরসট ডদখাপরচছ bdquoLitons Nivo Plugin‟ াঅভাপরদয েথভ কাজ পরচছ custom post

type ওয়াডডপরে পাাংনাগরগট একগট নতন কাসটভ ডজ ততগয কযপরত custom post type

ফযফহরত পরফ ডমখাপরন একগট াআপরভজ থাকপরফ াঅভযা রধ টাাআপরটর ডনভ এফাং াআপরভজ াঅপররাডায গপরপরফ গপচায াআপরভজ পাাংনাগরগট ফযফায কযফ function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_function 600 280 true)

61

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

add_action(init np_init)

উপরযয ডকাপরড np_init() পাাংনগট রক কপরযগি মা ডডায যান কযায াঅপরগ যান পরফ াঅয এজনয register_post_type() পাাংনপরক এয যাযাগভটায গদপরয় np_init() পাাংপরনয ডবতপরয মি কপরযগি এটা মগদ না কযতাভ তাপরর ldquoHeaders already sentrdquo ডভপরজ ডদখাত এাআ ডভপরজগটয াপরথ াপরনপরকাআ গযগচত াঅা কগয register_post_type() পাাংন গদপরয় াঅভযা াআপরভজ মি এফাং ভযাপরনজ কযফ ভরত াঅভযা একগট নতন custom post type ডমাগ কপরযগি np_images নাভ গদপরয় নতন custom post type ডক ডগটাং বযার গপরপরফ াঅযগপরভনট া কপরযগি $args ডবগযপরয়ফরগট ট ডরপরবর ডভন ততগয কপরয াঅপরগাআ ডদপরখগি পলাগগনগট এগকটপরবট কযপরর াঅভযা গনপরচয ভত ডদখপরত াফ-

এফায গিে এফাং সটাাআরীট ডক মি কযফ- add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

এফায রক কযা পাাংনগপররা গডপরিয়ায কগয- function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__) array( jquery ))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

62

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

উপরযয ডকাডগপররা নতন কপরয ফিডনা কযায গকি ডনাআ াঅপরগাআ wp_enqueue_style() এফাং wp_enqueue_script() মপপরকড ফরা পরয়পরি নতন াঅপরযকগট পাাআর ততগয করন একাআ গডপরযকটগযপরত scriptjs এফাং গনপরচয ডকাডটক গদন- jQuery(document)ready(function($)

$(slider)nivoSlider()

)

াআপরভজপরক গযাাআজ করন- add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

াঅভযা এাআ পলাগগনগটপরক উাআপরজট গপরপরফও ফযফায কযফ ডগট পরয ডদখফ াঅপরযকগট গজগন মগদ গথপরভ না ডদয়া থাপরক ডজনয থামবপরনাআর াপরাটড গদপরয় গদন- add_theme_support( post-thumbnails )

এফায ওয়াডডপরেপরয কাপরযনট ডাসট কপরয়যী কযায ডকাড াঅয $result ডবগযপরয়ফপরর ডমফ ltdivgt টযাগ ফযফায কযা পরয়পরি তা jQuery Plugin গট একসিাকট কপরয indexhtml ডজগটয ডভাআন সলাাআডায ডকাডগট ডদখন একাআ াঅপরি রধ ডখানকায ltdivgt টযাগ গপররাপরক কগ কপরয এাআ পলাগগপরন ফযফায কযা পরয়পরি এফায টডপরকাড গদন- add_shortcode(np-shortcode np_function)

এাআ টডপরকাড গএাআচগ পাাংনপরক রক কযপরফ এফাং এয ভধয ডথপরক সলাাআডপরায কনপরটনট ডক গযটানড কযপরফ াঅভাপরদয টডপরকাড পরচছ [np-shortcode] াঅভযা পলাগগপরন মাাআ এফাং একগট িগফ মি কগয গপচাযড াআপরভজ গপরপরফ গনপরচ ডদখন-

63

াঅগভ াঅপরযকগট ডজ ততগয কপরযগি ডমখাপরন টডপরকাড গদপরয়গি

াঅউটট ডজ ডদগখ এফায-

64

পরয় ডগর াঅভাপরদয সলাাআডায পলাগগন পরযা ডকাডগট গনপরচ গদরাভ- ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

65

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

66

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

এফায াঅগন মগদ উাআপরজট গপরপরফ ফযফায কযপরত চান তাপরর গনপরচয ডকাডটক গদন- class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

67

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

echo $after_widget

াঅপরযা রগট কাজ কযপরত পরফ াঅনাপরক এক াআপরভজ াাআজ উাআপরজট এয জনয গঠক কপরয গদপরত পরফ- add_image_size(np_widget 180 100 true)

াঅপরযকগট র উাআপরজট এযাকন রক ডমাগ কযা add_action(widgets_init np_widgets_init)

উাআপরজট পরযা ডকাড াঅফায গদরাভ- ltphp

Plugin Name Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Ciprian Turcu

Version 10

68

class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

69

echo $after_widget

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

70

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(widgets_init np_widgets_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

71

পলাগগন গনপরয় এত ডিাট গযপরয ডরখা মভফ নয় এজনযাআ ভপরন য় পলাগগন গনপরয় ডকউ ডরপরখন না কাযন এখাপরন এত গফলয় াঅপরি মা াঅপররাচনা কযপরত ডগপরর ৫০০ ডজ ায পরয় মাপরফ ডফাোয সগফধাপরথড াঅগভ মথামভফ উদাযন গদপরয় ডফাোপরনায ডচষটা কপরযগি াঅগভ এখাপরন টাপরগডট কপরযগি মাযা টকটাক জাপরন পলাগগন মপপরকড এডবানস ডরপরবপররয নয় কাযন তাযা জাপরনন াঅভায উপরেশয গির মাযা জানপরত চায় তাপরদযপরক জানাপরনা এখাপরন ডমফ গফলয় াঅপররাচনা কযা পরয়পরি তা ডভাটাভগট ভাপরনয একগট পলাগগন ফানাপরনায জনয মপরথষট তপরফ ভাপরনাননয়পরনয জনয াঅনাপরক গনপরজাআ খাপরজ গনপরত পরফ াঅনায জনয ডকানটা বার পরফ াঅগভ রধ গদক গনপরদডনা গদরাভ ভাতর এাআ ফাআগট রধভাতর ওয়াডডপরে রেপরয জনয ডরখা াপরনক বর ভরাগনত থাকপরত াপরয াঅনাযা কষভাসনদয দগষটপরত ডদখপরফন াঅগভ ডচষটা কপরযগি মতটা জ কপরয ডরখা মায় াপরনক ভয় ডদখা মায় ডম খফ ডিাট খাপরটা গফলয় গনপরয় াপরনপরকাআ নক কপরযন এটা গতয রাঃখজনক াঅনাযা গগপরর একট খাজপররাআ ভাধান াপরফন াঅপরগ গনপরজ ডচষটা করন তায পরয ানযপরক ভাধাপরনয জনয গজজঞাা করন াঅভায জনয ডদায়া কযপরফন বাপররা রাগপরর জানাপরফন খাযা রাগপররও জানাপরফন তাপররাআ াঅভায গযশরভ সবাথডক পরফ ভতাভত জাগনপরয় াঅভাপরক ডভাআর কযপরত াপরযন litonice09gmailcom |

72

Page 9: Wordpress Plugin Development

10

ওয়াডডপরে পলাগগন ডডপরবর কযায ৭গট কাযন

াঅগভ াআনটাযপরনট এ ldquoHow to Write a Plugin (httpgooglrCUY) rdquo গদপরয় াপরনক াচড কপরযগি াপরনক াঅগটডপরকর াঅপরি গকনত ভন ভত কপরয়কগট িাড়া ফরায ভত াাআগন ওয়াডডপরেপরয ldquoডকাপরডকসrdquo াঅপররাআ ওয়াডডপরে মপপরকড জানায জনয মপরথষট এটা পরয ফপরেগি ৭ গট কাযন ডকন াঅগন ওয়াডডপরে পলাগগন ফানাপরফনাঃ ১) াঅগন একগট পলাগগন মপপরকড জাপরনন গকনত এয ফাসতফায়ন িনদ কযপরিন না াঅভযা ডফগয বাগ ভয়াআ এাআ ভোয় গড় ২- ৩ গদন ধপরয একটা পলাগগন ডখাাজায জনয ফযয় কগয গকনত ভন ভত পলাগগন খাপরজ াাআ না গকনত এাআ ভয় এ একটা পলাগগন গরখা পরয় ডমত ২) াঅগন াঅপরগয ডকান পলাগগন ভগডপাাআ কযপরফন াপরনক ভয়াআ াঅনায িনদ ভত পলাগগন ডপররন গকনত াভানয গকি ডচি কযপররাআ াঅনায কাপরজ রাগপরফ এপরকষপরতর াঅনাপরক ডাআ পলাগগনগট ভগডপাাআ কযপরত জানপরত পরফ াপরনক ভয় পলাগগপরনয ডরখক ফযসত থাকপরত াপরযন এফাং াঅপরডট কযপরত াপরযন না এপরকষপরতর াঅগন ডাআ পলাগগনগট Aut hor Name ডচি কপরয গনপরত াপরযন তপরফ GPL Compatible license (httpgooglBOzm ) গঠক ডযপরখ াঅগন নযায় াগযগজনার পলাগগপরনয নতন বাডন ডফয কযপরত াপরযন ৩) ডকান পলাগগনপরক একসপরটনড কযপরত চান াপরনক ভয় একগট পলাগগন বার কাজ কপরয াাআপরটয জনয গকনত াঅগন াঅপরযা গকি গপচায ডমাগ কযপরত াপরযন ডমভন AJAX JQuery Effects াথফা াঅপরযা গকি রক রাগাপরত চান ডমন এগট ানয পলাগগপরনয াপরথ াভিে থাপরক তপরফ াফশযাআ GPL Compatible (httpgooglBOzm ) এয াপরথ াভিে পরত পরফ ৪) াঅগন মগদ াঅনায গথপরভয ফনপরমাগয ডকাড কযপরত চান এগট ভরত কাসটভ গথভ ডকাপরডয কথা ফরা পরয়পরি ডকান এগকসগসটাং গথপরভয ৫) াঅগন মগদ গথভ গডজাাআনায ন ৬) াঅগন মগদ টাকা উাজডন কযপরত চান পলাগগন ততযী কপরয ৭) াঅগন মগদ াঅনায াাআপরটয াআনকাগভাং গরঙক গফলড কযপরত চান

পলাগগপরনয ডপালডায সটরাকচায ডকভন পরফ কর ওয়াডডপরে পলাগগন wp-contentplugins গডপরযকটগযপরত াআনসটর য় গকি পলাগগপরন রধ একগট PHP পাাআর থাপরক গকনত াঅগভ ফ ভয় একগট ডপালডায কপরয পলাগগন ততগয কযায যাভড ডদফ পলাগগপরনয সটরাকচায পরত পরফ এযকভাঃ

11

Plugin Folder Name( াঅনায পলাগগন ডপালডায নাভ ডকান ডসপ ফা ডসপার কযাপরযকটায থাকা চরপরফ না) Main php file

js ডপালডায( জাবাগিে ফা Jquery file এয জনয) css ডপালডায( সটাাআরগট পাাআপররয জনয) phpinclude ডপালডায ( ানয php পাাআর)

একগট উদাযন ডদাআ পাাআপররয সটরাকচায ডকভন পরফ- litons-first-plugin

indexphp

js

css

includes

images

uninstallphp

পলাগগন ডডায

পলাগগপরনয ডডায িাড়া ডাআ পাাআর ডপালডাযগটপরক ওয়াডডপরে গচনপরত াযপরফ না পলাগগন ডডাযাআ পরচছ একভাতর েপরয়াজনীয় পাাংন মা ওয়াডডপরে দাফী কপরয ভাপরন াঅনাপরক পলাগগন ডরখায ররপরত PHP comment বলপরকয ভপরধয গকি াআনপযপরভন গদপরত পরফ মা এপরকফাপরয পাাআপররয েথপরভ াফসথান কপরয এখাপরন গকি কথা ফপরর যাগখ াঅগন মগদ াাআপরটয এাআও টাপরগডট কপরয পলাগগন ফানান তাপরর ডকান িপরভাআ াঅনায নাভ গদপরয় পলাগগন ফানাপরফন না ডমভনাঃ Litons Plugin এপরত এাআও ডত খাযা েবাফ পরড় গনপরচ উদাযন ডদয়া রাঃ ltphp

Plugin Name Litons Plugin পলাগগপরনয নাভ

Plugin URI httpliton-onlinecomplugin পলাগগপরনয URI Description This is a demo description পলাগগপরনয গফফযন Version 10 পলাগগপরনয বাডন Author Md Liton Arefin পলাগগন ডরখক

Author URI httpliton-onlinecom ডরখপরকয URI

gt

12

উপরযয িগফপরত ডদখন ওয়াডডপরেপরয ডযাপরফাপরডড াঅগভ পলাগগন ডডাপরয মা মা তথয গদপরয়গিরাভ তাাআ ডদখাপরচছ এটাাআ াঅনায োথগভক কাজ াঅগন রাাআপরনসও ডমাগ কযপরত াপরযন এবাপরফ- lt php

Copyright YEAR PLUGIN_AUTHOR_NAME (email PLUGIN AUTHOR

EMAIL)

This program is free software you can redistribute it andor modify

it under the terms of the GNU General Public License as published by

the Free Software Foundation either version 2 of the License or

(at your option) any later version

This program is distributed in the hope that it will be useful

but WITHOUT ANY WARRANTY without even the implied warranty of

MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE See the

GNU General Public License for more details

You should have received a copy of the GNU General Public License

along with this program if not write to the Free Software

Foundation Inc 51 Franklin St Fifth Floor Boston MA 02110-1301 USA

gt

পলাগগন াথ

একগট কভন কাজ র াঅনায পলাগগপরনয পাাআর এফাং ডপালডাযগপররাপরক ওয়াডডপরে াআনসটপররন গডপরযকটগযপরত ডযপায কযা াঅগন এাআ কাজগট রাআ বাপরফ কযপরত াপরযন- ডরাকার াবডায াথ াথফা সটানডাডড URL

13

ডরাকার াবডায াথাঃ ডরাকার াবডায াথ াঅনায কগমপউটাপরযয গডপরযকটগযয ভতাআ ডরাকার াবডায াথ াধাযনত ফযফায কযা য় মখন াঅনাপরক গনপরজয ডরাকার াবডাপরযয গকি পাাআর i ncl ude কযপরত য় একগট কভন েশন র- পলাগগন পাাআপররয াথ ডদখাপরনায গঠক িগত ডকানগট াঅনায পলাগগপরনয ডরাকার াথ ডদখাপরনায জনয াঅনাপরক plugin_dir_path() পাাংন ফযফায কযপরত পরফ plugin_dir_path() পাাংন পলাগগন গডপরযকটগযয গপগজকযার াথ একসিযাকট কপরয পাাআপররয নাভ ডথপরক ltphp plugin_dir_path($file) gt

Parameters

$file-(string)(required)- পলাগগন পাাআপররয নাভ এখন ডদগখ গকবাপরফ পলাগগন ডপালডাপরযয নাভ ডফয কযপরত য়-

ltphp

echo plugin_dir_path(__FILE__)

gt

এখাপরন গএাআচগ কনসটযানট __FILE__ ডক plugin_dir_path পাাংপরনয ভধয গদপরয় া কযারাভ এাআ পাাংন াবডায াথ ডদখাপরফ পলাগগন গডপরযকটগযয public_htmlwp-contentpluginsliton-plugin

একাআবাপরফ াঅগন মগদ plugin_dir_path() এাআ পাাংনপরক মগদ ডকান াফ- গডপরযকটগযয পাাআরপরক ডযপায কগয তাপরর গনপরচয ভত কপরয ডযপায কযপরত পরফ ltphp

echo plugin_dir_path(__FILE__)jsscriptsjs

gt

এাআ ডকাডগট গনপরচয ভত াথ ডদখাপরফ- public_htmlwp-contentpluginsliton-pluginjsscriptsjs

URL াথাঃ াঅপরযা গকি পাাংন াঅপরি ডমগপররা গদপরয় ওয়াডডপরেপরয URL ডদখাপরনা মায়

plugins_url() - পলাগগন গডপরযকটগযয পরযা URL ( ডমভনাঃ httpliton-onlinecomwp-contentplugins)

includes_url() - পরযা গডপরযকটগযয URL include কপরয ( ডমভন httpliton-onlinecomwp-includes)

14

content_url() - পরযা কপরনটনট গডপরযকটগয URL ( ডমভনাঃ httpliton-onlinecomwp-content )

admin_url() - পরযা এডগভন URL

( ডমভনাঃ httpliton-onlinecomwp-admin ) site_url() - কাপরযনট াাআট এয পরযা URL

( ডমভনাঃ httpliton-onlinecom ) home_url() - কাপরযনট াাআট এয পরযা ডাভ URL

( ডমভনাঃ httpliton-onlinecom )

াথ গনপরয় াঅপরযা গফসতাগযত ডদখপরত াপরযনাঃ httpcodexwordpressorgDetermining_Plugin_and_Content_Directories

httpcodexwordpressorgFunction_Referenceplugins_url

httpcodexwordpressorgFunction_Referenceplugin_dir_url

httpcodexwordpressorgFunction_Referenceplugin_dir_path

plugins_url() পাাংন াঅনায উততভ ফনধ পরত াপরয মখন াঅগন পলাগগন ডডপরবর কযপরফন

ltphp

plugins_url($path $plugin)

gt

Parameters

$path-(string)(optional)- গযপররগটব াথ URL $plugin- (string)(optional)- পলাগগন পাাআর মা াঅগন (__FILE__) এয ভাধযপরভ া কযপরত চান ডমভনাঃ ltphp

echo ltimg src=rdquoplugins_url(imagesiconpng__FILE)rdquogt

gt

এয পরযা URL পরফ ltimg src=rdquohttpliton-onlinecomwp-contentpluginsliton-pluginimagesiconpngrdquo gt

15

াধযায়- গতনাঃ রক

ওয়াডডপরে রক( Hook) গক ওয়াডডপরেপর রক ফরপরত াধাযনত add_action() াথফা add_filter() পাাংন ডক ডফাোয় এাআ রগট পাাংনপরক remove_action() াথফা remove_filter() গদপরয় ভপরি ডপরা মায় মগদও াপরনপরকয কাপরি রপরনগি ডম এাআ রগট পাাংপরনয ভপরধয ডকান াথডকয ডনাআ গকনত াঅপরর তা নয় গফযাট াথডকয াঅপরি এ রগট পাাংপরনয ভপরধয াঅগভ ভরত এাআ রগট পাাংন গদপরয়াআ গকি পলাগগন ফাগনপরয় ডদখাফ কাযন খফাআ গরতবিড এাআ রগট পাাংন মপপরকড বাপররাবাপরফ জানা

গপলটায রক (Filter Hooks)

গপলটায রক পাাংপরনয কাজ পরচছ কনপরটনটপরক ভগডপাাআ কযা গপলটায রক গদপরয় টাাআপরটর কনপরটনট াআতযাগদ ভগডপাাআ কযা মায় ডমভন টাাআপরটর এ ডকান টযাগ না থাকা গবগজটয কপরভপরনট ltgt t ag span t ag াআতযাগদ গদপরয় াাআপরটয ডরাঅউপরটয গযফতডন কপরয গদপরত াপরয ভাপরন ডকান কপরভপরনট মগদ এযকভ ht ml ডকাড াড কযা থাপরক তাপরর ডদখপরত খাযা রাগপরফ এগপররা াফশয এখন ওয়াডডপরে াপরটাপরভগটকযাগর কপরয গকনত এাআ কাজগপররা ভরত গপলটায রক গদপরয় কযা পরয় থাপরক গপলটায রক রাআ ধযপরনয add_filter() এফাং remove_filter() পাাংন খফ গরতবনড একগট কথা গপলটায রকপরক গযটানড কযপরত য় ltphp

add_filter($tag $function $priority $accepted_args)

gt

$tag- ডম রকপরক াঅগন ডযগজসটায কযপরত চান $function- ডম পাাংনপরক াঅগন াঅউটপরট গপলটায কপরয ডদখাপরত চান $priority- একগট াআগনটজায াংখযা মা াঅনায গপলটাযপরক িভানাপরয াজাপরফ মগদ ডকান

াংখযা না ডদয়া থাপরক তাপরর এগট ১০ গডপলট গপরপরফ থাপরক $ accepted_args- ডম াংখযক যাযাগভটায একগট পাাংন েি কযপরত াপরয গডপলট গপরপরফ

১ থাপরক াঅনায পাাংপরন ানততাঃ একগট যাযাগভটায থাকপরত পরফ মা গযটানড কযপরফ apply_filter($tag$value)

$tag- গপলটায রপরকয নাভ $value- রপরকয ভধয গদপরয় ডম যাযাগভটায া কযাপরফন

াঅভযা এখন একগট উদাযি ডদখফ ডমখাপরন টাাআপরটর এয েগতটা ওয়াডডপরক ফড় াপরতয াকষপরয রানতয কযফ গনপরচ একগট পলাগগন ডদখন- ltphp

Plugin Name Liton filter

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10

16

Author Md Liton Arefin

Author URI httpliton-onlinecom

add_filter(the_titleliton_modify_title)

function liton_modify_title($content)

return ucwords($content)

gt

পলাগগনগট এগকটপরবট কযায াঅপরগ ডাসট টাাআপরটর ডদখন-

এফায পলাগগনগট এগকটপরবট কযায পরয ডাসট টাাআপরটর ডদখন-

এাআ পলাগগনগট াঅভাপরদয াপরনক ভয়াআ কাপরজ রাগপরত াপরয কাযন াপরনপরকাআ াঅভযা এাআ পযভযাটগট িনদ কগয ঠাৎ কপরযাআ াঅভযা ডাসট টাাআপরটর গরখায ভয় ফড় াপরতয াকষয কযপরত বপরর ডমপরত াগয াঅভযা এাআ কাজগট খফ ডিাট একগট পলাগগন গদপরয় াপরটাপরভগটকবাপরফ কযপরত াগয

17

এখন াঅগভ গকি াগতগযি গফলয় গনপরয় াঅপররাচনা কযফ ডমগপররা ডভপরন চরপরর বগফষযপরতয জনয বার পরফ াঅগভ একগট পাাংন গরপরখগি- add_filter(the_titleliton_modify_title)

function liton_modify_title($content)

return ucwords($content)

একট গফসতাগযত ফরপরর াঅভযা the_title এয ভধয গদপরয় মা া কযফ তা গপলটায কযপরফ এখাপরন াঅভযা ucwords the_title এয ভধয গদপরয় া কপরযগি এফায াঅপরযা টড পভড ডদগখ add_filter(the_title ucwords)

তায ভাপরন পরযা পলাগগনগট পরফ এযকভ- ltphp

Plugin Name Liton filter

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_filter(the_title ucwords)

gt

গক খফ জ রাগপরি এখাপরন ফপরর যাগখ ডম ucwords এগট গযগব কযপরফ the_title মা া কযপরি এফাং াপরটাপরভগটকযাগর গযটানড কযপরফ the_title এ সতযাাং এখাপরন গযটানড এয দযকায ডনাআ এফায াঅগন মগদ গএাআচগ বাডন ৫৩ ফযফায কপরযন তাপরর গনপরচয ভত কপরয anonymous function ফযফায কযপরফন াঅনাযা জাবাগিে ডজকপরয়গয‟য াপরথ গযগচত এগট াপরনকটাাআ এযকভ ltphp

Plugin Name Liton filter

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_filter(the_title function($content)

return ucwords($content)

)

gt

বার কপরয ডদখন ডতা াথডকযটা ডকাথায় গনপরজ গনপরজ কাজ কযপরর এবাপরফ কযপরফন াফশযাআ এগট একট এডবানস ডরপরফপররয কাজ মগদও পলাগগন ফানাপরনায ডকষপরতর এগট এখপরনা াঅদড নয় কাযন াপরনপরকযাআ গএাআচগ বাডন এখপরনা ৪ এাআ ডথপরক ডগপরি সতযাাং এাআ িগতগট একানতাআ গনপরজয জনয

18

এযাকন রক (Action Hooks) Action Hooks পরচছ ড ভসত রক ডমগপররা ওয়াডডপরেপরয রাাআপ াাআপরকর গনপরয় কাজ কপরয Action Hooks রাআ ধযপরনয add_action() remove_action() এাআ রকগপররা কাজ কপরয মখন ডকান ডাসট ডব কযা য় ডাসট াফগর কযা য় কপরভনট কযা য় ডকান বলগ ডাপরসট াথফা ওপরয়ফাাআপরট ডডাযপটায ডজনাপরযট য় এগপররা েগতগট একগট একগট কপরয Actions মখন াআউজায তায এডগভগনপরসটরটয ডভনপরত েপরফ কপরয এগপররা ফাআ Action Hooks এখাপরন াঅভযা কনপরটনটপরক গপলটায কযগিনা াঅভযা ওয়াডডপরেপরয গনগদডষট পাাংনগপররাপরক রক কপরয কাজ কযগি াঅভযা একগট উদাযন ডদগখ- ltphp

Plugin Name Liton Action

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(wp_footer function($content)

echo Hello This is Liton Arefin

)

gt

াঅনাপরদয সগফধাপরথড ডফাোয জনয গনপরচয ভত কপরয গরখন- ltphp

Plugin Name Liton Action

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(wp_footer liton_footer_action)

function liton_footer_action($content)

echo Hello This is Liton Arefin

gt

াঅভযা খফ ডিাট একগট উদাযন গদপরয় ডদখরাভ ডম action রক গকবাপরফ কাজ কপরয গনপরচ ডদগখ াাআপরট ডকভন ডদখায়-

19

উপরযয িগফপরত ডদখন াঅগভ Hello This is Liton Arefin এাআ রাাআনগট গেনট কপরযগি এফাং তা পটাপরযয ফাভ াপর এপরকফাপরয গনপরচ ডদখাপরচছ এফায ডাড ডকাড এ ডদগখ াঅপররাআ এয গজন টা ডকাথায় াঅপরি

উপরয ডদখন পটাপরযয গঠক গনপরচাআ রাাআনগট ডদখাপরচছ এফায াঅপরযকগট ফাসতফ এফাং খফাআ গরতবনড উদাযন ডদগখ এাআ পলাগগনগটয কাজ পরফ মখনাআ ডকান কপরভনট ডাসট পরফ তখনাআ এডগভনপরক ডভাআর াঠাপরফ ডম নতন কপরভনট ডাসট পরয়পরি মগদও ওয়াডডপরে এাআ কাজগট কপরয থাপরক াঅভযা এাআ কাজগট ভযানয়ারী কপরয ডদগখ ltphp

Plugin Name Liton Comments Mail

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(comment_post function()

$email= get_bloginfo(admin_email)

wp_mail(

$email

New Comment Posted

A new comment has been left on your blog

)

)

gt

এখাপরন comment_post নাপরভয রপরক একগট ডবগযপরয়ফর $email ndashএ এডগভন ডভাআরপরক ডসটায কপরযগি মাপরত কপরয ডাাআনাগভক বাপরফ ড ডমপরকান াাআপরটয এডগভন ডভাআরপরক গডপরটকট কযপরত াপরয তপরফ এপরকষপরতর মগদ bloginfo(admin_email) ফযফায কযা ত তাপরর এডগভন ডভাআরপরক গডপরটকট কযত গকনত get_bloginfo(admin_email) ফযফায কযায পপরর াঅভযা াআপরভাআর বযারগটপরক গযটানড কপরয ডসটায কযগি এফাপরয ওয়াডডপরেপরয গফলটাআন ডভাআর পাাংন wp_mail(emailsubjectmessage) এয ভত কপরয গরপরখগি বার কপরয ডদখন পলাগগনগট এগকটপরবট কপরয ডদখন াঅনায াাআট মগদ ানরাাআপরন থাপরক তাপরর গনপরজাআ একগট কপরভনট কপরয ডদখন াঅনায এডগভন ডভাআপরর একগট ডভাআর চপরর ডগপরি

20

াধযায়- চাযাঃ পলাগগন ডকাগডাং সটযানডাডড

পলাগগন এগকটপরবনগডএগকটপরবন পাাংন াঅগন মখন একগট পলাগগনপরক এগকটব কপরযন তখনাআ এগকটপরবন পাাংন গিগায য় এাআ পাাংনপরক register_activation_hook() ফপরর ltphp register_activation_hook($file $function) gt

Parameters

$file- োাআভাগয পলাগগন পাাআপররয াথ

$function- ডম পাাংনগট গিগায পরফ মখন পলাগগন এগকটপরবট য় ডমভনাঃ- ltphp

register_activation_hook(__FILE__ bdquoliton_plugin_install‟)

function liton_plugin_install()

do something cool stuff

gt

াঅভযা একগট পলাগগন ফানাাআ এবাপরফ-

ltphp

Plugin Name Liton Version

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

register_activation_hook(__FILE__ liton_plugin_install)

function liton_plugin_install()

If(version_compare(get_bloginfo(version)51lt))

deactivate_plugins(basename(__FILE__))

deactivate our plugin

gt

মখন াঅভযা পলাগগন গডএগকটপরবট কগয তখন পলাগগন গডএগকটপরবন পাাংন কর য়

21

ltphp

register_deactivation_hook ($file $function) gt

-

ltphp

register_deactivation_hook (__FILE__ bdquoliton_plugin_install‟)

function liton_plugin_install()

do something

gt

াঅপরযকগট গরতবনড গফলয় র াঅনাআনসটর ওয়াডডপরে াঅনাপরক পলাগগন াঅনাআনসটর এয জনয রগট ান গদপরচছ- uninstallphp file and the uninstall hook

uninstallphp

এগট ডভাটাভগট েনপরমাগয িগত এ ডভথড ফযফায কযায জনয াঅনাপরক uninstallphp নাপরভ একগট পাাআর ততগয কযপরত পরফ াঅনায পলাগগন গডপরযকটগযপরত পাাআরগট গনপরচয ভত পরফ- ltphp

মগদ ওয়াডডপরে এগকসট কযায াপরথ াঅনাআনসটর কর কযা না য় If(defined(bdquoWP_UNINSTALL_PLUGIN‟))

exit()

delete_option(bdquoliton_plugin_options‟)

াগতগযি ান এফাং কাসটভ ডটগফর ভপরি ডপরন gt

Uninstall Hook

গিতীয় িগত র Uninstall Hook মগদ াঅগন ডকান পলাগগনপরক গডগরট কযপরত চান এফাং uninstallphp পাাআর না থাপরক তাপরর এাআ রক এগকসগকউট য়(মগদ থাপরক) ltphp

register_uninstall_hook($file$function)

gt

22

ডকাগডাং সটযানডাডড পলাগগন ফানাপরফন গকনত াঅনায ডকাড ডকভন পরফ গচনতা াঅপরত াপরয ওয়াডডপরে াঅনায জনয একগট সটযানডাডড গদপরয় গদপরয়পরি মা াঅনাপরক ওয়াডডপরেপরয জনয পলাগগন গরখপরত ডগপরর পপররা কযপরতাআ পরফ httpcodexwordpressorgWordPress_Coding_Standards

ডফগক একগট উদাযন গদরাভ গনপরচ- ltphp

Short description

Longer more detailed description

param type $varname1 Description

param type $varname2 Description

return type Description

function boj_super_function( $varname1 $varname2 )

do function stuff

gt

গএাআচগ সটানডাডড াঅভযা াপরনপরকাআ গএাআচগয টড পভড(lt gt) ফযফায কগয এটা মপিডরপর ফজডন করন কাযন াপরনক ডাগসটাং ডকামপাগনপরতাআ এটা গডপলট গপরপরফ ফনধ কপরয ডদয়া থাপরক সটযানডাডড টযাগ ফযফায করন(ltphp gt)

এগকউএর ডসটটপরভনট পলাগগন ততগযয ভয় াঅনাপরক াপরনক ভয়াআ ডাটাপরফ ডথপরক াআনপযপরভন গনপরত পরত াপরয াপরনক রাাআপরনয ডকাড গরখপরত পরত াপরয ডপরকষপরতর বার েযাকগট পরচছ এগকউএর এয কভানড গপররা ফড় াপরতয াকষপরয ডরখা ডমভন- SELECT username FROM table1 WHERE status = active

23

াধযায়- াাচাঃ ওয়াডডপরেপরয াপরথ াআগনটপরেন

ডভন এফাং াফ ডভন ততগয করন াঅভযা াপরনক পলাগগপরনাআ ডদগখ ডম একগট ডভন াঅাআপরটভ গপরপরফ াঅভাপরদয ডযাপরফাপরডড ডদখপরত াাআ এফাং ডাআ ডভনপরত গিক কযপরর ডগটাং ডজ াঅপর ডখাপরন পলাগগপরনয মাফতীয় ডগটাং গদপরয় াঅভযা পলাগগন কনগপগায কগয এফায এাআ চভৎকায কাজগট কযফ াঅভযা

ট ডরপরবর ডভন েথভ িগত পরচছ একগট ট ডরপরবর ডভন ততগয কযা ডমগট াঅভযা ডযাপরফাপরডড ডভন গরপরসট একগট নতন াঅাআপরটভ গপরপরফ ডমাগ কযফ ডভন ততগয কযায জনয াঅনাপরক add_menu_page( ) পাাংন ফযফায কযপরত পরফ ltphp

add_menu_page( page_title menu_title capability menu_slug functionicon_url

position )

gt

add_menu_page() পাাংন গনপরচয যাযাগভটাযগপররা াপরাটড কপরয page_title- াঅনায ডপরজয টাাআপরটর গক পরফ lttitlegt tag এয ভপরধয menu_title- ডযাপরফাপরডড াঅনায ডভনয নাভ capability- ফডগনমন capability রাগপরফ একগট ডভন গবউ পরত menu_slug- সলাগ নাভ মা ডভনপরক ডযপায কপরয- তপরফ এগট াআউগনক পরত পরফ function- একগট ডপরজয কনপরটনট ডদখপরত ডম পাাংন কর কযা য় icon_url- একগট কাসটভ াআপরভজ গরঙক ডভন াঅাআকন ডদখাপরনায জনয position- ডভনয গজন াডডায ডমখাপরন এটা ডদখাপরনা পরফ

এফায াঅভযা একগট ফাসতফ উদাযন ডদখফ- ltphp

Plugin Name Liton Menu

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action( admin_menu liton_menu)

function liton_menu()

24

create custom top-level menu

add_menu_page( Liton Menu Page Liton Menu Page manage_options

__FILE__ liton_menu_settings_page plugins_url( imageswp-logopng

__FILE__ ) )

gt

াঅভযা একগট ট ডরপরবর ডভন ততগয কযরাভ ডদখন ডযাপরফাপরডড ডকভন ডদখায়-

Liton Menu Page নাপরভ একগট ডভন ততগয পরয় ডগপরি এফাপরয াঅভযা াফপরভন কযফ ভাপরন Liton Menu Page এয গনপরচ গকি ডগটাং ডভন(মগদ েপরয়াজন য়) াফ ডভন ডযগজসটায কযায জনয add_submenu_page( ) পাাংন ফযফায কযা য় ltphp

add_submenu_page( parent_slug page_title menu_title capabilitymenu_slug

function )

gt

parent_slug- ডভন সলাগ মা াঅভযা াঅপরগ গডপাাআন কপরযগি menu_slug- মা ডভনপরক াফপরভনপরত ডযপায কযপরফ ফাগক পাাংনগপররা াঅপরগয ভতাআ

এফায াফপরভনয জনয গকি াগতগযি ডকাড ডমাগ কগয create submenu items

add_submenu_page( __FILE__ About My Plugin About manage_options

__FILE___about liton_menu_about_page )

add_submenu_page( __FILE__ Help with My Plugin Help

manage_options

__FILE___help liton_menu_help_page )

add_submenu_page( __FILE__ Uninstall My Plugin Uninstall

manage_options

__FILE___uninstall liton_menu_uninstall_page )

25

পরযা ডকাডগট পরফ এযকভ- ltphp

Plugin Name Liton Menu

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action( admin_menu liton_menu

)

function liton_menu()

create custom top-level menu

add_menu_page( Liton Menu Settings Page Liton Menu Page

manage_options __FILE__

liton_menu_settings_page

plugins_url( imageswp-logopng __FILE__ ) )

create submenu items

add_submenu_page( __FILE__ About My Plugin About manage_options

__FILE___about liton_menu_about_page )

add_submenu_page( __FILE__ Help with My Plugin Help

manage_options

__FILE___help liton_menu_help_page )

add_submenu_page( __FILE__ Uninstall My Plugin Uninstall

manage_options

__FILE___uninstall liton_menu_uninstall_page )

gt

গনপরচ ডদখন াফপরভনগপররা ততগয পরয় ডগপরি-

26

ডভনপরক াঅপরগয ডভনয াপরথ মি কযা এফায াঅগ গিতীয় িগতপরত মগদ াঅনায পলাগগপরনয একগট ভাতর ডজ থাপরক একগট ভাতর ডপরজাআ াঅনায কর ডগটাং পরয় মায় তাপরর এাআ িগত েন করন ডমভন ডয়াগযাং াাআটগপররায জনয রধ াঅনায াঅাআগডপযানপরপরজয াঅাআগড দযকায য় এযকভ পলাগগন এধযপরনয পলাগগপরনয জনয াঅনায াগতগযি ডভন ততগয কযায দযকায ডনাআ ফযাং এপরত কপরয াআউজায গফযি ডফাধ কযপরত াপরযন এ ধযপরনয পলাগগনগপররা ডগটাং এয াফপরভন গপরপরফ থাপরক add_options_page() এাআ পাাংন গদপরয় এফ ডভন ডযগজসটায কযা য় ltphp

add_options_page( page_title menu_title capability

menu_slug function)

gt

এফায চরন এযকভ একগট ডভন ততগয কগয- ltphp

Plugin Name Liton Sub Menu

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action( admin_menu liton_submenu)

function liton_submenu()

create a submenu under Settings

add_options_page( Liton Menu Settings Page Liton Menu Page

manage_options __FILE__

liton_menu_settings_page)

27

gt

াফপরভন ততগয পরয় ডগপরি চরন ডদগখ ডযাপরফাপরডড ডকভন ডদখায়-

এপরকফাপরয গনপরচয গদপরক ডদখন Liton Menu Page নাপরভ একগট ডভন ততগয পরয়পরি

উাআপরজট ততগয কযা উাআপরজট ততগয কযায জনয ওয়াডডপরে WP-Widget িা গদপরয় ততগয কযা য় উাআপরজট এয একগট পযভযাট ডদখন গনপরচ ltphp

class My_Widget extends WP_Widget

function My_Widget()

processes the widget

function form($instance)

displays the widget form in the admin dashboard

function update($new_instance $old_instance)

process widget options to save

function widget($args $instance)

displays the widget

gt

28

উাআপরজট ডযগজসটায কযায জনয widget_init() পাাংনপরক রক কযা য় চরন একগট উাআপরজট ততগয কগয- ltphp

Plugin Name Liton Widget

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

class Messager extends WP_Widget

function __construct()

$params=array(

description =gtDisplay message to readers

name =gt Message

)

parent__construct(Messager $params)

public function form()

public function widget()

add_action(widgets_initliton_register_message)

function liton_register_message()

register_widget(Messager)

gt

29

খফ াধাযন একগট উাআপরজট পলাগগন এগট াঅভযা াআউজাযপরদযপরক একগট ডভপরজ ডদখাপরফা াাআডফাপরয ডটাাআ কযায ডচষটা কযগি এখন পলাগগনগট এগকটপরবট কপরয ডদগখ-

াঅভাপরদয উাআপরজটগট ডদখাপরচছ এফায াঅপরযা গকি পাাংনার কাজ কগয এগট মগদ াাআডফাপরয ডরাগ কপরয ডদন তাপরর ডকান কাজ কযপরফ না কাযন াঅভযা এখপরনা গকিাআ কগযগন পভড পাাংপরন গকি কাজ কগয মা উাআপরজট টাাআপরটর গপরপরফ ডদখাপরফ- public function form($instance)

extract($instance)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title)gtgtTitle ltlabelgt

ltinput

class=widefat

id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt

value=ltphp if(isset($title)) echo esc_attr($title) gt gt

ltpgt

ltphp

াঅভযা উপরয class=widefat ফযফায কপরযগি এাআ িা ফযফায কযায কাযপরন পভড এয াআনট গপলডগট াপরনক সনদয পরয়পরি

30

মগদ এাআ িা ফযফায না কগয তাপরর ডকভন ডদখাপরফ গনপরচ ডদখন-

াঅভাপরদয উাআপরজট পলাগগনগটয ডকাড গনপরচ ডদওয়া র ltphp

Plugin Name Liton Widget

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

class Messager extends WP_Widget

function __construct()

$params=array(

description =gtDisplay message to readers

name =gt Message

)

parent__construct(Messager$params)

31

public function form($instance)

extract($instance)

print_r($instance)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title)gtgtTitle ltlabelgt

ltinput

class=widefat

id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt

value=ltphp if(isset($title)) echo esc_attr($title) gt gt

ltpgt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(description)gtgtDescription

ltlabelgt

lttextarea

class=widefat

rows=10

id=ltphp echo $this-gtget_field_id(description) gt

name=ltphp echo $this-gtget_field_name(description) gtgtltphp

if(isset($description)) echo esc_attr($description) gtlttextareagt

ltpgt

ltphp

public function widget($args$instance)

extract($args)

extract($instance)

echo $before_widget

echo $before_title$title$after_title

echo ltpgt$descriptionltpgt

echo $after_widget

add_action(widgets_initliton_register_message)

function liton_register_message()

32

register_widget(Messager)

gt

এফায াঅভযা ডযাপরফাডড ডথপরক একগট ডভপরজ ডদফ গবগজটযপরদযপরক-

াঅভযা এাআ উাআপরজটগট ডাাআনাগভক বাপরফ কপরযগি কাযন এখাপরন lth2gt lth3gt lth4gt এ ধযপরনয ডকান টযাগ াঅভযা ফযফায কগযগন াঅভযা গথভ ডডপরবর কযগিনা সতযাাং এ কাজগট াঅভাপরদয ানযবাপরফ কযা দযকায গির এগট গথভ ডডপরবরায ডদগখপরয় ডদপরফন ডম ডকভন টযাগ পরফ াাআডফাপরয াাআপরটয াাআডফাপরয ডকভন ডদখায় তা ডদখন- াঅভযা রগট গথপরভ এগট ডটসট কপরয ডদখফ েথভগট টপরয়গনট াআপররপরবন

33

এফায াঅপরযকগট গথপরভ ডদগখ-

34

াধযায়- িয়াঃ পলাগগন পাাংন

গকি ডফগক পাাংন __() পাাংন

__() পাাংনগট গএাআচগপরত াঅনায ডটকসটপরক ডযগড কপরয িানসপররন এফাং গযটানড কপরয উদাযন গপরপরফ াঅগন একগট বযারপরক __() পাাংপরনয ভপরধয ডবগযপরয়ফর গদপরয় assign করন ভপরন যাখপরফন এাআ পাাংনগট রগট াঅনডাযপরিায(_) গদপরয় গগঠত একগট নয় ltphp

$text=__(bdquoWordpress is a wonderful publishing platform‟‟liton_plugin‟)

gt

_e() পাাংন _e() পাাংনগট াঅনায ডটকসবপরট ডরাকারাাআজ কপরয এটা গএাআচগপরত echo এয ভত কাজ কপরয ডকান ডটকসটপরক গিপরন ডদখাপরনায জনয এফায একট ভজা কগয মা রপরক ডদপরখগি াঅপরগাআ- _e() পাাংনগট গদপরয় াঅপরগয পলাগগনগট এগডট কযফ ltphp

Plugin Name Liton Action

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(wp_footer liton_footer_action)

function liton_footer_action()

Output the translated text

_e( This site runs off the coolest platform ever ampmdash

WordPress

liton-plugin )

gt

35

এফায াঅউটট ডদগখ

esc_attr__() পাাংন এাআ পাাংনগট esc_attr() এয ভত এগট এাআচগটএভএর এগিগফউটপরক escape কপরয াঅভযা এফায esc_attr__() এফাং __() এাআ রগট পাাংনপরক একগট কপরয পলাগগন ততগয কযফ ltphp

Plugin Name Liton Esc Attr

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

A function that returns a link to the sites terms of service

page

function liton_terms_of_service_link()

return lta href=httpliton-onlinecomtos title=

esc_attr__( Visit the Terms of Service page boj-plugin ) gt __( Terms of

Service liton-plugin ) ltagt

Display the output of the liton_terms_of_service_link()

function

echo liton_terms_of_service_link()

gt

পলাগগনগটয াঅউটট ডদখন-

36

এযকভ াঅপরযা গকি পাাংন াঅপরি ডমগপররা াঅনাযা ডদপরখ ডনপরফন াআনটাযপরনট ডঘপরট

esc_html__() Function

esc_attr() Function

esc_url() Function

esc_js() Function

esc_html() Function

esc_attr_e() Function

esc_html_e() Function

_x() Function

_ex() Function

esc_attr_x() Function

esc_html_x() Function

_n() Function

_nx() Function

_n_noop() Function

_nx_noop() Function

Translation

bull Poedit httppoeditnet

bull GlotPress httpglotpressorg

bull Launchpad httpstranslationslaunchpadnet

bull Pootle httppootlelocamotionorg

bull KBabel httpi18nkdeorg

bull GNU Gettext httpgnuorgsoftwaregettext

GlotPress এখন ওপরয়ফ ডফড টর গপরপরফ ফযফায কযা পরচছ ওয়াডডে েপরজপরকটয ডিপরন একজন াথফা গটপরভয জনয িানসপররগটাং পটওয়যায গপরপরফ

37

াধযায়- াতাঃ পলাগগন গগকউগযগট

গগকউগযগট কগমপউটাপরযয বালায় ldquoগগকউগযগটrdquo ভাপরন বীগতকয একগট বদ ডমভন Cross Site

Scripting(XSS) Cross Site Request Forgery(CSRF) SQL Injection Privilege

Escalation Vulnerabilities এফাং Holes রফডর ডকাড একগট াবডাপরযয সযকষায জনয রভকীয কাযন পরত াপরয

পলাগগপরনয গগকউগযগট গক াঅনায পলাগগনগট ডমন গগকউয য় vulnerabilities data integrity এফাং reliability ডথপরক

াঅনায পলাগগনপরক গক গগকউগযগট ডদপরফন ওয়াডডপরে এনবায়যনপরভপরনট াঅনায পলাগগনপরক গগকউগযগট ডদয়া খফ কগঠন কাজ নয় এফাং খফ ভয় াপরকষ গফলয়ও নয় ওয়াডডপরেপরয গনজসব গকি পাাংন এপরকষপরতর াঅনাপরক খফাআ াাময কযপরফ

াআউজায াযগভন াঅভযা াপরনক পলাগগন াআনসটর কযায পরযাআ ডদপরখগি ডম মখনাআ এডগভন যাপরনর এ েপরফ কযপরত মাাআ তখন একগট এযয ডভপরজ াঅপর ডভপরজগট গনপরচয ভত-

ডরখা াঅপরি- You do not have sufficient permissionshellip এটা গনশচয়তা ডদয় ডম ডমপরকান এযাকন ীভাফি থাপরক গনগদডষট গকি যাাআট গদপরয় ওয়াডডপরেপরয একগট কভন পাাংন র current_user_can() একগট উদাযন ডদাআ-

38

ltphp

Capability

if ( current_user_can(install_plugins) )

wp_die( Insufficient permissions )

Role

if( current_user_can(editor) )

wp_die( You cannot edit this setting )

gt

খফ তাড়াতাগড় াঅগন এাআ current_user_can() পাাংন ডচক কযপরফন না কাযন এটা গনবডয কযপরফ get_currentuserinfo() এাআ পাাংপরনয উপরয াঅয এয ফযফাপরয ীভাফিতা াঅপরি এটা একগট পলাপরগফর পাাংন(pluggable function) াঅয এয ডরাপরকন পরচছ wp-

includespluggablephp মা পলাগগন এগকটব ফায য ডরাড য়

Nonces

ডকউ এগটপরক াঅফায Nonsense( গনপরফডাধ) বাফপরফন নাএগট ওয়াডডপরেপরয বালায় Nonces কগমপউটাপরযয বালায় nonce ফা cryptographic nonce পরচছ ldquonumber used once rdquo এটা ডিাট এফাং সপষট গকি য যানডভ গসটরাং ডমভন- াওয়াডড মা গকি গনপরদড কপরয Nonce গপরডন গপলড পভডপরক Retrieve ফা display কপরয-

একজন ওয়াডডপরে াআউজায ডমপরকান একগট এযাকন (delete update save and such) একগট াফপরজকট(একগট ডাসট পলাগগন ডগটাং াআতযাগদ) ২৪ ঘনটায একগট ভয় ডিভ

ডমভন ডাসট 50 গডগরট কযপরফন াঅনায ওয়াডডপরে বলগ ডথপরক তাপরর াঅনায গরঙকগট পরফ এযকভ- httpexamplecomwp-admin

postphppost=43ampaction=trashamp_wpnonce=83a08fcbc2

এখাপরন 83a08fcbc2 এগট র nonce মা ২৪ ঘনটা সথায়ী থাপরক রধভাতর এগট মগদ াঅনায িাযা ফযফরত য় এফাং গডগরট য় ডাসট 50 মখন াঅগন গরপরঙক গিক কপরযন ফপরচপরয় গযতবনড র ডম Nonce ডকান malicious াআউজায ফেপরত াপরযনা এফাং গঠক গরঙক িাড়া nonce এযয ডপরজ চপরর মায় ডমখাপরন াযগভন থাপরক না াঅপরযা গফসতাগযত ডদখন httpcodexwordpressorgWordPress_Nonces

39

Nonce URL ততগয এফায চরন াঅপরগয উদাযন ডথপরক Nonce URL ততগয কগয একগট ডাসট গডগরট কযায জনয wp_nonce_url() পাাংন ফযফায কযা য় ltphp

$url = wp_nonce_url( $url $action )

gt

েথভ যাযাগভটায $url পরচছ গসটরাং URL এপরডর এয মাপরক াঅগন কপরয়যী গসটরাং এয Nonce কযপরত চান াফযফহরত পলাগগপরনয গডগরট গরঙক এযকভ থাপরক- httpexamplecomwp-admineditphppage= liton

_utagsampliton_action=deleteampid=6

এখাপরন ডদখন যাযাগভটায liton_action এফাং এয টযাগ াঅাআগড গিতীয় যাযাগভটায পরচছ $action একগট গসটরাং মা াঅগন একগট াফপরজকট এয জনয একগট action ততগয কযপরফন উপরয ডদখরাভ delete এযাকন এয টযাগ াঅাআগড 6 সতযাাং $action যাযাগভটায পরত াপরয bdquoliton_utags-delete_tag6‟ গনপরচ ফাসতফ উদাযন ডদগখ- ltphp

$delete_url = add_query_arg(array( liton _action=gtdeleteid=gt$id) )

$nonced_url = wp_nonce_url( $delete_url bdquoliton _utags-delete_tag$id )

gt

lta href=ltphp echo $nonced_url gtgtdeleteltagt

এাআ টযাগগট পরফ গডগরট গরঙক এখাপরন add_query_arg() পাাংন ফযফায কযা পরয়পরি মা কাপরযনট URL ডক এযাপরয যাযাগভটায এয ভপরধয যাপরখ ানযবাপরফ ফরপরর এগট ডমাগ কপরয এযকভাঃ liton_action=deleteampid=6 amp liton_action=deleteampid=6

Nonce Form ততগয Nonce পভডপরকও ডোপরটকট কপরয wp_nonce_field() পাাংপরনয ভাধযপরভ ltphp

wp_nonce_field( $action $name $referer $echo ) gt

$action ( string) (optional) - action নাভ াআউগনক identifier optional

গকনত recommended $name (string) (optional) ndash গপরডন গপলড পভড ডবগযপরয়ফর নাভ $referer (boolean) (optional) ndash গডপলট গপরপরফ true থাপরক ডমখাপরন গপলড

ডবগরপরডন এয দযকায য়

40

$echo (boolean) (optional) - গডপলট গপরপরফ true থাপরক ডমখাপরন াঅউটট ডদখাপরনায ফা গপরডন পভড গপলড গযটানড কযায জনয দযকায য়

পপরভড াঅনায action এয নাভ গদন ltform method=postgt

lt-- some inputs here --gt

ltphp wp_nonce_field(name_of_my_actionname_of_nonce_field) gt

ltformgt

াঅভযা একগট পলাগগন ফানাপরফা ডমখাপরন াফযফরত টযাগগপররাপরক াঅভযা ভযানয়াগর গডগরট ফা গযপরনভ কযপরত াযফ এগট একট ফড় গকনত াপরনক গফলয়াআ াঅপরগাআ াঅপররাচনা কযা পরয়পরি ডদখপররাআ ফেপরত াযপরফন একগট ফাসতফধভডী উদাযন গনপরচ গদরাভ- ltphp

Plugin Name Liton Unused Tags

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add an entry for our option page to the Posts menu

add_action(admin_menu liton_utags_add_page)

function liton_utags_add_page()

add_posts_page( Unused Tags Unused Tagsmanage_optionsliton_utags

liton_utags_option_page )

Catch any liton_action parameter in query string

add_action( admin_init liton_utags_do_action )

Proceed to requested liton_action if applicable

function liton_utags_do_action()

if( isset( $_REQUEST[liton_action] ) )

return

if( current_user_can( manage_options ) )

wp_die( Insufficient privileges )

41

$id = $_REQUEST[id]

$action = $_REQUEST[liton_action]

if( $action == done )

add_action( admin_notices liton_utags_message )

return

check_admin_referer( liton_utags-$action_tag$id )

switch( $action )

case rename

$newtag = array( name =gt $_POST[name] slug =gt

$_POST[name] )

wp_update_term( $id post_tag $newtag )

break

case delete

wp_delete_term( $id post_tag )

break

wp_redirect( add_query_arg( array( liton_action =gt done )

) )

Admin notice

function liton_utags_message()

echo ltdiv class=updatedgtltpgtAction

completedltpgtltdivgt

Draw the tag management page

function liton_utags_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtUnused Tagslth2gt

ltphp

if( $tags = liton_utags_find_orphans() )

echo ltpgtYou currently have count( $tags ) unused

tagsltpgt

echo ltolgt

foreach( $tags as $tag )

42

$id = $tag-gtterm_id

$name = esc_attr( $tag-gtname )

$delete_url= add_query_arg(

array(liton_action=gtdeleteid=gt$id) )

$nonced_url= wp_nonce_url( $delete_url

liton_utags-delete_tag$id )

gt

ltligt

ltform action= method=postgt

ltphp wp_nonce_field( liton_utags-rename_tag$id )

gt

ltinput type=hidden name=liton_action

value=rename gt

ltinput type=hidden name=id value=ltphp echo

$id gt gt

ltinput type=text name=name value=ltphp echo

$name gt gt

ltinput type=submit value=Rename gt or

lta href=ltphp echo $nonced_url gtgtdeleteltagt

this tag

ltformgt

ltligt

ltphp

else gt

ltpgtYou have no unused tagsltpgt

ltphp endif gt

ltolgt

ltdivgt

ltphp

Find unused tags return them in an array

function liton_utags_find_orphans()

global $wpdb

$sql = SELECT termsterm_id termsname FROM

$wpdb-gtterms terms

INNER JOIN $wpdb-gtterm_taxonomy taxo

ON termsterm_id=taxoterm_id

WHERE taxotaxonomy = post_tag

43

AND taxocount=0

return $wpdb-gtget_results( $sql )

gt

ডযাপরফাপরডড এাআ পলাগগপরনয ডভন াওয়া মাপরফ ডাসট এয াফপরভন গপরপরফ গনপরচ ডদখন-

এফায পলাগগন ডভনপরত গিক কপরয ডদগখ পলাগগপরনয ডবতপরযয কাজ-

উপরয ডদখন াঅগভ একগট টযাগ ততগয কপরযগিরাভ l i নাপরভ এগট এখাপরন ডদখাপরচছ াঅগভ চাাআপরর এগট এগডট ফা গডগরট কযপরত াগয এফায গডগরট গরঙক এ ভাউপরয কাডয ডযপরখ গনপরচ গরঙক ডদখন ফা গডগরট করন একগট টযাগ াঅভায এখাপরন URL গট এযকভ httplocalhostdev-litonwp-

admineditphppage=liton_utagsampliton_action=doneampid=4amp_wpnonce=30a44b7

986

এখাপরন াঅগভ liton_action=done ফযফায কপরযগি Nonces এয পাাংনগপররায নাভ গনপরচ গদরাভ াঅনাযা ডদপরখ গনপরফন াআনটাযপরনট ডথপরক wp_nonce_field()

wp_nonce_url()

wp_verify_nonce()

wp_create_nonce()

44

check_admin_referer()

check_ajax_referer()

ডাটাপরফ াঅনাযা ডমপরত গএাআচগ গনপরয় কাজ কপরযন এগকউএর ডাটাপরফ এয াপরথ ফাাআ কভপরফী গযগচত এয গনটযাকস গপররা ডভাটাভগট ফায জানা একাআ বাপরফ াপরনপরকাআ ওয়াডডপরেপরও ডাটাপরফ ডকাড গরপরখন এটা ডকাগডাং এয জনয খাযা গদক াঅগভ নযভার গএাআচগ- এগকউএর ডকাড এয উদাযন গদগচছ- ltphp

$sql=rdquoINSERT INTO $wpdb-gtposts(post_title) VALUES(bdquo$title‟)rdquo

$wpdb-gtquery($sql) gt

এফায ওয়াডডপরেপরয সটযানডাডড ডকাগডাং গপরসটভ ডদখন- ltphp

$wpdb-gtinsert($wpdb-gtposts

array(bdquopost_title‟ =gt $title)

array(bdquos‟)

)

gt

ডাটাপরফ গগকউয কযায জনয াঅপরডট াাপরযন ডদখাফ- গনপরচয ডকাডগট খাযা েযাকগট ltphp

$wpdb-gtquery(ldquoUPDATE $wpdb-gtposts SET post_title=‟$newTitle‟ WHERE

ID=$my_idrdquo )

gt

উপরযয ভত কপরয না গরপরখ গনপরচয ভত কপরয গরখন- ltphp

$wpdb-gtupdate($wpdb-gtposts

Array(bdquopost_title‟ =gt‟$newTitle‟)

Array(bdquoID‟ =gt$my_id

)

gt

ানর বাপরফ ানযানয াাপরযন গপররা গরখপরফন

45

াধযায়- াঅটাঃ ডরাকারাাআপরজন এফাং Set t i ngs API

ডরাকারাাআপরজন ডরাকারাাআপরজন একগট গরতবনড গফলয় এয পাাংনগপররা র- load_theme_textdomain()

load_plugin_textdomain()

উদাযন- ltphp $var=__(bdquoHello‟‟domain‟) gt

ltphp _e(bdquoHello‟‟domain‟) gt

গফসতাগযত গনপরচয গরপরঙক ডদখন- httpcodexwordpressorgI18n_for_WordPress_Developers

ডগটাং API

ডগটাং API পরচছ াঅগন গকি ান ততগয কযপরফন মা াআনটাযনার বাপরফ াঅনায পলাগগপরন এপলাাআ পরফ মখন াঅগন াআউজায- গডপাাআন ান ততগয কযপরফন াঅনায পলাগগপরনয জনয তখন Settings

API ndashএ াঅনায ডকাড মতটা ারন জ করন Settings API াঅনায ডম কাজগপররা handle কপরয-

ওয়াডডপরেপরক জাগনপরয় ডদয় ডম াঅগন গনজসব ান ফযফায কযপরফন াঅনায াআনটপরক পাাংপরনয ভপরধয উপরেখ কযপরফ ডফগয বাগ ান ডজ গনপরজাআ ততগয কযপরফ $_POST ডাটা গপররাপরক ভগনটয কপরয ান ততগয এফাং াঅপরডট কপরয(মগদ েপরয়াজন য়)

Settings API পাাংন Settings API পাাংপরন গতনগট ডসট থাপরক- ১ েথপরভ ওয়াডডপরেপরক ফপরর ডম াঅগন নতন ডগটাং ফযফায কযপরফন াঅনায পলাগগপরনয জনয ২ এয পরয ডগটাং গডপাাআন করন (text areas input boxes and any

HTML form element) এফাং এপরদযপরক একাপরথ রে কপরয যাপরখ ৩ ওয়াডডপরেপরক াঅনায ডগটাং actual form এ ডদখাপরনায জনয ফপরর

46

এফায াঅভযা একগট পলাগগন ফানাপরফা Administration Page ndashএ ডযপাপরযনস গপরপরফ ডদখপরত াপরযন- httpcodexwordpressorgAdding_Administration_Menus

httpcodexwordpressorgFunction_Referenceadd_options_page

httpcodexwordpressorgAction_ReferenceActions_Run_During_an_Admin_P

age_Request

পলাগগপরনয এডগভন ডজ পরফ এযকভ- httpexamplecomwp-adminoptions-generalphppage=liton_myplugin

েথপরভ াঅভযা ডভন ততগয কযফ াঅপরগয ভত কপরয- Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

এফায ান ডজ এ পভড গনপরয় গকি ডগটাং ডদফ function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

উপরযয ডকাপরড াঅভযা একগট পপরভডয ভপরধয রধ াফগভট ফাটন এফাং My Plugin নাপরভ ডজ ততগয কপরযগি ডযাপরফাপরডড ডদখন-

47

ডগটাং এয াফ ডভন গপরপরফ My Plugin াঅপরি এফাং My Plugin ডত গিক কযপরর াঅভযা উপরযয ডজ ততগয কপরযগি ডমখাপরন াফগভট ফাটনগট ডদখাপরচছ এফায গতনগট যাযাগভটায ডযগজসটায কযফ- ltphp

register_setting( liton _myplugin_options liton _myplugin_options liton

_myplugin_validate_options)

gt

েথভগট ডগটাং রেপরয নাভ গিতীয়গট ান নাভ মা াঅভযা get_option() পাাংন গদপরয়ও ডপরত াগয ততীয়গট করফযাক পাাংন এগট একগট গসটরাং ডযপাপরযনস পাাংন এখাপরন াঅভযা নাভ

48

গদপরয়গি liton _myplugin_validate_options মা া কযপরফ পপরভডয কর ডব ডগটাং াঅভযা এটা পরয গডপাাআন কযফ

ডগটাং গডপাাআন ডকন add_settings_field() এফাং add_settings_section() পাাংন গদপরয় াঅভযা াঅভাপরদয কর ডগটাং গডপাাআন কযফ ltphp

add_settings_section( liton_myplugin_main My Plugin Settings

liton_myplugin_section_text liton _myplugin)

add_settings_field( liton _myplugin_text_string Enter text here

liton _myplugin_setting_input liton _myplugin liton _myplugin_main)

gt

add_settings_section() পাাংন গদপরয় াঅভযা ডদখাফ াঅপরর ডজ এ ডকন ডকভন ডদখাপরফ এয চাযগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ ডকন টাাআপরটর ltH3gt টযাপরগয ভপরধয করফযাক পাাংন এয নাভ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ (page= liton _myplugin এগট

URL এয াাং গপরপরফ থাকপরফ) গিতীয় যাযাগভটায add_settings_field() পপরভডয াআনট গপরপরফ ডদখাপরনা পরয়পরি এখাপরন াাচগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ পরযয গপপরলড গক গেনট কযা পরফ তা ডটকসট গপরপরফ ডদখাপরনা পরয়পরি(Enter text

here)

করফযাক পাাংন পপরভড গেনট কযপরফ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ ডগটাং ডপরজয ডকন গপলড মা add_settings_section() পাাংপরন গডপাাআন

কযা পরয়পরি ltphp

Explanations about this section

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

49

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton _myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name= liton _myplugin_options[text_string]

type=text value=$options[text_string] gt

gt

গিতীয় পাাংন ান বযার text_string ডক এযাপরযপরত ডসটায কপরয ডযপরখপরি এফায াআউজায াআনট বযাগরপরডট কযফ- ltphp

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace([^a-zA-Z]$input[text_string] )

return $valid

gt

পভডপরক ডযনডায কযফ- ltphp

Draw the options page

function liton_myplugin_options_page()

gt

ltdiv class=wrapgt

ltphp

screen_icon()

gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp

settings_fields( liton_myplugin_options)

do_settings_sections(liton_myplugin)

50

gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

settings_fields() পাাংনগট ডযপাপরযনস গপরপরফ ফযফায কযা পরয়পরি মা াঅভযা register_setting() পাাংপরন গডপরিয়ায কপরযগি do_settings_sections() পাাংনগট কর কযপরফ কর াঅউটট ডকন এফাং পভড গপলডপরক মা াঅভযা পরফড গডপাাআন কপরযগি াঅভাপরদয কাজ ডল এফায পরযা পলাগগনগট ডদখফ- ltphp

Plugin Name Settings API example

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

Draw the option page

function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save

Changes gt

ltformgtltdivgt

ltphp

51

Register and define the settings

add_action(admin_init liton_myplugin_admin_init)

function liton_myplugin_admin_init()

register_setting( liton_myplugin_options

liton_myplugin_options

liton_myplugin_validate_options )

add_settings_section( liton_myplugin_main My Plugin

Settings

liton_myplugin_section_text liton_myplugin )

add_settings_field( liton_myplugin_text_string Enter text

here

liton_myplugin_setting_input liton_myplugin

liton_myplugin_main )

Draw the section header

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton_myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name=liton_myplugin_options[text_string]

type=text value=$text_string gt

Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

return $valid

gt

52

ডদখন ডযাপরফাপরডড ডকভন ডদখায়-

পরয় ডগর াঅভাপরদয েথভ নডাাংগ পলাগগন ান ডজ াঅপরযকগট গজগন ডমটায জনয এতগকি পলাগগন URL এপরডর- httplocalhostdev-litonwp-adminoptions-

generalphppage=liton_mypluginampsettings-updated=true

াঅভায এখাপরন এযকভ ডদখাপরচছ ডটকসট ফপরকস ডকান গকি গরপরখ ডব কযায য এফাপরয াঅপরযকগট গজগন ডদখফ াঅভযা াপরনক ভয়াআ াপরনক পলাগগপরনয াআনট গপপরলড বর ডাটা াআনট কযপরর এযয ডভপরজ ডদখায় এাআ কাজগট কযফ এফায াঅভযা এখাপরন esc_attr() ফা esc_html() ফযফায কগযগন সতযাাং াঅভাপরদয গরগভপরটন থাকপরি ডবগরপরডট পাাংনগট একট এগডট কগয গনপরচয ভত কপরয Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

if( $valid[text_string] = $input[text_string] )

add_settings_error(liton_myplugin_text_stringliton_myplugin_texterror

53

Incorrect value enterederror)

return $valid

উপরয ডদখন add_settings_error() পাাংন ফযফায কপরযগি মা এযয ডচক কযপরফ পপরভডয াঅগভ একগট বর ডাটা(পরসপার কযাপরযকটায) াআনট কপরয ডদখরাভ এযয ডদখাপরচছ-

তায ভাপরন াঅভযা পর পরয়গি াঅনায পলাগগনগট এগডট কপরয ডনপরফন ডকায ডকন এফাং গপপরলডয গরসট গদরাভ াঅনাপরদয সগফধায জনয

54

CSSJS পাাআর মি কযা

াঅনায পলাগগপরন গএএ ফা জাবাগিে ডমাগ কযপরত পরত াপরয াঅগন চাাআপরর ফাগপরযয ডকান ফা াঅনায ততগয ডকান গএএ ফা জাবাগিে পাাআর ডমাগ কযপরত াপরযন তপরফ এপরকষপরতর াঅভযা ডমবাপরফ HTML এ পাাআর ডমাগ কগয ডযকভ না function liton_scripts()

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtojqueryjsrdquogtltscriptgt‟

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtoscriptjsrdquogtltscriptgt‟

add_action(bdquowp_head‟‟liton_scripts‟)

এগট মপনডরপর বর িগত গনপরচ ডদখন ওয়াডডপরেপর গকবাপরফ পাাআর মি কযপরত য়- function liton_scripts()

wp_enqueue_script(bdquojquery‟)

wp_enqueue_script(bdquotheme-scripts‟‟pathtoscriptsjs‟)

add_action(bdquowp_enqueue_script‟‟liton_scripts‟)

ানর বাপরফ াঅগন সটাাআরীট ডমাগ কযপরত াপরযন- function liton_styles()

wp_enqueue_ style (bdquocss‟)

wp_enqueue_ style (bdquotheme- styles‟pathto stylescss‟)

ডযপাপরযনস ডদখন- httpcodexwordpressorgFunction_Referencewp_enqueue_script

httpcodexwordpressorgFunction_Referencewp_enqueue_style

টডপরকাড টডপরকাড পরচছ ওয়াডডপরেপরয ডসপগগপক ডসপার টযাগ মা াঅগন ডাসট ফা ডপরজয ভপরধয াআনাটড কপরয ানয ডকান কনপরটনটপরক ওপরয়ফাাআপরটয ভপরধয গযপরপল কযপরত াযপরফন মগদ াঅগন গযারাগয টাাআপরয ডকান পলাগগন ফযফায কপরয থাপরকন তাপরর াঅনায ধাযনা থাকায কথা মাাআ ডাক াঅগভ কপরয়কগট উদাযি ডদখাফ

55

েথপরভ একগট পলাগগন ততগয কযফ ডমখাপরন add_shortcode() নাপরভয একগট পাাংন থাকপরফ এগট রগট যাযাগভটায েন কপরয েথভগট টডপরকাপরডয নাভ গিতীয়গট ডম পাাংনপরক কর কযপরফন ডগট াঅভযা একগট উদাযন ডদগখ- ltphp

Plugin Name Liton Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(litonhi)

function hi()

echo Hello World

gt

উপরয ডদখন খফ ডিাট গকনত াঅগন চাাআপরর এয ফযফায াপরনক গফসতত কযপরত াপরযন এখাপরন টডপরকাড নাভ পরচছ liton াঅয এগটপরক ডরখা য় এবাপরফ [liton] াঅভযা ডাপরসটয ভপরধয াআনাটড কপরয ডদগখ াঅউটট ডকভন ডদখায়-

এফায াঅউটট ডদগখ-

56

াঅভাপরদয ততগয কযা টডপরকাড পরবাপরফাআ কাজ কযপরি াঅপরযকগট উদাযন ডদখফ াঅনাযা াপরনপরকাআ গগর এডপরনস গনপরয় কাজ কপরযন াঅনাযা াপরনপরকাআ এডপরনস এয জনয পলাগগন ফযফায কপরযন গকনত চাাআপররাআ এাআ কাজগট াঅনাযা গনপরজয ভত কপরয াগজপরয় গনপরত াপরযন গগপররয কাপরি ফ ডাসট বযার ায়না াঅনাযা মাযা একসাটড াঅপরিন তাযা এটা বার কপরয জাপরনন তাাআ াপরনপরকাআ গগপররয ডকাড ফ ডপরজ ডদখাপরত চান না এজনয পলাগগন ফযফায কপরয রাব য়না কাযন পলাগগপরন জায়গা গপকসড থাপরক এপরত কপরয াঅগনডাং ও কভ য় াঅনাযা টডপরকাড ফযফায কপরয ডমপরকান জায়গায় এড ডদখাপরত াপরযন গনপরচ াঅগভ রগট টডপরকাড ততগয কপরযগি র‟ধযপরনয এড ডদখাপরনায জনয ltphp

Plugin Name Liton Adsense Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(adsense_468adsense_468_60)

add_shortcode(adsense_250adsense_250_250)

function adsense_468_60($atts)

return ltscript type=textjavascriptgtlt--

57

google_ad_client = ca-pub-0956247412222369

468x60 created 101510

google_ad_slot = 4372705450

google_ad_width = 468

google_ad_height = 60

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

function adsense_250_250($atts)

return ltscript type=textjavascriptgtlt--

google_ad_client = ca-pub-0956247412222369

250x250 created 81809

google_ad_slot = 9368091893

google_ad_width = 250

google_ad_height = 250

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

gt

একগট টডপরকাড ফযানায টাাআপরয জনয এফাং াঅপরযকগট ২৫০২৫০ াাআপরজয এফায ডাপরসট ডমপরকান একগট টডপরকাড াআনাটড করন ডমখাপরন াঅনায ডদখাপরনায েপরয়াজন ভপরন কপরযন াঅগভ রগট ডকাড ডটসট কপরয ডদখরাভ-

58

এফায াাআপরটয াঅউটট ডদগখ-

রগট এডাআ ডদখাপরচছ াঅপরযা াপরনক কাপরজ াঅগন টডপরকাড ফযফায কযপরত াপরযন ডযপাপরযনসাঃ httpcodexwordpressorgShortcode_API

59

াধযায়- নয়াঃ পলাগগন উদাযন

ওয়াডডপরেপরয ডডটটাাআভকপরভনট নামবায ফাাংরা কযায পলাগগন াঅভাপরক কপরয়কজন ফপররগিপররন ওয়াডডপরেপরয গডপলট ডডটটাাআভকপরভনট নামবায ফাাংরা য়না রযাাংগপরয়জ ফাাংরা কযায যও ডডটটাাআভকপরভনট নামবায গপররা াআাংপরযগজ ডথপরক মায় গনপরচয পলাগগনগট ফযফায কপরয ডদখপরত াপরযন- ltphp

Plugin Name Liton Bangla datetimecomment number

Plugin URI httpliton-onlinecomplugins

Description Bangla datetimecomment number

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

This function converts all english numbers to bangla number

function make_bangla_number($str)

$engNumber = array(1234567890)

$bangNumber = array( ১ ২ ৩ ৪ ৫ ৬ ৭ ৮ ৯ ০ ) $converted = str_replace($engNumber $bangNumber $str)

return $converted

add_filter( get_the_time make_bangla_number )

add_filter( the_date make_bangla_number )

add_filter( get_the_date make_bangla_number )

add_filter( comments_number make_bangla_number )

add_filter( get_comment_date make_bangla_number )

add_filter( get_comment_time make_bangla_number )

gt

60

সলাাআডায পলাগগন াঅভযা এাআ ফাআপরয়য কর গটউপরটাগযয়াপরর মা মা গখরাভ তা এফায একগট নডাাংগ পলাগগপরনয এপলাাআ কযফ সলাাআডায পলাগগন মপপরকড াঅভযা ফাাআ জাগন একগট ওপরয়ফাাআপরটয ডচাযা ারপরট ডদয় একগট সলাাআডায াপরনক ডাাআনাগভক ভপরন য় ডদখপরতও াপরনক বার রাপরগ এাআ পলাগগপরন াঅভযা এডগভন যাপরনর ডথপরক াআপরভজ ডমাগ কযফ এফাং তা াঅভাপরদয াাআপরট ডদখাফ চরন কাজ রর কগয- েথপরভ গনপরবা সলাাআডায এয ওপরয়ফাাআপরট মান এফাং jQuery Plugin ডাউনপররাড করন

ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom Version 10

gt

াঅভযা পলাগগপরনয ডডায ততগয কযরাভ

পলাগগন গরপরসট ডদখাপরচছ bdquoLitons Nivo Plugin‟ াঅভাপরদয েথভ কাজ পরচছ custom post

type ওয়াডডপরে পাাংনাগরগট একগট নতন কাসটভ ডজ ততগয কযপরত custom post type

ফযফহরত পরফ ডমখাপরন একগট াআপরভজ থাকপরফ াঅভযা রধ টাাআপরটর ডনভ এফাং াআপরভজ াঅপররাডায গপরপরফ গপচায াআপরভজ পাাংনাগরগট ফযফায কযফ function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_function 600 280 true)

61

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

add_action(init np_init)

উপরযয ডকাপরড np_init() পাাংনগট রক কপরযগি মা ডডায যান কযায াঅপরগ যান পরফ াঅয এজনয register_post_type() পাাংনপরক এয যাযাগভটায গদপরয় np_init() পাাংপরনয ডবতপরয মি কপরযগি এটা মগদ না কযতাভ তাপরর ldquoHeaders already sentrdquo ডভপরজ ডদখাত এাআ ডভপরজগটয াপরথ াপরনপরকাআ গযগচত াঅা কগয register_post_type() পাাংন গদপরয় াঅভযা াআপরভজ মি এফাং ভযাপরনজ কযফ ভরত াঅভযা একগট নতন custom post type ডমাগ কপরযগি np_images নাভ গদপরয় নতন custom post type ডক ডগটাং বযার গপরপরফ াঅযগপরভনট া কপরযগি $args ডবগযপরয়ফরগট ট ডরপরবর ডভন ততগয কপরয াঅপরগাআ ডদপরখগি পলাগগনগট এগকটপরবট কযপরর াঅভযা গনপরচয ভত ডদখপরত াফ-

এফায গিে এফাং সটাাআরীট ডক মি কযফ- add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

এফায রক কযা পাাংনগপররা গডপরিয়ায কগয- function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__) array( jquery ))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

62

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

উপরযয ডকাডগপররা নতন কপরয ফিডনা কযায গকি ডনাআ াঅপরগাআ wp_enqueue_style() এফাং wp_enqueue_script() মপপরকড ফরা পরয়পরি নতন াঅপরযকগট পাাআর ততগয করন একাআ গডপরযকটগযপরত scriptjs এফাং গনপরচয ডকাডটক গদন- jQuery(document)ready(function($)

$(slider)nivoSlider()

)

াআপরভজপরক গযাাআজ করন- add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

াঅভযা এাআ পলাগগনগটপরক উাআপরজট গপরপরফও ফযফায কযফ ডগট পরয ডদখফ াঅপরযকগট গজগন মগদ গথপরভ না ডদয়া থাপরক ডজনয থামবপরনাআর াপরাটড গদপরয় গদন- add_theme_support( post-thumbnails )

এফায ওয়াডডপরেপরয কাপরযনট ডাসট কপরয়যী কযায ডকাড াঅয $result ডবগযপরয়ফপরর ডমফ ltdivgt টযাগ ফযফায কযা পরয়পরি তা jQuery Plugin গট একসিাকট কপরয indexhtml ডজগটয ডভাআন সলাাআডায ডকাডগট ডদখন একাআ াঅপরি রধ ডখানকায ltdivgt টযাগ গপররাপরক কগ কপরয এাআ পলাগগপরন ফযফায কযা পরয়পরি এফায টডপরকাড গদন- add_shortcode(np-shortcode np_function)

এাআ টডপরকাড গএাআচগ পাাংনপরক রক কযপরফ এফাং এয ভধয ডথপরক সলাাআডপরায কনপরটনট ডক গযটানড কযপরফ াঅভাপরদয টডপরকাড পরচছ [np-shortcode] াঅভযা পলাগগপরন মাাআ এফাং একগট িগফ মি কগয গপচাযড াআপরভজ গপরপরফ গনপরচ ডদখন-

63

াঅগভ াঅপরযকগট ডজ ততগয কপরযগি ডমখাপরন টডপরকাড গদপরয়গি

াঅউটট ডজ ডদগখ এফায-

64

পরয় ডগর াঅভাপরদয সলাাআডায পলাগগন পরযা ডকাডগট গনপরচ গদরাভ- ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

65

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

66

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

এফায াঅগন মগদ উাআপরজট গপরপরফ ফযফায কযপরত চান তাপরর গনপরচয ডকাডটক গদন- class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

67

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

echo $after_widget

াঅপরযা রগট কাজ কযপরত পরফ াঅনাপরক এক াআপরভজ াাআজ উাআপরজট এয জনয গঠক কপরয গদপরত পরফ- add_image_size(np_widget 180 100 true)

াঅপরযকগট র উাআপরজট এযাকন রক ডমাগ কযা add_action(widgets_init np_widgets_init)

উাআপরজট পরযা ডকাড াঅফায গদরাভ- ltphp

Plugin Name Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Ciprian Turcu

Version 10

68

class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

69

echo $after_widget

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

70

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(widgets_init np_widgets_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

71

পলাগগন গনপরয় এত ডিাট গযপরয ডরখা মভফ নয় এজনযাআ ভপরন য় পলাগগন গনপরয় ডকউ ডরপরখন না কাযন এখাপরন এত গফলয় াঅপরি মা াঅপররাচনা কযপরত ডগপরর ৫০০ ডজ ায পরয় মাপরফ ডফাোয সগফধাপরথড াঅগভ মথামভফ উদাযন গদপরয় ডফাোপরনায ডচষটা কপরযগি াঅগভ এখাপরন টাপরগডট কপরযগি মাযা টকটাক জাপরন পলাগগন মপপরকড এডবানস ডরপরবপররয নয় কাযন তাযা জাপরনন াঅভায উপরেশয গির মাযা জানপরত চায় তাপরদযপরক জানাপরনা এখাপরন ডমফ গফলয় াঅপররাচনা কযা পরয়পরি তা ডভাটাভগট ভাপরনয একগট পলাগগন ফানাপরনায জনয মপরথষট তপরফ ভাপরনাননয়পরনয জনয াঅনাপরক গনপরজাআ খাপরজ গনপরত পরফ াঅনায জনয ডকানটা বার পরফ াঅগভ রধ গদক গনপরদডনা গদরাভ ভাতর এাআ ফাআগট রধভাতর ওয়াডডপরে রেপরয জনয ডরখা াপরনক বর ভরাগনত থাকপরত াপরয াঅনাযা কষভাসনদয দগষটপরত ডদখপরফন াঅগভ ডচষটা কপরযগি মতটা জ কপরয ডরখা মায় াপরনক ভয় ডদখা মায় ডম খফ ডিাট খাপরটা গফলয় গনপরয় াপরনপরকাআ নক কপরযন এটা গতয রাঃখজনক াঅনাযা গগপরর একট খাজপররাআ ভাধান াপরফন াঅপরগ গনপরজ ডচষটা করন তায পরয ানযপরক ভাধাপরনয জনয গজজঞাা করন াঅভায জনয ডদায়া কযপরফন বাপররা রাগপরর জানাপরফন খাযা রাগপররও জানাপরফন তাপররাআ াঅভায গযশরভ সবাথডক পরফ ভতাভত জাগনপরয় াঅভাপরক ডভাআর কযপরত াপরযন litonice09gmailcom |

72

Page 10: Wordpress Plugin Development

11

Plugin Folder Name( াঅনায পলাগগন ডপালডায নাভ ডকান ডসপ ফা ডসপার কযাপরযকটায থাকা চরপরফ না) Main php file

js ডপালডায( জাবাগিে ফা Jquery file এয জনয) css ডপালডায( সটাাআরগট পাাআপররয জনয) phpinclude ডপালডায ( ানয php পাাআর)

একগট উদাযন ডদাআ পাাআপররয সটরাকচায ডকভন পরফ- litons-first-plugin

indexphp

js

css

includes

images

uninstallphp

পলাগগন ডডায

পলাগগপরনয ডডায িাড়া ডাআ পাাআর ডপালডাযগটপরক ওয়াডডপরে গচনপরত াযপরফ না পলাগগন ডডাযাআ পরচছ একভাতর েপরয়াজনীয় পাাংন মা ওয়াডডপরে দাফী কপরয ভাপরন াঅনাপরক পলাগগন ডরখায ররপরত PHP comment বলপরকয ভপরধয গকি াআনপযপরভন গদপরত পরফ মা এপরকফাপরয পাাআপররয েথপরভ াফসথান কপরয এখাপরন গকি কথা ফপরর যাগখ াঅগন মগদ াাআপরটয এাআও টাপরগডট কপরয পলাগগন ফানান তাপরর ডকান িপরভাআ াঅনায নাভ গদপরয় পলাগগন ফানাপরফন না ডমভনাঃ Litons Plugin এপরত এাআও ডত খাযা েবাফ পরড় গনপরচ উদাযন ডদয়া রাঃ ltphp

Plugin Name Litons Plugin পলাগগপরনয নাভ

Plugin URI httpliton-onlinecomplugin পলাগগপরনয URI Description This is a demo description পলাগগপরনয গফফযন Version 10 পলাগগপরনয বাডন Author Md Liton Arefin পলাগগন ডরখক

Author URI httpliton-onlinecom ডরখপরকয URI

gt

12

উপরযয িগফপরত ডদখন ওয়াডডপরেপরয ডযাপরফাপরডড াঅগভ পলাগগন ডডাপরয মা মা তথয গদপরয়গিরাভ তাাআ ডদখাপরচছ এটাাআ াঅনায োথগভক কাজ াঅগন রাাআপরনসও ডমাগ কযপরত াপরযন এবাপরফ- lt php

Copyright YEAR PLUGIN_AUTHOR_NAME (email PLUGIN AUTHOR

EMAIL)

This program is free software you can redistribute it andor modify

it under the terms of the GNU General Public License as published by

the Free Software Foundation either version 2 of the License or

(at your option) any later version

This program is distributed in the hope that it will be useful

but WITHOUT ANY WARRANTY without even the implied warranty of

MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE See the

GNU General Public License for more details

You should have received a copy of the GNU General Public License

along with this program if not write to the Free Software

Foundation Inc 51 Franklin St Fifth Floor Boston MA 02110-1301 USA

gt

পলাগগন াথ

একগট কভন কাজ র াঅনায পলাগগপরনয পাাআর এফাং ডপালডাযগপররাপরক ওয়াডডপরে াআনসটপররন গডপরযকটগযপরত ডযপায কযা াঅগন এাআ কাজগট রাআ বাপরফ কযপরত াপরযন- ডরাকার াবডায াথ াথফা সটানডাডড URL

13

ডরাকার াবডায াথাঃ ডরাকার াবডায াথ াঅনায কগমপউটাপরযয গডপরযকটগযয ভতাআ ডরাকার াবডায াথ াধাযনত ফযফায কযা য় মখন াঅনাপরক গনপরজয ডরাকার াবডাপরযয গকি পাাআর i ncl ude কযপরত য় একগট কভন েশন র- পলাগগন পাাআপররয াথ ডদখাপরনায গঠক িগত ডকানগট াঅনায পলাগগপরনয ডরাকার াথ ডদখাপরনায জনয াঅনাপরক plugin_dir_path() পাাংন ফযফায কযপরত পরফ plugin_dir_path() পাাংন পলাগগন গডপরযকটগযয গপগজকযার াথ একসিযাকট কপরয পাাআপররয নাভ ডথপরক ltphp plugin_dir_path($file) gt

Parameters

$file-(string)(required)- পলাগগন পাাআপররয নাভ এখন ডদগখ গকবাপরফ পলাগগন ডপালডাপরযয নাভ ডফয কযপরত য়-

ltphp

echo plugin_dir_path(__FILE__)

gt

এখাপরন গএাআচগ কনসটযানট __FILE__ ডক plugin_dir_path পাাংপরনয ভধয গদপরয় া কযারাভ এাআ পাাংন াবডায াথ ডদখাপরফ পলাগগন গডপরযকটগযয public_htmlwp-contentpluginsliton-plugin

একাআবাপরফ াঅগন মগদ plugin_dir_path() এাআ পাাংনপরক মগদ ডকান াফ- গডপরযকটগযয পাাআরপরক ডযপায কগয তাপরর গনপরচয ভত কপরয ডযপায কযপরত পরফ ltphp

echo plugin_dir_path(__FILE__)jsscriptsjs

gt

এাআ ডকাডগট গনপরচয ভত াথ ডদখাপরফ- public_htmlwp-contentpluginsliton-pluginjsscriptsjs

URL াথাঃ াঅপরযা গকি পাাংন াঅপরি ডমগপররা গদপরয় ওয়াডডপরেপরয URL ডদখাপরনা মায়

plugins_url() - পলাগগন গডপরযকটগযয পরযা URL ( ডমভনাঃ httpliton-onlinecomwp-contentplugins)

includes_url() - পরযা গডপরযকটগযয URL include কপরয ( ডমভন httpliton-onlinecomwp-includes)

14

content_url() - পরযা কপরনটনট গডপরযকটগয URL ( ডমভনাঃ httpliton-onlinecomwp-content )

admin_url() - পরযা এডগভন URL

( ডমভনাঃ httpliton-onlinecomwp-admin ) site_url() - কাপরযনট াাআট এয পরযা URL

( ডমভনাঃ httpliton-onlinecom ) home_url() - কাপরযনট াাআট এয পরযা ডাভ URL

( ডমভনাঃ httpliton-onlinecom )

াথ গনপরয় াঅপরযা গফসতাগযত ডদখপরত াপরযনাঃ httpcodexwordpressorgDetermining_Plugin_and_Content_Directories

httpcodexwordpressorgFunction_Referenceplugins_url

httpcodexwordpressorgFunction_Referenceplugin_dir_url

httpcodexwordpressorgFunction_Referenceplugin_dir_path

plugins_url() পাাংন াঅনায উততভ ফনধ পরত াপরয মখন াঅগন পলাগগন ডডপরবর কযপরফন

ltphp

plugins_url($path $plugin)

gt

Parameters

$path-(string)(optional)- গযপররগটব াথ URL $plugin- (string)(optional)- পলাগগন পাাআর মা াঅগন (__FILE__) এয ভাধযপরভ া কযপরত চান ডমভনাঃ ltphp

echo ltimg src=rdquoplugins_url(imagesiconpng__FILE)rdquogt

gt

এয পরযা URL পরফ ltimg src=rdquohttpliton-onlinecomwp-contentpluginsliton-pluginimagesiconpngrdquo gt

15

াধযায়- গতনাঃ রক

ওয়াডডপরে রক( Hook) গক ওয়াডডপরেপর রক ফরপরত াধাযনত add_action() াথফা add_filter() পাাংন ডক ডফাোয় এাআ রগট পাাংনপরক remove_action() াথফা remove_filter() গদপরয় ভপরি ডপরা মায় মগদও াপরনপরকয কাপরি রপরনগি ডম এাআ রগট পাাংপরনয ভপরধয ডকান াথডকয ডনাআ গকনত াঅপরর তা নয় গফযাট াথডকয াঅপরি এ রগট পাাংপরনয ভপরধয াঅগভ ভরত এাআ রগট পাাংন গদপরয়াআ গকি পলাগগন ফাগনপরয় ডদখাফ কাযন খফাআ গরতবিড এাআ রগট পাাংন মপপরকড বাপররাবাপরফ জানা

গপলটায রক (Filter Hooks)

গপলটায রক পাাংপরনয কাজ পরচছ কনপরটনটপরক ভগডপাাআ কযা গপলটায রক গদপরয় টাাআপরটর কনপরটনট াআতযাগদ ভগডপাাআ কযা মায় ডমভন টাাআপরটর এ ডকান টযাগ না থাকা গবগজটয কপরভপরনট ltgt t ag span t ag াআতযাগদ গদপরয় াাআপরটয ডরাঅউপরটয গযফতডন কপরয গদপরত াপরয ভাপরন ডকান কপরভপরনট মগদ এযকভ ht ml ডকাড াড কযা থাপরক তাপরর ডদখপরত খাযা রাগপরফ এগপররা াফশয এখন ওয়াডডপরে াপরটাপরভগটকযাগর কপরয গকনত এাআ কাজগপররা ভরত গপলটায রক গদপরয় কযা পরয় থাপরক গপলটায রক রাআ ধযপরনয add_filter() এফাং remove_filter() পাাংন খফ গরতবনড একগট কথা গপলটায রকপরক গযটানড কযপরত য় ltphp

add_filter($tag $function $priority $accepted_args)

gt

$tag- ডম রকপরক াঅগন ডযগজসটায কযপরত চান $function- ডম পাাংনপরক াঅগন াঅউটপরট গপলটায কপরয ডদখাপরত চান $priority- একগট াআগনটজায াংখযা মা াঅনায গপলটাযপরক িভানাপরয াজাপরফ মগদ ডকান

াংখযা না ডদয়া থাপরক তাপরর এগট ১০ গডপলট গপরপরফ থাপরক $ accepted_args- ডম াংখযক যাযাগভটায একগট পাাংন েি কযপরত াপরয গডপলট গপরপরফ

১ থাপরক াঅনায পাাংপরন ানততাঃ একগট যাযাগভটায থাকপরত পরফ মা গযটানড কযপরফ apply_filter($tag$value)

$tag- গপলটায রপরকয নাভ $value- রপরকয ভধয গদপরয় ডম যাযাগভটায া কযাপরফন

াঅভযা এখন একগট উদাযি ডদখফ ডমখাপরন টাাআপরটর এয েগতটা ওয়াডডপরক ফড় াপরতয াকষপরয রানতয কযফ গনপরচ একগট পলাগগন ডদখন- ltphp

Plugin Name Liton filter

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10

16

Author Md Liton Arefin

Author URI httpliton-onlinecom

add_filter(the_titleliton_modify_title)

function liton_modify_title($content)

return ucwords($content)

gt

পলাগগনগট এগকটপরবট কযায াঅপরগ ডাসট টাাআপরটর ডদখন-

এফায পলাগগনগট এগকটপরবট কযায পরয ডাসট টাাআপরটর ডদখন-

এাআ পলাগগনগট াঅভাপরদয াপরনক ভয়াআ কাপরজ রাগপরত াপরয কাযন াপরনপরকাআ াঅভযা এাআ পযভযাটগট িনদ কগয ঠাৎ কপরযাআ াঅভযা ডাসট টাাআপরটর গরখায ভয় ফড় াপরতয াকষয কযপরত বপরর ডমপরত াগয াঅভযা এাআ কাজগট খফ ডিাট একগট পলাগগন গদপরয় াপরটাপরভগটকবাপরফ কযপরত াগয

17

এখন াঅগভ গকি াগতগযি গফলয় গনপরয় াঅপররাচনা কযফ ডমগপররা ডভপরন চরপরর বগফষযপরতয জনয বার পরফ াঅগভ একগট পাাংন গরপরখগি- add_filter(the_titleliton_modify_title)

function liton_modify_title($content)

return ucwords($content)

একট গফসতাগযত ফরপরর াঅভযা the_title এয ভধয গদপরয় মা া কযফ তা গপলটায কযপরফ এখাপরন াঅভযা ucwords the_title এয ভধয গদপরয় া কপরযগি এফায াঅপরযা টড পভড ডদগখ add_filter(the_title ucwords)

তায ভাপরন পরযা পলাগগনগট পরফ এযকভ- ltphp

Plugin Name Liton filter

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_filter(the_title ucwords)

gt

গক খফ জ রাগপরি এখাপরন ফপরর যাগখ ডম ucwords এগট গযগব কযপরফ the_title মা া কযপরি এফাং াপরটাপরভগটকযাগর গযটানড কযপরফ the_title এ সতযাাং এখাপরন গযটানড এয দযকায ডনাআ এফায াঅগন মগদ গএাআচগ বাডন ৫৩ ফযফায কপরযন তাপরর গনপরচয ভত কপরয anonymous function ফযফায কযপরফন াঅনাযা জাবাগিে ডজকপরয়গয‟য াপরথ গযগচত এগট াপরনকটাাআ এযকভ ltphp

Plugin Name Liton filter

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_filter(the_title function($content)

return ucwords($content)

)

gt

বার কপরয ডদখন ডতা াথডকযটা ডকাথায় গনপরজ গনপরজ কাজ কযপরর এবাপরফ কযপরফন াফশযাআ এগট একট এডবানস ডরপরফপররয কাজ মগদও পলাগগন ফানাপরনায ডকষপরতর এগট এখপরনা াঅদড নয় কাযন াপরনপরকযাআ গএাআচগ বাডন এখপরনা ৪ এাআ ডথপরক ডগপরি সতযাাং এাআ িগতগট একানতাআ গনপরজয জনয

18

এযাকন রক (Action Hooks) Action Hooks পরচছ ড ভসত রক ডমগপররা ওয়াডডপরেপরয রাাআপ াাআপরকর গনপরয় কাজ কপরয Action Hooks রাআ ধযপরনয add_action() remove_action() এাআ রকগপররা কাজ কপরয মখন ডকান ডাসট ডব কযা য় ডাসট াফগর কযা য় কপরভনট কযা য় ডকান বলগ ডাপরসট াথফা ওপরয়ফাাআপরট ডডাযপটায ডজনাপরযট য় এগপররা েগতগট একগট একগট কপরয Actions মখন াআউজায তায এডগভগনপরসটরটয ডভনপরত েপরফ কপরয এগপররা ফাআ Action Hooks এখাপরন াঅভযা কনপরটনটপরক গপলটায কযগিনা াঅভযা ওয়াডডপরেপরয গনগদডষট পাাংনগপররাপরক রক কপরয কাজ কযগি াঅভযা একগট উদাযন ডদগখ- ltphp

Plugin Name Liton Action

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(wp_footer function($content)

echo Hello This is Liton Arefin

)

gt

াঅনাপরদয সগফধাপরথড ডফাোয জনয গনপরচয ভত কপরয গরখন- ltphp

Plugin Name Liton Action

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(wp_footer liton_footer_action)

function liton_footer_action($content)

echo Hello This is Liton Arefin

gt

াঅভযা খফ ডিাট একগট উদাযন গদপরয় ডদখরাভ ডম action রক গকবাপরফ কাজ কপরয গনপরচ ডদগখ াাআপরট ডকভন ডদখায়-

19

উপরযয িগফপরত ডদখন াঅগভ Hello This is Liton Arefin এাআ রাাআনগট গেনট কপরযগি এফাং তা পটাপরযয ফাভ াপর এপরকফাপরয গনপরচ ডদখাপরচছ এফায ডাড ডকাড এ ডদগখ াঅপররাআ এয গজন টা ডকাথায় াঅপরি

উপরয ডদখন পটাপরযয গঠক গনপরচাআ রাাআনগট ডদখাপরচছ এফায াঅপরযকগট ফাসতফ এফাং খফাআ গরতবনড উদাযন ডদগখ এাআ পলাগগনগটয কাজ পরফ মখনাআ ডকান কপরভনট ডাসট পরফ তখনাআ এডগভনপরক ডভাআর াঠাপরফ ডম নতন কপরভনট ডাসট পরয়পরি মগদও ওয়াডডপরে এাআ কাজগট কপরয থাপরক াঅভযা এাআ কাজগট ভযানয়ারী কপরয ডদগখ ltphp

Plugin Name Liton Comments Mail

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(comment_post function()

$email= get_bloginfo(admin_email)

wp_mail(

$email

New Comment Posted

A new comment has been left on your blog

)

)

gt

এখাপরন comment_post নাপরভয রপরক একগট ডবগযপরয়ফর $email ndashএ এডগভন ডভাআরপরক ডসটায কপরযগি মাপরত কপরয ডাাআনাগভক বাপরফ ড ডমপরকান াাআপরটয এডগভন ডভাআরপরক গডপরটকট কযপরত াপরয তপরফ এপরকষপরতর মগদ bloginfo(admin_email) ফযফায কযা ত তাপরর এডগভন ডভাআরপরক গডপরটকট কযত গকনত get_bloginfo(admin_email) ফযফায কযায পপরর াঅভযা াআপরভাআর বযারগটপরক গযটানড কপরয ডসটায কযগি এফাপরয ওয়াডডপরেপরয গফলটাআন ডভাআর পাাংন wp_mail(emailsubjectmessage) এয ভত কপরয গরপরখগি বার কপরয ডদখন পলাগগনগট এগকটপরবট কপরয ডদখন াঅনায াাআট মগদ ানরাাআপরন থাপরক তাপরর গনপরজাআ একগট কপরভনট কপরয ডদখন াঅনায এডগভন ডভাআপরর একগট ডভাআর চপরর ডগপরি

20

াধযায়- চাযাঃ পলাগগন ডকাগডাং সটযানডাডড

পলাগগন এগকটপরবনগডএগকটপরবন পাাংন াঅগন মখন একগট পলাগগনপরক এগকটব কপরযন তখনাআ এগকটপরবন পাাংন গিগায য় এাআ পাাংনপরক register_activation_hook() ফপরর ltphp register_activation_hook($file $function) gt

Parameters

$file- োাআভাগয পলাগগন পাাআপররয াথ

$function- ডম পাাংনগট গিগায পরফ মখন পলাগগন এগকটপরবট য় ডমভনাঃ- ltphp

register_activation_hook(__FILE__ bdquoliton_plugin_install‟)

function liton_plugin_install()

do something cool stuff

gt

াঅভযা একগট পলাগগন ফানাাআ এবাপরফ-

ltphp

Plugin Name Liton Version

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

register_activation_hook(__FILE__ liton_plugin_install)

function liton_plugin_install()

If(version_compare(get_bloginfo(version)51lt))

deactivate_plugins(basename(__FILE__))

deactivate our plugin

gt

মখন াঅভযা পলাগগন গডএগকটপরবট কগয তখন পলাগগন গডএগকটপরবন পাাংন কর য়

21

ltphp

register_deactivation_hook ($file $function) gt

-

ltphp

register_deactivation_hook (__FILE__ bdquoliton_plugin_install‟)

function liton_plugin_install()

do something

gt

াঅপরযকগট গরতবনড গফলয় র াঅনাআনসটর ওয়াডডপরে াঅনাপরক পলাগগন াঅনাআনসটর এয জনয রগট ান গদপরচছ- uninstallphp file and the uninstall hook

uninstallphp

এগট ডভাটাভগট েনপরমাগয িগত এ ডভথড ফযফায কযায জনয াঅনাপরক uninstallphp নাপরভ একগট পাাআর ততগয কযপরত পরফ াঅনায পলাগগন গডপরযকটগযপরত পাাআরগট গনপরচয ভত পরফ- ltphp

মগদ ওয়াডডপরে এগকসট কযায াপরথ াঅনাআনসটর কর কযা না য় If(defined(bdquoWP_UNINSTALL_PLUGIN‟))

exit()

delete_option(bdquoliton_plugin_options‟)

াগতগযি ান এফাং কাসটভ ডটগফর ভপরি ডপরন gt

Uninstall Hook

গিতীয় িগত র Uninstall Hook মগদ াঅগন ডকান পলাগগনপরক গডগরট কযপরত চান এফাং uninstallphp পাাআর না থাপরক তাপরর এাআ রক এগকসগকউট য়(মগদ থাপরক) ltphp

register_uninstall_hook($file$function)

gt

22

ডকাগডাং সটযানডাডড পলাগগন ফানাপরফন গকনত াঅনায ডকাড ডকভন পরফ গচনতা াঅপরত াপরয ওয়াডডপরে াঅনায জনয একগট সটযানডাডড গদপরয় গদপরয়পরি মা াঅনাপরক ওয়াডডপরেপরয জনয পলাগগন গরখপরত ডগপরর পপররা কযপরতাআ পরফ httpcodexwordpressorgWordPress_Coding_Standards

ডফগক একগট উদাযন গদরাভ গনপরচ- ltphp

Short description

Longer more detailed description

param type $varname1 Description

param type $varname2 Description

return type Description

function boj_super_function( $varname1 $varname2 )

do function stuff

gt

গএাআচগ সটানডাডড াঅভযা াপরনপরকাআ গএাআচগয টড পভড(lt gt) ফযফায কগয এটা মপিডরপর ফজডন করন কাযন াপরনক ডাগসটাং ডকামপাগনপরতাআ এটা গডপলট গপরপরফ ফনধ কপরয ডদয়া থাপরক সটযানডাডড টযাগ ফযফায করন(ltphp gt)

এগকউএর ডসটটপরভনট পলাগগন ততগযয ভয় াঅনাপরক াপরনক ভয়াআ ডাটাপরফ ডথপরক াআনপযপরভন গনপরত পরত াপরয াপরনক রাাআপরনয ডকাড গরখপরত পরত াপরয ডপরকষপরতর বার েযাকগট পরচছ এগকউএর এয কভানড গপররা ফড় াপরতয াকষপরয ডরখা ডমভন- SELECT username FROM table1 WHERE status = active

23

াধযায়- াাচাঃ ওয়াডডপরেপরয াপরথ াআগনটপরেন

ডভন এফাং াফ ডভন ততগয করন াঅভযা াপরনক পলাগগপরনাআ ডদগখ ডম একগট ডভন াঅাআপরটভ গপরপরফ াঅভাপরদয ডযাপরফাপরডড ডদখপরত াাআ এফাং ডাআ ডভনপরত গিক কযপরর ডগটাং ডজ াঅপর ডখাপরন পলাগগপরনয মাফতীয় ডগটাং গদপরয় াঅভযা পলাগগন কনগপগায কগয এফায এাআ চভৎকায কাজগট কযফ াঅভযা

ট ডরপরবর ডভন েথভ িগত পরচছ একগট ট ডরপরবর ডভন ততগয কযা ডমগট াঅভযা ডযাপরফাপরডড ডভন গরপরসট একগট নতন াঅাআপরটভ গপরপরফ ডমাগ কযফ ডভন ততগয কযায জনয াঅনাপরক add_menu_page( ) পাাংন ফযফায কযপরত পরফ ltphp

add_menu_page( page_title menu_title capability menu_slug functionicon_url

position )

gt

add_menu_page() পাাংন গনপরচয যাযাগভটাযগপররা াপরাটড কপরয page_title- াঅনায ডপরজয টাাআপরটর গক পরফ lttitlegt tag এয ভপরধয menu_title- ডযাপরফাপরডড াঅনায ডভনয নাভ capability- ফডগনমন capability রাগপরফ একগট ডভন গবউ পরত menu_slug- সলাগ নাভ মা ডভনপরক ডযপায কপরয- তপরফ এগট াআউগনক পরত পরফ function- একগট ডপরজয কনপরটনট ডদখপরত ডম পাাংন কর কযা য় icon_url- একগট কাসটভ াআপরভজ গরঙক ডভন াঅাআকন ডদখাপরনায জনয position- ডভনয গজন াডডায ডমখাপরন এটা ডদখাপরনা পরফ

এফায াঅভযা একগট ফাসতফ উদাযন ডদখফ- ltphp

Plugin Name Liton Menu

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action( admin_menu liton_menu)

function liton_menu()

24

create custom top-level menu

add_menu_page( Liton Menu Page Liton Menu Page manage_options

__FILE__ liton_menu_settings_page plugins_url( imageswp-logopng

__FILE__ ) )

gt

াঅভযা একগট ট ডরপরবর ডভন ততগয কযরাভ ডদখন ডযাপরফাপরডড ডকভন ডদখায়-

Liton Menu Page নাপরভ একগট ডভন ততগয পরয় ডগপরি এফাপরয াঅভযা াফপরভন কযফ ভাপরন Liton Menu Page এয গনপরচ গকি ডগটাং ডভন(মগদ েপরয়াজন য়) াফ ডভন ডযগজসটায কযায জনয add_submenu_page( ) পাাংন ফযফায কযা য় ltphp

add_submenu_page( parent_slug page_title menu_title capabilitymenu_slug

function )

gt

parent_slug- ডভন সলাগ মা াঅভযা াঅপরগ গডপাাআন কপরযগি menu_slug- মা ডভনপরক াফপরভনপরত ডযপায কযপরফ ফাগক পাাংনগপররা াঅপরগয ভতাআ

এফায াফপরভনয জনয গকি াগতগযি ডকাড ডমাগ কগয create submenu items

add_submenu_page( __FILE__ About My Plugin About manage_options

__FILE___about liton_menu_about_page )

add_submenu_page( __FILE__ Help with My Plugin Help

manage_options

__FILE___help liton_menu_help_page )

add_submenu_page( __FILE__ Uninstall My Plugin Uninstall

manage_options

__FILE___uninstall liton_menu_uninstall_page )

25

পরযা ডকাডগট পরফ এযকভ- ltphp

Plugin Name Liton Menu

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action( admin_menu liton_menu

)

function liton_menu()

create custom top-level menu

add_menu_page( Liton Menu Settings Page Liton Menu Page

manage_options __FILE__

liton_menu_settings_page

plugins_url( imageswp-logopng __FILE__ ) )

create submenu items

add_submenu_page( __FILE__ About My Plugin About manage_options

__FILE___about liton_menu_about_page )

add_submenu_page( __FILE__ Help with My Plugin Help

manage_options

__FILE___help liton_menu_help_page )

add_submenu_page( __FILE__ Uninstall My Plugin Uninstall

manage_options

__FILE___uninstall liton_menu_uninstall_page )

gt

গনপরচ ডদখন াফপরভনগপররা ততগয পরয় ডগপরি-

26

ডভনপরক াঅপরগয ডভনয াপরথ মি কযা এফায াঅগ গিতীয় িগতপরত মগদ াঅনায পলাগগপরনয একগট ভাতর ডজ থাপরক একগট ভাতর ডপরজাআ াঅনায কর ডগটাং পরয় মায় তাপরর এাআ িগত েন করন ডমভন ডয়াগযাং াাআটগপররায জনয রধ াঅনায াঅাআগডপযানপরপরজয াঅাআগড দযকায য় এযকভ পলাগগন এধযপরনয পলাগগপরনয জনয াঅনায াগতগযি ডভন ততগয কযায দযকায ডনাআ ফযাং এপরত কপরয াআউজায গফযি ডফাধ কযপরত াপরযন এ ধযপরনয পলাগগনগপররা ডগটাং এয াফপরভন গপরপরফ থাপরক add_options_page() এাআ পাাংন গদপরয় এফ ডভন ডযগজসটায কযা য় ltphp

add_options_page( page_title menu_title capability

menu_slug function)

gt

এফায চরন এযকভ একগট ডভন ততগয কগয- ltphp

Plugin Name Liton Sub Menu

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action( admin_menu liton_submenu)

function liton_submenu()

create a submenu under Settings

add_options_page( Liton Menu Settings Page Liton Menu Page

manage_options __FILE__

liton_menu_settings_page)

27

gt

াফপরভন ততগয পরয় ডগপরি চরন ডদগখ ডযাপরফাপরডড ডকভন ডদখায়-

এপরকফাপরয গনপরচয গদপরক ডদখন Liton Menu Page নাপরভ একগট ডভন ততগয পরয়পরি

উাআপরজট ততগয কযা উাআপরজট ততগয কযায জনয ওয়াডডপরে WP-Widget িা গদপরয় ততগয কযা য় উাআপরজট এয একগট পযভযাট ডদখন গনপরচ ltphp

class My_Widget extends WP_Widget

function My_Widget()

processes the widget

function form($instance)

displays the widget form in the admin dashboard

function update($new_instance $old_instance)

process widget options to save

function widget($args $instance)

displays the widget

gt

28

উাআপরজট ডযগজসটায কযায জনয widget_init() পাাংনপরক রক কযা য় চরন একগট উাআপরজট ততগয কগয- ltphp

Plugin Name Liton Widget

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

class Messager extends WP_Widget

function __construct()

$params=array(

description =gtDisplay message to readers

name =gt Message

)

parent__construct(Messager $params)

public function form()

public function widget()

add_action(widgets_initliton_register_message)

function liton_register_message()

register_widget(Messager)

gt

29

খফ াধাযন একগট উাআপরজট পলাগগন এগট াঅভযা াআউজাযপরদযপরক একগট ডভপরজ ডদখাপরফা াাআডফাপরয ডটাাআ কযায ডচষটা কযগি এখন পলাগগনগট এগকটপরবট কপরয ডদগখ-

াঅভাপরদয উাআপরজটগট ডদখাপরচছ এফায াঅপরযা গকি পাাংনার কাজ কগয এগট মগদ াাআডফাপরয ডরাগ কপরয ডদন তাপরর ডকান কাজ কযপরফ না কাযন াঅভযা এখপরনা গকিাআ কগযগন পভড পাাংপরন গকি কাজ কগয মা উাআপরজট টাাআপরটর গপরপরফ ডদখাপরফ- public function form($instance)

extract($instance)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title)gtgtTitle ltlabelgt

ltinput

class=widefat

id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt

value=ltphp if(isset($title)) echo esc_attr($title) gt gt

ltpgt

ltphp

াঅভযা উপরয class=widefat ফযফায কপরযগি এাআ িা ফযফায কযায কাযপরন পভড এয াআনট গপলডগট াপরনক সনদয পরয়পরি

30

মগদ এাআ িা ফযফায না কগয তাপরর ডকভন ডদখাপরফ গনপরচ ডদখন-

াঅভাপরদয উাআপরজট পলাগগনগটয ডকাড গনপরচ ডদওয়া র ltphp

Plugin Name Liton Widget

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

class Messager extends WP_Widget

function __construct()

$params=array(

description =gtDisplay message to readers

name =gt Message

)

parent__construct(Messager$params)

31

public function form($instance)

extract($instance)

print_r($instance)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title)gtgtTitle ltlabelgt

ltinput

class=widefat

id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt

value=ltphp if(isset($title)) echo esc_attr($title) gt gt

ltpgt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(description)gtgtDescription

ltlabelgt

lttextarea

class=widefat

rows=10

id=ltphp echo $this-gtget_field_id(description) gt

name=ltphp echo $this-gtget_field_name(description) gtgtltphp

if(isset($description)) echo esc_attr($description) gtlttextareagt

ltpgt

ltphp

public function widget($args$instance)

extract($args)

extract($instance)

echo $before_widget

echo $before_title$title$after_title

echo ltpgt$descriptionltpgt

echo $after_widget

add_action(widgets_initliton_register_message)

function liton_register_message()

32

register_widget(Messager)

gt

এফায াঅভযা ডযাপরফাডড ডথপরক একগট ডভপরজ ডদফ গবগজটযপরদযপরক-

াঅভযা এাআ উাআপরজটগট ডাাআনাগভক বাপরফ কপরযগি কাযন এখাপরন lth2gt lth3gt lth4gt এ ধযপরনয ডকান টযাগ াঅভযা ফযফায কগযগন াঅভযা গথভ ডডপরবর কযগিনা সতযাাং এ কাজগট াঅভাপরদয ানযবাপরফ কযা দযকায গির এগট গথভ ডডপরবরায ডদগখপরয় ডদপরফন ডম ডকভন টযাগ পরফ াাআডফাপরয াাআপরটয াাআডফাপরয ডকভন ডদখায় তা ডদখন- াঅভযা রগট গথপরভ এগট ডটসট কপরয ডদখফ েথভগট টপরয়গনট াআপররপরবন

33

এফায াঅপরযকগট গথপরভ ডদগখ-

34

াধযায়- িয়াঃ পলাগগন পাাংন

গকি ডফগক পাাংন __() পাাংন

__() পাাংনগট গএাআচগপরত াঅনায ডটকসটপরক ডযগড কপরয িানসপররন এফাং গযটানড কপরয উদাযন গপরপরফ াঅগন একগট বযারপরক __() পাাংপরনয ভপরধয ডবগযপরয়ফর গদপরয় assign করন ভপরন যাখপরফন এাআ পাাংনগট রগট াঅনডাযপরিায(_) গদপরয় গগঠত একগট নয় ltphp

$text=__(bdquoWordpress is a wonderful publishing platform‟‟liton_plugin‟)

gt

_e() পাাংন _e() পাাংনগট াঅনায ডটকসবপরট ডরাকারাাআজ কপরয এটা গএাআচগপরত echo এয ভত কাজ কপরয ডকান ডটকসটপরক গিপরন ডদখাপরনায জনয এফায একট ভজা কগয মা রপরক ডদপরখগি াঅপরগাআ- _e() পাাংনগট গদপরয় াঅপরগয পলাগগনগট এগডট কযফ ltphp

Plugin Name Liton Action

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(wp_footer liton_footer_action)

function liton_footer_action()

Output the translated text

_e( This site runs off the coolest platform ever ampmdash

WordPress

liton-plugin )

gt

35

এফায াঅউটট ডদগখ

esc_attr__() পাাংন এাআ পাাংনগট esc_attr() এয ভত এগট এাআচগটএভএর এগিগফউটপরক escape কপরয াঅভযা এফায esc_attr__() এফাং __() এাআ রগট পাাংনপরক একগট কপরয পলাগগন ততগয কযফ ltphp

Plugin Name Liton Esc Attr

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

A function that returns a link to the sites terms of service

page

function liton_terms_of_service_link()

return lta href=httpliton-onlinecomtos title=

esc_attr__( Visit the Terms of Service page boj-plugin ) gt __( Terms of

Service liton-plugin ) ltagt

Display the output of the liton_terms_of_service_link()

function

echo liton_terms_of_service_link()

gt

পলাগগনগটয াঅউটট ডদখন-

36

এযকভ াঅপরযা গকি পাাংন াঅপরি ডমগপররা াঅনাযা ডদপরখ ডনপরফন াআনটাযপরনট ডঘপরট

esc_html__() Function

esc_attr() Function

esc_url() Function

esc_js() Function

esc_html() Function

esc_attr_e() Function

esc_html_e() Function

_x() Function

_ex() Function

esc_attr_x() Function

esc_html_x() Function

_n() Function

_nx() Function

_n_noop() Function

_nx_noop() Function

Translation

bull Poedit httppoeditnet

bull GlotPress httpglotpressorg

bull Launchpad httpstranslationslaunchpadnet

bull Pootle httppootlelocamotionorg

bull KBabel httpi18nkdeorg

bull GNU Gettext httpgnuorgsoftwaregettext

GlotPress এখন ওপরয়ফ ডফড টর গপরপরফ ফযফায কযা পরচছ ওয়াডডে েপরজপরকটয ডিপরন একজন াথফা গটপরভয জনয িানসপররগটাং পটওয়যায গপরপরফ

37

াধযায়- াতাঃ পলাগগন গগকউগযগট

গগকউগযগট কগমপউটাপরযয বালায় ldquoগগকউগযগটrdquo ভাপরন বীগতকয একগট বদ ডমভন Cross Site

Scripting(XSS) Cross Site Request Forgery(CSRF) SQL Injection Privilege

Escalation Vulnerabilities এফাং Holes রফডর ডকাড একগট াবডাপরযয সযকষায জনয রভকীয কাযন পরত াপরয

পলাগগপরনয গগকউগযগট গক াঅনায পলাগগনগট ডমন গগকউয য় vulnerabilities data integrity এফাং reliability ডথপরক

াঅনায পলাগগনপরক গক গগকউগযগট ডদপরফন ওয়াডডপরে এনবায়যনপরভপরনট াঅনায পলাগগনপরক গগকউগযগট ডদয়া খফ কগঠন কাজ নয় এফাং খফ ভয় াপরকষ গফলয়ও নয় ওয়াডডপরেপরয গনজসব গকি পাাংন এপরকষপরতর াঅনাপরক খফাআ াাময কযপরফ

াআউজায াযগভন াঅভযা াপরনক পলাগগন াআনসটর কযায পরযাআ ডদপরখগি ডম মখনাআ এডগভন যাপরনর এ েপরফ কযপরত মাাআ তখন একগট এযয ডভপরজ াঅপর ডভপরজগট গনপরচয ভত-

ডরখা াঅপরি- You do not have sufficient permissionshellip এটা গনশচয়তা ডদয় ডম ডমপরকান এযাকন ীভাফি থাপরক গনগদডষট গকি যাাআট গদপরয় ওয়াডডপরেপরয একগট কভন পাাংন র current_user_can() একগট উদাযন ডদাআ-

38

ltphp

Capability

if ( current_user_can(install_plugins) )

wp_die( Insufficient permissions )

Role

if( current_user_can(editor) )

wp_die( You cannot edit this setting )

gt

খফ তাড়াতাগড় াঅগন এাআ current_user_can() পাাংন ডচক কযপরফন না কাযন এটা গনবডয কযপরফ get_currentuserinfo() এাআ পাাংপরনয উপরয াঅয এয ফযফাপরয ীভাফিতা াঅপরি এটা একগট পলাপরগফর পাাংন(pluggable function) াঅয এয ডরাপরকন পরচছ wp-

includespluggablephp মা পলাগগন এগকটব ফায য ডরাড য়

Nonces

ডকউ এগটপরক াঅফায Nonsense( গনপরফডাধ) বাফপরফন নাএগট ওয়াডডপরেপরয বালায় Nonces কগমপউটাপরযয বালায় nonce ফা cryptographic nonce পরচছ ldquonumber used once rdquo এটা ডিাট এফাং সপষট গকি য যানডভ গসটরাং ডমভন- াওয়াডড মা গকি গনপরদড কপরয Nonce গপরডন গপলড পভডপরক Retrieve ফা display কপরয-

একজন ওয়াডডপরে াআউজায ডমপরকান একগট এযাকন (delete update save and such) একগট াফপরজকট(একগট ডাসট পলাগগন ডগটাং াআতযাগদ) ২৪ ঘনটায একগট ভয় ডিভ

ডমভন ডাসট 50 গডগরট কযপরফন াঅনায ওয়াডডপরে বলগ ডথপরক তাপরর াঅনায গরঙকগট পরফ এযকভ- httpexamplecomwp-admin

postphppost=43ampaction=trashamp_wpnonce=83a08fcbc2

এখাপরন 83a08fcbc2 এগট র nonce মা ২৪ ঘনটা সথায়ী থাপরক রধভাতর এগট মগদ াঅনায িাযা ফযফরত য় এফাং গডগরট য় ডাসট 50 মখন াঅগন গরপরঙক গিক কপরযন ফপরচপরয় গযতবনড র ডম Nonce ডকান malicious াআউজায ফেপরত াপরযনা এফাং গঠক গরঙক িাড়া nonce এযয ডপরজ চপরর মায় ডমখাপরন াযগভন থাপরক না াঅপরযা গফসতাগযত ডদখন httpcodexwordpressorgWordPress_Nonces

39

Nonce URL ততগয এফায চরন াঅপরগয উদাযন ডথপরক Nonce URL ততগয কগয একগট ডাসট গডগরট কযায জনয wp_nonce_url() পাাংন ফযফায কযা য় ltphp

$url = wp_nonce_url( $url $action )

gt

েথভ যাযাগভটায $url পরচছ গসটরাং URL এপরডর এয মাপরক াঅগন কপরয়যী গসটরাং এয Nonce কযপরত চান াফযফহরত পলাগগপরনয গডগরট গরঙক এযকভ থাপরক- httpexamplecomwp-admineditphppage= liton

_utagsampliton_action=deleteampid=6

এখাপরন ডদখন যাযাগভটায liton_action এফাং এয টযাগ াঅাআগড গিতীয় যাযাগভটায পরচছ $action একগট গসটরাং মা াঅগন একগট াফপরজকট এয জনয একগট action ততগয কযপরফন উপরয ডদখরাভ delete এযাকন এয টযাগ াঅাআগড 6 সতযাাং $action যাযাগভটায পরত াপরয bdquoliton_utags-delete_tag6‟ গনপরচ ফাসতফ উদাযন ডদগখ- ltphp

$delete_url = add_query_arg(array( liton _action=gtdeleteid=gt$id) )

$nonced_url = wp_nonce_url( $delete_url bdquoliton _utags-delete_tag$id )

gt

lta href=ltphp echo $nonced_url gtgtdeleteltagt

এাআ টযাগগট পরফ গডগরট গরঙক এখাপরন add_query_arg() পাাংন ফযফায কযা পরয়পরি মা কাপরযনট URL ডক এযাপরয যাযাগভটায এয ভপরধয যাপরখ ানযবাপরফ ফরপরর এগট ডমাগ কপরয এযকভাঃ liton_action=deleteampid=6 amp liton_action=deleteampid=6

Nonce Form ততগয Nonce পভডপরকও ডোপরটকট কপরয wp_nonce_field() পাাংপরনয ভাধযপরভ ltphp

wp_nonce_field( $action $name $referer $echo ) gt

$action ( string) (optional) - action নাভ াআউগনক identifier optional

গকনত recommended $name (string) (optional) ndash গপরডন গপলড পভড ডবগযপরয়ফর নাভ $referer (boolean) (optional) ndash গডপলট গপরপরফ true থাপরক ডমখাপরন গপলড

ডবগরপরডন এয দযকায য়

40

$echo (boolean) (optional) - গডপলট গপরপরফ true থাপরক ডমখাপরন াঅউটট ডদখাপরনায ফা গপরডন পভড গপলড গযটানড কযায জনয দযকায য়

পপরভড াঅনায action এয নাভ গদন ltform method=postgt

lt-- some inputs here --gt

ltphp wp_nonce_field(name_of_my_actionname_of_nonce_field) gt

ltformgt

াঅভযা একগট পলাগগন ফানাপরফা ডমখাপরন াফযফরত টযাগগপররাপরক াঅভযা ভযানয়াগর গডগরট ফা গযপরনভ কযপরত াযফ এগট একট ফড় গকনত াপরনক গফলয়াআ াঅপরগাআ াঅপররাচনা কযা পরয়পরি ডদখপররাআ ফেপরত াযপরফন একগট ফাসতফধভডী উদাযন গনপরচ গদরাভ- ltphp

Plugin Name Liton Unused Tags

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add an entry for our option page to the Posts menu

add_action(admin_menu liton_utags_add_page)

function liton_utags_add_page()

add_posts_page( Unused Tags Unused Tagsmanage_optionsliton_utags

liton_utags_option_page )

Catch any liton_action parameter in query string

add_action( admin_init liton_utags_do_action )

Proceed to requested liton_action if applicable

function liton_utags_do_action()

if( isset( $_REQUEST[liton_action] ) )

return

if( current_user_can( manage_options ) )

wp_die( Insufficient privileges )

41

$id = $_REQUEST[id]

$action = $_REQUEST[liton_action]

if( $action == done )

add_action( admin_notices liton_utags_message )

return

check_admin_referer( liton_utags-$action_tag$id )

switch( $action )

case rename

$newtag = array( name =gt $_POST[name] slug =gt

$_POST[name] )

wp_update_term( $id post_tag $newtag )

break

case delete

wp_delete_term( $id post_tag )

break

wp_redirect( add_query_arg( array( liton_action =gt done )

) )

Admin notice

function liton_utags_message()

echo ltdiv class=updatedgtltpgtAction

completedltpgtltdivgt

Draw the tag management page

function liton_utags_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtUnused Tagslth2gt

ltphp

if( $tags = liton_utags_find_orphans() )

echo ltpgtYou currently have count( $tags ) unused

tagsltpgt

echo ltolgt

foreach( $tags as $tag )

42

$id = $tag-gtterm_id

$name = esc_attr( $tag-gtname )

$delete_url= add_query_arg(

array(liton_action=gtdeleteid=gt$id) )

$nonced_url= wp_nonce_url( $delete_url

liton_utags-delete_tag$id )

gt

ltligt

ltform action= method=postgt

ltphp wp_nonce_field( liton_utags-rename_tag$id )

gt

ltinput type=hidden name=liton_action

value=rename gt

ltinput type=hidden name=id value=ltphp echo

$id gt gt

ltinput type=text name=name value=ltphp echo

$name gt gt

ltinput type=submit value=Rename gt or

lta href=ltphp echo $nonced_url gtgtdeleteltagt

this tag

ltformgt

ltligt

ltphp

else gt

ltpgtYou have no unused tagsltpgt

ltphp endif gt

ltolgt

ltdivgt

ltphp

Find unused tags return them in an array

function liton_utags_find_orphans()

global $wpdb

$sql = SELECT termsterm_id termsname FROM

$wpdb-gtterms terms

INNER JOIN $wpdb-gtterm_taxonomy taxo

ON termsterm_id=taxoterm_id

WHERE taxotaxonomy = post_tag

43

AND taxocount=0

return $wpdb-gtget_results( $sql )

gt

ডযাপরফাপরডড এাআ পলাগগপরনয ডভন াওয়া মাপরফ ডাসট এয াফপরভন গপরপরফ গনপরচ ডদখন-

এফায পলাগগন ডভনপরত গিক কপরয ডদগখ পলাগগপরনয ডবতপরযয কাজ-

উপরয ডদখন াঅগভ একগট টযাগ ততগয কপরযগিরাভ l i নাপরভ এগট এখাপরন ডদখাপরচছ াঅগভ চাাআপরর এগট এগডট ফা গডগরট কযপরত াগয এফায গডগরট গরঙক এ ভাউপরয কাডয ডযপরখ গনপরচ গরঙক ডদখন ফা গডগরট করন একগট টযাগ াঅভায এখাপরন URL গট এযকভ httplocalhostdev-litonwp-

admineditphppage=liton_utagsampliton_action=doneampid=4amp_wpnonce=30a44b7

986

এখাপরন াঅগভ liton_action=done ফযফায কপরযগি Nonces এয পাাংনগপররায নাভ গনপরচ গদরাভ াঅনাযা ডদপরখ গনপরফন াআনটাযপরনট ডথপরক wp_nonce_field()

wp_nonce_url()

wp_verify_nonce()

wp_create_nonce()

44

check_admin_referer()

check_ajax_referer()

ডাটাপরফ াঅনাযা ডমপরত গএাআচগ গনপরয় কাজ কপরযন এগকউএর ডাটাপরফ এয াপরথ ফাাআ কভপরফী গযগচত এয গনটযাকস গপররা ডভাটাভগট ফায জানা একাআ বাপরফ াপরনপরকাআ ওয়াডডপরেপরও ডাটাপরফ ডকাড গরপরখন এটা ডকাগডাং এয জনয খাযা গদক াঅগভ নযভার গএাআচগ- এগকউএর ডকাড এয উদাযন গদগচছ- ltphp

$sql=rdquoINSERT INTO $wpdb-gtposts(post_title) VALUES(bdquo$title‟)rdquo

$wpdb-gtquery($sql) gt

এফায ওয়াডডপরেপরয সটযানডাডড ডকাগডাং গপরসটভ ডদখন- ltphp

$wpdb-gtinsert($wpdb-gtposts

array(bdquopost_title‟ =gt $title)

array(bdquos‟)

)

gt

ডাটাপরফ গগকউয কযায জনয াঅপরডট াাপরযন ডদখাফ- গনপরচয ডকাডগট খাযা েযাকগট ltphp

$wpdb-gtquery(ldquoUPDATE $wpdb-gtposts SET post_title=‟$newTitle‟ WHERE

ID=$my_idrdquo )

gt

উপরযয ভত কপরয না গরপরখ গনপরচয ভত কপরয গরখন- ltphp

$wpdb-gtupdate($wpdb-gtposts

Array(bdquopost_title‟ =gt‟$newTitle‟)

Array(bdquoID‟ =gt$my_id

)

gt

ানর বাপরফ ানযানয াাপরযন গপররা গরখপরফন

45

াধযায়- াঅটাঃ ডরাকারাাআপরজন এফাং Set t i ngs API

ডরাকারাাআপরজন ডরাকারাাআপরজন একগট গরতবনড গফলয় এয পাাংনগপররা র- load_theme_textdomain()

load_plugin_textdomain()

উদাযন- ltphp $var=__(bdquoHello‟‟domain‟) gt

ltphp _e(bdquoHello‟‟domain‟) gt

গফসতাগযত গনপরচয গরপরঙক ডদখন- httpcodexwordpressorgI18n_for_WordPress_Developers

ডগটাং API

ডগটাং API পরচছ াঅগন গকি ান ততগয কযপরফন মা াআনটাযনার বাপরফ াঅনায পলাগগপরন এপলাাআ পরফ মখন াঅগন াআউজায- গডপাাআন ান ততগয কযপরফন াঅনায পলাগগপরনয জনয তখন Settings

API ndashএ াঅনায ডকাড মতটা ারন জ করন Settings API াঅনায ডম কাজগপররা handle কপরয-

ওয়াডডপরেপরক জাগনপরয় ডদয় ডম াঅগন গনজসব ান ফযফায কযপরফন াঅনায াআনটপরক পাাংপরনয ভপরধয উপরেখ কযপরফ ডফগয বাগ ান ডজ গনপরজাআ ততগয কযপরফ $_POST ডাটা গপররাপরক ভগনটয কপরয ান ততগয এফাং াঅপরডট কপরয(মগদ েপরয়াজন য়)

Settings API পাাংন Settings API পাাংপরন গতনগট ডসট থাপরক- ১ েথপরভ ওয়াডডপরেপরক ফপরর ডম াঅগন নতন ডগটাং ফযফায কযপরফন াঅনায পলাগগপরনয জনয ২ এয পরয ডগটাং গডপাাআন করন (text areas input boxes and any

HTML form element) এফাং এপরদযপরক একাপরথ রে কপরয যাপরখ ৩ ওয়াডডপরেপরক াঅনায ডগটাং actual form এ ডদখাপরনায জনয ফপরর

46

এফায াঅভযা একগট পলাগগন ফানাপরফা Administration Page ndashএ ডযপাপরযনস গপরপরফ ডদখপরত াপরযন- httpcodexwordpressorgAdding_Administration_Menus

httpcodexwordpressorgFunction_Referenceadd_options_page

httpcodexwordpressorgAction_ReferenceActions_Run_During_an_Admin_P

age_Request

পলাগগপরনয এডগভন ডজ পরফ এযকভ- httpexamplecomwp-adminoptions-generalphppage=liton_myplugin

েথপরভ াঅভযা ডভন ততগয কযফ াঅপরগয ভত কপরয- Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

এফায ান ডজ এ পভড গনপরয় গকি ডগটাং ডদফ function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

উপরযয ডকাপরড াঅভযা একগট পপরভডয ভপরধয রধ াফগভট ফাটন এফাং My Plugin নাপরভ ডজ ততগয কপরযগি ডযাপরফাপরডড ডদখন-

47

ডগটাং এয াফ ডভন গপরপরফ My Plugin াঅপরি এফাং My Plugin ডত গিক কযপরর াঅভযা উপরযয ডজ ততগয কপরযগি ডমখাপরন াফগভট ফাটনগট ডদখাপরচছ এফায গতনগট যাযাগভটায ডযগজসটায কযফ- ltphp

register_setting( liton _myplugin_options liton _myplugin_options liton

_myplugin_validate_options)

gt

েথভগট ডগটাং রেপরয নাভ গিতীয়গট ান নাভ মা াঅভযা get_option() পাাংন গদপরয়ও ডপরত াগয ততীয়গট করফযাক পাাংন এগট একগট গসটরাং ডযপাপরযনস পাাংন এখাপরন াঅভযা নাভ

48

গদপরয়গি liton _myplugin_validate_options মা া কযপরফ পপরভডয কর ডব ডগটাং াঅভযা এটা পরয গডপাাআন কযফ

ডগটাং গডপাাআন ডকন add_settings_field() এফাং add_settings_section() পাাংন গদপরয় াঅভযা াঅভাপরদয কর ডগটাং গডপাাআন কযফ ltphp

add_settings_section( liton_myplugin_main My Plugin Settings

liton_myplugin_section_text liton _myplugin)

add_settings_field( liton _myplugin_text_string Enter text here

liton _myplugin_setting_input liton _myplugin liton _myplugin_main)

gt

add_settings_section() পাাংন গদপরয় াঅভযা ডদখাফ াঅপরর ডজ এ ডকন ডকভন ডদখাপরফ এয চাযগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ ডকন টাাআপরটর ltH3gt টযাপরগয ভপরধয করফযাক পাাংন এয নাভ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ (page= liton _myplugin এগট

URL এয াাং গপরপরফ থাকপরফ) গিতীয় যাযাগভটায add_settings_field() পপরভডয াআনট গপরপরফ ডদখাপরনা পরয়পরি এখাপরন াাচগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ পরযয গপপরলড গক গেনট কযা পরফ তা ডটকসট গপরপরফ ডদখাপরনা পরয়পরি(Enter text

here)

করফযাক পাাংন পপরভড গেনট কযপরফ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ ডগটাং ডপরজয ডকন গপলড মা add_settings_section() পাাংপরন গডপাাআন

কযা পরয়পরি ltphp

Explanations about this section

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

49

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton _myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name= liton _myplugin_options[text_string]

type=text value=$options[text_string] gt

gt

গিতীয় পাাংন ান বযার text_string ডক এযাপরযপরত ডসটায কপরয ডযপরখপরি এফায াআউজায াআনট বযাগরপরডট কযফ- ltphp

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace([^a-zA-Z]$input[text_string] )

return $valid

gt

পভডপরক ডযনডায কযফ- ltphp

Draw the options page

function liton_myplugin_options_page()

gt

ltdiv class=wrapgt

ltphp

screen_icon()

gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp

settings_fields( liton_myplugin_options)

do_settings_sections(liton_myplugin)

50

gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

settings_fields() পাাংনগট ডযপাপরযনস গপরপরফ ফযফায কযা পরয়পরি মা াঅভযা register_setting() পাাংপরন গডপরিয়ায কপরযগি do_settings_sections() পাাংনগট কর কযপরফ কর াঅউটট ডকন এফাং পভড গপলডপরক মা াঅভযা পরফড গডপাাআন কপরযগি াঅভাপরদয কাজ ডল এফায পরযা পলাগগনগট ডদখফ- ltphp

Plugin Name Settings API example

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

Draw the option page

function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save

Changes gt

ltformgtltdivgt

ltphp

51

Register and define the settings

add_action(admin_init liton_myplugin_admin_init)

function liton_myplugin_admin_init()

register_setting( liton_myplugin_options

liton_myplugin_options

liton_myplugin_validate_options )

add_settings_section( liton_myplugin_main My Plugin

Settings

liton_myplugin_section_text liton_myplugin )

add_settings_field( liton_myplugin_text_string Enter text

here

liton_myplugin_setting_input liton_myplugin

liton_myplugin_main )

Draw the section header

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton_myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name=liton_myplugin_options[text_string]

type=text value=$text_string gt

Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

return $valid

gt

52

ডদখন ডযাপরফাপরডড ডকভন ডদখায়-

পরয় ডগর াঅভাপরদয েথভ নডাাংগ পলাগগন ান ডজ াঅপরযকগট গজগন ডমটায জনয এতগকি পলাগগন URL এপরডর- httplocalhostdev-litonwp-adminoptions-

generalphppage=liton_mypluginampsettings-updated=true

াঅভায এখাপরন এযকভ ডদখাপরচছ ডটকসট ফপরকস ডকান গকি গরপরখ ডব কযায য এফাপরয াঅপরযকগট গজগন ডদখফ াঅভযা াপরনক ভয়াআ াপরনক পলাগগপরনয াআনট গপপরলড বর ডাটা াআনট কযপরর এযয ডভপরজ ডদখায় এাআ কাজগট কযফ এফায াঅভযা এখাপরন esc_attr() ফা esc_html() ফযফায কগযগন সতযাাং াঅভাপরদয গরগভপরটন থাকপরি ডবগরপরডট পাাংনগট একট এগডট কগয গনপরচয ভত কপরয Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

if( $valid[text_string] = $input[text_string] )

add_settings_error(liton_myplugin_text_stringliton_myplugin_texterror

53

Incorrect value enterederror)

return $valid

উপরয ডদখন add_settings_error() পাাংন ফযফায কপরযগি মা এযয ডচক কযপরফ পপরভডয াঅগভ একগট বর ডাটা(পরসপার কযাপরযকটায) াআনট কপরয ডদখরাভ এযয ডদখাপরচছ-

তায ভাপরন াঅভযা পর পরয়গি াঅনায পলাগগনগট এগডট কপরয ডনপরফন ডকায ডকন এফাং গপপরলডয গরসট গদরাভ াঅনাপরদয সগফধায জনয

54

CSSJS পাাআর মি কযা

াঅনায পলাগগপরন গএএ ফা জাবাগিে ডমাগ কযপরত পরত াপরয াঅগন চাাআপরর ফাগপরযয ডকান ফা াঅনায ততগয ডকান গএএ ফা জাবাগিে পাাআর ডমাগ কযপরত াপরযন তপরফ এপরকষপরতর াঅভযা ডমবাপরফ HTML এ পাাআর ডমাগ কগয ডযকভ না function liton_scripts()

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtojqueryjsrdquogtltscriptgt‟

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtoscriptjsrdquogtltscriptgt‟

add_action(bdquowp_head‟‟liton_scripts‟)

এগট মপনডরপর বর িগত গনপরচ ডদখন ওয়াডডপরেপর গকবাপরফ পাাআর মি কযপরত য়- function liton_scripts()

wp_enqueue_script(bdquojquery‟)

wp_enqueue_script(bdquotheme-scripts‟‟pathtoscriptsjs‟)

add_action(bdquowp_enqueue_script‟‟liton_scripts‟)

ানর বাপরফ াঅগন সটাাআরীট ডমাগ কযপরত াপরযন- function liton_styles()

wp_enqueue_ style (bdquocss‟)

wp_enqueue_ style (bdquotheme- styles‟pathto stylescss‟)

ডযপাপরযনস ডদখন- httpcodexwordpressorgFunction_Referencewp_enqueue_script

httpcodexwordpressorgFunction_Referencewp_enqueue_style

টডপরকাড টডপরকাড পরচছ ওয়াডডপরেপরয ডসপগগপক ডসপার টযাগ মা াঅগন ডাসট ফা ডপরজয ভপরধয াআনাটড কপরয ানয ডকান কনপরটনটপরক ওপরয়ফাাআপরটয ভপরধয গযপরপল কযপরত াযপরফন মগদ াঅগন গযারাগয টাাআপরয ডকান পলাগগন ফযফায কপরয থাপরকন তাপরর াঅনায ধাযনা থাকায কথা মাাআ ডাক াঅগভ কপরয়কগট উদাযি ডদখাফ

55

েথপরভ একগট পলাগগন ততগয কযফ ডমখাপরন add_shortcode() নাপরভয একগট পাাংন থাকপরফ এগট রগট যাযাগভটায েন কপরয েথভগট টডপরকাপরডয নাভ গিতীয়গট ডম পাাংনপরক কর কযপরফন ডগট াঅভযা একগট উদাযন ডদগখ- ltphp

Plugin Name Liton Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(litonhi)

function hi()

echo Hello World

gt

উপরয ডদখন খফ ডিাট গকনত াঅগন চাাআপরর এয ফযফায াপরনক গফসতত কযপরত াপরযন এখাপরন টডপরকাড নাভ পরচছ liton াঅয এগটপরক ডরখা য় এবাপরফ [liton] াঅভযা ডাপরসটয ভপরধয াআনাটড কপরয ডদগখ াঅউটট ডকভন ডদখায়-

এফায াঅউটট ডদগখ-

56

াঅভাপরদয ততগয কযা টডপরকাড পরবাপরফাআ কাজ কযপরি াঅপরযকগট উদাযন ডদখফ াঅনাযা াপরনপরকাআ গগর এডপরনস গনপরয় কাজ কপরযন াঅনাযা াপরনপরকাআ এডপরনস এয জনয পলাগগন ফযফায কপরযন গকনত চাাআপররাআ এাআ কাজগট াঅনাযা গনপরজয ভত কপরয াগজপরয় গনপরত াপরযন গগপররয কাপরি ফ ডাসট বযার ায়না াঅনাযা মাযা একসাটড াঅপরিন তাযা এটা বার কপরয জাপরনন তাাআ াপরনপরকাআ গগপররয ডকাড ফ ডপরজ ডদখাপরত চান না এজনয পলাগগন ফযফায কপরয রাব য়না কাযন পলাগগপরন জায়গা গপকসড থাপরক এপরত কপরয াঅগনডাং ও কভ য় াঅনাযা টডপরকাড ফযফায কপরয ডমপরকান জায়গায় এড ডদখাপরত াপরযন গনপরচ াঅগভ রগট টডপরকাড ততগয কপরযগি র‟ধযপরনয এড ডদখাপরনায জনয ltphp

Plugin Name Liton Adsense Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(adsense_468adsense_468_60)

add_shortcode(adsense_250adsense_250_250)

function adsense_468_60($atts)

return ltscript type=textjavascriptgtlt--

57

google_ad_client = ca-pub-0956247412222369

468x60 created 101510

google_ad_slot = 4372705450

google_ad_width = 468

google_ad_height = 60

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

function adsense_250_250($atts)

return ltscript type=textjavascriptgtlt--

google_ad_client = ca-pub-0956247412222369

250x250 created 81809

google_ad_slot = 9368091893

google_ad_width = 250

google_ad_height = 250

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

gt

একগট টডপরকাড ফযানায টাাআপরয জনয এফাং াঅপরযকগট ২৫০২৫০ াাআপরজয এফায ডাপরসট ডমপরকান একগট টডপরকাড াআনাটড করন ডমখাপরন াঅনায ডদখাপরনায েপরয়াজন ভপরন কপরযন াঅগভ রগট ডকাড ডটসট কপরয ডদখরাভ-

58

এফায াাআপরটয াঅউটট ডদগখ-

রগট এডাআ ডদখাপরচছ াঅপরযা াপরনক কাপরজ াঅগন টডপরকাড ফযফায কযপরত াপরযন ডযপাপরযনসাঃ httpcodexwordpressorgShortcode_API

59

াধযায়- নয়াঃ পলাগগন উদাযন

ওয়াডডপরেপরয ডডটটাাআভকপরভনট নামবায ফাাংরা কযায পলাগগন াঅভাপরক কপরয়কজন ফপররগিপররন ওয়াডডপরেপরয গডপলট ডডটটাাআভকপরভনট নামবায ফাাংরা য়না রযাাংগপরয়জ ফাাংরা কযায যও ডডটটাাআভকপরভনট নামবায গপররা াআাংপরযগজ ডথপরক মায় গনপরচয পলাগগনগট ফযফায কপরয ডদখপরত াপরযন- ltphp

Plugin Name Liton Bangla datetimecomment number

Plugin URI httpliton-onlinecomplugins

Description Bangla datetimecomment number

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

This function converts all english numbers to bangla number

function make_bangla_number($str)

$engNumber = array(1234567890)

$bangNumber = array( ১ ২ ৩ ৪ ৫ ৬ ৭ ৮ ৯ ০ ) $converted = str_replace($engNumber $bangNumber $str)

return $converted

add_filter( get_the_time make_bangla_number )

add_filter( the_date make_bangla_number )

add_filter( get_the_date make_bangla_number )

add_filter( comments_number make_bangla_number )

add_filter( get_comment_date make_bangla_number )

add_filter( get_comment_time make_bangla_number )

gt

60

সলাাআডায পলাগগন াঅভযা এাআ ফাআপরয়য কর গটউপরটাগযয়াপরর মা মা গখরাভ তা এফায একগট নডাাংগ পলাগগপরনয এপলাাআ কযফ সলাাআডায পলাগগন মপপরকড াঅভযা ফাাআ জাগন একগট ওপরয়ফাাআপরটয ডচাযা ারপরট ডদয় একগট সলাাআডায াপরনক ডাাআনাগভক ভপরন য় ডদখপরতও াপরনক বার রাপরগ এাআ পলাগগপরন াঅভযা এডগভন যাপরনর ডথপরক াআপরভজ ডমাগ কযফ এফাং তা াঅভাপরদয াাআপরট ডদখাফ চরন কাজ রর কগয- েথপরভ গনপরবা সলাাআডায এয ওপরয়ফাাআপরট মান এফাং jQuery Plugin ডাউনপররাড করন

ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom Version 10

gt

াঅভযা পলাগগপরনয ডডায ততগয কযরাভ

পলাগগন গরপরসট ডদখাপরচছ bdquoLitons Nivo Plugin‟ াঅভাপরদয েথভ কাজ পরচছ custom post

type ওয়াডডপরে পাাংনাগরগট একগট নতন কাসটভ ডজ ততগয কযপরত custom post type

ফযফহরত পরফ ডমখাপরন একগট াআপরভজ থাকপরফ াঅভযা রধ টাাআপরটর ডনভ এফাং াআপরভজ াঅপররাডায গপরপরফ গপচায াআপরভজ পাাংনাগরগট ফযফায কযফ function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_function 600 280 true)

61

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

add_action(init np_init)

উপরযয ডকাপরড np_init() পাাংনগট রক কপরযগি মা ডডায যান কযায াঅপরগ যান পরফ াঅয এজনয register_post_type() পাাংনপরক এয যাযাগভটায গদপরয় np_init() পাাংপরনয ডবতপরয মি কপরযগি এটা মগদ না কযতাভ তাপরর ldquoHeaders already sentrdquo ডভপরজ ডদখাত এাআ ডভপরজগটয াপরথ াপরনপরকাআ গযগচত াঅা কগয register_post_type() পাাংন গদপরয় াঅভযা াআপরভজ মি এফাং ভযাপরনজ কযফ ভরত াঅভযা একগট নতন custom post type ডমাগ কপরযগি np_images নাভ গদপরয় নতন custom post type ডক ডগটাং বযার গপরপরফ াঅযগপরভনট া কপরযগি $args ডবগযপরয়ফরগট ট ডরপরবর ডভন ততগয কপরয াঅপরগাআ ডদপরখগি পলাগগনগট এগকটপরবট কযপরর াঅভযা গনপরচয ভত ডদখপরত াফ-

এফায গিে এফাং সটাাআরীট ডক মি কযফ- add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

এফায রক কযা পাাংনগপররা গডপরিয়ায কগয- function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__) array( jquery ))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

62

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

উপরযয ডকাডগপররা নতন কপরয ফিডনা কযায গকি ডনাআ াঅপরগাআ wp_enqueue_style() এফাং wp_enqueue_script() মপপরকড ফরা পরয়পরি নতন াঅপরযকগট পাাআর ততগয করন একাআ গডপরযকটগযপরত scriptjs এফাং গনপরচয ডকাডটক গদন- jQuery(document)ready(function($)

$(slider)nivoSlider()

)

াআপরভজপরক গযাাআজ করন- add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

াঅভযা এাআ পলাগগনগটপরক উাআপরজট গপরপরফও ফযফায কযফ ডগট পরয ডদখফ াঅপরযকগট গজগন মগদ গথপরভ না ডদয়া থাপরক ডজনয থামবপরনাআর াপরাটড গদপরয় গদন- add_theme_support( post-thumbnails )

এফায ওয়াডডপরেপরয কাপরযনট ডাসট কপরয়যী কযায ডকাড াঅয $result ডবগযপরয়ফপরর ডমফ ltdivgt টযাগ ফযফায কযা পরয়পরি তা jQuery Plugin গট একসিাকট কপরয indexhtml ডজগটয ডভাআন সলাাআডায ডকাডগট ডদখন একাআ াঅপরি রধ ডখানকায ltdivgt টযাগ গপররাপরক কগ কপরয এাআ পলাগগপরন ফযফায কযা পরয়পরি এফায টডপরকাড গদন- add_shortcode(np-shortcode np_function)

এাআ টডপরকাড গএাআচগ পাাংনপরক রক কযপরফ এফাং এয ভধয ডথপরক সলাাআডপরায কনপরটনট ডক গযটানড কযপরফ াঅভাপরদয টডপরকাড পরচছ [np-shortcode] াঅভযা পলাগগপরন মাাআ এফাং একগট িগফ মি কগয গপচাযড াআপরভজ গপরপরফ গনপরচ ডদখন-

63

াঅগভ াঅপরযকগট ডজ ততগয কপরযগি ডমখাপরন টডপরকাড গদপরয়গি

াঅউটট ডজ ডদগখ এফায-

64

পরয় ডগর াঅভাপরদয সলাাআডায পলাগগন পরযা ডকাডগট গনপরচ গদরাভ- ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

65

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

66

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

এফায াঅগন মগদ উাআপরজট গপরপরফ ফযফায কযপরত চান তাপরর গনপরচয ডকাডটক গদন- class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

67

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

echo $after_widget

াঅপরযা রগট কাজ কযপরত পরফ াঅনাপরক এক াআপরভজ াাআজ উাআপরজট এয জনয গঠক কপরয গদপরত পরফ- add_image_size(np_widget 180 100 true)

াঅপরযকগট র উাআপরজট এযাকন রক ডমাগ কযা add_action(widgets_init np_widgets_init)

উাআপরজট পরযা ডকাড াঅফায গদরাভ- ltphp

Plugin Name Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Ciprian Turcu

Version 10

68

class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

69

echo $after_widget

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

70

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(widgets_init np_widgets_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

71

পলাগগন গনপরয় এত ডিাট গযপরয ডরখা মভফ নয় এজনযাআ ভপরন য় পলাগগন গনপরয় ডকউ ডরপরখন না কাযন এখাপরন এত গফলয় াঅপরি মা াঅপররাচনা কযপরত ডগপরর ৫০০ ডজ ায পরয় মাপরফ ডফাোয সগফধাপরথড াঅগভ মথামভফ উদাযন গদপরয় ডফাোপরনায ডচষটা কপরযগি াঅগভ এখাপরন টাপরগডট কপরযগি মাযা টকটাক জাপরন পলাগগন মপপরকড এডবানস ডরপরবপররয নয় কাযন তাযা জাপরনন াঅভায উপরেশয গির মাযা জানপরত চায় তাপরদযপরক জানাপরনা এখাপরন ডমফ গফলয় াঅপররাচনা কযা পরয়পরি তা ডভাটাভগট ভাপরনয একগট পলাগগন ফানাপরনায জনয মপরথষট তপরফ ভাপরনাননয়পরনয জনয াঅনাপরক গনপরজাআ খাপরজ গনপরত পরফ াঅনায জনয ডকানটা বার পরফ াঅগভ রধ গদক গনপরদডনা গদরাভ ভাতর এাআ ফাআগট রধভাতর ওয়াডডপরে রেপরয জনয ডরখা াপরনক বর ভরাগনত থাকপরত াপরয াঅনাযা কষভাসনদয দগষটপরত ডদখপরফন াঅগভ ডচষটা কপরযগি মতটা জ কপরয ডরখা মায় াপরনক ভয় ডদখা মায় ডম খফ ডিাট খাপরটা গফলয় গনপরয় াপরনপরকাআ নক কপরযন এটা গতয রাঃখজনক াঅনাযা গগপরর একট খাজপররাআ ভাধান াপরফন াঅপরগ গনপরজ ডচষটা করন তায পরয ানযপরক ভাধাপরনয জনয গজজঞাা করন াঅভায জনয ডদায়া কযপরফন বাপররা রাগপরর জানাপরফন খাযা রাগপররও জানাপরফন তাপররাআ াঅভায গযশরভ সবাথডক পরফ ভতাভত জাগনপরয় াঅভাপরক ডভাআর কযপরত াপরযন litonice09gmailcom |

72

Page 11: Wordpress Plugin Development

12

উপরযয িগফপরত ডদখন ওয়াডডপরেপরয ডযাপরফাপরডড াঅগভ পলাগগন ডডাপরয মা মা তথয গদপরয়গিরাভ তাাআ ডদখাপরচছ এটাাআ াঅনায োথগভক কাজ াঅগন রাাআপরনসও ডমাগ কযপরত াপরযন এবাপরফ- lt php

Copyright YEAR PLUGIN_AUTHOR_NAME (email PLUGIN AUTHOR

EMAIL)

This program is free software you can redistribute it andor modify

it under the terms of the GNU General Public License as published by

the Free Software Foundation either version 2 of the License or

(at your option) any later version

This program is distributed in the hope that it will be useful

but WITHOUT ANY WARRANTY without even the implied warranty of

MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE See the

GNU General Public License for more details

You should have received a copy of the GNU General Public License

along with this program if not write to the Free Software

Foundation Inc 51 Franklin St Fifth Floor Boston MA 02110-1301 USA

gt

পলাগগন াথ

একগট কভন কাজ র াঅনায পলাগগপরনয পাাআর এফাং ডপালডাযগপররাপরক ওয়াডডপরে াআনসটপররন গডপরযকটগযপরত ডযপায কযা াঅগন এাআ কাজগট রাআ বাপরফ কযপরত াপরযন- ডরাকার াবডায াথ াথফা সটানডাডড URL

13

ডরাকার াবডায াথাঃ ডরাকার াবডায াথ াঅনায কগমপউটাপরযয গডপরযকটগযয ভতাআ ডরাকার াবডায াথ াধাযনত ফযফায কযা য় মখন াঅনাপরক গনপরজয ডরাকার াবডাপরযয গকি পাাআর i ncl ude কযপরত য় একগট কভন েশন র- পলাগগন পাাআপররয াথ ডদখাপরনায গঠক িগত ডকানগট াঅনায পলাগগপরনয ডরাকার াথ ডদখাপরনায জনয াঅনাপরক plugin_dir_path() পাাংন ফযফায কযপরত পরফ plugin_dir_path() পাাংন পলাগগন গডপরযকটগযয গপগজকযার াথ একসিযাকট কপরয পাাআপররয নাভ ডথপরক ltphp plugin_dir_path($file) gt

Parameters

$file-(string)(required)- পলাগগন পাাআপররয নাভ এখন ডদগখ গকবাপরফ পলাগগন ডপালডাপরযয নাভ ডফয কযপরত য়-

ltphp

echo plugin_dir_path(__FILE__)

gt

এখাপরন গএাআচগ কনসটযানট __FILE__ ডক plugin_dir_path পাাংপরনয ভধয গদপরয় া কযারাভ এাআ পাাংন াবডায াথ ডদখাপরফ পলাগগন গডপরযকটগযয public_htmlwp-contentpluginsliton-plugin

একাআবাপরফ াঅগন মগদ plugin_dir_path() এাআ পাাংনপরক মগদ ডকান াফ- গডপরযকটগযয পাাআরপরক ডযপায কগয তাপরর গনপরচয ভত কপরয ডযপায কযপরত পরফ ltphp

echo plugin_dir_path(__FILE__)jsscriptsjs

gt

এাআ ডকাডগট গনপরচয ভত াথ ডদখাপরফ- public_htmlwp-contentpluginsliton-pluginjsscriptsjs

URL াথাঃ াঅপরযা গকি পাাংন াঅপরি ডমগপররা গদপরয় ওয়াডডপরেপরয URL ডদখাপরনা মায়

plugins_url() - পলাগগন গডপরযকটগযয পরযা URL ( ডমভনাঃ httpliton-onlinecomwp-contentplugins)

includes_url() - পরযা গডপরযকটগযয URL include কপরয ( ডমভন httpliton-onlinecomwp-includes)

14

content_url() - পরযা কপরনটনট গডপরযকটগয URL ( ডমভনাঃ httpliton-onlinecomwp-content )

admin_url() - পরযা এডগভন URL

( ডমভনাঃ httpliton-onlinecomwp-admin ) site_url() - কাপরযনট াাআট এয পরযা URL

( ডমভনাঃ httpliton-onlinecom ) home_url() - কাপরযনট াাআট এয পরযা ডাভ URL

( ডমভনাঃ httpliton-onlinecom )

াথ গনপরয় াঅপরযা গফসতাগযত ডদখপরত াপরযনাঃ httpcodexwordpressorgDetermining_Plugin_and_Content_Directories

httpcodexwordpressorgFunction_Referenceplugins_url

httpcodexwordpressorgFunction_Referenceplugin_dir_url

httpcodexwordpressorgFunction_Referenceplugin_dir_path

plugins_url() পাাংন াঅনায উততভ ফনধ পরত াপরয মখন াঅগন পলাগগন ডডপরবর কযপরফন

ltphp

plugins_url($path $plugin)

gt

Parameters

$path-(string)(optional)- গযপররগটব াথ URL $plugin- (string)(optional)- পলাগগন পাাআর মা াঅগন (__FILE__) এয ভাধযপরভ া কযপরত চান ডমভনাঃ ltphp

echo ltimg src=rdquoplugins_url(imagesiconpng__FILE)rdquogt

gt

এয পরযা URL পরফ ltimg src=rdquohttpliton-onlinecomwp-contentpluginsliton-pluginimagesiconpngrdquo gt

15

াধযায়- গতনাঃ রক

ওয়াডডপরে রক( Hook) গক ওয়াডডপরেপর রক ফরপরত াধাযনত add_action() াথফা add_filter() পাাংন ডক ডফাোয় এাআ রগট পাাংনপরক remove_action() াথফা remove_filter() গদপরয় ভপরি ডপরা মায় মগদও াপরনপরকয কাপরি রপরনগি ডম এাআ রগট পাাংপরনয ভপরধয ডকান াথডকয ডনাআ গকনত াঅপরর তা নয় গফযাট াথডকয াঅপরি এ রগট পাাংপরনয ভপরধয াঅগভ ভরত এাআ রগট পাাংন গদপরয়াআ গকি পলাগগন ফাগনপরয় ডদখাফ কাযন খফাআ গরতবিড এাআ রগট পাাংন মপপরকড বাপররাবাপরফ জানা

গপলটায রক (Filter Hooks)

গপলটায রক পাাংপরনয কাজ পরচছ কনপরটনটপরক ভগডপাাআ কযা গপলটায রক গদপরয় টাাআপরটর কনপরটনট াআতযাগদ ভগডপাাআ কযা মায় ডমভন টাাআপরটর এ ডকান টযাগ না থাকা গবগজটয কপরভপরনট ltgt t ag span t ag াআতযাগদ গদপরয় াাআপরটয ডরাঅউপরটয গযফতডন কপরয গদপরত াপরয ভাপরন ডকান কপরভপরনট মগদ এযকভ ht ml ডকাড াড কযা থাপরক তাপরর ডদখপরত খাযা রাগপরফ এগপররা াফশয এখন ওয়াডডপরে াপরটাপরভগটকযাগর কপরয গকনত এাআ কাজগপররা ভরত গপলটায রক গদপরয় কযা পরয় থাপরক গপলটায রক রাআ ধযপরনয add_filter() এফাং remove_filter() পাাংন খফ গরতবনড একগট কথা গপলটায রকপরক গযটানড কযপরত য় ltphp

add_filter($tag $function $priority $accepted_args)

gt

$tag- ডম রকপরক াঅগন ডযগজসটায কযপরত চান $function- ডম পাাংনপরক াঅগন াঅউটপরট গপলটায কপরয ডদখাপরত চান $priority- একগট াআগনটজায াংখযা মা াঅনায গপলটাযপরক িভানাপরয াজাপরফ মগদ ডকান

াংখযা না ডদয়া থাপরক তাপরর এগট ১০ গডপলট গপরপরফ থাপরক $ accepted_args- ডম াংখযক যাযাগভটায একগট পাাংন েি কযপরত াপরয গডপলট গপরপরফ

১ থাপরক াঅনায পাাংপরন ানততাঃ একগট যাযাগভটায থাকপরত পরফ মা গযটানড কযপরফ apply_filter($tag$value)

$tag- গপলটায রপরকয নাভ $value- রপরকয ভধয গদপরয় ডম যাযাগভটায া কযাপরফন

াঅভযা এখন একগট উদাযি ডদখফ ডমখাপরন টাাআপরটর এয েগতটা ওয়াডডপরক ফড় াপরতয াকষপরয রানতয কযফ গনপরচ একগট পলাগগন ডদখন- ltphp

Plugin Name Liton filter

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10

16

Author Md Liton Arefin

Author URI httpliton-onlinecom

add_filter(the_titleliton_modify_title)

function liton_modify_title($content)

return ucwords($content)

gt

পলাগগনগট এগকটপরবট কযায াঅপরগ ডাসট টাাআপরটর ডদখন-

এফায পলাগগনগট এগকটপরবট কযায পরয ডাসট টাাআপরটর ডদখন-

এাআ পলাগগনগট াঅভাপরদয াপরনক ভয়াআ কাপরজ রাগপরত াপরয কাযন াপরনপরকাআ াঅভযা এাআ পযভযাটগট িনদ কগয ঠাৎ কপরযাআ াঅভযা ডাসট টাাআপরটর গরখায ভয় ফড় াপরতয াকষয কযপরত বপরর ডমপরত াগয াঅভযা এাআ কাজগট খফ ডিাট একগট পলাগগন গদপরয় াপরটাপরভগটকবাপরফ কযপরত াগয

17

এখন াঅগভ গকি াগতগযি গফলয় গনপরয় াঅপররাচনা কযফ ডমগপররা ডভপরন চরপরর বগফষযপরতয জনয বার পরফ াঅগভ একগট পাাংন গরপরখগি- add_filter(the_titleliton_modify_title)

function liton_modify_title($content)

return ucwords($content)

একট গফসতাগযত ফরপরর াঅভযা the_title এয ভধয গদপরয় মা া কযফ তা গপলটায কযপরফ এখাপরন াঅভযা ucwords the_title এয ভধয গদপরয় া কপরযগি এফায াঅপরযা টড পভড ডদগখ add_filter(the_title ucwords)

তায ভাপরন পরযা পলাগগনগট পরফ এযকভ- ltphp

Plugin Name Liton filter

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_filter(the_title ucwords)

gt

গক খফ জ রাগপরি এখাপরন ফপরর যাগখ ডম ucwords এগট গযগব কযপরফ the_title মা া কযপরি এফাং াপরটাপরভগটকযাগর গযটানড কযপরফ the_title এ সতযাাং এখাপরন গযটানড এয দযকায ডনাআ এফায াঅগন মগদ গএাআচগ বাডন ৫৩ ফযফায কপরযন তাপরর গনপরচয ভত কপরয anonymous function ফযফায কযপরফন াঅনাযা জাবাগিে ডজকপরয়গয‟য াপরথ গযগচত এগট াপরনকটাাআ এযকভ ltphp

Plugin Name Liton filter

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_filter(the_title function($content)

return ucwords($content)

)

gt

বার কপরয ডদখন ডতা াথডকযটা ডকাথায় গনপরজ গনপরজ কাজ কযপরর এবাপরফ কযপরফন াফশযাআ এগট একট এডবানস ডরপরফপররয কাজ মগদও পলাগগন ফানাপরনায ডকষপরতর এগট এখপরনা াঅদড নয় কাযন াপরনপরকযাআ গএাআচগ বাডন এখপরনা ৪ এাআ ডথপরক ডগপরি সতযাাং এাআ িগতগট একানতাআ গনপরজয জনয

18

এযাকন রক (Action Hooks) Action Hooks পরচছ ড ভসত রক ডমগপররা ওয়াডডপরেপরয রাাআপ াাআপরকর গনপরয় কাজ কপরয Action Hooks রাআ ধযপরনয add_action() remove_action() এাআ রকগপররা কাজ কপরয মখন ডকান ডাসট ডব কযা য় ডাসট াফগর কযা য় কপরভনট কযা য় ডকান বলগ ডাপরসট াথফা ওপরয়ফাাআপরট ডডাযপটায ডজনাপরযট য় এগপররা েগতগট একগট একগট কপরয Actions মখন াআউজায তায এডগভগনপরসটরটয ডভনপরত েপরফ কপরয এগপররা ফাআ Action Hooks এখাপরন াঅভযা কনপরটনটপরক গপলটায কযগিনা াঅভযা ওয়াডডপরেপরয গনগদডষট পাাংনগপররাপরক রক কপরয কাজ কযগি াঅভযা একগট উদাযন ডদগখ- ltphp

Plugin Name Liton Action

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(wp_footer function($content)

echo Hello This is Liton Arefin

)

gt

াঅনাপরদয সগফধাপরথড ডফাোয জনয গনপরচয ভত কপরয গরখন- ltphp

Plugin Name Liton Action

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(wp_footer liton_footer_action)

function liton_footer_action($content)

echo Hello This is Liton Arefin

gt

াঅভযা খফ ডিাট একগট উদাযন গদপরয় ডদখরাভ ডম action রক গকবাপরফ কাজ কপরয গনপরচ ডদগখ াাআপরট ডকভন ডদখায়-

19

উপরযয িগফপরত ডদখন াঅগভ Hello This is Liton Arefin এাআ রাাআনগট গেনট কপরযগি এফাং তা পটাপরযয ফাভ াপর এপরকফাপরয গনপরচ ডদখাপরচছ এফায ডাড ডকাড এ ডদগখ াঅপররাআ এয গজন টা ডকাথায় াঅপরি

উপরয ডদখন পটাপরযয গঠক গনপরচাআ রাাআনগট ডদখাপরচছ এফায াঅপরযকগট ফাসতফ এফাং খফাআ গরতবনড উদাযন ডদগখ এাআ পলাগগনগটয কাজ পরফ মখনাআ ডকান কপরভনট ডাসট পরফ তখনাআ এডগভনপরক ডভাআর াঠাপরফ ডম নতন কপরভনট ডাসট পরয়পরি মগদও ওয়াডডপরে এাআ কাজগট কপরয থাপরক াঅভযা এাআ কাজগট ভযানয়ারী কপরয ডদগখ ltphp

Plugin Name Liton Comments Mail

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(comment_post function()

$email= get_bloginfo(admin_email)

wp_mail(

$email

New Comment Posted

A new comment has been left on your blog

)

)

gt

এখাপরন comment_post নাপরভয রপরক একগট ডবগযপরয়ফর $email ndashএ এডগভন ডভাআরপরক ডসটায কপরযগি মাপরত কপরয ডাাআনাগভক বাপরফ ড ডমপরকান াাআপরটয এডগভন ডভাআরপরক গডপরটকট কযপরত াপরয তপরফ এপরকষপরতর মগদ bloginfo(admin_email) ফযফায কযা ত তাপরর এডগভন ডভাআরপরক গডপরটকট কযত গকনত get_bloginfo(admin_email) ফযফায কযায পপরর াঅভযা াআপরভাআর বযারগটপরক গযটানড কপরয ডসটায কযগি এফাপরয ওয়াডডপরেপরয গফলটাআন ডভাআর পাাংন wp_mail(emailsubjectmessage) এয ভত কপরয গরপরখগি বার কপরয ডদখন পলাগগনগট এগকটপরবট কপরয ডদখন াঅনায াাআট মগদ ানরাাআপরন থাপরক তাপরর গনপরজাআ একগট কপরভনট কপরয ডদখন াঅনায এডগভন ডভাআপরর একগট ডভাআর চপরর ডগপরি

20

াধযায়- চাযাঃ পলাগগন ডকাগডাং সটযানডাডড

পলাগগন এগকটপরবনগডএগকটপরবন পাাংন াঅগন মখন একগট পলাগগনপরক এগকটব কপরযন তখনাআ এগকটপরবন পাাংন গিগায য় এাআ পাাংনপরক register_activation_hook() ফপরর ltphp register_activation_hook($file $function) gt

Parameters

$file- োাআভাগয পলাগগন পাাআপররয াথ

$function- ডম পাাংনগট গিগায পরফ মখন পলাগগন এগকটপরবট য় ডমভনাঃ- ltphp

register_activation_hook(__FILE__ bdquoliton_plugin_install‟)

function liton_plugin_install()

do something cool stuff

gt

াঅভযা একগট পলাগগন ফানাাআ এবাপরফ-

ltphp

Plugin Name Liton Version

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

register_activation_hook(__FILE__ liton_plugin_install)

function liton_plugin_install()

If(version_compare(get_bloginfo(version)51lt))

deactivate_plugins(basename(__FILE__))

deactivate our plugin

gt

মখন াঅভযা পলাগগন গডএগকটপরবট কগয তখন পলাগগন গডএগকটপরবন পাাংন কর য়

21

ltphp

register_deactivation_hook ($file $function) gt

-

ltphp

register_deactivation_hook (__FILE__ bdquoliton_plugin_install‟)

function liton_plugin_install()

do something

gt

াঅপরযকগট গরতবনড গফলয় র াঅনাআনসটর ওয়াডডপরে াঅনাপরক পলাগগন াঅনাআনসটর এয জনয রগট ান গদপরচছ- uninstallphp file and the uninstall hook

uninstallphp

এগট ডভাটাভগট েনপরমাগয িগত এ ডভথড ফযফায কযায জনয াঅনাপরক uninstallphp নাপরভ একগট পাাআর ততগয কযপরত পরফ াঅনায পলাগগন গডপরযকটগযপরত পাাআরগট গনপরচয ভত পরফ- ltphp

মগদ ওয়াডডপরে এগকসট কযায াপরথ াঅনাআনসটর কর কযা না য় If(defined(bdquoWP_UNINSTALL_PLUGIN‟))

exit()

delete_option(bdquoliton_plugin_options‟)

াগতগযি ান এফাং কাসটভ ডটগফর ভপরি ডপরন gt

Uninstall Hook

গিতীয় িগত র Uninstall Hook মগদ াঅগন ডকান পলাগগনপরক গডগরট কযপরত চান এফাং uninstallphp পাাআর না থাপরক তাপরর এাআ রক এগকসগকউট য়(মগদ থাপরক) ltphp

register_uninstall_hook($file$function)

gt

22

ডকাগডাং সটযানডাডড পলাগগন ফানাপরফন গকনত াঅনায ডকাড ডকভন পরফ গচনতা াঅপরত াপরয ওয়াডডপরে াঅনায জনয একগট সটযানডাডড গদপরয় গদপরয়পরি মা াঅনাপরক ওয়াডডপরেপরয জনয পলাগগন গরখপরত ডগপরর পপররা কযপরতাআ পরফ httpcodexwordpressorgWordPress_Coding_Standards

ডফগক একগট উদাযন গদরাভ গনপরচ- ltphp

Short description

Longer more detailed description

param type $varname1 Description

param type $varname2 Description

return type Description

function boj_super_function( $varname1 $varname2 )

do function stuff

gt

গএাআচগ সটানডাডড াঅভযা াপরনপরকাআ গএাআচগয টড পভড(lt gt) ফযফায কগয এটা মপিডরপর ফজডন করন কাযন াপরনক ডাগসটাং ডকামপাগনপরতাআ এটা গডপলট গপরপরফ ফনধ কপরয ডদয়া থাপরক সটযানডাডড টযাগ ফযফায করন(ltphp gt)

এগকউএর ডসটটপরভনট পলাগগন ততগযয ভয় াঅনাপরক াপরনক ভয়াআ ডাটাপরফ ডথপরক াআনপযপরভন গনপরত পরত াপরয াপরনক রাাআপরনয ডকাড গরখপরত পরত াপরয ডপরকষপরতর বার েযাকগট পরচছ এগকউএর এয কভানড গপররা ফড় াপরতয াকষপরয ডরখা ডমভন- SELECT username FROM table1 WHERE status = active

23

াধযায়- াাচাঃ ওয়াডডপরেপরয াপরথ াআগনটপরেন

ডভন এফাং াফ ডভন ততগয করন াঅভযা াপরনক পলাগগপরনাআ ডদগখ ডম একগট ডভন াঅাআপরটভ গপরপরফ াঅভাপরদয ডযাপরফাপরডড ডদখপরত াাআ এফাং ডাআ ডভনপরত গিক কযপরর ডগটাং ডজ াঅপর ডখাপরন পলাগগপরনয মাফতীয় ডগটাং গদপরয় াঅভযা পলাগগন কনগপগায কগয এফায এাআ চভৎকায কাজগট কযফ াঅভযা

ট ডরপরবর ডভন েথভ িগত পরচছ একগট ট ডরপরবর ডভন ততগয কযা ডমগট াঅভযা ডযাপরফাপরডড ডভন গরপরসট একগট নতন াঅাআপরটভ গপরপরফ ডমাগ কযফ ডভন ততগয কযায জনয াঅনাপরক add_menu_page( ) পাাংন ফযফায কযপরত পরফ ltphp

add_menu_page( page_title menu_title capability menu_slug functionicon_url

position )

gt

add_menu_page() পাাংন গনপরচয যাযাগভটাযগপররা াপরাটড কপরয page_title- াঅনায ডপরজয টাাআপরটর গক পরফ lttitlegt tag এয ভপরধয menu_title- ডযাপরফাপরডড াঅনায ডভনয নাভ capability- ফডগনমন capability রাগপরফ একগট ডভন গবউ পরত menu_slug- সলাগ নাভ মা ডভনপরক ডযপায কপরয- তপরফ এগট াআউগনক পরত পরফ function- একগট ডপরজয কনপরটনট ডদখপরত ডম পাাংন কর কযা য় icon_url- একগট কাসটভ াআপরভজ গরঙক ডভন াঅাআকন ডদখাপরনায জনয position- ডভনয গজন াডডায ডমখাপরন এটা ডদখাপরনা পরফ

এফায াঅভযা একগট ফাসতফ উদাযন ডদখফ- ltphp

Plugin Name Liton Menu

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action( admin_menu liton_menu)

function liton_menu()

24

create custom top-level menu

add_menu_page( Liton Menu Page Liton Menu Page manage_options

__FILE__ liton_menu_settings_page plugins_url( imageswp-logopng

__FILE__ ) )

gt

াঅভযা একগট ট ডরপরবর ডভন ততগয কযরাভ ডদখন ডযাপরফাপরডড ডকভন ডদখায়-

Liton Menu Page নাপরভ একগট ডভন ততগয পরয় ডগপরি এফাপরয াঅভযা াফপরভন কযফ ভাপরন Liton Menu Page এয গনপরচ গকি ডগটাং ডভন(মগদ েপরয়াজন য়) াফ ডভন ডযগজসটায কযায জনয add_submenu_page( ) পাাংন ফযফায কযা য় ltphp

add_submenu_page( parent_slug page_title menu_title capabilitymenu_slug

function )

gt

parent_slug- ডভন সলাগ মা াঅভযা াঅপরগ গডপাাআন কপরযগি menu_slug- মা ডভনপরক াফপরভনপরত ডযপায কযপরফ ফাগক পাাংনগপররা াঅপরগয ভতাআ

এফায াফপরভনয জনয গকি াগতগযি ডকাড ডমাগ কগয create submenu items

add_submenu_page( __FILE__ About My Plugin About manage_options

__FILE___about liton_menu_about_page )

add_submenu_page( __FILE__ Help with My Plugin Help

manage_options

__FILE___help liton_menu_help_page )

add_submenu_page( __FILE__ Uninstall My Plugin Uninstall

manage_options

__FILE___uninstall liton_menu_uninstall_page )

25

পরযা ডকাডগট পরফ এযকভ- ltphp

Plugin Name Liton Menu

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action( admin_menu liton_menu

)

function liton_menu()

create custom top-level menu

add_menu_page( Liton Menu Settings Page Liton Menu Page

manage_options __FILE__

liton_menu_settings_page

plugins_url( imageswp-logopng __FILE__ ) )

create submenu items

add_submenu_page( __FILE__ About My Plugin About manage_options

__FILE___about liton_menu_about_page )

add_submenu_page( __FILE__ Help with My Plugin Help

manage_options

__FILE___help liton_menu_help_page )

add_submenu_page( __FILE__ Uninstall My Plugin Uninstall

manage_options

__FILE___uninstall liton_menu_uninstall_page )

gt

গনপরচ ডদখন াফপরভনগপররা ততগয পরয় ডগপরি-

26

ডভনপরক াঅপরগয ডভনয াপরথ মি কযা এফায াঅগ গিতীয় িগতপরত মগদ াঅনায পলাগগপরনয একগট ভাতর ডজ থাপরক একগট ভাতর ডপরজাআ াঅনায কর ডগটাং পরয় মায় তাপরর এাআ িগত েন করন ডমভন ডয়াগযাং াাআটগপররায জনয রধ াঅনায াঅাআগডপযানপরপরজয াঅাআগড দযকায য় এযকভ পলাগগন এধযপরনয পলাগগপরনয জনয াঅনায াগতগযি ডভন ততগয কযায দযকায ডনাআ ফযাং এপরত কপরয াআউজায গফযি ডফাধ কযপরত াপরযন এ ধযপরনয পলাগগনগপররা ডগটাং এয াফপরভন গপরপরফ থাপরক add_options_page() এাআ পাাংন গদপরয় এফ ডভন ডযগজসটায কযা য় ltphp

add_options_page( page_title menu_title capability

menu_slug function)

gt

এফায চরন এযকভ একগট ডভন ততগয কগয- ltphp

Plugin Name Liton Sub Menu

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action( admin_menu liton_submenu)

function liton_submenu()

create a submenu under Settings

add_options_page( Liton Menu Settings Page Liton Menu Page

manage_options __FILE__

liton_menu_settings_page)

27

gt

াফপরভন ততগয পরয় ডগপরি চরন ডদগখ ডযাপরফাপরডড ডকভন ডদখায়-

এপরকফাপরয গনপরচয গদপরক ডদখন Liton Menu Page নাপরভ একগট ডভন ততগয পরয়পরি

উাআপরজট ততগয কযা উাআপরজট ততগয কযায জনয ওয়াডডপরে WP-Widget িা গদপরয় ততগয কযা য় উাআপরজট এয একগট পযভযাট ডদখন গনপরচ ltphp

class My_Widget extends WP_Widget

function My_Widget()

processes the widget

function form($instance)

displays the widget form in the admin dashboard

function update($new_instance $old_instance)

process widget options to save

function widget($args $instance)

displays the widget

gt

28

উাআপরজট ডযগজসটায কযায জনয widget_init() পাাংনপরক রক কযা য় চরন একগট উাআপরজট ততগয কগয- ltphp

Plugin Name Liton Widget

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

class Messager extends WP_Widget

function __construct()

$params=array(

description =gtDisplay message to readers

name =gt Message

)

parent__construct(Messager $params)

public function form()

public function widget()

add_action(widgets_initliton_register_message)

function liton_register_message()

register_widget(Messager)

gt

29

খফ াধাযন একগট উাআপরজট পলাগগন এগট াঅভযা াআউজাযপরদযপরক একগট ডভপরজ ডদখাপরফা াাআডফাপরয ডটাাআ কযায ডচষটা কযগি এখন পলাগগনগট এগকটপরবট কপরয ডদগখ-

াঅভাপরদয উাআপরজটগট ডদখাপরচছ এফায াঅপরযা গকি পাাংনার কাজ কগয এগট মগদ াাআডফাপরয ডরাগ কপরয ডদন তাপরর ডকান কাজ কযপরফ না কাযন াঅভযা এখপরনা গকিাআ কগযগন পভড পাাংপরন গকি কাজ কগয মা উাআপরজট টাাআপরটর গপরপরফ ডদখাপরফ- public function form($instance)

extract($instance)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title)gtgtTitle ltlabelgt

ltinput

class=widefat

id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt

value=ltphp if(isset($title)) echo esc_attr($title) gt gt

ltpgt

ltphp

াঅভযা উপরয class=widefat ফযফায কপরযগি এাআ িা ফযফায কযায কাযপরন পভড এয াআনট গপলডগট াপরনক সনদয পরয়পরি

30

মগদ এাআ িা ফযফায না কগয তাপরর ডকভন ডদখাপরফ গনপরচ ডদখন-

াঅভাপরদয উাআপরজট পলাগগনগটয ডকাড গনপরচ ডদওয়া র ltphp

Plugin Name Liton Widget

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

class Messager extends WP_Widget

function __construct()

$params=array(

description =gtDisplay message to readers

name =gt Message

)

parent__construct(Messager$params)

31

public function form($instance)

extract($instance)

print_r($instance)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title)gtgtTitle ltlabelgt

ltinput

class=widefat

id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt

value=ltphp if(isset($title)) echo esc_attr($title) gt gt

ltpgt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(description)gtgtDescription

ltlabelgt

lttextarea

class=widefat

rows=10

id=ltphp echo $this-gtget_field_id(description) gt

name=ltphp echo $this-gtget_field_name(description) gtgtltphp

if(isset($description)) echo esc_attr($description) gtlttextareagt

ltpgt

ltphp

public function widget($args$instance)

extract($args)

extract($instance)

echo $before_widget

echo $before_title$title$after_title

echo ltpgt$descriptionltpgt

echo $after_widget

add_action(widgets_initliton_register_message)

function liton_register_message()

32

register_widget(Messager)

gt

এফায াঅভযা ডযাপরফাডড ডথপরক একগট ডভপরজ ডদফ গবগজটযপরদযপরক-

াঅভযা এাআ উাআপরজটগট ডাাআনাগভক বাপরফ কপরযগি কাযন এখাপরন lth2gt lth3gt lth4gt এ ধযপরনয ডকান টযাগ াঅভযা ফযফায কগযগন াঅভযা গথভ ডডপরবর কযগিনা সতযাাং এ কাজগট াঅভাপরদয ানযবাপরফ কযা দযকায গির এগট গথভ ডডপরবরায ডদগখপরয় ডদপরফন ডম ডকভন টযাগ পরফ াাআডফাপরয াাআপরটয াাআডফাপরয ডকভন ডদখায় তা ডদখন- াঅভযা রগট গথপরভ এগট ডটসট কপরয ডদখফ েথভগট টপরয়গনট াআপররপরবন

33

এফায াঅপরযকগট গথপরভ ডদগখ-

34

াধযায়- িয়াঃ পলাগগন পাাংন

গকি ডফগক পাাংন __() পাাংন

__() পাাংনগট গএাআচগপরত াঅনায ডটকসটপরক ডযগড কপরয িানসপররন এফাং গযটানড কপরয উদাযন গপরপরফ াঅগন একগট বযারপরক __() পাাংপরনয ভপরধয ডবগযপরয়ফর গদপরয় assign করন ভপরন যাখপরফন এাআ পাাংনগট রগট াঅনডাযপরিায(_) গদপরয় গগঠত একগট নয় ltphp

$text=__(bdquoWordpress is a wonderful publishing platform‟‟liton_plugin‟)

gt

_e() পাাংন _e() পাাংনগট াঅনায ডটকসবপরট ডরাকারাাআজ কপরয এটা গএাআচগপরত echo এয ভত কাজ কপরয ডকান ডটকসটপরক গিপরন ডদখাপরনায জনয এফায একট ভজা কগয মা রপরক ডদপরখগি াঅপরগাআ- _e() পাাংনগট গদপরয় াঅপরগয পলাগগনগট এগডট কযফ ltphp

Plugin Name Liton Action

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(wp_footer liton_footer_action)

function liton_footer_action()

Output the translated text

_e( This site runs off the coolest platform ever ampmdash

WordPress

liton-plugin )

gt

35

এফায াঅউটট ডদগখ

esc_attr__() পাাংন এাআ পাাংনগট esc_attr() এয ভত এগট এাআচগটএভএর এগিগফউটপরক escape কপরয াঅভযা এফায esc_attr__() এফাং __() এাআ রগট পাাংনপরক একগট কপরয পলাগগন ততগয কযফ ltphp

Plugin Name Liton Esc Attr

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

A function that returns a link to the sites terms of service

page

function liton_terms_of_service_link()

return lta href=httpliton-onlinecomtos title=

esc_attr__( Visit the Terms of Service page boj-plugin ) gt __( Terms of

Service liton-plugin ) ltagt

Display the output of the liton_terms_of_service_link()

function

echo liton_terms_of_service_link()

gt

পলাগগনগটয াঅউটট ডদখন-

36

এযকভ াঅপরযা গকি পাাংন াঅপরি ডমগপররা াঅনাযা ডদপরখ ডনপরফন াআনটাযপরনট ডঘপরট

esc_html__() Function

esc_attr() Function

esc_url() Function

esc_js() Function

esc_html() Function

esc_attr_e() Function

esc_html_e() Function

_x() Function

_ex() Function

esc_attr_x() Function

esc_html_x() Function

_n() Function

_nx() Function

_n_noop() Function

_nx_noop() Function

Translation

bull Poedit httppoeditnet

bull GlotPress httpglotpressorg

bull Launchpad httpstranslationslaunchpadnet

bull Pootle httppootlelocamotionorg

bull KBabel httpi18nkdeorg

bull GNU Gettext httpgnuorgsoftwaregettext

GlotPress এখন ওপরয়ফ ডফড টর গপরপরফ ফযফায কযা পরচছ ওয়াডডে েপরজপরকটয ডিপরন একজন াথফা গটপরভয জনয িানসপররগটাং পটওয়যায গপরপরফ

37

াধযায়- াতাঃ পলাগগন গগকউগযগট

গগকউগযগট কগমপউটাপরযয বালায় ldquoগগকউগযগটrdquo ভাপরন বীগতকয একগট বদ ডমভন Cross Site

Scripting(XSS) Cross Site Request Forgery(CSRF) SQL Injection Privilege

Escalation Vulnerabilities এফাং Holes রফডর ডকাড একগট াবডাপরযয সযকষায জনয রভকীয কাযন পরত াপরয

পলাগগপরনয গগকউগযগট গক াঅনায পলাগগনগট ডমন গগকউয য় vulnerabilities data integrity এফাং reliability ডথপরক

াঅনায পলাগগনপরক গক গগকউগযগট ডদপরফন ওয়াডডপরে এনবায়যনপরভপরনট াঅনায পলাগগনপরক গগকউগযগট ডদয়া খফ কগঠন কাজ নয় এফাং খফ ভয় াপরকষ গফলয়ও নয় ওয়াডডপরেপরয গনজসব গকি পাাংন এপরকষপরতর াঅনাপরক খফাআ াাময কযপরফ

াআউজায াযগভন াঅভযা াপরনক পলাগগন াআনসটর কযায পরযাআ ডদপরখগি ডম মখনাআ এডগভন যাপরনর এ েপরফ কযপরত মাাআ তখন একগট এযয ডভপরজ াঅপর ডভপরজগট গনপরচয ভত-

ডরখা াঅপরি- You do not have sufficient permissionshellip এটা গনশচয়তা ডদয় ডম ডমপরকান এযাকন ীভাফি থাপরক গনগদডষট গকি যাাআট গদপরয় ওয়াডডপরেপরয একগট কভন পাাংন র current_user_can() একগট উদাযন ডদাআ-

38

ltphp

Capability

if ( current_user_can(install_plugins) )

wp_die( Insufficient permissions )

Role

if( current_user_can(editor) )

wp_die( You cannot edit this setting )

gt

খফ তাড়াতাগড় াঅগন এাআ current_user_can() পাাংন ডচক কযপরফন না কাযন এটা গনবডয কযপরফ get_currentuserinfo() এাআ পাাংপরনয উপরয াঅয এয ফযফাপরয ীভাফিতা াঅপরি এটা একগট পলাপরগফর পাাংন(pluggable function) াঅয এয ডরাপরকন পরচছ wp-

includespluggablephp মা পলাগগন এগকটব ফায য ডরাড য়

Nonces

ডকউ এগটপরক াঅফায Nonsense( গনপরফডাধ) বাফপরফন নাএগট ওয়াডডপরেপরয বালায় Nonces কগমপউটাপরযয বালায় nonce ফা cryptographic nonce পরচছ ldquonumber used once rdquo এটা ডিাট এফাং সপষট গকি য যানডভ গসটরাং ডমভন- াওয়াডড মা গকি গনপরদড কপরয Nonce গপরডন গপলড পভডপরক Retrieve ফা display কপরয-

একজন ওয়াডডপরে াআউজায ডমপরকান একগট এযাকন (delete update save and such) একগট াফপরজকট(একগট ডাসট পলাগগন ডগটাং াআতযাগদ) ২৪ ঘনটায একগট ভয় ডিভ

ডমভন ডাসট 50 গডগরট কযপরফন াঅনায ওয়াডডপরে বলগ ডথপরক তাপরর াঅনায গরঙকগট পরফ এযকভ- httpexamplecomwp-admin

postphppost=43ampaction=trashamp_wpnonce=83a08fcbc2

এখাপরন 83a08fcbc2 এগট র nonce মা ২৪ ঘনটা সথায়ী থাপরক রধভাতর এগট মগদ াঅনায িাযা ফযফরত য় এফাং গডগরট য় ডাসট 50 মখন াঅগন গরপরঙক গিক কপরযন ফপরচপরয় গযতবনড র ডম Nonce ডকান malicious াআউজায ফেপরত াপরযনা এফাং গঠক গরঙক িাড়া nonce এযয ডপরজ চপরর মায় ডমখাপরন াযগভন থাপরক না াঅপরযা গফসতাগযত ডদখন httpcodexwordpressorgWordPress_Nonces

39

Nonce URL ততগয এফায চরন াঅপরগয উদাযন ডথপরক Nonce URL ততগয কগয একগট ডাসট গডগরট কযায জনয wp_nonce_url() পাাংন ফযফায কযা য় ltphp

$url = wp_nonce_url( $url $action )

gt

েথভ যাযাগভটায $url পরচছ গসটরাং URL এপরডর এয মাপরক াঅগন কপরয়যী গসটরাং এয Nonce কযপরত চান াফযফহরত পলাগগপরনয গডগরট গরঙক এযকভ থাপরক- httpexamplecomwp-admineditphppage= liton

_utagsampliton_action=deleteampid=6

এখাপরন ডদখন যাযাগভটায liton_action এফাং এয টযাগ াঅাআগড গিতীয় যাযাগভটায পরচছ $action একগট গসটরাং মা াঅগন একগট াফপরজকট এয জনয একগট action ততগয কযপরফন উপরয ডদখরাভ delete এযাকন এয টযাগ াঅাআগড 6 সতযাাং $action যাযাগভটায পরত াপরয bdquoliton_utags-delete_tag6‟ গনপরচ ফাসতফ উদাযন ডদগখ- ltphp

$delete_url = add_query_arg(array( liton _action=gtdeleteid=gt$id) )

$nonced_url = wp_nonce_url( $delete_url bdquoliton _utags-delete_tag$id )

gt

lta href=ltphp echo $nonced_url gtgtdeleteltagt

এাআ টযাগগট পরফ গডগরট গরঙক এখাপরন add_query_arg() পাাংন ফযফায কযা পরয়পরি মা কাপরযনট URL ডক এযাপরয যাযাগভটায এয ভপরধয যাপরখ ানযবাপরফ ফরপরর এগট ডমাগ কপরয এযকভাঃ liton_action=deleteampid=6 amp liton_action=deleteampid=6

Nonce Form ততগয Nonce পভডপরকও ডোপরটকট কপরয wp_nonce_field() পাাংপরনয ভাধযপরভ ltphp

wp_nonce_field( $action $name $referer $echo ) gt

$action ( string) (optional) - action নাভ াআউগনক identifier optional

গকনত recommended $name (string) (optional) ndash গপরডন গপলড পভড ডবগযপরয়ফর নাভ $referer (boolean) (optional) ndash গডপলট গপরপরফ true থাপরক ডমখাপরন গপলড

ডবগরপরডন এয দযকায য়

40

$echo (boolean) (optional) - গডপলট গপরপরফ true থাপরক ডমখাপরন াঅউটট ডদখাপরনায ফা গপরডন পভড গপলড গযটানড কযায জনয দযকায য়

পপরভড াঅনায action এয নাভ গদন ltform method=postgt

lt-- some inputs here --gt

ltphp wp_nonce_field(name_of_my_actionname_of_nonce_field) gt

ltformgt

াঅভযা একগট পলাগগন ফানাপরফা ডমখাপরন াফযফরত টযাগগপররাপরক াঅভযা ভযানয়াগর গডগরট ফা গযপরনভ কযপরত াযফ এগট একট ফড় গকনত াপরনক গফলয়াআ াঅপরগাআ াঅপররাচনা কযা পরয়পরি ডদখপররাআ ফেপরত াযপরফন একগট ফাসতফধভডী উদাযন গনপরচ গদরাভ- ltphp

Plugin Name Liton Unused Tags

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add an entry for our option page to the Posts menu

add_action(admin_menu liton_utags_add_page)

function liton_utags_add_page()

add_posts_page( Unused Tags Unused Tagsmanage_optionsliton_utags

liton_utags_option_page )

Catch any liton_action parameter in query string

add_action( admin_init liton_utags_do_action )

Proceed to requested liton_action if applicable

function liton_utags_do_action()

if( isset( $_REQUEST[liton_action] ) )

return

if( current_user_can( manage_options ) )

wp_die( Insufficient privileges )

41

$id = $_REQUEST[id]

$action = $_REQUEST[liton_action]

if( $action == done )

add_action( admin_notices liton_utags_message )

return

check_admin_referer( liton_utags-$action_tag$id )

switch( $action )

case rename

$newtag = array( name =gt $_POST[name] slug =gt

$_POST[name] )

wp_update_term( $id post_tag $newtag )

break

case delete

wp_delete_term( $id post_tag )

break

wp_redirect( add_query_arg( array( liton_action =gt done )

) )

Admin notice

function liton_utags_message()

echo ltdiv class=updatedgtltpgtAction

completedltpgtltdivgt

Draw the tag management page

function liton_utags_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtUnused Tagslth2gt

ltphp

if( $tags = liton_utags_find_orphans() )

echo ltpgtYou currently have count( $tags ) unused

tagsltpgt

echo ltolgt

foreach( $tags as $tag )

42

$id = $tag-gtterm_id

$name = esc_attr( $tag-gtname )

$delete_url= add_query_arg(

array(liton_action=gtdeleteid=gt$id) )

$nonced_url= wp_nonce_url( $delete_url

liton_utags-delete_tag$id )

gt

ltligt

ltform action= method=postgt

ltphp wp_nonce_field( liton_utags-rename_tag$id )

gt

ltinput type=hidden name=liton_action

value=rename gt

ltinput type=hidden name=id value=ltphp echo

$id gt gt

ltinput type=text name=name value=ltphp echo

$name gt gt

ltinput type=submit value=Rename gt or

lta href=ltphp echo $nonced_url gtgtdeleteltagt

this tag

ltformgt

ltligt

ltphp

else gt

ltpgtYou have no unused tagsltpgt

ltphp endif gt

ltolgt

ltdivgt

ltphp

Find unused tags return them in an array

function liton_utags_find_orphans()

global $wpdb

$sql = SELECT termsterm_id termsname FROM

$wpdb-gtterms terms

INNER JOIN $wpdb-gtterm_taxonomy taxo

ON termsterm_id=taxoterm_id

WHERE taxotaxonomy = post_tag

43

AND taxocount=0

return $wpdb-gtget_results( $sql )

gt

ডযাপরফাপরডড এাআ পলাগগপরনয ডভন াওয়া মাপরফ ডাসট এয াফপরভন গপরপরফ গনপরচ ডদখন-

এফায পলাগগন ডভনপরত গিক কপরয ডদগখ পলাগগপরনয ডবতপরযয কাজ-

উপরয ডদখন াঅগভ একগট টযাগ ততগয কপরযগিরাভ l i নাপরভ এগট এখাপরন ডদখাপরচছ াঅগভ চাাআপরর এগট এগডট ফা গডগরট কযপরত াগয এফায গডগরট গরঙক এ ভাউপরয কাডয ডযপরখ গনপরচ গরঙক ডদখন ফা গডগরট করন একগট টযাগ াঅভায এখাপরন URL গট এযকভ httplocalhostdev-litonwp-

admineditphppage=liton_utagsampliton_action=doneampid=4amp_wpnonce=30a44b7

986

এখাপরন াঅগভ liton_action=done ফযফায কপরযগি Nonces এয পাাংনগপররায নাভ গনপরচ গদরাভ াঅনাযা ডদপরখ গনপরফন াআনটাযপরনট ডথপরক wp_nonce_field()

wp_nonce_url()

wp_verify_nonce()

wp_create_nonce()

44

check_admin_referer()

check_ajax_referer()

ডাটাপরফ াঅনাযা ডমপরত গএাআচগ গনপরয় কাজ কপরযন এগকউএর ডাটাপরফ এয াপরথ ফাাআ কভপরফী গযগচত এয গনটযাকস গপররা ডভাটাভগট ফায জানা একাআ বাপরফ াপরনপরকাআ ওয়াডডপরেপরও ডাটাপরফ ডকাড গরপরখন এটা ডকাগডাং এয জনয খাযা গদক াঅগভ নযভার গএাআচগ- এগকউএর ডকাড এয উদাযন গদগচছ- ltphp

$sql=rdquoINSERT INTO $wpdb-gtposts(post_title) VALUES(bdquo$title‟)rdquo

$wpdb-gtquery($sql) gt

এফায ওয়াডডপরেপরয সটযানডাডড ডকাগডাং গপরসটভ ডদখন- ltphp

$wpdb-gtinsert($wpdb-gtposts

array(bdquopost_title‟ =gt $title)

array(bdquos‟)

)

gt

ডাটাপরফ গগকউয কযায জনয াঅপরডট াাপরযন ডদখাফ- গনপরচয ডকাডগট খাযা েযাকগট ltphp

$wpdb-gtquery(ldquoUPDATE $wpdb-gtposts SET post_title=‟$newTitle‟ WHERE

ID=$my_idrdquo )

gt

উপরযয ভত কপরয না গরপরখ গনপরচয ভত কপরয গরখন- ltphp

$wpdb-gtupdate($wpdb-gtposts

Array(bdquopost_title‟ =gt‟$newTitle‟)

Array(bdquoID‟ =gt$my_id

)

gt

ানর বাপরফ ানযানয াাপরযন গপররা গরখপরফন

45

াধযায়- াঅটাঃ ডরাকারাাআপরজন এফাং Set t i ngs API

ডরাকারাাআপরজন ডরাকারাাআপরজন একগট গরতবনড গফলয় এয পাাংনগপররা র- load_theme_textdomain()

load_plugin_textdomain()

উদাযন- ltphp $var=__(bdquoHello‟‟domain‟) gt

ltphp _e(bdquoHello‟‟domain‟) gt

গফসতাগযত গনপরচয গরপরঙক ডদখন- httpcodexwordpressorgI18n_for_WordPress_Developers

ডগটাং API

ডগটাং API পরচছ াঅগন গকি ান ততগয কযপরফন মা াআনটাযনার বাপরফ াঅনায পলাগগপরন এপলাাআ পরফ মখন াঅগন াআউজায- গডপাাআন ান ততগয কযপরফন াঅনায পলাগগপরনয জনয তখন Settings

API ndashএ াঅনায ডকাড মতটা ারন জ করন Settings API াঅনায ডম কাজগপররা handle কপরয-

ওয়াডডপরেপরক জাগনপরয় ডদয় ডম াঅগন গনজসব ান ফযফায কযপরফন াঅনায াআনটপরক পাাংপরনয ভপরধয উপরেখ কযপরফ ডফগয বাগ ান ডজ গনপরজাআ ততগয কযপরফ $_POST ডাটা গপররাপরক ভগনটয কপরয ান ততগয এফাং াঅপরডট কপরয(মগদ েপরয়াজন য়)

Settings API পাাংন Settings API পাাংপরন গতনগট ডসট থাপরক- ১ েথপরভ ওয়াডডপরেপরক ফপরর ডম াঅগন নতন ডগটাং ফযফায কযপরফন াঅনায পলাগগপরনয জনয ২ এয পরয ডগটাং গডপাাআন করন (text areas input boxes and any

HTML form element) এফাং এপরদযপরক একাপরথ রে কপরয যাপরখ ৩ ওয়াডডপরেপরক াঅনায ডগটাং actual form এ ডদখাপরনায জনয ফপরর

46

এফায াঅভযা একগট পলাগগন ফানাপরফা Administration Page ndashএ ডযপাপরযনস গপরপরফ ডদখপরত াপরযন- httpcodexwordpressorgAdding_Administration_Menus

httpcodexwordpressorgFunction_Referenceadd_options_page

httpcodexwordpressorgAction_ReferenceActions_Run_During_an_Admin_P

age_Request

পলাগগপরনয এডগভন ডজ পরফ এযকভ- httpexamplecomwp-adminoptions-generalphppage=liton_myplugin

েথপরভ াঅভযা ডভন ততগয কযফ াঅপরগয ভত কপরয- Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

এফায ান ডজ এ পভড গনপরয় গকি ডগটাং ডদফ function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

উপরযয ডকাপরড াঅভযা একগট পপরভডয ভপরধয রধ াফগভট ফাটন এফাং My Plugin নাপরভ ডজ ততগয কপরযগি ডযাপরফাপরডড ডদখন-

47

ডগটাং এয াফ ডভন গপরপরফ My Plugin াঅপরি এফাং My Plugin ডত গিক কযপরর াঅভযা উপরযয ডজ ততগয কপরযগি ডমখাপরন াফগভট ফাটনগট ডদখাপরচছ এফায গতনগট যাযাগভটায ডযগজসটায কযফ- ltphp

register_setting( liton _myplugin_options liton _myplugin_options liton

_myplugin_validate_options)

gt

েথভগট ডগটাং রেপরয নাভ গিতীয়গট ান নাভ মা াঅভযা get_option() পাাংন গদপরয়ও ডপরত াগয ততীয়গট করফযাক পাাংন এগট একগট গসটরাং ডযপাপরযনস পাাংন এখাপরন াঅভযা নাভ

48

গদপরয়গি liton _myplugin_validate_options মা া কযপরফ পপরভডয কর ডব ডগটাং াঅভযা এটা পরয গডপাাআন কযফ

ডগটাং গডপাাআন ডকন add_settings_field() এফাং add_settings_section() পাাংন গদপরয় াঅভযা াঅভাপরদয কর ডগটাং গডপাাআন কযফ ltphp

add_settings_section( liton_myplugin_main My Plugin Settings

liton_myplugin_section_text liton _myplugin)

add_settings_field( liton _myplugin_text_string Enter text here

liton _myplugin_setting_input liton _myplugin liton _myplugin_main)

gt

add_settings_section() পাাংন গদপরয় াঅভযা ডদখাফ াঅপরর ডজ এ ডকন ডকভন ডদখাপরফ এয চাযগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ ডকন টাাআপরটর ltH3gt টযাপরগয ভপরধয করফযাক পাাংন এয নাভ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ (page= liton _myplugin এগট

URL এয াাং গপরপরফ থাকপরফ) গিতীয় যাযাগভটায add_settings_field() পপরভডয াআনট গপরপরফ ডদখাপরনা পরয়পরি এখাপরন াাচগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ পরযয গপপরলড গক গেনট কযা পরফ তা ডটকসট গপরপরফ ডদখাপরনা পরয়পরি(Enter text

here)

করফযাক পাাংন পপরভড গেনট কযপরফ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ ডগটাং ডপরজয ডকন গপলড মা add_settings_section() পাাংপরন গডপাাআন

কযা পরয়পরি ltphp

Explanations about this section

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

49

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton _myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name= liton _myplugin_options[text_string]

type=text value=$options[text_string] gt

gt

গিতীয় পাাংন ান বযার text_string ডক এযাপরযপরত ডসটায কপরয ডযপরখপরি এফায াআউজায াআনট বযাগরপরডট কযফ- ltphp

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace([^a-zA-Z]$input[text_string] )

return $valid

gt

পভডপরক ডযনডায কযফ- ltphp

Draw the options page

function liton_myplugin_options_page()

gt

ltdiv class=wrapgt

ltphp

screen_icon()

gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp

settings_fields( liton_myplugin_options)

do_settings_sections(liton_myplugin)

50

gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

settings_fields() পাাংনগট ডযপাপরযনস গপরপরফ ফযফায কযা পরয়পরি মা াঅভযা register_setting() পাাংপরন গডপরিয়ায কপরযগি do_settings_sections() পাাংনগট কর কযপরফ কর াঅউটট ডকন এফাং পভড গপলডপরক মা াঅভযা পরফড গডপাাআন কপরযগি াঅভাপরদয কাজ ডল এফায পরযা পলাগগনগট ডদখফ- ltphp

Plugin Name Settings API example

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

Draw the option page

function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save

Changes gt

ltformgtltdivgt

ltphp

51

Register and define the settings

add_action(admin_init liton_myplugin_admin_init)

function liton_myplugin_admin_init()

register_setting( liton_myplugin_options

liton_myplugin_options

liton_myplugin_validate_options )

add_settings_section( liton_myplugin_main My Plugin

Settings

liton_myplugin_section_text liton_myplugin )

add_settings_field( liton_myplugin_text_string Enter text

here

liton_myplugin_setting_input liton_myplugin

liton_myplugin_main )

Draw the section header

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton_myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name=liton_myplugin_options[text_string]

type=text value=$text_string gt

Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

return $valid

gt

52

ডদখন ডযাপরফাপরডড ডকভন ডদখায়-

পরয় ডগর াঅভাপরদয েথভ নডাাংগ পলাগগন ান ডজ াঅপরযকগট গজগন ডমটায জনয এতগকি পলাগগন URL এপরডর- httplocalhostdev-litonwp-adminoptions-

generalphppage=liton_mypluginampsettings-updated=true

াঅভায এখাপরন এযকভ ডদখাপরচছ ডটকসট ফপরকস ডকান গকি গরপরখ ডব কযায য এফাপরয াঅপরযকগট গজগন ডদখফ াঅভযা াপরনক ভয়াআ াপরনক পলাগগপরনয াআনট গপপরলড বর ডাটা াআনট কযপরর এযয ডভপরজ ডদখায় এাআ কাজগট কযফ এফায াঅভযা এখাপরন esc_attr() ফা esc_html() ফযফায কগযগন সতযাাং াঅভাপরদয গরগভপরটন থাকপরি ডবগরপরডট পাাংনগট একট এগডট কগয গনপরচয ভত কপরয Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

if( $valid[text_string] = $input[text_string] )

add_settings_error(liton_myplugin_text_stringliton_myplugin_texterror

53

Incorrect value enterederror)

return $valid

উপরয ডদখন add_settings_error() পাাংন ফযফায কপরযগি মা এযয ডচক কযপরফ পপরভডয াঅগভ একগট বর ডাটা(পরসপার কযাপরযকটায) াআনট কপরয ডদখরাভ এযয ডদখাপরচছ-

তায ভাপরন াঅভযা পর পরয়গি াঅনায পলাগগনগট এগডট কপরয ডনপরফন ডকায ডকন এফাং গপপরলডয গরসট গদরাভ াঅনাপরদয সগফধায জনয

54

CSSJS পাাআর মি কযা

াঅনায পলাগগপরন গএএ ফা জাবাগিে ডমাগ কযপরত পরত াপরয াঅগন চাাআপরর ফাগপরযয ডকান ফা াঅনায ততগয ডকান গএএ ফা জাবাগিে পাাআর ডমাগ কযপরত াপরযন তপরফ এপরকষপরতর াঅভযা ডমবাপরফ HTML এ পাাআর ডমাগ কগয ডযকভ না function liton_scripts()

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtojqueryjsrdquogtltscriptgt‟

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtoscriptjsrdquogtltscriptgt‟

add_action(bdquowp_head‟‟liton_scripts‟)

এগট মপনডরপর বর িগত গনপরচ ডদখন ওয়াডডপরেপর গকবাপরফ পাাআর মি কযপরত য়- function liton_scripts()

wp_enqueue_script(bdquojquery‟)

wp_enqueue_script(bdquotheme-scripts‟‟pathtoscriptsjs‟)

add_action(bdquowp_enqueue_script‟‟liton_scripts‟)

ানর বাপরফ াঅগন সটাাআরীট ডমাগ কযপরত াপরযন- function liton_styles()

wp_enqueue_ style (bdquocss‟)

wp_enqueue_ style (bdquotheme- styles‟pathto stylescss‟)

ডযপাপরযনস ডদখন- httpcodexwordpressorgFunction_Referencewp_enqueue_script

httpcodexwordpressorgFunction_Referencewp_enqueue_style

টডপরকাড টডপরকাড পরচছ ওয়াডডপরেপরয ডসপগগপক ডসপার টযাগ মা াঅগন ডাসট ফা ডপরজয ভপরধয াআনাটড কপরয ানয ডকান কনপরটনটপরক ওপরয়ফাাআপরটয ভপরধয গযপরপল কযপরত াযপরফন মগদ াঅগন গযারাগয টাাআপরয ডকান পলাগগন ফযফায কপরয থাপরকন তাপরর াঅনায ধাযনা থাকায কথা মাাআ ডাক াঅগভ কপরয়কগট উদাযি ডদখাফ

55

েথপরভ একগট পলাগগন ততগয কযফ ডমখাপরন add_shortcode() নাপরভয একগট পাাংন থাকপরফ এগট রগট যাযাগভটায েন কপরয েথভগট টডপরকাপরডয নাভ গিতীয়গট ডম পাাংনপরক কর কযপরফন ডগট াঅভযা একগট উদাযন ডদগখ- ltphp

Plugin Name Liton Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(litonhi)

function hi()

echo Hello World

gt

উপরয ডদখন খফ ডিাট গকনত াঅগন চাাআপরর এয ফযফায াপরনক গফসতত কযপরত াপরযন এখাপরন টডপরকাড নাভ পরচছ liton াঅয এগটপরক ডরখা য় এবাপরফ [liton] াঅভযা ডাপরসটয ভপরধয াআনাটড কপরয ডদগখ াঅউটট ডকভন ডদখায়-

এফায াঅউটট ডদগখ-

56

াঅভাপরদয ততগয কযা টডপরকাড পরবাপরফাআ কাজ কযপরি াঅপরযকগট উদাযন ডদখফ াঅনাযা াপরনপরকাআ গগর এডপরনস গনপরয় কাজ কপরযন াঅনাযা াপরনপরকাআ এডপরনস এয জনয পলাগগন ফযফায কপরযন গকনত চাাআপররাআ এাআ কাজগট াঅনাযা গনপরজয ভত কপরয াগজপরয় গনপরত াপরযন গগপররয কাপরি ফ ডাসট বযার ায়না াঅনাযা মাযা একসাটড াঅপরিন তাযা এটা বার কপরয জাপরনন তাাআ াপরনপরকাআ গগপররয ডকাড ফ ডপরজ ডদখাপরত চান না এজনয পলাগগন ফযফায কপরয রাব য়না কাযন পলাগগপরন জায়গা গপকসড থাপরক এপরত কপরয াঅগনডাং ও কভ য় াঅনাযা টডপরকাড ফযফায কপরয ডমপরকান জায়গায় এড ডদখাপরত াপরযন গনপরচ াঅগভ রগট টডপরকাড ততগয কপরযগি র‟ধযপরনয এড ডদখাপরনায জনয ltphp

Plugin Name Liton Adsense Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(adsense_468adsense_468_60)

add_shortcode(adsense_250adsense_250_250)

function adsense_468_60($atts)

return ltscript type=textjavascriptgtlt--

57

google_ad_client = ca-pub-0956247412222369

468x60 created 101510

google_ad_slot = 4372705450

google_ad_width = 468

google_ad_height = 60

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

function adsense_250_250($atts)

return ltscript type=textjavascriptgtlt--

google_ad_client = ca-pub-0956247412222369

250x250 created 81809

google_ad_slot = 9368091893

google_ad_width = 250

google_ad_height = 250

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

gt

একগট টডপরকাড ফযানায টাাআপরয জনয এফাং াঅপরযকগট ২৫০২৫০ াাআপরজয এফায ডাপরসট ডমপরকান একগট টডপরকাড াআনাটড করন ডমখাপরন াঅনায ডদখাপরনায েপরয়াজন ভপরন কপরযন াঅগভ রগট ডকাড ডটসট কপরয ডদখরাভ-

58

এফায াাআপরটয াঅউটট ডদগখ-

রগট এডাআ ডদখাপরচছ াঅপরযা াপরনক কাপরজ াঅগন টডপরকাড ফযফায কযপরত াপরযন ডযপাপরযনসাঃ httpcodexwordpressorgShortcode_API

59

াধযায়- নয়াঃ পলাগগন উদাযন

ওয়াডডপরেপরয ডডটটাাআভকপরভনট নামবায ফাাংরা কযায পলাগগন াঅভাপরক কপরয়কজন ফপররগিপররন ওয়াডডপরেপরয গডপলট ডডটটাাআভকপরভনট নামবায ফাাংরা য়না রযাাংগপরয়জ ফাাংরা কযায যও ডডটটাাআভকপরভনট নামবায গপররা াআাংপরযগজ ডথপরক মায় গনপরচয পলাগগনগট ফযফায কপরয ডদখপরত াপরযন- ltphp

Plugin Name Liton Bangla datetimecomment number

Plugin URI httpliton-onlinecomplugins

Description Bangla datetimecomment number

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

This function converts all english numbers to bangla number

function make_bangla_number($str)

$engNumber = array(1234567890)

$bangNumber = array( ১ ২ ৩ ৪ ৫ ৬ ৭ ৮ ৯ ০ ) $converted = str_replace($engNumber $bangNumber $str)

return $converted

add_filter( get_the_time make_bangla_number )

add_filter( the_date make_bangla_number )

add_filter( get_the_date make_bangla_number )

add_filter( comments_number make_bangla_number )

add_filter( get_comment_date make_bangla_number )

add_filter( get_comment_time make_bangla_number )

gt

60

সলাাআডায পলাগগন াঅভযা এাআ ফাআপরয়য কর গটউপরটাগযয়াপরর মা মা গখরাভ তা এফায একগট নডাাংগ পলাগগপরনয এপলাাআ কযফ সলাাআডায পলাগগন মপপরকড াঅভযা ফাাআ জাগন একগট ওপরয়ফাাআপরটয ডচাযা ারপরট ডদয় একগট সলাাআডায াপরনক ডাাআনাগভক ভপরন য় ডদখপরতও াপরনক বার রাপরগ এাআ পলাগগপরন াঅভযা এডগভন যাপরনর ডথপরক াআপরভজ ডমাগ কযফ এফাং তা াঅভাপরদয াাআপরট ডদখাফ চরন কাজ রর কগয- েথপরভ গনপরবা সলাাআডায এয ওপরয়ফাাআপরট মান এফাং jQuery Plugin ডাউনপররাড করন

ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom Version 10

gt

াঅভযা পলাগগপরনয ডডায ততগয কযরাভ

পলাগগন গরপরসট ডদখাপরচছ bdquoLitons Nivo Plugin‟ াঅভাপরদয েথভ কাজ পরচছ custom post

type ওয়াডডপরে পাাংনাগরগট একগট নতন কাসটভ ডজ ততগয কযপরত custom post type

ফযফহরত পরফ ডমখাপরন একগট াআপরভজ থাকপরফ াঅভযা রধ টাাআপরটর ডনভ এফাং াআপরভজ াঅপররাডায গপরপরফ গপচায াআপরভজ পাাংনাগরগট ফযফায কযফ function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_function 600 280 true)

61

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

add_action(init np_init)

উপরযয ডকাপরড np_init() পাাংনগট রক কপরযগি মা ডডায যান কযায াঅপরগ যান পরফ াঅয এজনয register_post_type() পাাংনপরক এয যাযাগভটায গদপরয় np_init() পাাংপরনয ডবতপরয মি কপরযগি এটা মগদ না কযতাভ তাপরর ldquoHeaders already sentrdquo ডভপরজ ডদখাত এাআ ডভপরজগটয াপরথ াপরনপরকাআ গযগচত াঅা কগয register_post_type() পাাংন গদপরয় াঅভযা াআপরভজ মি এফাং ভযাপরনজ কযফ ভরত াঅভযা একগট নতন custom post type ডমাগ কপরযগি np_images নাভ গদপরয় নতন custom post type ডক ডগটাং বযার গপরপরফ াঅযগপরভনট া কপরযগি $args ডবগযপরয়ফরগট ট ডরপরবর ডভন ততগয কপরয াঅপরগাআ ডদপরখগি পলাগগনগট এগকটপরবট কযপরর াঅভযা গনপরচয ভত ডদখপরত াফ-

এফায গিে এফাং সটাাআরীট ডক মি কযফ- add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

এফায রক কযা পাাংনগপররা গডপরিয়ায কগয- function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__) array( jquery ))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

62

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

উপরযয ডকাডগপররা নতন কপরয ফিডনা কযায গকি ডনাআ াঅপরগাআ wp_enqueue_style() এফাং wp_enqueue_script() মপপরকড ফরা পরয়পরি নতন াঅপরযকগট পাাআর ততগয করন একাআ গডপরযকটগযপরত scriptjs এফাং গনপরচয ডকাডটক গদন- jQuery(document)ready(function($)

$(slider)nivoSlider()

)

াআপরভজপরক গযাাআজ করন- add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

াঅভযা এাআ পলাগগনগটপরক উাআপরজট গপরপরফও ফযফায কযফ ডগট পরয ডদখফ াঅপরযকগট গজগন মগদ গথপরভ না ডদয়া থাপরক ডজনয থামবপরনাআর াপরাটড গদপরয় গদন- add_theme_support( post-thumbnails )

এফায ওয়াডডপরেপরয কাপরযনট ডাসট কপরয়যী কযায ডকাড াঅয $result ডবগযপরয়ফপরর ডমফ ltdivgt টযাগ ফযফায কযা পরয়পরি তা jQuery Plugin গট একসিাকট কপরয indexhtml ডজগটয ডভাআন সলাাআডায ডকাডগট ডদখন একাআ াঅপরি রধ ডখানকায ltdivgt টযাগ গপররাপরক কগ কপরয এাআ পলাগগপরন ফযফায কযা পরয়পরি এফায টডপরকাড গদন- add_shortcode(np-shortcode np_function)

এাআ টডপরকাড গএাআচগ পাাংনপরক রক কযপরফ এফাং এয ভধয ডথপরক সলাাআডপরায কনপরটনট ডক গযটানড কযপরফ াঅভাপরদয টডপরকাড পরচছ [np-shortcode] াঅভযা পলাগগপরন মাাআ এফাং একগট িগফ মি কগয গপচাযড াআপরভজ গপরপরফ গনপরচ ডদখন-

63

াঅগভ াঅপরযকগট ডজ ততগয কপরযগি ডমখাপরন টডপরকাড গদপরয়গি

াঅউটট ডজ ডদগখ এফায-

64

পরয় ডগর াঅভাপরদয সলাাআডায পলাগগন পরযা ডকাডগট গনপরচ গদরাভ- ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

65

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

66

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

এফায াঅগন মগদ উাআপরজট গপরপরফ ফযফায কযপরত চান তাপরর গনপরচয ডকাডটক গদন- class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

67

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

echo $after_widget

াঅপরযা রগট কাজ কযপরত পরফ াঅনাপরক এক াআপরভজ াাআজ উাআপরজট এয জনয গঠক কপরয গদপরত পরফ- add_image_size(np_widget 180 100 true)

াঅপরযকগট র উাআপরজট এযাকন রক ডমাগ কযা add_action(widgets_init np_widgets_init)

উাআপরজট পরযা ডকাড াঅফায গদরাভ- ltphp

Plugin Name Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Ciprian Turcu

Version 10

68

class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

69

echo $after_widget

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

70

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(widgets_init np_widgets_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

71

পলাগগন গনপরয় এত ডিাট গযপরয ডরখা মভফ নয় এজনযাআ ভপরন য় পলাগগন গনপরয় ডকউ ডরপরখন না কাযন এখাপরন এত গফলয় াঅপরি মা াঅপররাচনা কযপরত ডগপরর ৫০০ ডজ ায পরয় মাপরফ ডফাোয সগফধাপরথড াঅগভ মথামভফ উদাযন গদপরয় ডফাোপরনায ডচষটা কপরযগি াঅগভ এখাপরন টাপরগডট কপরযগি মাযা টকটাক জাপরন পলাগগন মপপরকড এডবানস ডরপরবপররয নয় কাযন তাযা জাপরনন াঅভায উপরেশয গির মাযা জানপরত চায় তাপরদযপরক জানাপরনা এখাপরন ডমফ গফলয় াঅপররাচনা কযা পরয়পরি তা ডভাটাভগট ভাপরনয একগট পলাগগন ফানাপরনায জনয মপরথষট তপরফ ভাপরনাননয়পরনয জনয াঅনাপরক গনপরজাআ খাপরজ গনপরত পরফ াঅনায জনয ডকানটা বার পরফ াঅগভ রধ গদক গনপরদডনা গদরাভ ভাতর এাআ ফাআগট রধভাতর ওয়াডডপরে রেপরয জনয ডরখা াপরনক বর ভরাগনত থাকপরত াপরয াঅনাযা কষভাসনদয দগষটপরত ডদখপরফন াঅগভ ডচষটা কপরযগি মতটা জ কপরয ডরখা মায় াপরনক ভয় ডদখা মায় ডম খফ ডিাট খাপরটা গফলয় গনপরয় াপরনপরকাআ নক কপরযন এটা গতয রাঃখজনক াঅনাযা গগপরর একট খাজপররাআ ভাধান াপরফন াঅপরগ গনপরজ ডচষটা করন তায পরয ানযপরক ভাধাপরনয জনয গজজঞাা করন াঅভায জনয ডদায়া কযপরফন বাপররা রাগপরর জানাপরফন খাযা রাগপররও জানাপরফন তাপররাআ াঅভায গযশরভ সবাথডক পরফ ভতাভত জাগনপরয় াঅভাপরক ডভাআর কযপরত াপরযন litonice09gmailcom |

72

Page 12: Wordpress Plugin Development

13

ডরাকার াবডায াথাঃ ডরাকার াবডায াথ াঅনায কগমপউটাপরযয গডপরযকটগযয ভতাআ ডরাকার াবডায াথ াধাযনত ফযফায কযা য় মখন াঅনাপরক গনপরজয ডরাকার াবডাপরযয গকি পাাআর i ncl ude কযপরত য় একগট কভন েশন র- পলাগগন পাাআপররয াথ ডদখাপরনায গঠক িগত ডকানগট াঅনায পলাগগপরনয ডরাকার াথ ডদখাপরনায জনয াঅনাপরক plugin_dir_path() পাাংন ফযফায কযপরত পরফ plugin_dir_path() পাাংন পলাগগন গডপরযকটগযয গপগজকযার াথ একসিযাকট কপরয পাাআপররয নাভ ডথপরক ltphp plugin_dir_path($file) gt

Parameters

$file-(string)(required)- পলাগগন পাাআপররয নাভ এখন ডদগখ গকবাপরফ পলাগগন ডপালডাপরযয নাভ ডফয কযপরত য়-

ltphp

echo plugin_dir_path(__FILE__)

gt

এখাপরন গএাআচগ কনসটযানট __FILE__ ডক plugin_dir_path পাাংপরনয ভধয গদপরয় া কযারাভ এাআ পাাংন াবডায াথ ডদখাপরফ পলাগগন গডপরযকটগযয public_htmlwp-contentpluginsliton-plugin

একাআবাপরফ াঅগন মগদ plugin_dir_path() এাআ পাাংনপরক মগদ ডকান াফ- গডপরযকটগযয পাাআরপরক ডযপায কগয তাপরর গনপরচয ভত কপরয ডযপায কযপরত পরফ ltphp

echo plugin_dir_path(__FILE__)jsscriptsjs

gt

এাআ ডকাডগট গনপরচয ভত াথ ডদখাপরফ- public_htmlwp-contentpluginsliton-pluginjsscriptsjs

URL াথাঃ াঅপরযা গকি পাাংন াঅপরি ডমগপররা গদপরয় ওয়াডডপরেপরয URL ডদখাপরনা মায়

plugins_url() - পলাগগন গডপরযকটগযয পরযা URL ( ডমভনাঃ httpliton-onlinecomwp-contentplugins)

includes_url() - পরযা গডপরযকটগযয URL include কপরয ( ডমভন httpliton-onlinecomwp-includes)

14

content_url() - পরযা কপরনটনট গডপরযকটগয URL ( ডমভনাঃ httpliton-onlinecomwp-content )

admin_url() - পরযা এডগভন URL

( ডমভনাঃ httpliton-onlinecomwp-admin ) site_url() - কাপরযনট াাআট এয পরযা URL

( ডমভনাঃ httpliton-onlinecom ) home_url() - কাপরযনট াাআট এয পরযা ডাভ URL

( ডমভনাঃ httpliton-onlinecom )

াথ গনপরয় াঅপরযা গফসতাগযত ডদখপরত াপরযনাঃ httpcodexwordpressorgDetermining_Plugin_and_Content_Directories

httpcodexwordpressorgFunction_Referenceplugins_url

httpcodexwordpressorgFunction_Referenceplugin_dir_url

httpcodexwordpressorgFunction_Referenceplugin_dir_path

plugins_url() পাাংন াঅনায উততভ ফনধ পরত াপরয মখন াঅগন পলাগগন ডডপরবর কযপরফন

ltphp

plugins_url($path $plugin)

gt

Parameters

$path-(string)(optional)- গযপররগটব াথ URL $plugin- (string)(optional)- পলাগগন পাাআর মা াঅগন (__FILE__) এয ভাধযপরভ া কযপরত চান ডমভনাঃ ltphp

echo ltimg src=rdquoplugins_url(imagesiconpng__FILE)rdquogt

gt

এয পরযা URL পরফ ltimg src=rdquohttpliton-onlinecomwp-contentpluginsliton-pluginimagesiconpngrdquo gt

15

াধযায়- গতনাঃ রক

ওয়াডডপরে রক( Hook) গক ওয়াডডপরেপর রক ফরপরত াধাযনত add_action() াথফা add_filter() পাাংন ডক ডফাোয় এাআ রগট পাাংনপরক remove_action() াথফা remove_filter() গদপরয় ভপরি ডপরা মায় মগদও াপরনপরকয কাপরি রপরনগি ডম এাআ রগট পাাংপরনয ভপরধয ডকান াথডকয ডনাআ গকনত াঅপরর তা নয় গফযাট াথডকয াঅপরি এ রগট পাাংপরনয ভপরধয াঅগভ ভরত এাআ রগট পাাংন গদপরয়াআ গকি পলাগগন ফাগনপরয় ডদখাফ কাযন খফাআ গরতবিড এাআ রগট পাাংন মপপরকড বাপররাবাপরফ জানা

গপলটায রক (Filter Hooks)

গপলটায রক পাাংপরনয কাজ পরচছ কনপরটনটপরক ভগডপাাআ কযা গপলটায রক গদপরয় টাাআপরটর কনপরটনট াআতযাগদ ভগডপাাআ কযা মায় ডমভন টাাআপরটর এ ডকান টযাগ না থাকা গবগজটয কপরভপরনট ltgt t ag span t ag াআতযাগদ গদপরয় াাআপরটয ডরাঅউপরটয গযফতডন কপরয গদপরত াপরয ভাপরন ডকান কপরভপরনট মগদ এযকভ ht ml ডকাড াড কযা থাপরক তাপরর ডদখপরত খাযা রাগপরফ এগপররা াফশয এখন ওয়াডডপরে াপরটাপরভগটকযাগর কপরয গকনত এাআ কাজগপররা ভরত গপলটায রক গদপরয় কযা পরয় থাপরক গপলটায রক রাআ ধযপরনয add_filter() এফাং remove_filter() পাাংন খফ গরতবনড একগট কথা গপলটায রকপরক গযটানড কযপরত য় ltphp

add_filter($tag $function $priority $accepted_args)

gt

$tag- ডম রকপরক াঅগন ডযগজসটায কযপরত চান $function- ডম পাাংনপরক াঅগন াঅউটপরট গপলটায কপরয ডদখাপরত চান $priority- একগট াআগনটজায াংখযা মা াঅনায গপলটাযপরক িভানাপরয াজাপরফ মগদ ডকান

াংখযা না ডদয়া থাপরক তাপরর এগট ১০ গডপলট গপরপরফ থাপরক $ accepted_args- ডম াংখযক যাযাগভটায একগট পাাংন েি কযপরত াপরয গডপলট গপরপরফ

১ থাপরক াঅনায পাাংপরন ানততাঃ একগট যাযাগভটায থাকপরত পরফ মা গযটানড কযপরফ apply_filter($tag$value)

$tag- গপলটায রপরকয নাভ $value- রপরকয ভধয গদপরয় ডম যাযাগভটায া কযাপরফন

াঅভযা এখন একগট উদাযি ডদখফ ডমখাপরন টাাআপরটর এয েগতটা ওয়াডডপরক ফড় াপরতয াকষপরয রানতয কযফ গনপরচ একগট পলাগগন ডদখন- ltphp

Plugin Name Liton filter

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10

16

Author Md Liton Arefin

Author URI httpliton-onlinecom

add_filter(the_titleliton_modify_title)

function liton_modify_title($content)

return ucwords($content)

gt

পলাগগনগট এগকটপরবট কযায াঅপরগ ডাসট টাাআপরটর ডদখন-

এফায পলাগগনগট এগকটপরবট কযায পরয ডাসট টাাআপরটর ডদখন-

এাআ পলাগগনগট াঅভাপরদয াপরনক ভয়াআ কাপরজ রাগপরত াপরয কাযন াপরনপরকাআ াঅভযা এাআ পযভযাটগট িনদ কগয ঠাৎ কপরযাআ াঅভযা ডাসট টাাআপরটর গরখায ভয় ফড় াপরতয াকষয কযপরত বপরর ডমপরত াগয াঅভযা এাআ কাজগট খফ ডিাট একগট পলাগগন গদপরয় াপরটাপরভগটকবাপরফ কযপরত াগয

17

এখন াঅগভ গকি াগতগযি গফলয় গনপরয় াঅপররাচনা কযফ ডমগপররা ডভপরন চরপরর বগফষযপরতয জনয বার পরফ াঅগভ একগট পাাংন গরপরখগি- add_filter(the_titleliton_modify_title)

function liton_modify_title($content)

return ucwords($content)

একট গফসতাগযত ফরপরর াঅভযা the_title এয ভধয গদপরয় মা া কযফ তা গপলটায কযপরফ এখাপরন াঅভযা ucwords the_title এয ভধয গদপরয় া কপরযগি এফায াঅপরযা টড পভড ডদগখ add_filter(the_title ucwords)

তায ভাপরন পরযা পলাগগনগট পরফ এযকভ- ltphp

Plugin Name Liton filter

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_filter(the_title ucwords)

gt

গক খফ জ রাগপরি এখাপরন ফপরর যাগখ ডম ucwords এগট গযগব কযপরফ the_title মা া কযপরি এফাং াপরটাপরভগটকযাগর গযটানড কযপরফ the_title এ সতযাাং এখাপরন গযটানড এয দযকায ডনাআ এফায াঅগন মগদ গএাআচগ বাডন ৫৩ ফযফায কপরযন তাপরর গনপরচয ভত কপরয anonymous function ফযফায কযপরফন াঅনাযা জাবাগিে ডজকপরয়গয‟য াপরথ গযগচত এগট াপরনকটাাআ এযকভ ltphp

Plugin Name Liton filter

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_filter(the_title function($content)

return ucwords($content)

)

gt

বার কপরয ডদখন ডতা াথডকযটা ডকাথায় গনপরজ গনপরজ কাজ কযপরর এবাপরফ কযপরফন াফশযাআ এগট একট এডবানস ডরপরফপররয কাজ মগদও পলাগগন ফানাপরনায ডকষপরতর এগট এখপরনা াঅদড নয় কাযন াপরনপরকযাআ গএাআচগ বাডন এখপরনা ৪ এাআ ডথপরক ডগপরি সতযাাং এাআ িগতগট একানতাআ গনপরজয জনয

18

এযাকন রক (Action Hooks) Action Hooks পরচছ ড ভসত রক ডমগপররা ওয়াডডপরেপরয রাাআপ াাআপরকর গনপরয় কাজ কপরয Action Hooks রাআ ধযপরনয add_action() remove_action() এাআ রকগপররা কাজ কপরয মখন ডকান ডাসট ডব কযা য় ডাসট াফগর কযা য় কপরভনট কযা য় ডকান বলগ ডাপরসট াথফা ওপরয়ফাাআপরট ডডাযপটায ডজনাপরযট য় এগপররা েগতগট একগট একগট কপরয Actions মখন াআউজায তায এডগভগনপরসটরটয ডভনপরত েপরফ কপরয এগপররা ফাআ Action Hooks এখাপরন াঅভযা কনপরটনটপরক গপলটায কযগিনা াঅভযা ওয়াডডপরেপরয গনগদডষট পাাংনগপররাপরক রক কপরয কাজ কযগি াঅভযা একগট উদাযন ডদগখ- ltphp

Plugin Name Liton Action

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(wp_footer function($content)

echo Hello This is Liton Arefin

)

gt

াঅনাপরদয সগফধাপরথড ডফাোয জনয গনপরচয ভত কপরয গরখন- ltphp

Plugin Name Liton Action

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(wp_footer liton_footer_action)

function liton_footer_action($content)

echo Hello This is Liton Arefin

gt

াঅভযা খফ ডিাট একগট উদাযন গদপরয় ডদখরাভ ডম action রক গকবাপরফ কাজ কপরয গনপরচ ডদগখ াাআপরট ডকভন ডদখায়-

19

উপরযয িগফপরত ডদখন াঅগভ Hello This is Liton Arefin এাআ রাাআনগট গেনট কপরযগি এফাং তা পটাপরযয ফাভ াপর এপরকফাপরয গনপরচ ডদখাপরচছ এফায ডাড ডকাড এ ডদগখ াঅপররাআ এয গজন টা ডকাথায় াঅপরি

উপরয ডদখন পটাপরযয গঠক গনপরচাআ রাাআনগট ডদখাপরচছ এফায াঅপরযকগট ফাসতফ এফাং খফাআ গরতবনড উদাযন ডদগখ এাআ পলাগগনগটয কাজ পরফ মখনাআ ডকান কপরভনট ডাসট পরফ তখনাআ এডগভনপরক ডভাআর াঠাপরফ ডম নতন কপরভনট ডাসট পরয়পরি মগদও ওয়াডডপরে এাআ কাজগট কপরয থাপরক াঅভযা এাআ কাজগট ভযানয়ারী কপরয ডদগখ ltphp

Plugin Name Liton Comments Mail

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(comment_post function()

$email= get_bloginfo(admin_email)

wp_mail(

$email

New Comment Posted

A new comment has been left on your blog

)

)

gt

এখাপরন comment_post নাপরভয রপরক একগট ডবগযপরয়ফর $email ndashএ এডগভন ডভাআরপরক ডসটায কপরযগি মাপরত কপরয ডাাআনাগভক বাপরফ ড ডমপরকান াাআপরটয এডগভন ডভাআরপরক গডপরটকট কযপরত াপরয তপরফ এপরকষপরতর মগদ bloginfo(admin_email) ফযফায কযা ত তাপরর এডগভন ডভাআরপরক গডপরটকট কযত গকনত get_bloginfo(admin_email) ফযফায কযায পপরর াঅভযা াআপরভাআর বযারগটপরক গযটানড কপরয ডসটায কযগি এফাপরয ওয়াডডপরেপরয গফলটাআন ডভাআর পাাংন wp_mail(emailsubjectmessage) এয ভত কপরয গরপরখগি বার কপরয ডদখন পলাগগনগট এগকটপরবট কপরয ডদখন াঅনায াাআট মগদ ানরাাআপরন থাপরক তাপরর গনপরজাআ একগট কপরভনট কপরয ডদখন াঅনায এডগভন ডভাআপরর একগট ডভাআর চপরর ডগপরি

20

াধযায়- চাযাঃ পলাগগন ডকাগডাং সটযানডাডড

পলাগগন এগকটপরবনগডএগকটপরবন পাাংন াঅগন মখন একগট পলাগগনপরক এগকটব কপরযন তখনাআ এগকটপরবন পাাংন গিগায য় এাআ পাাংনপরক register_activation_hook() ফপরর ltphp register_activation_hook($file $function) gt

Parameters

$file- োাআভাগয পলাগগন পাাআপররয াথ

$function- ডম পাাংনগট গিগায পরফ মখন পলাগগন এগকটপরবট য় ডমভনাঃ- ltphp

register_activation_hook(__FILE__ bdquoliton_plugin_install‟)

function liton_plugin_install()

do something cool stuff

gt

াঅভযা একগট পলাগগন ফানাাআ এবাপরফ-

ltphp

Plugin Name Liton Version

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

register_activation_hook(__FILE__ liton_plugin_install)

function liton_plugin_install()

If(version_compare(get_bloginfo(version)51lt))

deactivate_plugins(basename(__FILE__))

deactivate our plugin

gt

মখন াঅভযা পলাগগন গডএগকটপরবট কগয তখন পলাগগন গডএগকটপরবন পাাংন কর য়

21

ltphp

register_deactivation_hook ($file $function) gt

-

ltphp

register_deactivation_hook (__FILE__ bdquoliton_plugin_install‟)

function liton_plugin_install()

do something

gt

াঅপরযকগট গরতবনড গফলয় র াঅনাআনসটর ওয়াডডপরে াঅনাপরক পলাগগন াঅনাআনসটর এয জনয রগট ান গদপরচছ- uninstallphp file and the uninstall hook

uninstallphp

এগট ডভাটাভগট েনপরমাগয িগত এ ডভথড ফযফায কযায জনয াঅনাপরক uninstallphp নাপরভ একগট পাাআর ততগয কযপরত পরফ াঅনায পলাগগন গডপরযকটগযপরত পাাআরগট গনপরচয ভত পরফ- ltphp

মগদ ওয়াডডপরে এগকসট কযায াপরথ াঅনাআনসটর কর কযা না য় If(defined(bdquoWP_UNINSTALL_PLUGIN‟))

exit()

delete_option(bdquoliton_plugin_options‟)

াগতগযি ান এফাং কাসটভ ডটগফর ভপরি ডপরন gt

Uninstall Hook

গিতীয় িগত র Uninstall Hook মগদ াঅগন ডকান পলাগগনপরক গডগরট কযপরত চান এফাং uninstallphp পাাআর না থাপরক তাপরর এাআ রক এগকসগকউট য়(মগদ থাপরক) ltphp

register_uninstall_hook($file$function)

gt

22

ডকাগডাং সটযানডাডড পলাগগন ফানাপরফন গকনত াঅনায ডকাড ডকভন পরফ গচনতা াঅপরত াপরয ওয়াডডপরে াঅনায জনয একগট সটযানডাডড গদপরয় গদপরয়পরি মা াঅনাপরক ওয়াডডপরেপরয জনয পলাগগন গরখপরত ডগপরর পপররা কযপরতাআ পরফ httpcodexwordpressorgWordPress_Coding_Standards

ডফগক একগট উদাযন গদরাভ গনপরচ- ltphp

Short description

Longer more detailed description

param type $varname1 Description

param type $varname2 Description

return type Description

function boj_super_function( $varname1 $varname2 )

do function stuff

gt

গএাআচগ সটানডাডড াঅভযা াপরনপরকাআ গএাআচগয টড পভড(lt gt) ফযফায কগয এটা মপিডরপর ফজডন করন কাযন াপরনক ডাগসটাং ডকামপাগনপরতাআ এটা গডপলট গপরপরফ ফনধ কপরয ডদয়া থাপরক সটযানডাডড টযাগ ফযফায করন(ltphp gt)

এগকউএর ডসটটপরভনট পলাগগন ততগযয ভয় াঅনাপরক াপরনক ভয়াআ ডাটাপরফ ডথপরক াআনপযপরভন গনপরত পরত াপরয াপরনক রাাআপরনয ডকাড গরখপরত পরত াপরয ডপরকষপরতর বার েযাকগট পরচছ এগকউএর এয কভানড গপররা ফড় াপরতয াকষপরয ডরখা ডমভন- SELECT username FROM table1 WHERE status = active

23

াধযায়- াাচাঃ ওয়াডডপরেপরয াপরথ াআগনটপরেন

ডভন এফাং াফ ডভন ততগয করন াঅভযা াপরনক পলাগগপরনাআ ডদগখ ডম একগট ডভন াঅাআপরটভ গপরপরফ াঅভাপরদয ডযাপরফাপরডড ডদখপরত াাআ এফাং ডাআ ডভনপরত গিক কযপরর ডগটাং ডজ াঅপর ডখাপরন পলাগগপরনয মাফতীয় ডগটাং গদপরয় াঅভযা পলাগগন কনগপগায কগয এফায এাআ চভৎকায কাজগট কযফ াঅভযা

ট ডরপরবর ডভন েথভ িগত পরচছ একগট ট ডরপরবর ডভন ততগয কযা ডমগট াঅভযা ডযাপরফাপরডড ডভন গরপরসট একগট নতন াঅাআপরটভ গপরপরফ ডমাগ কযফ ডভন ততগয কযায জনয াঅনাপরক add_menu_page( ) পাাংন ফযফায কযপরত পরফ ltphp

add_menu_page( page_title menu_title capability menu_slug functionicon_url

position )

gt

add_menu_page() পাাংন গনপরচয যাযাগভটাযগপররা াপরাটড কপরয page_title- াঅনায ডপরজয টাাআপরটর গক পরফ lttitlegt tag এয ভপরধয menu_title- ডযাপরফাপরডড াঅনায ডভনয নাভ capability- ফডগনমন capability রাগপরফ একগট ডভন গবউ পরত menu_slug- সলাগ নাভ মা ডভনপরক ডযপায কপরয- তপরফ এগট াআউগনক পরত পরফ function- একগট ডপরজয কনপরটনট ডদখপরত ডম পাাংন কর কযা য় icon_url- একগট কাসটভ াআপরভজ গরঙক ডভন াঅাআকন ডদখাপরনায জনয position- ডভনয গজন াডডায ডমখাপরন এটা ডদখাপরনা পরফ

এফায াঅভযা একগট ফাসতফ উদাযন ডদখফ- ltphp

Plugin Name Liton Menu

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action( admin_menu liton_menu)

function liton_menu()

24

create custom top-level menu

add_menu_page( Liton Menu Page Liton Menu Page manage_options

__FILE__ liton_menu_settings_page plugins_url( imageswp-logopng

__FILE__ ) )

gt

াঅভযা একগট ট ডরপরবর ডভন ততগয কযরাভ ডদখন ডযাপরফাপরডড ডকভন ডদখায়-

Liton Menu Page নাপরভ একগট ডভন ততগয পরয় ডগপরি এফাপরয াঅভযা াফপরভন কযফ ভাপরন Liton Menu Page এয গনপরচ গকি ডগটাং ডভন(মগদ েপরয়াজন য়) াফ ডভন ডযগজসটায কযায জনয add_submenu_page( ) পাাংন ফযফায কযা য় ltphp

add_submenu_page( parent_slug page_title menu_title capabilitymenu_slug

function )

gt

parent_slug- ডভন সলাগ মা াঅভযা াঅপরগ গডপাাআন কপরযগি menu_slug- মা ডভনপরক াফপরভনপরত ডযপায কযপরফ ফাগক পাাংনগপররা াঅপরগয ভতাআ

এফায াফপরভনয জনয গকি াগতগযি ডকাড ডমাগ কগয create submenu items

add_submenu_page( __FILE__ About My Plugin About manage_options

__FILE___about liton_menu_about_page )

add_submenu_page( __FILE__ Help with My Plugin Help

manage_options

__FILE___help liton_menu_help_page )

add_submenu_page( __FILE__ Uninstall My Plugin Uninstall

manage_options

__FILE___uninstall liton_menu_uninstall_page )

25

পরযা ডকাডগট পরফ এযকভ- ltphp

Plugin Name Liton Menu

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action( admin_menu liton_menu

)

function liton_menu()

create custom top-level menu

add_menu_page( Liton Menu Settings Page Liton Menu Page

manage_options __FILE__

liton_menu_settings_page

plugins_url( imageswp-logopng __FILE__ ) )

create submenu items

add_submenu_page( __FILE__ About My Plugin About manage_options

__FILE___about liton_menu_about_page )

add_submenu_page( __FILE__ Help with My Plugin Help

manage_options

__FILE___help liton_menu_help_page )

add_submenu_page( __FILE__ Uninstall My Plugin Uninstall

manage_options

__FILE___uninstall liton_menu_uninstall_page )

gt

গনপরচ ডদখন াফপরভনগপররা ততগয পরয় ডগপরি-

26

ডভনপরক াঅপরগয ডভনয াপরথ মি কযা এফায াঅগ গিতীয় িগতপরত মগদ াঅনায পলাগগপরনয একগট ভাতর ডজ থাপরক একগট ভাতর ডপরজাআ াঅনায কর ডগটাং পরয় মায় তাপরর এাআ িগত েন করন ডমভন ডয়াগযাং াাআটগপররায জনয রধ াঅনায াঅাআগডপযানপরপরজয াঅাআগড দযকায য় এযকভ পলাগগন এধযপরনয পলাগগপরনয জনয াঅনায াগতগযি ডভন ততগয কযায দযকায ডনাআ ফযাং এপরত কপরয াআউজায গফযি ডফাধ কযপরত াপরযন এ ধযপরনয পলাগগনগপররা ডগটাং এয াফপরভন গপরপরফ থাপরক add_options_page() এাআ পাাংন গদপরয় এফ ডভন ডযগজসটায কযা য় ltphp

add_options_page( page_title menu_title capability

menu_slug function)

gt

এফায চরন এযকভ একগট ডভন ততগয কগয- ltphp

Plugin Name Liton Sub Menu

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action( admin_menu liton_submenu)

function liton_submenu()

create a submenu under Settings

add_options_page( Liton Menu Settings Page Liton Menu Page

manage_options __FILE__

liton_menu_settings_page)

27

gt

াফপরভন ততগয পরয় ডগপরি চরন ডদগখ ডযাপরফাপরডড ডকভন ডদখায়-

এপরকফাপরয গনপরচয গদপরক ডদখন Liton Menu Page নাপরভ একগট ডভন ততগয পরয়পরি

উাআপরজট ততগয কযা উাআপরজট ততগয কযায জনয ওয়াডডপরে WP-Widget িা গদপরয় ততগয কযা য় উাআপরজট এয একগট পযভযাট ডদখন গনপরচ ltphp

class My_Widget extends WP_Widget

function My_Widget()

processes the widget

function form($instance)

displays the widget form in the admin dashboard

function update($new_instance $old_instance)

process widget options to save

function widget($args $instance)

displays the widget

gt

28

উাআপরজট ডযগজসটায কযায জনয widget_init() পাাংনপরক রক কযা য় চরন একগট উাআপরজট ততগয কগয- ltphp

Plugin Name Liton Widget

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

class Messager extends WP_Widget

function __construct()

$params=array(

description =gtDisplay message to readers

name =gt Message

)

parent__construct(Messager $params)

public function form()

public function widget()

add_action(widgets_initliton_register_message)

function liton_register_message()

register_widget(Messager)

gt

29

খফ াধাযন একগট উাআপরজট পলাগগন এগট াঅভযা াআউজাযপরদযপরক একগট ডভপরজ ডদখাপরফা াাআডফাপরয ডটাাআ কযায ডচষটা কযগি এখন পলাগগনগট এগকটপরবট কপরয ডদগখ-

াঅভাপরদয উাআপরজটগট ডদখাপরচছ এফায াঅপরযা গকি পাাংনার কাজ কগয এগট মগদ াাআডফাপরয ডরাগ কপরয ডদন তাপরর ডকান কাজ কযপরফ না কাযন াঅভযা এখপরনা গকিাআ কগযগন পভড পাাংপরন গকি কাজ কগয মা উাআপরজট টাাআপরটর গপরপরফ ডদখাপরফ- public function form($instance)

extract($instance)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title)gtgtTitle ltlabelgt

ltinput

class=widefat

id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt

value=ltphp if(isset($title)) echo esc_attr($title) gt gt

ltpgt

ltphp

াঅভযা উপরয class=widefat ফযফায কপরযগি এাআ িা ফযফায কযায কাযপরন পভড এয াআনট গপলডগট াপরনক সনদয পরয়পরি

30

মগদ এাআ িা ফযফায না কগয তাপরর ডকভন ডদখাপরফ গনপরচ ডদখন-

াঅভাপরদয উাআপরজট পলাগগনগটয ডকাড গনপরচ ডদওয়া র ltphp

Plugin Name Liton Widget

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

class Messager extends WP_Widget

function __construct()

$params=array(

description =gtDisplay message to readers

name =gt Message

)

parent__construct(Messager$params)

31

public function form($instance)

extract($instance)

print_r($instance)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title)gtgtTitle ltlabelgt

ltinput

class=widefat

id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt

value=ltphp if(isset($title)) echo esc_attr($title) gt gt

ltpgt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(description)gtgtDescription

ltlabelgt

lttextarea

class=widefat

rows=10

id=ltphp echo $this-gtget_field_id(description) gt

name=ltphp echo $this-gtget_field_name(description) gtgtltphp

if(isset($description)) echo esc_attr($description) gtlttextareagt

ltpgt

ltphp

public function widget($args$instance)

extract($args)

extract($instance)

echo $before_widget

echo $before_title$title$after_title

echo ltpgt$descriptionltpgt

echo $after_widget

add_action(widgets_initliton_register_message)

function liton_register_message()

32

register_widget(Messager)

gt

এফায াঅভযা ডযাপরফাডড ডথপরক একগট ডভপরজ ডদফ গবগজটযপরদযপরক-

াঅভযা এাআ উাআপরজটগট ডাাআনাগভক বাপরফ কপরযগি কাযন এখাপরন lth2gt lth3gt lth4gt এ ধযপরনয ডকান টযাগ াঅভযা ফযফায কগযগন াঅভযা গথভ ডডপরবর কযগিনা সতযাাং এ কাজগট াঅভাপরদয ানযবাপরফ কযা দযকায গির এগট গথভ ডডপরবরায ডদগখপরয় ডদপরফন ডম ডকভন টযাগ পরফ াাআডফাপরয াাআপরটয াাআডফাপরয ডকভন ডদখায় তা ডদখন- াঅভযা রগট গথপরভ এগট ডটসট কপরয ডদখফ েথভগট টপরয়গনট াআপররপরবন

33

এফায াঅপরযকগট গথপরভ ডদগখ-

34

াধযায়- িয়াঃ পলাগগন পাাংন

গকি ডফগক পাাংন __() পাাংন

__() পাাংনগট গএাআচগপরত াঅনায ডটকসটপরক ডযগড কপরয িানসপররন এফাং গযটানড কপরয উদাযন গপরপরফ াঅগন একগট বযারপরক __() পাাংপরনয ভপরধয ডবগযপরয়ফর গদপরয় assign করন ভপরন যাখপরফন এাআ পাাংনগট রগট াঅনডাযপরিায(_) গদপরয় গগঠত একগট নয় ltphp

$text=__(bdquoWordpress is a wonderful publishing platform‟‟liton_plugin‟)

gt

_e() পাাংন _e() পাাংনগট াঅনায ডটকসবপরট ডরাকারাাআজ কপরয এটা গএাআচগপরত echo এয ভত কাজ কপরয ডকান ডটকসটপরক গিপরন ডদখাপরনায জনয এফায একট ভজা কগয মা রপরক ডদপরখগি াঅপরগাআ- _e() পাাংনগট গদপরয় াঅপরগয পলাগগনগট এগডট কযফ ltphp

Plugin Name Liton Action

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(wp_footer liton_footer_action)

function liton_footer_action()

Output the translated text

_e( This site runs off the coolest platform ever ampmdash

WordPress

liton-plugin )

gt

35

এফায াঅউটট ডদগখ

esc_attr__() পাাংন এাআ পাাংনগট esc_attr() এয ভত এগট এাআচগটএভএর এগিগফউটপরক escape কপরয াঅভযা এফায esc_attr__() এফাং __() এাআ রগট পাাংনপরক একগট কপরয পলাগগন ততগয কযফ ltphp

Plugin Name Liton Esc Attr

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

A function that returns a link to the sites terms of service

page

function liton_terms_of_service_link()

return lta href=httpliton-onlinecomtos title=

esc_attr__( Visit the Terms of Service page boj-plugin ) gt __( Terms of

Service liton-plugin ) ltagt

Display the output of the liton_terms_of_service_link()

function

echo liton_terms_of_service_link()

gt

পলাগগনগটয াঅউটট ডদখন-

36

এযকভ াঅপরযা গকি পাাংন াঅপরি ডমগপররা াঅনাযা ডদপরখ ডনপরফন াআনটাযপরনট ডঘপরট

esc_html__() Function

esc_attr() Function

esc_url() Function

esc_js() Function

esc_html() Function

esc_attr_e() Function

esc_html_e() Function

_x() Function

_ex() Function

esc_attr_x() Function

esc_html_x() Function

_n() Function

_nx() Function

_n_noop() Function

_nx_noop() Function

Translation

bull Poedit httppoeditnet

bull GlotPress httpglotpressorg

bull Launchpad httpstranslationslaunchpadnet

bull Pootle httppootlelocamotionorg

bull KBabel httpi18nkdeorg

bull GNU Gettext httpgnuorgsoftwaregettext

GlotPress এখন ওপরয়ফ ডফড টর গপরপরফ ফযফায কযা পরচছ ওয়াডডে েপরজপরকটয ডিপরন একজন াথফা গটপরভয জনয িানসপররগটাং পটওয়যায গপরপরফ

37

াধযায়- াতাঃ পলাগগন গগকউগযগট

গগকউগযগট কগমপউটাপরযয বালায় ldquoগগকউগযগটrdquo ভাপরন বীগতকয একগট বদ ডমভন Cross Site

Scripting(XSS) Cross Site Request Forgery(CSRF) SQL Injection Privilege

Escalation Vulnerabilities এফাং Holes রফডর ডকাড একগট াবডাপরযয সযকষায জনয রভকীয কাযন পরত াপরয

পলাগগপরনয গগকউগযগট গক াঅনায পলাগগনগট ডমন গগকউয য় vulnerabilities data integrity এফাং reliability ডথপরক

াঅনায পলাগগনপরক গক গগকউগযগট ডদপরফন ওয়াডডপরে এনবায়যনপরভপরনট াঅনায পলাগগনপরক গগকউগযগট ডদয়া খফ কগঠন কাজ নয় এফাং খফ ভয় াপরকষ গফলয়ও নয় ওয়াডডপরেপরয গনজসব গকি পাাংন এপরকষপরতর াঅনাপরক খফাআ াাময কযপরফ

াআউজায াযগভন াঅভযা াপরনক পলাগগন াআনসটর কযায পরযাআ ডদপরখগি ডম মখনাআ এডগভন যাপরনর এ েপরফ কযপরত মাাআ তখন একগট এযয ডভপরজ াঅপর ডভপরজগট গনপরচয ভত-

ডরখা াঅপরি- You do not have sufficient permissionshellip এটা গনশচয়তা ডদয় ডম ডমপরকান এযাকন ীভাফি থাপরক গনগদডষট গকি যাাআট গদপরয় ওয়াডডপরেপরয একগট কভন পাাংন র current_user_can() একগট উদাযন ডদাআ-

38

ltphp

Capability

if ( current_user_can(install_plugins) )

wp_die( Insufficient permissions )

Role

if( current_user_can(editor) )

wp_die( You cannot edit this setting )

gt

খফ তাড়াতাগড় াঅগন এাআ current_user_can() পাাংন ডচক কযপরফন না কাযন এটা গনবডয কযপরফ get_currentuserinfo() এাআ পাাংপরনয উপরয াঅয এয ফযফাপরয ীভাফিতা াঅপরি এটা একগট পলাপরগফর পাাংন(pluggable function) াঅয এয ডরাপরকন পরচছ wp-

includespluggablephp মা পলাগগন এগকটব ফায য ডরাড য়

Nonces

ডকউ এগটপরক াঅফায Nonsense( গনপরফডাধ) বাফপরফন নাএগট ওয়াডডপরেপরয বালায় Nonces কগমপউটাপরযয বালায় nonce ফা cryptographic nonce পরচছ ldquonumber used once rdquo এটা ডিাট এফাং সপষট গকি য যানডভ গসটরাং ডমভন- াওয়াডড মা গকি গনপরদড কপরয Nonce গপরডন গপলড পভডপরক Retrieve ফা display কপরয-

একজন ওয়াডডপরে াআউজায ডমপরকান একগট এযাকন (delete update save and such) একগট াফপরজকট(একগট ডাসট পলাগগন ডগটাং াআতযাগদ) ২৪ ঘনটায একগট ভয় ডিভ

ডমভন ডাসট 50 গডগরট কযপরফন াঅনায ওয়াডডপরে বলগ ডথপরক তাপরর াঅনায গরঙকগট পরফ এযকভ- httpexamplecomwp-admin

postphppost=43ampaction=trashamp_wpnonce=83a08fcbc2

এখাপরন 83a08fcbc2 এগট র nonce মা ২৪ ঘনটা সথায়ী থাপরক রধভাতর এগট মগদ াঅনায িাযা ফযফরত য় এফাং গডগরট য় ডাসট 50 মখন াঅগন গরপরঙক গিক কপরযন ফপরচপরয় গযতবনড র ডম Nonce ডকান malicious াআউজায ফেপরত াপরযনা এফাং গঠক গরঙক িাড়া nonce এযয ডপরজ চপরর মায় ডমখাপরন াযগভন থাপরক না াঅপরযা গফসতাগযত ডদখন httpcodexwordpressorgWordPress_Nonces

39

Nonce URL ততগয এফায চরন াঅপরগয উদাযন ডথপরক Nonce URL ততগয কগয একগট ডাসট গডগরট কযায জনয wp_nonce_url() পাাংন ফযফায কযা য় ltphp

$url = wp_nonce_url( $url $action )

gt

েথভ যাযাগভটায $url পরচছ গসটরাং URL এপরডর এয মাপরক াঅগন কপরয়যী গসটরাং এয Nonce কযপরত চান াফযফহরত পলাগগপরনয গডগরট গরঙক এযকভ থাপরক- httpexamplecomwp-admineditphppage= liton

_utagsampliton_action=deleteampid=6

এখাপরন ডদখন যাযাগভটায liton_action এফাং এয টযাগ াঅাআগড গিতীয় যাযাগভটায পরচছ $action একগট গসটরাং মা াঅগন একগট াফপরজকট এয জনয একগট action ততগয কযপরফন উপরয ডদখরাভ delete এযাকন এয টযাগ াঅাআগড 6 সতযাাং $action যাযাগভটায পরত াপরয bdquoliton_utags-delete_tag6‟ গনপরচ ফাসতফ উদাযন ডদগখ- ltphp

$delete_url = add_query_arg(array( liton _action=gtdeleteid=gt$id) )

$nonced_url = wp_nonce_url( $delete_url bdquoliton _utags-delete_tag$id )

gt

lta href=ltphp echo $nonced_url gtgtdeleteltagt

এাআ টযাগগট পরফ গডগরট গরঙক এখাপরন add_query_arg() পাাংন ফযফায কযা পরয়পরি মা কাপরযনট URL ডক এযাপরয যাযাগভটায এয ভপরধয যাপরখ ানযবাপরফ ফরপরর এগট ডমাগ কপরয এযকভাঃ liton_action=deleteampid=6 amp liton_action=deleteampid=6

Nonce Form ততগয Nonce পভডপরকও ডোপরটকট কপরয wp_nonce_field() পাাংপরনয ভাধযপরভ ltphp

wp_nonce_field( $action $name $referer $echo ) gt

$action ( string) (optional) - action নাভ াআউগনক identifier optional

গকনত recommended $name (string) (optional) ndash গপরডন গপলড পভড ডবগযপরয়ফর নাভ $referer (boolean) (optional) ndash গডপলট গপরপরফ true থাপরক ডমখাপরন গপলড

ডবগরপরডন এয দযকায য়

40

$echo (boolean) (optional) - গডপলট গপরপরফ true থাপরক ডমখাপরন াঅউটট ডদখাপরনায ফা গপরডন পভড গপলড গযটানড কযায জনয দযকায য়

পপরভড াঅনায action এয নাভ গদন ltform method=postgt

lt-- some inputs here --gt

ltphp wp_nonce_field(name_of_my_actionname_of_nonce_field) gt

ltformgt

াঅভযা একগট পলাগগন ফানাপরফা ডমখাপরন াফযফরত টযাগগপররাপরক াঅভযা ভযানয়াগর গডগরট ফা গযপরনভ কযপরত াযফ এগট একট ফড় গকনত াপরনক গফলয়াআ াঅপরগাআ াঅপররাচনা কযা পরয়পরি ডদখপররাআ ফেপরত াযপরফন একগট ফাসতফধভডী উদাযন গনপরচ গদরাভ- ltphp

Plugin Name Liton Unused Tags

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add an entry for our option page to the Posts menu

add_action(admin_menu liton_utags_add_page)

function liton_utags_add_page()

add_posts_page( Unused Tags Unused Tagsmanage_optionsliton_utags

liton_utags_option_page )

Catch any liton_action parameter in query string

add_action( admin_init liton_utags_do_action )

Proceed to requested liton_action if applicable

function liton_utags_do_action()

if( isset( $_REQUEST[liton_action] ) )

return

if( current_user_can( manage_options ) )

wp_die( Insufficient privileges )

41

$id = $_REQUEST[id]

$action = $_REQUEST[liton_action]

if( $action == done )

add_action( admin_notices liton_utags_message )

return

check_admin_referer( liton_utags-$action_tag$id )

switch( $action )

case rename

$newtag = array( name =gt $_POST[name] slug =gt

$_POST[name] )

wp_update_term( $id post_tag $newtag )

break

case delete

wp_delete_term( $id post_tag )

break

wp_redirect( add_query_arg( array( liton_action =gt done )

) )

Admin notice

function liton_utags_message()

echo ltdiv class=updatedgtltpgtAction

completedltpgtltdivgt

Draw the tag management page

function liton_utags_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtUnused Tagslth2gt

ltphp

if( $tags = liton_utags_find_orphans() )

echo ltpgtYou currently have count( $tags ) unused

tagsltpgt

echo ltolgt

foreach( $tags as $tag )

42

$id = $tag-gtterm_id

$name = esc_attr( $tag-gtname )

$delete_url= add_query_arg(

array(liton_action=gtdeleteid=gt$id) )

$nonced_url= wp_nonce_url( $delete_url

liton_utags-delete_tag$id )

gt

ltligt

ltform action= method=postgt

ltphp wp_nonce_field( liton_utags-rename_tag$id )

gt

ltinput type=hidden name=liton_action

value=rename gt

ltinput type=hidden name=id value=ltphp echo

$id gt gt

ltinput type=text name=name value=ltphp echo

$name gt gt

ltinput type=submit value=Rename gt or

lta href=ltphp echo $nonced_url gtgtdeleteltagt

this tag

ltformgt

ltligt

ltphp

else gt

ltpgtYou have no unused tagsltpgt

ltphp endif gt

ltolgt

ltdivgt

ltphp

Find unused tags return them in an array

function liton_utags_find_orphans()

global $wpdb

$sql = SELECT termsterm_id termsname FROM

$wpdb-gtterms terms

INNER JOIN $wpdb-gtterm_taxonomy taxo

ON termsterm_id=taxoterm_id

WHERE taxotaxonomy = post_tag

43

AND taxocount=0

return $wpdb-gtget_results( $sql )

gt

ডযাপরফাপরডড এাআ পলাগগপরনয ডভন াওয়া মাপরফ ডাসট এয াফপরভন গপরপরফ গনপরচ ডদখন-

এফায পলাগগন ডভনপরত গিক কপরয ডদগখ পলাগগপরনয ডবতপরযয কাজ-

উপরয ডদখন াঅগভ একগট টযাগ ততগয কপরযগিরাভ l i নাপরভ এগট এখাপরন ডদখাপরচছ াঅগভ চাাআপরর এগট এগডট ফা গডগরট কযপরত াগয এফায গডগরট গরঙক এ ভাউপরয কাডয ডযপরখ গনপরচ গরঙক ডদখন ফা গডগরট করন একগট টযাগ াঅভায এখাপরন URL গট এযকভ httplocalhostdev-litonwp-

admineditphppage=liton_utagsampliton_action=doneampid=4amp_wpnonce=30a44b7

986

এখাপরন াঅগভ liton_action=done ফযফায কপরযগি Nonces এয পাাংনগপররায নাভ গনপরচ গদরাভ াঅনাযা ডদপরখ গনপরফন াআনটাযপরনট ডথপরক wp_nonce_field()

wp_nonce_url()

wp_verify_nonce()

wp_create_nonce()

44

check_admin_referer()

check_ajax_referer()

ডাটাপরফ াঅনাযা ডমপরত গএাআচগ গনপরয় কাজ কপরযন এগকউএর ডাটাপরফ এয াপরথ ফাাআ কভপরফী গযগচত এয গনটযাকস গপররা ডভাটাভগট ফায জানা একাআ বাপরফ াপরনপরকাআ ওয়াডডপরেপরও ডাটাপরফ ডকাড গরপরখন এটা ডকাগডাং এয জনয খাযা গদক াঅগভ নযভার গএাআচগ- এগকউএর ডকাড এয উদাযন গদগচছ- ltphp

$sql=rdquoINSERT INTO $wpdb-gtposts(post_title) VALUES(bdquo$title‟)rdquo

$wpdb-gtquery($sql) gt

এফায ওয়াডডপরেপরয সটযানডাডড ডকাগডাং গপরসটভ ডদখন- ltphp

$wpdb-gtinsert($wpdb-gtposts

array(bdquopost_title‟ =gt $title)

array(bdquos‟)

)

gt

ডাটাপরফ গগকউয কযায জনয াঅপরডট াাপরযন ডদখাফ- গনপরচয ডকাডগট খাযা েযাকগট ltphp

$wpdb-gtquery(ldquoUPDATE $wpdb-gtposts SET post_title=‟$newTitle‟ WHERE

ID=$my_idrdquo )

gt

উপরযয ভত কপরয না গরপরখ গনপরচয ভত কপরয গরখন- ltphp

$wpdb-gtupdate($wpdb-gtposts

Array(bdquopost_title‟ =gt‟$newTitle‟)

Array(bdquoID‟ =gt$my_id

)

gt

ানর বাপরফ ানযানয াাপরযন গপররা গরখপরফন

45

াধযায়- াঅটাঃ ডরাকারাাআপরজন এফাং Set t i ngs API

ডরাকারাাআপরজন ডরাকারাাআপরজন একগট গরতবনড গফলয় এয পাাংনগপররা র- load_theme_textdomain()

load_plugin_textdomain()

উদাযন- ltphp $var=__(bdquoHello‟‟domain‟) gt

ltphp _e(bdquoHello‟‟domain‟) gt

গফসতাগযত গনপরচয গরপরঙক ডদখন- httpcodexwordpressorgI18n_for_WordPress_Developers

ডগটাং API

ডগটাং API পরচছ াঅগন গকি ান ততগয কযপরফন মা াআনটাযনার বাপরফ াঅনায পলাগগপরন এপলাাআ পরফ মখন াঅগন াআউজায- গডপাাআন ান ততগয কযপরফন াঅনায পলাগগপরনয জনয তখন Settings

API ndashএ াঅনায ডকাড মতটা ারন জ করন Settings API াঅনায ডম কাজগপররা handle কপরয-

ওয়াডডপরেপরক জাগনপরয় ডদয় ডম াঅগন গনজসব ান ফযফায কযপরফন াঅনায াআনটপরক পাাংপরনয ভপরধয উপরেখ কযপরফ ডফগয বাগ ান ডজ গনপরজাআ ততগয কযপরফ $_POST ডাটা গপররাপরক ভগনটয কপরয ান ততগয এফাং াঅপরডট কপরয(মগদ েপরয়াজন য়)

Settings API পাাংন Settings API পাাংপরন গতনগট ডসট থাপরক- ১ েথপরভ ওয়াডডপরেপরক ফপরর ডম াঅগন নতন ডগটাং ফযফায কযপরফন াঅনায পলাগগপরনয জনয ২ এয পরয ডগটাং গডপাাআন করন (text areas input boxes and any

HTML form element) এফাং এপরদযপরক একাপরথ রে কপরয যাপরখ ৩ ওয়াডডপরেপরক াঅনায ডগটাং actual form এ ডদখাপরনায জনয ফপরর

46

এফায াঅভযা একগট পলাগগন ফানাপরফা Administration Page ndashএ ডযপাপরযনস গপরপরফ ডদখপরত াপরযন- httpcodexwordpressorgAdding_Administration_Menus

httpcodexwordpressorgFunction_Referenceadd_options_page

httpcodexwordpressorgAction_ReferenceActions_Run_During_an_Admin_P

age_Request

পলাগগপরনয এডগভন ডজ পরফ এযকভ- httpexamplecomwp-adminoptions-generalphppage=liton_myplugin

েথপরভ াঅভযা ডভন ততগয কযফ াঅপরগয ভত কপরয- Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

এফায ান ডজ এ পভড গনপরয় গকি ডগটাং ডদফ function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

উপরযয ডকাপরড াঅভযা একগট পপরভডয ভপরধয রধ াফগভট ফাটন এফাং My Plugin নাপরভ ডজ ততগয কপরযগি ডযাপরফাপরডড ডদখন-

47

ডগটাং এয াফ ডভন গপরপরফ My Plugin াঅপরি এফাং My Plugin ডত গিক কযপরর াঅভযা উপরযয ডজ ততগয কপরযগি ডমখাপরন াফগভট ফাটনগট ডদখাপরচছ এফায গতনগট যাযাগভটায ডযগজসটায কযফ- ltphp

register_setting( liton _myplugin_options liton _myplugin_options liton

_myplugin_validate_options)

gt

েথভগট ডগটাং রেপরয নাভ গিতীয়গট ান নাভ মা াঅভযা get_option() পাাংন গদপরয়ও ডপরত াগয ততীয়গট করফযাক পাাংন এগট একগট গসটরাং ডযপাপরযনস পাাংন এখাপরন াঅভযা নাভ

48

গদপরয়গি liton _myplugin_validate_options মা া কযপরফ পপরভডয কর ডব ডগটাং াঅভযা এটা পরয গডপাাআন কযফ

ডগটাং গডপাাআন ডকন add_settings_field() এফাং add_settings_section() পাাংন গদপরয় াঅভযা াঅভাপরদয কর ডগটাং গডপাাআন কযফ ltphp

add_settings_section( liton_myplugin_main My Plugin Settings

liton_myplugin_section_text liton _myplugin)

add_settings_field( liton _myplugin_text_string Enter text here

liton _myplugin_setting_input liton _myplugin liton _myplugin_main)

gt

add_settings_section() পাাংন গদপরয় াঅভযা ডদখাফ াঅপরর ডজ এ ডকন ডকভন ডদখাপরফ এয চাযগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ ডকন টাাআপরটর ltH3gt টযাপরগয ভপরধয করফযাক পাাংন এয নাভ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ (page= liton _myplugin এগট

URL এয াাং গপরপরফ থাকপরফ) গিতীয় যাযাগভটায add_settings_field() পপরভডয াআনট গপরপরফ ডদখাপরনা পরয়পরি এখাপরন াাচগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ পরযয গপপরলড গক গেনট কযা পরফ তা ডটকসট গপরপরফ ডদখাপরনা পরয়পরি(Enter text

here)

করফযাক পাাংন পপরভড গেনট কযপরফ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ ডগটাং ডপরজয ডকন গপলড মা add_settings_section() পাাংপরন গডপাাআন

কযা পরয়পরি ltphp

Explanations about this section

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

49

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton _myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name= liton _myplugin_options[text_string]

type=text value=$options[text_string] gt

gt

গিতীয় পাাংন ান বযার text_string ডক এযাপরযপরত ডসটায কপরয ডযপরখপরি এফায াআউজায াআনট বযাগরপরডট কযফ- ltphp

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace([^a-zA-Z]$input[text_string] )

return $valid

gt

পভডপরক ডযনডায কযফ- ltphp

Draw the options page

function liton_myplugin_options_page()

gt

ltdiv class=wrapgt

ltphp

screen_icon()

gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp

settings_fields( liton_myplugin_options)

do_settings_sections(liton_myplugin)

50

gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

settings_fields() পাাংনগট ডযপাপরযনস গপরপরফ ফযফায কযা পরয়পরি মা াঅভযা register_setting() পাাংপরন গডপরিয়ায কপরযগি do_settings_sections() পাাংনগট কর কযপরফ কর াঅউটট ডকন এফাং পভড গপলডপরক মা াঅভযা পরফড গডপাাআন কপরযগি াঅভাপরদয কাজ ডল এফায পরযা পলাগগনগট ডদখফ- ltphp

Plugin Name Settings API example

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

Draw the option page

function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save

Changes gt

ltformgtltdivgt

ltphp

51

Register and define the settings

add_action(admin_init liton_myplugin_admin_init)

function liton_myplugin_admin_init()

register_setting( liton_myplugin_options

liton_myplugin_options

liton_myplugin_validate_options )

add_settings_section( liton_myplugin_main My Plugin

Settings

liton_myplugin_section_text liton_myplugin )

add_settings_field( liton_myplugin_text_string Enter text

here

liton_myplugin_setting_input liton_myplugin

liton_myplugin_main )

Draw the section header

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton_myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name=liton_myplugin_options[text_string]

type=text value=$text_string gt

Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

return $valid

gt

52

ডদখন ডযাপরফাপরডড ডকভন ডদখায়-

পরয় ডগর াঅভাপরদয েথভ নডাাংগ পলাগগন ান ডজ াঅপরযকগট গজগন ডমটায জনয এতগকি পলাগগন URL এপরডর- httplocalhostdev-litonwp-adminoptions-

generalphppage=liton_mypluginampsettings-updated=true

াঅভায এখাপরন এযকভ ডদখাপরচছ ডটকসট ফপরকস ডকান গকি গরপরখ ডব কযায য এফাপরয াঅপরযকগট গজগন ডদখফ াঅভযা াপরনক ভয়াআ াপরনক পলাগগপরনয াআনট গপপরলড বর ডাটা াআনট কযপরর এযয ডভপরজ ডদখায় এাআ কাজগট কযফ এফায াঅভযা এখাপরন esc_attr() ফা esc_html() ফযফায কগযগন সতযাাং াঅভাপরদয গরগভপরটন থাকপরি ডবগরপরডট পাাংনগট একট এগডট কগয গনপরচয ভত কপরয Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

if( $valid[text_string] = $input[text_string] )

add_settings_error(liton_myplugin_text_stringliton_myplugin_texterror

53

Incorrect value enterederror)

return $valid

উপরয ডদখন add_settings_error() পাাংন ফযফায কপরযগি মা এযয ডচক কযপরফ পপরভডয াঅগভ একগট বর ডাটা(পরসপার কযাপরযকটায) াআনট কপরয ডদখরাভ এযয ডদখাপরচছ-

তায ভাপরন াঅভযা পর পরয়গি াঅনায পলাগগনগট এগডট কপরয ডনপরফন ডকায ডকন এফাং গপপরলডয গরসট গদরাভ াঅনাপরদয সগফধায জনয

54

CSSJS পাাআর মি কযা

াঅনায পলাগগপরন গএএ ফা জাবাগিে ডমাগ কযপরত পরত াপরয াঅগন চাাআপরর ফাগপরযয ডকান ফা াঅনায ততগয ডকান গএএ ফা জাবাগিে পাাআর ডমাগ কযপরত াপরযন তপরফ এপরকষপরতর াঅভযা ডমবাপরফ HTML এ পাাআর ডমাগ কগয ডযকভ না function liton_scripts()

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtojqueryjsrdquogtltscriptgt‟

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtoscriptjsrdquogtltscriptgt‟

add_action(bdquowp_head‟‟liton_scripts‟)

এগট মপনডরপর বর িগত গনপরচ ডদখন ওয়াডডপরেপর গকবাপরফ পাাআর মি কযপরত য়- function liton_scripts()

wp_enqueue_script(bdquojquery‟)

wp_enqueue_script(bdquotheme-scripts‟‟pathtoscriptsjs‟)

add_action(bdquowp_enqueue_script‟‟liton_scripts‟)

ানর বাপরফ াঅগন সটাাআরীট ডমাগ কযপরত াপরযন- function liton_styles()

wp_enqueue_ style (bdquocss‟)

wp_enqueue_ style (bdquotheme- styles‟pathto stylescss‟)

ডযপাপরযনস ডদখন- httpcodexwordpressorgFunction_Referencewp_enqueue_script

httpcodexwordpressorgFunction_Referencewp_enqueue_style

টডপরকাড টডপরকাড পরচছ ওয়াডডপরেপরয ডসপগগপক ডসপার টযাগ মা াঅগন ডাসট ফা ডপরজয ভপরধয াআনাটড কপরয ানয ডকান কনপরটনটপরক ওপরয়ফাাআপরটয ভপরধয গযপরপল কযপরত াযপরফন মগদ াঅগন গযারাগয টাাআপরয ডকান পলাগগন ফযফায কপরয থাপরকন তাপরর াঅনায ধাযনা থাকায কথা মাাআ ডাক াঅগভ কপরয়কগট উদাযি ডদখাফ

55

েথপরভ একগট পলাগগন ততগয কযফ ডমখাপরন add_shortcode() নাপরভয একগট পাাংন থাকপরফ এগট রগট যাযাগভটায েন কপরয েথভগট টডপরকাপরডয নাভ গিতীয়গট ডম পাাংনপরক কর কযপরফন ডগট াঅভযা একগট উদাযন ডদগখ- ltphp

Plugin Name Liton Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(litonhi)

function hi()

echo Hello World

gt

উপরয ডদখন খফ ডিাট গকনত াঅগন চাাআপরর এয ফযফায াপরনক গফসতত কযপরত াপরযন এখাপরন টডপরকাড নাভ পরচছ liton াঅয এগটপরক ডরখা য় এবাপরফ [liton] াঅভযা ডাপরসটয ভপরধয াআনাটড কপরয ডদগখ াঅউটট ডকভন ডদখায়-

এফায াঅউটট ডদগখ-

56

াঅভাপরদয ততগয কযা টডপরকাড পরবাপরফাআ কাজ কযপরি াঅপরযকগট উদাযন ডদখফ াঅনাযা াপরনপরকাআ গগর এডপরনস গনপরয় কাজ কপরযন াঅনাযা াপরনপরকাআ এডপরনস এয জনয পলাগগন ফযফায কপরযন গকনত চাাআপররাআ এাআ কাজগট াঅনাযা গনপরজয ভত কপরয াগজপরয় গনপরত াপরযন গগপররয কাপরি ফ ডাসট বযার ায়না াঅনাযা মাযা একসাটড াঅপরিন তাযা এটা বার কপরয জাপরনন তাাআ াপরনপরকাআ গগপররয ডকাড ফ ডপরজ ডদখাপরত চান না এজনয পলাগগন ফযফায কপরয রাব য়না কাযন পলাগগপরন জায়গা গপকসড থাপরক এপরত কপরয াঅগনডাং ও কভ য় াঅনাযা টডপরকাড ফযফায কপরয ডমপরকান জায়গায় এড ডদখাপরত াপরযন গনপরচ াঅগভ রগট টডপরকাড ততগয কপরযগি র‟ধযপরনয এড ডদখাপরনায জনয ltphp

Plugin Name Liton Adsense Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(adsense_468adsense_468_60)

add_shortcode(adsense_250adsense_250_250)

function adsense_468_60($atts)

return ltscript type=textjavascriptgtlt--

57

google_ad_client = ca-pub-0956247412222369

468x60 created 101510

google_ad_slot = 4372705450

google_ad_width = 468

google_ad_height = 60

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

function adsense_250_250($atts)

return ltscript type=textjavascriptgtlt--

google_ad_client = ca-pub-0956247412222369

250x250 created 81809

google_ad_slot = 9368091893

google_ad_width = 250

google_ad_height = 250

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

gt

একগট টডপরকাড ফযানায টাাআপরয জনয এফাং াঅপরযকগট ২৫০২৫০ াাআপরজয এফায ডাপরসট ডমপরকান একগট টডপরকাড াআনাটড করন ডমখাপরন াঅনায ডদখাপরনায েপরয়াজন ভপরন কপরযন াঅগভ রগট ডকাড ডটসট কপরয ডদখরাভ-

58

এফায াাআপরটয াঅউটট ডদগখ-

রগট এডাআ ডদখাপরচছ াঅপরযা াপরনক কাপরজ াঅগন টডপরকাড ফযফায কযপরত াপরযন ডযপাপরযনসাঃ httpcodexwordpressorgShortcode_API

59

াধযায়- নয়াঃ পলাগগন উদাযন

ওয়াডডপরেপরয ডডটটাাআভকপরভনট নামবায ফাাংরা কযায পলাগগন াঅভাপরক কপরয়কজন ফপররগিপররন ওয়াডডপরেপরয গডপলট ডডটটাাআভকপরভনট নামবায ফাাংরা য়না রযাাংগপরয়জ ফাাংরা কযায যও ডডটটাাআভকপরভনট নামবায গপররা াআাংপরযগজ ডথপরক মায় গনপরচয পলাগগনগট ফযফায কপরয ডদখপরত াপরযন- ltphp

Plugin Name Liton Bangla datetimecomment number

Plugin URI httpliton-onlinecomplugins

Description Bangla datetimecomment number

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

This function converts all english numbers to bangla number

function make_bangla_number($str)

$engNumber = array(1234567890)

$bangNumber = array( ১ ২ ৩ ৪ ৫ ৬ ৭ ৮ ৯ ০ ) $converted = str_replace($engNumber $bangNumber $str)

return $converted

add_filter( get_the_time make_bangla_number )

add_filter( the_date make_bangla_number )

add_filter( get_the_date make_bangla_number )

add_filter( comments_number make_bangla_number )

add_filter( get_comment_date make_bangla_number )

add_filter( get_comment_time make_bangla_number )

gt

60

সলাাআডায পলাগগন াঅভযা এাআ ফাআপরয়য কর গটউপরটাগযয়াপরর মা মা গখরাভ তা এফায একগট নডাাংগ পলাগগপরনয এপলাাআ কযফ সলাাআডায পলাগগন মপপরকড াঅভযা ফাাআ জাগন একগট ওপরয়ফাাআপরটয ডচাযা ারপরট ডদয় একগট সলাাআডায াপরনক ডাাআনাগভক ভপরন য় ডদখপরতও াপরনক বার রাপরগ এাআ পলাগগপরন াঅভযা এডগভন যাপরনর ডথপরক াআপরভজ ডমাগ কযফ এফাং তা াঅভাপরদয াাআপরট ডদখাফ চরন কাজ রর কগয- েথপরভ গনপরবা সলাাআডায এয ওপরয়ফাাআপরট মান এফাং jQuery Plugin ডাউনপররাড করন

ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom Version 10

gt

াঅভযা পলাগগপরনয ডডায ততগয কযরাভ

পলাগগন গরপরসট ডদখাপরচছ bdquoLitons Nivo Plugin‟ াঅভাপরদয েথভ কাজ পরচছ custom post

type ওয়াডডপরে পাাংনাগরগট একগট নতন কাসটভ ডজ ততগয কযপরত custom post type

ফযফহরত পরফ ডমখাপরন একগট াআপরভজ থাকপরফ াঅভযা রধ টাাআপরটর ডনভ এফাং াআপরভজ াঅপররাডায গপরপরফ গপচায াআপরভজ পাাংনাগরগট ফযফায কযফ function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_function 600 280 true)

61

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

add_action(init np_init)

উপরযয ডকাপরড np_init() পাাংনগট রক কপরযগি মা ডডায যান কযায াঅপরগ যান পরফ াঅয এজনয register_post_type() পাাংনপরক এয যাযাগভটায গদপরয় np_init() পাাংপরনয ডবতপরয মি কপরযগি এটা মগদ না কযতাভ তাপরর ldquoHeaders already sentrdquo ডভপরজ ডদখাত এাআ ডভপরজগটয াপরথ াপরনপরকাআ গযগচত াঅা কগয register_post_type() পাাংন গদপরয় াঅভযা াআপরভজ মি এফাং ভযাপরনজ কযফ ভরত াঅভযা একগট নতন custom post type ডমাগ কপরযগি np_images নাভ গদপরয় নতন custom post type ডক ডগটাং বযার গপরপরফ াঅযগপরভনট া কপরযগি $args ডবগযপরয়ফরগট ট ডরপরবর ডভন ততগয কপরয াঅপরগাআ ডদপরখগি পলাগগনগট এগকটপরবট কযপরর াঅভযা গনপরচয ভত ডদখপরত াফ-

এফায গিে এফাং সটাাআরীট ডক মি কযফ- add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

এফায রক কযা পাাংনগপররা গডপরিয়ায কগয- function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__) array( jquery ))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

62

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

উপরযয ডকাডগপররা নতন কপরয ফিডনা কযায গকি ডনাআ াঅপরগাআ wp_enqueue_style() এফাং wp_enqueue_script() মপপরকড ফরা পরয়পরি নতন াঅপরযকগট পাাআর ততগয করন একাআ গডপরযকটগযপরত scriptjs এফাং গনপরচয ডকাডটক গদন- jQuery(document)ready(function($)

$(slider)nivoSlider()

)

াআপরভজপরক গযাাআজ করন- add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

াঅভযা এাআ পলাগগনগটপরক উাআপরজট গপরপরফও ফযফায কযফ ডগট পরয ডদখফ াঅপরযকগট গজগন মগদ গথপরভ না ডদয়া থাপরক ডজনয থামবপরনাআর াপরাটড গদপরয় গদন- add_theme_support( post-thumbnails )

এফায ওয়াডডপরেপরয কাপরযনট ডাসট কপরয়যী কযায ডকাড াঅয $result ডবগযপরয়ফপরর ডমফ ltdivgt টযাগ ফযফায কযা পরয়পরি তা jQuery Plugin গট একসিাকট কপরয indexhtml ডজগটয ডভাআন সলাাআডায ডকাডগট ডদখন একাআ াঅপরি রধ ডখানকায ltdivgt টযাগ গপররাপরক কগ কপরয এাআ পলাগগপরন ফযফায কযা পরয়পরি এফায টডপরকাড গদন- add_shortcode(np-shortcode np_function)

এাআ টডপরকাড গএাআচগ পাাংনপরক রক কযপরফ এফাং এয ভধয ডথপরক সলাাআডপরায কনপরটনট ডক গযটানড কযপরফ াঅভাপরদয টডপরকাড পরচছ [np-shortcode] াঅভযা পলাগগপরন মাাআ এফাং একগট িগফ মি কগয গপচাযড াআপরভজ গপরপরফ গনপরচ ডদখন-

63

াঅগভ াঅপরযকগট ডজ ততগয কপরযগি ডমখাপরন টডপরকাড গদপরয়গি

াঅউটট ডজ ডদগখ এফায-

64

পরয় ডগর াঅভাপরদয সলাাআডায পলাগগন পরযা ডকাডগট গনপরচ গদরাভ- ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

65

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

66

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

এফায াঅগন মগদ উাআপরজট গপরপরফ ফযফায কযপরত চান তাপরর গনপরচয ডকাডটক গদন- class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

67

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

echo $after_widget

াঅপরযা রগট কাজ কযপরত পরফ াঅনাপরক এক াআপরভজ াাআজ উাআপরজট এয জনয গঠক কপরয গদপরত পরফ- add_image_size(np_widget 180 100 true)

াঅপরযকগট র উাআপরজট এযাকন রক ডমাগ কযা add_action(widgets_init np_widgets_init)

উাআপরজট পরযা ডকাড াঅফায গদরাভ- ltphp

Plugin Name Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Ciprian Turcu

Version 10

68

class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

69

echo $after_widget

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

70

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(widgets_init np_widgets_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

71

পলাগগন গনপরয় এত ডিাট গযপরয ডরখা মভফ নয় এজনযাআ ভপরন য় পলাগগন গনপরয় ডকউ ডরপরখন না কাযন এখাপরন এত গফলয় াঅপরি মা াঅপররাচনা কযপরত ডগপরর ৫০০ ডজ ায পরয় মাপরফ ডফাোয সগফধাপরথড াঅগভ মথামভফ উদাযন গদপরয় ডফাোপরনায ডচষটা কপরযগি াঅগভ এখাপরন টাপরগডট কপরযগি মাযা টকটাক জাপরন পলাগগন মপপরকড এডবানস ডরপরবপররয নয় কাযন তাযা জাপরনন াঅভায উপরেশয গির মাযা জানপরত চায় তাপরদযপরক জানাপরনা এখাপরন ডমফ গফলয় াঅপররাচনা কযা পরয়পরি তা ডভাটাভগট ভাপরনয একগট পলাগগন ফানাপরনায জনয মপরথষট তপরফ ভাপরনাননয়পরনয জনয াঅনাপরক গনপরজাআ খাপরজ গনপরত পরফ াঅনায জনয ডকানটা বার পরফ াঅগভ রধ গদক গনপরদডনা গদরাভ ভাতর এাআ ফাআগট রধভাতর ওয়াডডপরে রেপরয জনয ডরখা াপরনক বর ভরাগনত থাকপরত াপরয াঅনাযা কষভাসনদয দগষটপরত ডদখপরফন াঅগভ ডচষটা কপরযগি মতটা জ কপরয ডরখা মায় াপরনক ভয় ডদখা মায় ডম খফ ডিাট খাপরটা গফলয় গনপরয় াপরনপরকাআ নক কপরযন এটা গতয রাঃখজনক াঅনাযা গগপরর একট খাজপররাআ ভাধান াপরফন াঅপরগ গনপরজ ডচষটা করন তায পরয ানযপরক ভাধাপরনয জনয গজজঞাা করন াঅভায জনয ডদায়া কযপরফন বাপররা রাগপরর জানাপরফন খাযা রাগপররও জানাপরফন তাপররাআ াঅভায গযশরভ সবাথডক পরফ ভতাভত জাগনপরয় াঅভাপরক ডভাআর কযপরত াপরযন litonice09gmailcom |

72

Page 13: Wordpress Plugin Development

14

content_url() - পরযা কপরনটনট গডপরযকটগয URL ( ডমভনাঃ httpliton-onlinecomwp-content )

admin_url() - পরযা এডগভন URL

( ডমভনাঃ httpliton-onlinecomwp-admin ) site_url() - কাপরযনট াাআট এয পরযা URL

( ডমভনাঃ httpliton-onlinecom ) home_url() - কাপরযনট াাআট এয পরযা ডাভ URL

( ডমভনাঃ httpliton-onlinecom )

াথ গনপরয় াঅপরযা গফসতাগযত ডদখপরত াপরযনাঃ httpcodexwordpressorgDetermining_Plugin_and_Content_Directories

httpcodexwordpressorgFunction_Referenceplugins_url

httpcodexwordpressorgFunction_Referenceplugin_dir_url

httpcodexwordpressorgFunction_Referenceplugin_dir_path

plugins_url() পাাংন াঅনায উততভ ফনধ পরত াপরয মখন াঅগন পলাগগন ডডপরবর কযপরফন

ltphp

plugins_url($path $plugin)

gt

Parameters

$path-(string)(optional)- গযপররগটব াথ URL $plugin- (string)(optional)- পলাগগন পাাআর মা াঅগন (__FILE__) এয ভাধযপরভ া কযপরত চান ডমভনাঃ ltphp

echo ltimg src=rdquoplugins_url(imagesiconpng__FILE)rdquogt

gt

এয পরযা URL পরফ ltimg src=rdquohttpliton-onlinecomwp-contentpluginsliton-pluginimagesiconpngrdquo gt

15

াধযায়- গতনাঃ রক

ওয়াডডপরে রক( Hook) গক ওয়াডডপরেপর রক ফরপরত াধাযনত add_action() াথফা add_filter() পাাংন ডক ডফাোয় এাআ রগট পাাংনপরক remove_action() াথফা remove_filter() গদপরয় ভপরি ডপরা মায় মগদও াপরনপরকয কাপরি রপরনগি ডম এাআ রগট পাাংপরনয ভপরধয ডকান াথডকয ডনাআ গকনত াঅপরর তা নয় গফযাট াথডকয াঅপরি এ রগট পাাংপরনয ভপরধয াঅগভ ভরত এাআ রগট পাাংন গদপরয়াআ গকি পলাগগন ফাগনপরয় ডদখাফ কাযন খফাআ গরতবিড এাআ রগট পাাংন মপপরকড বাপররাবাপরফ জানা

গপলটায রক (Filter Hooks)

গপলটায রক পাাংপরনয কাজ পরচছ কনপরটনটপরক ভগডপাাআ কযা গপলটায রক গদপরয় টাাআপরটর কনপরটনট াআতযাগদ ভগডপাাআ কযা মায় ডমভন টাাআপরটর এ ডকান টযাগ না থাকা গবগজটয কপরভপরনট ltgt t ag span t ag াআতযাগদ গদপরয় াাআপরটয ডরাঅউপরটয গযফতডন কপরয গদপরত াপরয ভাপরন ডকান কপরভপরনট মগদ এযকভ ht ml ডকাড াড কযা থাপরক তাপরর ডদখপরত খাযা রাগপরফ এগপররা াফশয এখন ওয়াডডপরে াপরটাপরভগটকযাগর কপরয গকনত এাআ কাজগপররা ভরত গপলটায রক গদপরয় কযা পরয় থাপরক গপলটায রক রাআ ধযপরনয add_filter() এফাং remove_filter() পাাংন খফ গরতবনড একগট কথা গপলটায রকপরক গযটানড কযপরত য় ltphp

add_filter($tag $function $priority $accepted_args)

gt

$tag- ডম রকপরক াঅগন ডযগজসটায কযপরত চান $function- ডম পাাংনপরক াঅগন াঅউটপরট গপলটায কপরয ডদখাপরত চান $priority- একগট াআগনটজায াংখযা মা াঅনায গপলটাযপরক িভানাপরয াজাপরফ মগদ ডকান

াংখযা না ডদয়া থাপরক তাপরর এগট ১০ গডপলট গপরপরফ থাপরক $ accepted_args- ডম াংখযক যাযাগভটায একগট পাাংন েি কযপরত াপরয গডপলট গপরপরফ

১ থাপরক াঅনায পাাংপরন ানততাঃ একগট যাযাগভটায থাকপরত পরফ মা গযটানড কযপরফ apply_filter($tag$value)

$tag- গপলটায রপরকয নাভ $value- রপরকয ভধয গদপরয় ডম যাযাগভটায া কযাপরফন

াঅভযা এখন একগট উদাযি ডদখফ ডমখাপরন টাাআপরটর এয েগতটা ওয়াডডপরক ফড় াপরতয াকষপরয রানতয কযফ গনপরচ একগট পলাগগন ডদখন- ltphp

Plugin Name Liton filter

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10

16

Author Md Liton Arefin

Author URI httpliton-onlinecom

add_filter(the_titleliton_modify_title)

function liton_modify_title($content)

return ucwords($content)

gt

পলাগগনগট এগকটপরবট কযায াঅপরগ ডাসট টাাআপরটর ডদখন-

এফায পলাগগনগট এগকটপরবট কযায পরয ডাসট টাাআপরটর ডদখন-

এাআ পলাগগনগট াঅভাপরদয াপরনক ভয়াআ কাপরজ রাগপরত াপরয কাযন াপরনপরকাআ াঅভযা এাআ পযভযাটগট িনদ কগয ঠাৎ কপরযাআ াঅভযা ডাসট টাাআপরটর গরখায ভয় ফড় াপরতয াকষয কযপরত বপরর ডমপরত াগয াঅভযা এাআ কাজগট খফ ডিাট একগট পলাগগন গদপরয় াপরটাপরভগটকবাপরফ কযপরত াগয

17

এখন াঅগভ গকি াগতগযি গফলয় গনপরয় াঅপররাচনা কযফ ডমগপররা ডভপরন চরপরর বগফষযপরতয জনয বার পরফ াঅগভ একগট পাাংন গরপরখগি- add_filter(the_titleliton_modify_title)

function liton_modify_title($content)

return ucwords($content)

একট গফসতাগযত ফরপরর াঅভযা the_title এয ভধয গদপরয় মা া কযফ তা গপলটায কযপরফ এখাপরন াঅভযা ucwords the_title এয ভধয গদপরয় া কপরযগি এফায াঅপরযা টড পভড ডদগখ add_filter(the_title ucwords)

তায ভাপরন পরযা পলাগগনগট পরফ এযকভ- ltphp

Plugin Name Liton filter

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_filter(the_title ucwords)

gt

গক খফ জ রাগপরি এখাপরন ফপরর যাগখ ডম ucwords এগট গযগব কযপরফ the_title মা া কযপরি এফাং াপরটাপরভগটকযাগর গযটানড কযপরফ the_title এ সতযাাং এখাপরন গযটানড এয দযকায ডনাআ এফায াঅগন মগদ গএাআচগ বাডন ৫৩ ফযফায কপরযন তাপরর গনপরচয ভত কপরয anonymous function ফযফায কযপরফন াঅনাযা জাবাগিে ডজকপরয়গয‟য াপরথ গযগচত এগট াপরনকটাাআ এযকভ ltphp

Plugin Name Liton filter

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_filter(the_title function($content)

return ucwords($content)

)

gt

বার কপরয ডদখন ডতা াথডকযটা ডকাথায় গনপরজ গনপরজ কাজ কযপরর এবাপরফ কযপরফন াফশযাআ এগট একট এডবানস ডরপরফপররয কাজ মগদও পলাগগন ফানাপরনায ডকষপরতর এগট এখপরনা াঅদড নয় কাযন াপরনপরকযাআ গএাআচগ বাডন এখপরনা ৪ এাআ ডথপরক ডগপরি সতযাাং এাআ িগতগট একানতাআ গনপরজয জনয

18

এযাকন রক (Action Hooks) Action Hooks পরচছ ড ভসত রক ডমগপররা ওয়াডডপরেপরয রাাআপ াাআপরকর গনপরয় কাজ কপরয Action Hooks রাআ ধযপরনয add_action() remove_action() এাআ রকগপররা কাজ কপরয মখন ডকান ডাসট ডব কযা য় ডাসট াফগর কযা য় কপরভনট কযা য় ডকান বলগ ডাপরসট াথফা ওপরয়ফাাআপরট ডডাযপটায ডজনাপরযট য় এগপররা েগতগট একগট একগট কপরয Actions মখন াআউজায তায এডগভগনপরসটরটয ডভনপরত েপরফ কপরয এগপররা ফাআ Action Hooks এখাপরন াঅভযা কনপরটনটপরক গপলটায কযগিনা াঅভযা ওয়াডডপরেপরয গনগদডষট পাাংনগপররাপরক রক কপরয কাজ কযগি াঅভযা একগট উদাযন ডদগখ- ltphp

Plugin Name Liton Action

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(wp_footer function($content)

echo Hello This is Liton Arefin

)

gt

াঅনাপরদয সগফধাপরথড ডফাোয জনয গনপরচয ভত কপরয গরখন- ltphp

Plugin Name Liton Action

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(wp_footer liton_footer_action)

function liton_footer_action($content)

echo Hello This is Liton Arefin

gt

াঅভযা খফ ডিাট একগট উদাযন গদপরয় ডদখরাভ ডম action রক গকবাপরফ কাজ কপরয গনপরচ ডদগখ াাআপরট ডকভন ডদখায়-

19

উপরযয িগফপরত ডদখন াঅগভ Hello This is Liton Arefin এাআ রাাআনগট গেনট কপরযগি এফাং তা পটাপরযয ফাভ াপর এপরকফাপরয গনপরচ ডদখাপরচছ এফায ডাড ডকাড এ ডদগখ াঅপররাআ এয গজন টা ডকাথায় াঅপরি

উপরয ডদখন পটাপরযয গঠক গনপরচাআ রাাআনগট ডদখাপরচছ এফায াঅপরযকগট ফাসতফ এফাং খফাআ গরতবনড উদাযন ডদগখ এাআ পলাগগনগটয কাজ পরফ মখনাআ ডকান কপরভনট ডাসট পরফ তখনাআ এডগভনপরক ডভাআর াঠাপরফ ডম নতন কপরভনট ডাসট পরয়পরি মগদও ওয়াডডপরে এাআ কাজগট কপরয থাপরক াঅভযা এাআ কাজগট ভযানয়ারী কপরয ডদগখ ltphp

Plugin Name Liton Comments Mail

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(comment_post function()

$email= get_bloginfo(admin_email)

wp_mail(

$email

New Comment Posted

A new comment has been left on your blog

)

)

gt

এখাপরন comment_post নাপরভয রপরক একগট ডবগযপরয়ফর $email ndashএ এডগভন ডভাআরপরক ডসটায কপরযগি মাপরত কপরয ডাাআনাগভক বাপরফ ড ডমপরকান াাআপরটয এডগভন ডভাআরপরক গডপরটকট কযপরত াপরয তপরফ এপরকষপরতর মগদ bloginfo(admin_email) ফযফায কযা ত তাপরর এডগভন ডভাআরপরক গডপরটকট কযত গকনত get_bloginfo(admin_email) ফযফায কযায পপরর াঅভযা াআপরভাআর বযারগটপরক গযটানড কপরয ডসটায কযগি এফাপরয ওয়াডডপরেপরয গফলটাআন ডভাআর পাাংন wp_mail(emailsubjectmessage) এয ভত কপরয গরপরখগি বার কপরয ডদখন পলাগগনগট এগকটপরবট কপরয ডদখন াঅনায াাআট মগদ ানরাাআপরন থাপরক তাপরর গনপরজাআ একগট কপরভনট কপরয ডদখন াঅনায এডগভন ডভাআপরর একগট ডভাআর চপরর ডগপরি

20

াধযায়- চাযাঃ পলাগগন ডকাগডাং সটযানডাডড

পলাগগন এগকটপরবনগডএগকটপরবন পাাংন াঅগন মখন একগট পলাগগনপরক এগকটব কপরযন তখনাআ এগকটপরবন পাাংন গিগায য় এাআ পাাংনপরক register_activation_hook() ফপরর ltphp register_activation_hook($file $function) gt

Parameters

$file- োাআভাগয পলাগগন পাাআপররয াথ

$function- ডম পাাংনগট গিগায পরফ মখন পলাগগন এগকটপরবট য় ডমভনাঃ- ltphp

register_activation_hook(__FILE__ bdquoliton_plugin_install‟)

function liton_plugin_install()

do something cool stuff

gt

াঅভযা একগট পলাগগন ফানাাআ এবাপরফ-

ltphp

Plugin Name Liton Version

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

register_activation_hook(__FILE__ liton_plugin_install)

function liton_plugin_install()

If(version_compare(get_bloginfo(version)51lt))

deactivate_plugins(basename(__FILE__))

deactivate our plugin

gt

মখন াঅভযা পলাগগন গডএগকটপরবট কগয তখন পলাগগন গডএগকটপরবন পাাংন কর য়

21

ltphp

register_deactivation_hook ($file $function) gt

-

ltphp

register_deactivation_hook (__FILE__ bdquoliton_plugin_install‟)

function liton_plugin_install()

do something

gt

াঅপরযকগট গরতবনড গফলয় র াঅনাআনসটর ওয়াডডপরে াঅনাপরক পলাগগন াঅনাআনসটর এয জনয রগট ান গদপরচছ- uninstallphp file and the uninstall hook

uninstallphp

এগট ডভাটাভগট েনপরমাগয িগত এ ডভথড ফযফায কযায জনয াঅনাপরক uninstallphp নাপরভ একগট পাাআর ততগয কযপরত পরফ াঅনায পলাগগন গডপরযকটগযপরত পাাআরগট গনপরচয ভত পরফ- ltphp

মগদ ওয়াডডপরে এগকসট কযায াপরথ াঅনাআনসটর কর কযা না য় If(defined(bdquoWP_UNINSTALL_PLUGIN‟))

exit()

delete_option(bdquoliton_plugin_options‟)

াগতগযি ান এফাং কাসটভ ডটগফর ভপরি ডপরন gt

Uninstall Hook

গিতীয় িগত র Uninstall Hook মগদ াঅগন ডকান পলাগগনপরক গডগরট কযপরত চান এফাং uninstallphp পাাআর না থাপরক তাপরর এাআ রক এগকসগকউট য়(মগদ থাপরক) ltphp

register_uninstall_hook($file$function)

gt

22

ডকাগডাং সটযানডাডড পলাগগন ফানাপরফন গকনত াঅনায ডকাড ডকভন পরফ গচনতা াঅপরত াপরয ওয়াডডপরে াঅনায জনয একগট সটযানডাডড গদপরয় গদপরয়পরি মা াঅনাপরক ওয়াডডপরেপরয জনয পলাগগন গরখপরত ডগপরর পপররা কযপরতাআ পরফ httpcodexwordpressorgWordPress_Coding_Standards

ডফগক একগট উদাযন গদরাভ গনপরচ- ltphp

Short description

Longer more detailed description

param type $varname1 Description

param type $varname2 Description

return type Description

function boj_super_function( $varname1 $varname2 )

do function stuff

gt

গএাআচগ সটানডাডড াঅভযা াপরনপরকাআ গএাআচগয টড পভড(lt gt) ফযফায কগয এটা মপিডরপর ফজডন করন কাযন াপরনক ডাগসটাং ডকামপাগনপরতাআ এটা গডপলট গপরপরফ ফনধ কপরয ডদয়া থাপরক সটযানডাডড টযাগ ফযফায করন(ltphp gt)

এগকউএর ডসটটপরভনট পলাগগন ততগযয ভয় াঅনাপরক াপরনক ভয়াআ ডাটাপরফ ডথপরক াআনপযপরভন গনপরত পরত াপরয াপরনক রাাআপরনয ডকাড গরখপরত পরত াপরয ডপরকষপরতর বার েযাকগট পরচছ এগকউএর এয কভানড গপররা ফড় াপরতয াকষপরয ডরখা ডমভন- SELECT username FROM table1 WHERE status = active

23

াধযায়- াাচাঃ ওয়াডডপরেপরয াপরথ াআগনটপরেন

ডভন এফাং াফ ডভন ততগয করন াঅভযা াপরনক পলাগগপরনাআ ডদগখ ডম একগট ডভন াঅাআপরটভ গপরপরফ াঅভাপরদয ডযাপরফাপরডড ডদখপরত াাআ এফাং ডাআ ডভনপরত গিক কযপরর ডগটাং ডজ াঅপর ডখাপরন পলাগগপরনয মাফতীয় ডগটাং গদপরয় াঅভযা পলাগগন কনগপগায কগয এফায এাআ চভৎকায কাজগট কযফ াঅভযা

ট ডরপরবর ডভন েথভ িগত পরচছ একগট ট ডরপরবর ডভন ততগয কযা ডমগট াঅভযা ডযাপরফাপরডড ডভন গরপরসট একগট নতন াঅাআপরটভ গপরপরফ ডমাগ কযফ ডভন ততগয কযায জনয াঅনাপরক add_menu_page( ) পাাংন ফযফায কযপরত পরফ ltphp

add_menu_page( page_title menu_title capability menu_slug functionicon_url

position )

gt

add_menu_page() পাাংন গনপরচয যাযাগভটাযগপররা াপরাটড কপরয page_title- াঅনায ডপরজয টাাআপরটর গক পরফ lttitlegt tag এয ভপরধয menu_title- ডযাপরফাপরডড াঅনায ডভনয নাভ capability- ফডগনমন capability রাগপরফ একগট ডভন গবউ পরত menu_slug- সলাগ নাভ মা ডভনপরক ডযপায কপরয- তপরফ এগট াআউগনক পরত পরফ function- একগট ডপরজয কনপরটনট ডদখপরত ডম পাাংন কর কযা য় icon_url- একগট কাসটভ াআপরভজ গরঙক ডভন াঅাআকন ডদখাপরনায জনয position- ডভনয গজন াডডায ডমখাপরন এটা ডদখাপরনা পরফ

এফায াঅভযা একগট ফাসতফ উদাযন ডদখফ- ltphp

Plugin Name Liton Menu

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action( admin_menu liton_menu)

function liton_menu()

24

create custom top-level menu

add_menu_page( Liton Menu Page Liton Menu Page manage_options

__FILE__ liton_menu_settings_page plugins_url( imageswp-logopng

__FILE__ ) )

gt

াঅভযা একগট ট ডরপরবর ডভন ততগয কযরাভ ডদখন ডযাপরফাপরডড ডকভন ডদখায়-

Liton Menu Page নাপরভ একগট ডভন ততগয পরয় ডগপরি এফাপরয াঅভযা াফপরভন কযফ ভাপরন Liton Menu Page এয গনপরচ গকি ডগটাং ডভন(মগদ েপরয়াজন য়) াফ ডভন ডযগজসটায কযায জনয add_submenu_page( ) পাাংন ফযফায কযা য় ltphp

add_submenu_page( parent_slug page_title menu_title capabilitymenu_slug

function )

gt

parent_slug- ডভন সলাগ মা াঅভযা াঅপরগ গডপাাআন কপরযগি menu_slug- মা ডভনপরক াফপরভনপরত ডযপায কযপরফ ফাগক পাাংনগপররা াঅপরগয ভতাআ

এফায াফপরভনয জনয গকি াগতগযি ডকাড ডমাগ কগয create submenu items

add_submenu_page( __FILE__ About My Plugin About manage_options

__FILE___about liton_menu_about_page )

add_submenu_page( __FILE__ Help with My Plugin Help

manage_options

__FILE___help liton_menu_help_page )

add_submenu_page( __FILE__ Uninstall My Plugin Uninstall

manage_options

__FILE___uninstall liton_menu_uninstall_page )

25

পরযা ডকাডগট পরফ এযকভ- ltphp

Plugin Name Liton Menu

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action( admin_menu liton_menu

)

function liton_menu()

create custom top-level menu

add_menu_page( Liton Menu Settings Page Liton Menu Page

manage_options __FILE__

liton_menu_settings_page

plugins_url( imageswp-logopng __FILE__ ) )

create submenu items

add_submenu_page( __FILE__ About My Plugin About manage_options

__FILE___about liton_menu_about_page )

add_submenu_page( __FILE__ Help with My Plugin Help

manage_options

__FILE___help liton_menu_help_page )

add_submenu_page( __FILE__ Uninstall My Plugin Uninstall

manage_options

__FILE___uninstall liton_menu_uninstall_page )

gt

গনপরচ ডদখন াফপরভনগপররা ততগয পরয় ডগপরি-

26

ডভনপরক াঅপরগয ডভনয াপরথ মি কযা এফায াঅগ গিতীয় িগতপরত মগদ াঅনায পলাগগপরনয একগট ভাতর ডজ থাপরক একগট ভাতর ডপরজাআ াঅনায কর ডগটাং পরয় মায় তাপরর এাআ িগত েন করন ডমভন ডয়াগযাং াাআটগপররায জনয রধ াঅনায াঅাআগডপযানপরপরজয াঅাআগড দযকায য় এযকভ পলাগগন এধযপরনয পলাগগপরনয জনয াঅনায াগতগযি ডভন ততগয কযায দযকায ডনাআ ফযাং এপরত কপরয াআউজায গফযি ডফাধ কযপরত াপরযন এ ধযপরনয পলাগগনগপররা ডগটাং এয াফপরভন গপরপরফ থাপরক add_options_page() এাআ পাাংন গদপরয় এফ ডভন ডযগজসটায কযা য় ltphp

add_options_page( page_title menu_title capability

menu_slug function)

gt

এফায চরন এযকভ একগট ডভন ততগয কগয- ltphp

Plugin Name Liton Sub Menu

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action( admin_menu liton_submenu)

function liton_submenu()

create a submenu under Settings

add_options_page( Liton Menu Settings Page Liton Menu Page

manage_options __FILE__

liton_menu_settings_page)

27

gt

াফপরভন ততগয পরয় ডগপরি চরন ডদগখ ডযাপরফাপরডড ডকভন ডদখায়-

এপরকফাপরয গনপরচয গদপরক ডদখন Liton Menu Page নাপরভ একগট ডভন ততগয পরয়পরি

উাআপরজট ততগয কযা উাআপরজট ততগয কযায জনয ওয়াডডপরে WP-Widget িা গদপরয় ততগয কযা য় উাআপরজট এয একগট পযভযাট ডদখন গনপরচ ltphp

class My_Widget extends WP_Widget

function My_Widget()

processes the widget

function form($instance)

displays the widget form in the admin dashboard

function update($new_instance $old_instance)

process widget options to save

function widget($args $instance)

displays the widget

gt

28

উাআপরজট ডযগজসটায কযায জনয widget_init() পাাংনপরক রক কযা য় চরন একগট উাআপরজট ততগয কগয- ltphp

Plugin Name Liton Widget

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

class Messager extends WP_Widget

function __construct()

$params=array(

description =gtDisplay message to readers

name =gt Message

)

parent__construct(Messager $params)

public function form()

public function widget()

add_action(widgets_initliton_register_message)

function liton_register_message()

register_widget(Messager)

gt

29

খফ াধাযন একগট উাআপরজট পলাগগন এগট াঅভযা াআউজাযপরদযপরক একগট ডভপরজ ডদখাপরফা াাআডফাপরয ডটাাআ কযায ডচষটা কযগি এখন পলাগগনগট এগকটপরবট কপরয ডদগখ-

াঅভাপরদয উাআপরজটগট ডদখাপরচছ এফায াঅপরযা গকি পাাংনার কাজ কগয এগট মগদ াাআডফাপরয ডরাগ কপরয ডদন তাপরর ডকান কাজ কযপরফ না কাযন াঅভযা এখপরনা গকিাআ কগযগন পভড পাাংপরন গকি কাজ কগয মা উাআপরজট টাাআপরটর গপরপরফ ডদখাপরফ- public function form($instance)

extract($instance)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title)gtgtTitle ltlabelgt

ltinput

class=widefat

id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt

value=ltphp if(isset($title)) echo esc_attr($title) gt gt

ltpgt

ltphp

াঅভযা উপরয class=widefat ফযফায কপরযগি এাআ িা ফযফায কযায কাযপরন পভড এয াআনট গপলডগট াপরনক সনদয পরয়পরি

30

মগদ এাআ িা ফযফায না কগয তাপরর ডকভন ডদখাপরফ গনপরচ ডদখন-

াঅভাপরদয উাআপরজট পলাগগনগটয ডকাড গনপরচ ডদওয়া র ltphp

Plugin Name Liton Widget

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

class Messager extends WP_Widget

function __construct()

$params=array(

description =gtDisplay message to readers

name =gt Message

)

parent__construct(Messager$params)

31

public function form($instance)

extract($instance)

print_r($instance)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title)gtgtTitle ltlabelgt

ltinput

class=widefat

id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt

value=ltphp if(isset($title)) echo esc_attr($title) gt gt

ltpgt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(description)gtgtDescription

ltlabelgt

lttextarea

class=widefat

rows=10

id=ltphp echo $this-gtget_field_id(description) gt

name=ltphp echo $this-gtget_field_name(description) gtgtltphp

if(isset($description)) echo esc_attr($description) gtlttextareagt

ltpgt

ltphp

public function widget($args$instance)

extract($args)

extract($instance)

echo $before_widget

echo $before_title$title$after_title

echo ltpgt$descriptionltpgt

echo $after_widget

add_action(widgets_initliton_register_message)

function liton_register_message()

32

register_widget(Messager)

gt

এফায াঅভযা ডযাপরফাডড ডথপরক একগট ডভপরজ ডদফ গবগজটযপরদযপরক-

াঅভযা এাআ উাআপরজটগট ডাাআনাগভক বাপরফ কপরযগি কাযন এখাপরন lth2gt lth3gt lth4gt এ ধযপরনয ডকান টযাগ াঅভযা ফযফায কগযগন াঅভযা গথভ ডডপরবর কযগিনা সতযাাং এ কাজগট াঅভাপরদয ানযবাপরফ কযা দযকায গির এগট গথভ ডডপরবরায ডদগখপরয় ডদপরফন ডম ডকভন টযাগ পরফ াাআডফাপরয াাআপরটয াাআডফাপরয ডকভন ডদখায় তা ডদখন- াঅভযা রগট গথপরভ এগট ডটসট কপরয ডদখফ েথভগট টপরয়গনট াআপররপরবন

33

এফায াঅপরযকগট গথপরভ ডদগখ-

34

াধযায়- িয়াঃ পলাগগন পাাংন

গকি ডফগক পাাংন __() পাাংন

__() পাাংনগট গএাআচগপরত াঅনায ডটকসটপরক ডযগড কপরয িানসপররন এফাং গযটানড কপরয উদাযন গপরপরফ াঅগন একগট বযারপরক __() পাাংপরনয ভপরধয ডবগযপরয়ফর গদপরয় assign করন ভপরন যাখপরফন এাআ পাাংনগট রগট াঅনডাযপরিায(_) গদপরয় গগঠত একগট নয় ltphp

$text=__(bdquoWordpress is a wonderful publishing platform‟‟liton_plugin‟)

gt

_e() পাাংন _e() পাাংনগট াঅনায ডটকসবপরট ডরাকারাাআজ কপরয এটা গএাআচগপরত echo এয ভত কাজ কপরয ডকান ডটকসটপরক গিপরন ডদখাপরনায জনয এফায একট ভজা কগয মা রপরক ডদপরখগি াঅপরগাআ- _e() পাাংনগট গদপরয় াঅপরগয পলাগগনগট এগডট কযফ ltphp

Plugin Name Liton Action

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(wp_footer liton_footer_action)

function liton_footer_action()

Output the translated text

_e( This site runs off the coolest platform ever ampmdash

WordPress

liton-plugin )

gt

35

এফায াঅউটট ডদগখ

esc_attr__() পাাংন এাআ পাাংনগট esc_attr() এয ভত এগট এাআচগটএভএর এগিগফউটপরক escape কপরয াঅভযা এফায esc_attr__() এফাং __() এাআ রগট পাাংনপরক একগট কপরয পলাগগন ততগয কযফ ltphp

Plugin Name Liton Esc Attr

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

A function that returns a link to the sites terms of service

page

function liton_terms_of_service_link()

return lta href=httpliton-onlinecomtos title=

esc_attr__( Visit the Terms of Service page boj-plugin ) gt __( Terms of

Service liton-plugin ) ltagt

Display the output of the liton_terms_of_service_link()

function

echo liton_terms_of_service_link()

gt

পলাগগনগটয াঅউটট ডদখন-

36

এযকভ াঅপরযা গকি পাাংন াঅপরি ডমগপররা াঅনাযা ডদপরখ ডনপরফন াআনটাযপরনট ডঘপরট

esc_html__() Function

esc_attr() Function

esc_url() Function

esc_js() Function

esc_html() Function

esc_attr_e() Function

esc_html_e() Function

_x() Function

_ex() Function

esc_attr_x() Function

esc_html_x() Function

_n() Function

_nx() Function

_n_noop() Function

_nx_noop() Function

Translation

bull Poedit httppoeditnet

bull GlotPress httpglotpressorg

bull Launchpad httpstranslationslaunchpadnet

bull Pootle httppootlelocamotionorg

bull KBabel httpi18nkdeorg

bull GNU Gettext httpgnuorgsoftwaregettext

GlotPress এখন ওপরয়ফ ডফড টর গপরপরফ ফযফায কযা পরচছ ওয়াডডে েপরজপরকটয ডিপরন একজন াথফা গটপরভয জনয িানসপররগটাং পটওয়যায গপরপরফ

37

াধযায়- াতাঃ পলাগগন গগকউগযগট

গগকউগযগট কগমপউটাপরযয বালায় ldquoগগকউগযগটrdquo ভাপরন বীগতকয একগট বদ ডমভন Cross Site

Scripting(XSS) Cross Site Request Forgery(CSRF) SQL Injection Privilege

Escalation Vulnerabilities এফাং Holes রফডর ডকাড একগট াবডাপরযয সযকষায জনয রভকীয কাযন পরত াপরয

পলাগগপরনয গগকউগযগট গক াঅনায পলাগগনগট ডমন গগকউয য় vulnerabilities data integrity এফাং reliability ডথপরক

াঅনায পলাগগনপরক গক গগকউগযগট ডদপরফন ওয়াডডপরে এনবায়যনপরভপরনট াঅনায পলাগগনপরক গগকউগযগট ডদয়া খফ কগঠন কাজ নয় এফাং খফ ভয় াপরকষ গফলয়ও নয় ওয়াডডপরেপরয গনজসব গকি পাাংন এপরকষপরতর াঅনাপরক খফাআ াাময কযপরফ

াআউজায াযগভন াঅভযা াপরনক পলাগগন াআনসটর কযায পরযাআ ডদপরখগি ডম মখনাআ এডগভন যাপরনর এ েপরফ কযপরত মাাআ তখন একগট এযয ডভপরজ াঅপর ডভপরজগট গনপরচয ভত-

ডরখা াঅপরি- You do not have sufficient permissionshellip এটা গনশচয়তা ডদয় ডম ডমপরকান এযাকন ীভাফি থাপরক গনগদডষট গকি যাাআট গদপরয় ওয়াডডপরেপরয একগট কভন পাাংন র current_user_can() একগট উদাযন ডদাআ-

38

ltphp

Capability

if ( current_user_can(install_plugins) )

wp_die( Insufficient permissions )

Role

if( current_user_can(editor) )

wp_die( You cannot edit this setting )

gt

খফ তাড়াতাগড় াঅগন এাআ current_user_can() পাাংন ডচক কযপরফন না কাযন এটা গনবডয কযপরফ get_currentuserinfo() এাআ পাাংপরনয উপরয াঅয এয ফযফাপরয ীভাফিতা াঅপরি এটা একগট পলাপরগফর পাাংন(pluggable function) াঅয এয ডরাপরকন পরচছ wp-

includespluggablephp মা পলাগগন এগকটব ফায য ডরাড য়

Nonces

ডকউ এগটপরক াঅফায Nonsense( গনপরফডাধ) বাফপরফন নাএগট ওয়াডডপরেপরয বালায় Nonces কগমপউটাপরযয বালায় nonce ফা cryptographic nonce পরচছ ldquonumber used once rdquo এটা ডিাট এফাং সপষট গকি য যানডভ গসটরাং ডমভন- াওয়াডড মা গকি গনপরদড কপরয Nonce গপরডন গপলড পভডপরক Retrieve ফা display কপরয-

একজন ওয়াডডপরে াআউজায ডমপরকান একগট এযাকন (delete update save and such) একগট াফপরজকট(একগট ডাসট পলাগগন ডগটাং াআতযাগদ) ২৪ ঘনটায একগট ভয় ডিভ

ডমভন ডাসট 50 গডগরট কযপরফন াঅনায ওয়াডডপরে বলগ ডথপরক তাপরর াঅনায গরঙকগট পরফ এযকভ- httpexamplecomwp-admin

postphppost=43ampaction=trashamp_wpnonce=83a08fcbc2

এখাপরন 83a08fcbc2 এগট র nonce মা ২৪ ঘনটা সথায়ী থাপরক রধভাতর এগট মগদ াঅনায িাযা ফযফরত য় এফাং গডগরট য় ডাসট 50 মখন াঅগন গরপরঙক গিক কপরযন ফপরচপরয় গযতবনড র ডম Nonce ডকান malicious াআউজায ফেপরত াপরযনা এফাং গঠক গরঙক িাড়া nonce এযয ডপরজ চপরর মায় ডমখাপরন াযগভন থাপরক না াঅপরযা গফসতাগযত ডদখন httpcodexwordpressorgWordPress_Nonces

39

Nonce URL ততগয এফায চরন াঅপরগয উদাযন ডথপরক Nonce URL ততগয কগয একগট ডাসট গডগরট কযায জনয wp_nonce_url() পাাংন ফযফায কযা য় ltphp

$url = wp_nonce_url( $url $action )

gt

েথভ যাযাগভটায $url পরচছ গসটরাং URL এপরডর এয মাপরক াঅগন কপরয়যী গসটরাং এয Nonce কযপরত চান াফযফহরত পলাগগপরনয গডগরট গরঙক এযকভ থাপরক- httpexamplecomwp-admineditphppage= liton

_utagsampliton_action=deleteampid=6

এখাপরন ডদখন যাযাগভটায liton_action এফাং এয টযাগ াঅাআগড গিতীয় যাযাগভটায পরচছ $action একগট গসটরাং মা াঅগন একগট াফপরজকট এয জনয একগট action ততগয কযপরফন উপরয ডদখরাভ delete এযাকন এয টযাগ াঅাআগড 6 সতযাাং $action যাযাগভটায পরত াপরয bdquoliton_utags-delete_tag6‟ গনপরচ ফাসতফ উদাযন ডদগখ- ltphp

$delete_url = add_query_arg(array( liton _action=gtdeleteid=gt$id) )

$nonced_url = wp_nonce_url( $delete_url bdquoliton _utags-delete_tag$id )

gt

lta href=ltphp echo $nonced_url gtgtdeleteltagt

এাআ টযাগগট পরফ গডগরট গরঙক এখাপরন add_query_arg() পাাংন ফযফায কযা পরয়পরি মা কাপরযনট URL ডক এযাপরয যাযাগভটায এয ভপরধয যাপরখ ানযবাপরফ ফরপরর এগট ডমাগ কপরয এযকভাঃ liton_action=deleteampid=6 amp liton_action=deleteampid=6

Nonce Form ততগয Nonce পভডপরকও ডোপরটকট কপরয wp_nonce_field() পাাংপরনয ভাধযপরভ ltphp

wp_nonce_field( $action $name $referer $echo ) gt

$action ( string) (optional) - action নাভ াআউগনক identifier optional

গকনত recommended $name (string) (optional) ndash গপরডন গপলড পভড ডবগযপরয়ফর নাভ $referer (boolean) (optional) ndash গডপলট গপরপরফ true থাপরক ডমখাপরন গপলড

ডবগরপরডন এয দযকায য়

40

$echo (boolean) (optional) - গডপলট গপরপরফ true থাপরক ডমখাপরন াঅউটট ডদখাপরনায ফা গপরডন পভড গপলড গযটানড কযায জনয দযকায য়

পপরভড াঅনায action এয নাভ গদন ltform method=postgt

lt-- some inputs here --gt

ltphp wp_nonce_field(name_of_my_actionname_of_nonce_field) gt

ltformgt

াঅভযা একগট পলাগগন ফানাপরফা ডমখাপরন াফযফরত টযাগগপররাপরক াঅভযা ভযানয়াগর গডগরট ফা গযপরনভ কযপরত াযফ এগট একট ফড় গকনত াপরনক গফলয়াআ াঅপরগাআ াঅপররাচনা কযা পরয়পরি ডদখপররাআ ফেপরত াযপরফন একগট ফাসতফধভডী উদাযন গনপরচ গদরাভ- ltphp

Plugin Name Liton Unused Tags

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add an entry for our option page to the Posts menu

add_action(admin_menu liton_utags_add_page)

function liton_utags_add_page()

add_posts_page( Unused Tags Unused Tagsmanage_optionsliton_utags

liton_utags_option_page )

Catch any liton_action parameter in query string

add_action( admin_init liton_utags_do_action )

Proceed to requested liton_action if applicable

function liton_utags_do_action()

if( isset( $_REQUEST[liton_action] ) )

return

if( current_user_can( manage_options ) )

wp_die( Insufficient privileges )

41

$id = $_REQUEST[id]

$action = $_REQUEST[liton_action]

if( $action == done )

add_action( admin_notices liton_utags_message )

return

check_admin_referer( liton_utags-$action_tag$id )

switch( $action )

case rename

$newtag = array( name =gt $_POST[name] slug =gt

$_POST[name] )

wp_update_term( $id post_tag $newtag )

break

case delete

wp_delete_term( $id post_tag )

break

wp_redirect( add_query_arg( array( liton_action =gt done )

) )

Admin notice

function liton_utags_message()

echo ltdiv class=updatedgtltpgtAction

completedltpgtltdivgt

Draw the tag management page

function liton_utags_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtUnused Tagslth2gt

ltphp

if( $tags = liton_utags_find_orphans() )

echo ltpgtYou currently have count( $tags ) unused

tagsltpgt

echo ltolgt

foreach( $tags as $tag )

42

$id = $tag-gtterm_id

$name = esc_attr( $tag-gtname )

$delete_url= add_query_arg(

array(liton_action=gtdeleteid=gt$id) )

$nonced_url= wp_nonce_url( $delete_url

liton_utags-delete_tag$id )

gt

ltligt

ltform action= method=postgt

ltphp wp_nonce_field( liton_utags-rename_tag$id )

gt

ltinput type=hidden name=liton_action

value=rename gt

ltinput type=hidden name=id value=ltphp echo

$id gt gt

ltinput type=text name=name value=ltphp echo

$name gt gt

ltinput type=submit value=Rename gt or

lta href=ltphp echo $nonced_url gtgtdeleteltagt

this tag

ltformgt

ltligt

ltphp

else gt

ltpgtYou have no unused tagsltpgt

ltphp endif gt

ltolgt

ltdivgt

ltphp

Find unused tags return them in an array

function liton_utags_find_orphans()

global $wpdb

$sql = SELECT termsterm_id termsname FROM

$wpdb-gtterms terms

INNER JOIN $wpdb-gtterm_taxonomy taxo

ON termsterm_id=taxoterm_id

WHERE taxotaxonomy = post_tag

43

AND taxocount=0

return $wpdb-gtget_results( $sql )

gt

ডযাপরফাপরডড এাআ পলাগগপরনয ডভন াওয়া মাপরফ ডাসট এয াফপরভন গপরপরফ গনপরচ ডদখন-

এফায পলাগগন ডভনপরত গিক কপরয ডদগখ পলাগগপরনয ডবতপরযয কাজ-

উপরয ডদখন াঅগভ একগট টযাগ ততগয কপরযগিরাভ l i নাপরভ এগট এখাপরন ডদখাপরচছ াঅগভ চাাআপরর এগট এগডট ফা গডগরট কযপরত াগয এফায গডগরট গরঙক এ ভাউপরয কাডয ডযপরখ গনপরচ গরঙক ডদখন ফা গডগরট করন একগট টযাগ াঅভায এখাপরন URL গট এযকভ httplocalhostdev-litonwp-

admineditphppage=liton_utagsampliton_action=doneampid=4amp_wpnonce=30a44b7

986

এখাপরন াঅগভ liton_action=done ফযফায কপরযগি Nonces এয পাাংনগপররায নাভ গনপরচ গদরাভ াঅনাযা ডদপরখ গনপরফন াআনটাযপরনট ডথপরক wp_nonce_field()

wp_nonce_url()

wp_verify_nonce()

wp_create_nonce()

44

check_admin_referer()

check_ajax_referer()

ডাটাপরফ াঅনাযা ডমপরত গএাআচগ গনপরয় কাজ কপরযন এগকউএর ডাটাপরফ এয াপরথ ফাাআ কভপরফী গযগচত এয গনটযাকস গপররা ডভাটাভগট ফায জানা একাআ বাপরফ াপরনপরকাআ ওয়াডডপরেপরও ডাটাপরফ ডকাড গরপরখন এটা ডকাগডাং এয জনয খাযা গদক াঅগভ নযভার গএাআচগ- এগকউএর ডকাড এয উদাযন গদগচছ- ltphp

$sql=rdquoINSERT INTO $wpdb-gtposts(post_title) VALUES(bdquo$title‟)rdquo

$wpdb-gtquery($sql) gt

এফায ওয়াডডপরেপরয সটযানডাডড ডকাগডাং গপরসটভ ডদখন- ltphp

$wpdb-gtinsert($wpdb-gtposts

array(bdquopost_title‟ =gt $title)

array(bdquos‟)

)

gt

ডাটাপরফ গগকউয কযায জনয াঅপরডট াাপরযন ডদখাফ- গনপরচয ডকাডগট খাযা েযাকগট ltphp

$wpdb-gtquery(ldquoUPDATE $wpdb-gtposts SET post_title=‟$newTitle‟ WHERE

ID=$my_idrdquo )

gt

উপরযয ভত কপরয না গরপরখ গনপরচয ভত কপরয গরখন- ltphp

$wpdb-gtupdate($wpdb-gtposts

Array(bdquopost_title‟ =gt‟$newTitle‟)

Array(bdquoID‟ =gt$my_id

)

gt

ানর বাপরফ ানযানয াাপরযন গপররা গরখপরফন

45

াধযায়- াঅটাঃ ডরাকারাাআপরজন এফাং Set t i ngs API

ডরাকারাাআপরজন ডরাকারাাআপরজন একগট গরতবনড গফলয় এয পাাংনগপররা র- load_theme_textdomain()

load_plugin_textdomain()

উদাযন- ltphp $var=__(bdquoHello‟‟domain‟) gt

ltphp _e(bdquoHello‟‟domain‟) gt

গফসতাগযত গনপরচয গরপরঙক ডদখন- httpcodexwordpressorgI18n_for_WordPress_Developers

ডগটাং API

ডগটাং API পরচছ াঅগন গকি ান ততগয কযপরফন মা াআনটাযনার বাপরফ াঅনায পলাগগপরন এপলাাআ পরফ মখন াঅগন াআউজায- গডপাাআন ান ততগয কযপরফন াঅনায পলাগগপরনয জনয তখন Settings

API ndashএ াঅনায ডকাড মতটা ারন জ করন Settings API াঅনায ডম কাজগপররা handle কপরয-

ওয়াডডপরেপরক জাগনপরয় ডদয় ডম াঅগন গনজসব ান ফযফায কযপরফন াঅনায াআনটপরক পাাংপরনয ভপরধয উপরেখ কযপরফ ডফগয বাগ ান ডজ গনপরজাআ ততগয কযপরফ $_POST ডাটা গপররাপরক ভগনটয কপরয ান ততগয এফাং াঅপরডট কপরয(মগদ েপরয়াজন য়)

Settings API পাাংন Settings API পাাংপরন গতনগট ডসট থাপরক- ১ েথপরভ ওয়াডডপরেপরক ফপরর ডম াঅগন নতন ডগটাং ফযফায কযপরফন াঅনায পলাগগপরনয জনয ২ এয পরয ডগটাং গডপাাআন করন (text areas input boxes and any

HTML form element) এফাং এপরদযপরক একাপরথ রে কপরয যাপরখ ৩ ওয়াডডপরেপরক াঅনায ডগটাং actual form এ ডদখাপরনায জনয ফপরর

46

এফায াঅভযা একগট পলাগগন ফানাপরফা Administration Page ndashএ ডযপাপরযনস গপরপরফ ডদখপরত াপরযন- httpcodexwordpressorgAdding_Administration_Menus

httpcodexwordpressorgFunction_Referenceadd_options_page

httpcodexwordpressorgAction_ReferenceActions_Run_During_an_Admin_P

age_Request

পলাগগপরনয এডগভন ডজ পরফ এযকভ- httpexamplecomwp-adminoptions-generalphppage=liton_myplugin

েথপরভ াঅভযা ডভন ততগয কযফ াঅপরগয ভত কপরয- Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

এফায ান ডজ এ পভড গনপরয় গকি ডগটাং ডদফ function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

উপরযয ডকাপরড াঅভযা একগট পপরভডয ভপরধয রধ াফগভট ফাটন এফাং My Plugin নাপরভ ডজ ততগয কপরযগি ডযাপরফাপরডড ডদখন-

47

ডগটাং এয াফ ডভন গপরপরফ My Plugin াঅপরি এফাং My Plugin ডত গিক কযপরর াঅভযা উপরযয ডজ ততগয কপরযগি ডমখাপরন াফগভট ফাটনগট ডদখাপরচছ এফায গতনগট যাযাগভটায ডযগজসটায কযফ- ltphp

register_setting( liton _myplugin_options liton _myplugin_options liton

_myplugin_validate_options)

gt

েথভগট ডগটাং রেপরয নাভ গিতীয়গট ান নাভ মা াঅভযা get_option() পাাংন গদপরয়ও ডপরত াগয ততীয়গট করফযাক পাাংন এগট একগট গসটরাং ডযপাপরযনস পাাংন এখাপরন াঅভযা নাভ

48

গদপরয়গি liton _myplugin_validate_options মা া কযপরফ পপরভডয কর ডব ডগটাং াঅভযা এটা পরয গডপাাআন কযফ

ডগটাং গডপাাআন ডকন add_settings_field() এফাং add_settings_section() পাাংন গদপরয় াঅভযা াঅভাপরদয কর ডগটাং গডপাাআন কযফ ltphp

add_settings_section( liton_myplugin_main My Plugin Settings

liton_myplugin_section_text liton _myplugin)

add_settings_field( liton _myplugin_text_string Enter text here

liton _myplugin_setting_input liton _myplugin liton _myplugin_main)

gt

add_settings_section() পাাংন গদপরয় াঅভযা ডদখাফ াঅপরর ডজ এ ডকন ডকভন ডদখাপরফ এয চাযগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ ডকন টাাআপরটর ltH3gt টযাপরগয ভপরধয করফযাক পাাংন এয নাভ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ (page= liton _myplugin এগট

URL এয াাং গপরপরফ থাকপরফ) গিতীয় যাযাগভটায add_settings_field() পপরভডয াআনট গপরপরফ ডদখাপরনা পরয়পরি এখাপরন াাচগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ পরযয গপপরলড গক গেনট কযা পরফ তা ডটকসট গপরপরফ ডদখাপরনা পরয়পরি(Enter text

here)

করফযাক পাাংন পপরভড গেনট কযপরফ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ ডগটাং ডপরজয ডকন গপলড মা add_settings_section() পাাংপরন গডপাাআন

কযা পরয়পরি ltphp

Explanations about this section

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

49

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton _myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name= liton _myplugin_options[text_string]

type=text value=$options[text_string] gt

gt

গিতীয় পাাংন ান বযার text_string ডক এযাপরযপরত ডসটায কপরয ডযপরখপরি এফায াআউজায াআনট বযাগরপরডট কযফ- ltphp

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace([^a-zA-Z]$input[text_string] )

return $valid

gt

পভডপরক ডযনডায কযফ- ltphp

Draw the options page

function liton_myplugin_options_page()

gt

ltdiv class=wrapgt

ltphp

screen_icon()

gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp

settings_fields( liton_myplugin_options)

do_settings_sections(liton_myplugin)

50

gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

settings_fields() পাাংনগট ডযপাপরযনস গপরপরফ ফযফায কযা পরয়পরি মা াঅভযা register_setting() পাাংপরন গডপরিয়ায কপরযগি do_settings_sections() পাাংনগট কর কযপরফ কর াঅউটট ডকন এফাং পভড গপলডপরক মা াঅভযা পরফড গডপাাআন কপরযগি াঅভাপরদয কাজ ডল এফায পরযা পলাগগনগট ডদখফ- ltphp

Plugin Name Settings API example

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

Draw the option page

function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save

Changes gt

ltformgtltdivgt

ltphp

51

Register and define the settings

add_action(admin_init liton_myplugin_admin_init)

function liton_myplugin_admin_init()

register_setting( liton_myplugin_options

liton_myplugin_options

liton_myplugin_validate_options )

add_settings_section( liton_myplugin_main My Plugin

Settings

liton_myplugin_section_text liton_myplugin )

add_settings_field( liton_myplugin_text_string Enter text

here

liton_myplugin_setting_input liton_myplugin

liton_myplugin_main )

Draw the section header

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton_myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name=liton_myplugin_options[text_string]

type=text value=$text_string gt

Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

return $valid

gt

52

ডদখন ডযাপরফাপরডড ডকভন ডদখায়-

পরয় ডগর াঅভাপরদয েথভ নডাাংগ পলাগগন ান ডজ াঅপরযকগট গজগন ডমটায জনয এতগকি পলাগগন URL এপরডর- httplocalhostdev-litonwp-adminoptions-

generalphppage=liton_mypluginampsettings-updated=true

াঅভায এখাপরন এযকভ ডদখাপরচছ ডটকসট ফপরকস ডকান গকি গরপরখ ডব কযায য এফাপরয াঅপরযকগট গজগন ডদখফ াঅভযা াপরনক ভয়াআ াপরনক পলাগগপরনয াআনট গপপরলড বর ডাটা াআনট কযপরর এযয ডভপরজ ডদখায় এাআ কাজগট কযফ এফায াঅভযা এখাপরন esc_attr() ফা esc_html() ফযফায কগযগন সতযাাং াঅভাপরদয গরগভপরটন থাকপরি ডবগরপরডট পাাংনগট একট এগডট কগয গনপরচয ভত কপরয Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

if( $valid[text_string] = $input[text_string] )

add_settings_error(liton_myplugin_text_stringliton_myplugin_texterror

53

Incorrect value enterederror)

return $valid

উপরয ডদখন add_settings_error() পাাংন ফযফায কপরযগি মা এযয ডচক কযপরফ পপরভডয াঅগভ একগট বর ডাটা(পরসপার কযাপরযকটায) াআনট কপরয ডদখরাভ এযয ডদখাপরচছ-

তায ভাপরন াঅভযা পর পরয়গি াঅনায পলাগগনগট এগডট কপরয ডনপরফন ডকায ডকন এফাং গপপরলডয গরসট গদরাভ াঅনাপরদয সগফধায জনয

54

CSSJS পাাআর মি কযা

াঅনায পলাগগপরন গএএ ফা জাবাগিে ডমাগ কযপরত পরত াপরয াঅগন চাাআপরর ফাগপরযয ডকান ফা াঅনায ততগয ডকান গএএ ফা জাবাগিে পাাআর ডমাগ কযপরত াপরযন তপরফ এপরকষপরতর াঅভযা ডমবাপরফ HTML এ পাাআর ডমাগ কগয ডযকভ না function liton_scripts()

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtojqueryjsrdquogtltscriptgt‟

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtoscriptjsrdquogtltscriptgt‟

add_action(bdquowp_head‟‟liton_scripts‟)

এগট মপনডরপর বর িগত গনপরচ ডদখন ওয়াডডপরেপর গকবাপরফ পাাআর মি কযপরত য়- function liton_scripts()

wp_enqueue_script(bdquojquery‟)

wp_enqueue_script(bdquotheme-scripts‟‟pathtoscriptsjs‟)

add_action(bdquowp_enqueue_script‟‟liton_scripts‟)

ানর বাপরফ াঅগন সটাাআরীট ডমাগ কযপরত াপরযন- function liton_styles()

wp_enqueue_ style (bdquocss‟)

wp_enqueue_ style (bdquotheme- styles‟pathto stylescss‟)

ডযপাপরযনস ডদখন- httpcodexwordpressorgFunction_Referencewp_enqueue_script

httpcodexwordpressorgFunction_Referencewp_enqueue_style

টডপরকাড টডপরকাড পরচছ ওয়াডডপরেপরয ডসপগগপক ডসপার টযাগ মা াঅগন ডাসট ফা ডপরজয ভপরধয াআনাটড কপরয ানয ডকান কনপরটনটপরক ওপরয়ফাাআপরটয ভপরধয গযপরপল কযপরত াযপরফন মগদ াঅগন গযারাগয টাাআপরয ডকান পলাগগন ফযফায কপরয থাপরকন তাপরর াঅনায ধাযনা থাকায কথা মাাআ ডাক াঅগভ কপরয়কগট উদাযি ডদখাফ

55

েথপরভ একগট পলাগগন ততগয কযফ ডমখাপরন add_shortcode() নাপরভয একগট পাাংন থাকপরফ এগট রগট যাযাগভটায েন কপরয েথভগট টডপরকাপরডয নাভ গিতীয়গট ডম পাাংনপরক কর কযপরফন ডগট াঅভযা একগট উদাযন ডদগখ- ltphp

Plugin Name Liton Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(litonhi)

function hi()

echo Hello World

gt

উপরয ডদখন খফ ডিাট গকনত াঅগন চাাআপরর এয ফযফায াপরনক গফসতত কযপরত াপরযন এখাপরন টডপরকাড নাভ পরচছ liton াঅয এগটপরক ডরখা য় এবাপরফ [liton] াঅভযা ডাপরসটয ভপরধয াআনাটড কপরয ডদগখ াঅউটট ডকভন ডদখায়-

এফায াঅউটট ডদগখ-

56

াঅভাপরদয ততগয কযা টডপরকাড পরবাপরফাআ কাজ কযপরি াঅপরযকগট উদাযন ডদখফ াঅনাযা াপরনপরকাআ গগর এডপরনস গনপরয় কাজ কপরযন াঅনাযা াপরনপরকাআ এডপরনস এয জনয পলাগগন ফযফায কপরযন গকনত চাাআপররাআ এাআ কাজগট াঅনাযা গনপরজয ভত কপরয াগজপরয় গনপরত াপরযন গগপররয কাপরি ফ ডাসট বযার ায়না াঅনাযা মাযা একসাটড াঅপরিন তাযা এটা বার কপরয জাপরনন তাাআ াপরনপরকাআ গগপররয ডকাড ফ ডপরজ ডদখাপরত চান না এজনয পলাগগন ফযফায কপরয রাব য়না কাযন পলাগগপরন জায়গা গপকসড থাপরক এপরত কপরয াঅগনডাং ও কভ য় াঅনাযা টডপরকাড ফযফায কপরয ডমপরকান জায়গায় এড ডদখাপরত াপরযন গনপরচ াঅগভ রগট টডপরকাড ততগয কপরযগি র‟ধযপরনয এড ডদখাপরনায জনয ltphp

Plugin Name Liton Adsense Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(adsense_468adsense_468_60)

add_shortcode(adsense_250adsense_250_250)

function adsense_468_60($atts)

return ltscript type=textjavascriptgtlt--

57

google_ad_client = ca-pub-0956247412222369

468x60 created 101510

google_ad_slot = 4372705450

google_ad_width = 468

google_ad_height = 60

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

function adsense_250_250($atts)

return ltscript type=textjavascriptgtlt--

google_ad_client = ca-pub-0956247412222369

250x250 created 81809

google_ad_slot = 9368091893

google_ad_width = 250

google_ad_height = 250

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

gt

একগট টডপরকাড ফযানায টাাআপরয জনয এফাং াঅপরযকগট ২৫০২৫০ াাআপরজয এফায ডাপরসট ডমপরকান একগট টডপরকাড াআনাটড করন ডমখাপরন াঅনায ডদখাপরনায েপরয়াজন ভপরন কপরযন াঅগভ রগট ডকাড ডটসট কপরয ডদখরাভ-

58

এফায াাআপরটয াঅউটট ডদগখ-

রগট এডাআ ডদখাপরচছ াঅপরযা াপরনক কাপরজ াঅগন টডপরকাড ফযফায কযপরত াপরযন ডযপাপরযনসাঃ httpcodexwordpressorgShortcode_API

59

াধযায়- নয়াঃ পলাগগন উদাযন

ওয়াডডপরেপরয ডডটটাাআভকপরভনট নামবায ফাাংরা কযায পলাগগন াঅভাপরক কপরয়কজন ফপররগিপররন ওয়াডডপরেপরয গডপলট ডডটটাাআভকপরভনট নামবায ফাাংরা য়না রযাাংগপরয়জ ফাাংরা কযায যও ডডটটাাআভকপরভনট নামবায গপররা াআাংপরযগজ ডথপরক মায় গনপরচয পলাগগনগট ফযফায কপরয ডদখপরত াপরযন- ltphp

Plugin Name Liton Bangla datetimecomment number

Plugin URI httpliton-onlinecomplugins

Description Bangla datetimecomment number

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

This function converts all english numbers to bangla number

function make_bangla_number($str)

$engNumber = array(1234567890)

$bangNumber = array( ১ ২ ৩ ৪ ৫ ৬ ৭ ৮ ৯ ০ ) $converted = str_replace($engNumber $bangNumber $str)

return $converted

add_filter( get_the_time make_bangla_number )

add_filter( the_date make_bangla_number )

add_filter( get_the_date make_bangla_number )

add_filter( comments_number make_bangla_number )

add_filter( get_comment_date make_bangla_number )

add_filter( get_comment_time make_bangla_number )

gt

60

সলাাআডায পলাগগন াঅভযা এাআ ফাআপরয়য কর গটউপরটাগযয়াপরর মা মা গখরাভ তা এফায একগট নডাাংগ পলাগগপরনয এপলাাআ কযফ সলাাআডায পলাগগন মপপরকড াঅভযা ফাাআ জাগন একগট ওপরয়ফাাআপরটয ডচাযা ারপরট ডদয় একগট সলাাআডায াপরনক ডাাআনাগভক ভপরন য় ডদখপরতও াপরনক বার রাপরগ এাআ পলাগগপরন াঅভযা এডগভন যাপরনর ডথপরক াআপরভজ ডমাগ কযফ এফাং তা াঅভাপরদয াাআপরট ডদখাফ চরন কাজ রর কগয- েথপরভ গনপরবা সলাাআডায এয ওপরয়ফাাআপরট মান এফাং jQuery Plugin ডাউনপররাড করন

ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom Version 10

gt

াঅভযা পলাগগপরনয ডডায ততগয কযরাভ

পলাগগন গরপরসট ডদখাপরচছ bdquoLitons Nivo Plugin‟ াঅভাপরদয েথভ কাজ পরচছ custom post

type ওয়াডডপরে পাাংনাগরগট একগট নতন কাসটভ ডজ ততগয কযপরত custom post type

ফযফহরত পরফ ডমখাপরন একগট াআপরভজ থাকপরফ াঅভযা রধ টাাআপরটর ডনভ এফাং াআপরভজ াঅপররাডায গপরপরফ গপচায াআপরভজ পাাংনাগরগট ফযফায কযফ function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_function 600 280 true)

61

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

add_action(init np_init)

উপরযয ডকাপরড np_init() পাাংনগট রক কপরযগি মা ডডায যান কযায াঅপরগ যান পরফ াঅয এজনয register_post_type() পাাংনপরক এয যাযাগভটায গদপরয় np_init() পাাংপরনয ডবতপরয মি কপরযগি এটা মগদ না কযতাভ তাপরর ldquoHeaders already sentrdquo ডভপরজ ডদখাত এাআ ডভপরজগটয াপরথ াপরনপরকাআ গযগচত াঅা কগয register_post_type() পাাংন গদপরয় াঅভযা াআপরভজ মি এফাং ভযাপরনজ কযফ ভরত াঅভযা একগট নতন custom post type ডমাগ কপরযগি np_images নাভ গদপরয় নতন custom post type ডক ডগটাং বযার গপরপরফ াঅযগপরভনট া কপরযগি $args ডবগযপরয়ফরগট ট ডরপরবর ডভন ততগয কপরয াঅপরগাআ ডদপরখগি পলাগগনগট এগকটপরবট কযপরর াঅভযা গনপরচয ভত ডদখপরত াফ-

এফায গিে এফাং সটাাআরীট ডক মি কযফ- add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

এফায রক কযা পাাংনগপররা গডপরিয়ায কগয- function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__) array( jquery ))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

62

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

উপরযয ডকাডগপররা নতন কপরয ফিডনা কযায গকি ডনাআ াঅপরগাআ wp_enqueue_style() এফাং wp_enqueue_script() মপপরকড ফরা পরয়পরি নতন াঅপরযকগট পাাআর ততগয করন একাআ গডপরযকটগযপরত scriptjs এফাং গনপরচয ডকাডটক গদন- jQuery(document)ready(function($)

$(slider)nivoSlider()

)

াআপরভজপরক গযাাআজ করন- add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

াঅভযা এাআ পলাগগনগটপরক উাআপরজট গপরপরফও ফযফায কযফ ডগট পরয ডদখফ াঅপরযকগট গজগন মগদ গথপরভ না ডদয়া থাপরক ডজনয থামবপরনাআর াপরাটড গদপরয় গদন- add_theme_support( post-thumbnails )

এফায ওয়াডডপরেপরয কাপরযনট ডাসট কপরয়যী কযায ডকাড াঅয $result ডবগযপরয়ফপরর ডমফ ltdivgt টযাগ ফযফায কযা পরয়পরি তা jQuery Plugin গট একসিাকট কপরয indexhtml ডজগটয ডভাআন সলাাআডায ডকাডগট ডদখন একাআ াঅপরি রধ ডখানকায ltdivgt টযাগ গপররাপরক কগ কপরয এাআ পলাগগপরন ফযফায কযা পরয়পরি এফায টডপরকাড গদন- add_shortcode(np-shortcode np_function)

এাআ টডপরকাড গএাআচগ পাাংনপরক রক কযপরফ এফাং এয ভধয ডথপরক সলাাআডপরায কনপরটনট ডক গযটানড কযপরফ াঅভাপরদয টডপরকাড পরচছ [np-shortcode] াঅভযা পলাগগপরন মাাআ এফাং একগট িগফ মি কগয গপচাযড াআপরভজ গপরপরফ গনপরচ ডদখন-

63

াঅগভ াঅপরযকগট ডজ ততগয কপরযগি ডমখাপরন টডপরকাড গদপরয়গি

াঅউটট ডজ ডদগখ এফায-

64

পরয় ডগর াঅভাপরদয সলাাআডায পলাগগন পরযা ডকাডগট গনপরচ গদরাভ- ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

65

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

66

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

এফায াঅগন মগদ উাআপরজট গপরপরফ ফযফায কযপরত চান তাপরর গনপরচয ডকাডটক গদন- class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

67

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

echo $after_widget

াঅপরযা রগট কাজ কযপরত পরফ াঅনাপরক এক াআপরভজ াাআজ উাআপরজট এয জনয গঠক কপরয গদপরত পরফ- add_image_size(np_widget 180 100 true)

াঅপরযকগট র উাআপরজট এযাকন রক ডমাগ কযা add_action(widgets_init np_widgets_init)

উাআপরজট পরযা ডকাড াঅফায গদরাভ- ltphp

Plugin Name Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Ciprian Turcu

Version 10

68

class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

69

echo $after_widget

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

70

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(widgets_init np_widgets_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

71

পলাগগন গনপরয় এত ডিাট গযপরয ডরখা মভফ নয় এজনযাআ ভপরন য় পলাগগন গনপরয় ডকউ ডরপরখন না কাযন এখাপরন এত গফলয় াঅপরি মা াঅপররাচনা কযপরত ডগপরর ৫০০ ডজ ায পরয় মাপরফ ডফাোয সগফধাপরথড াঅগভ মথামভফ উদাযন গদপরয় ডফাোপরনায ডচষটা কপরযগি াঅগভ এখাপরন টাপরগডট কপরযগি মাযা টকটাক জাপরন পলাগগন মপপরকড এডবানস ডরপরবপররয নয় কাযন তাযা জাপরনন াঅভায উপরেশয গির মাযা জানপরত চায় তাপরদযপরক জানাপরনা এখাপরন ডমফ গফলয় াঅপররাচনা কযা পরয়পরি তা ডভাটাভগট ভাপরনয একগট পলাগগন ফানাপরনায জনয মপরথষট তপরফ ভাপরনাননয়পরনয জনয াঅনাপরক গনপরজাআ খাপরজ গনপরত পরফ াঅনায জনয ডকানটা বার পরফ াঅগভ রধ গদক গনপরদডনা গদরাভ ভাতর এাআ ফাআগট রধভাতর ওয়াডডপরে রেপরয জনয ডরখা াপরনক বর ভরাগনত থাকপরত াপরয াঅনাযা কষভাসনদয দগষটপরত ডদখপরফন াঅগভ ডচষটা কপরযগি মতটা জ কপরয ডরখা মায় াপরনক ভয় ডদখা মায় ডম খফ ডিাট খাপরটা গফলয় গনপরয় াপরনপরকাআ নক কপরযন এটা গতয রাঃখজনক াঅনাযা গগপরর একট খাজপররাআ ভাধান াপরফন াঅপরগ গনপরজ ডচষটা করন তায পরয ানযপরক ভাধাপরনয জনয গজজঞাা করন াঅভায জনয ডদায়া কযপরফন বাপররা রাগপরর জানাপরফন খাযা রাগপররও জানাপরফন তাপররাআ াঅভায গযশরভ সবাথডক পরফ ভতাভত জাগনপরয় াঅভাপরক ডভাআর কযপরত াপরযন litonice09gmailcom |

72

Page 14: Wordpress Plugin Development

15

াধযায়- গতনাঃ রক

ওয়াডডপরে রক( Hook) গক ওয়াডডপরেপর রক ফরপরত াধাযনত add_action() াথফা add_filter() পাাংন ডক ডফাোয় এাআ রগট পাাংনপরক remove_action() াথফা remove_filter() গদপরয় ভপরি ডপরা মায় মগদও াপরনপরকয কাপরি রপরনগি ডম এাআ রগট পাাংপরনয ভপরধয ডকান াথডকয ডনাআ গকনত াঅপরর তা নয় গফযাট াথডকয াঅপরি এ রগট পাাংপরনয ভপরধয াঅগভ ভরত এাআ রগট পাাংন গদপরয়াআ গকি পলাগগন ফাগনপরয় ডদখাফ কাযন খফাআ গরতবিড এাআ রগট পাাংন মপপরকড বাপররাবাপরফ জানা

গপলটায রক (Filter Hooks)

গপলটায রক পাাংপরনয কাজ পরচছ কনপরটনটপরক ভগডপাাআ কযা গপলটায রক গদপরয় টাাআপরটর কনপরটনট াআতযাগদ ভগডপাাআ কযা মায় ডমভন টাাআপরটর এ ডকান টযাগ না থাকা গবগজটয কপরভপরনট ltgt t ag span t ag াআতযাগদ গদপরয় াাআপরটয ডরাঅউপরটয গযফতডন কপরয গদপরত াপরয ভাপরন ডকান কপরভপরনট মগদ এযকভ ht ml ডকাড াড কযা থাপরক তাপরর ডদখপরত খাযা রাগপরফ এগপররা াফশয এখন ওয়াডডপরে াপরটাপরভগটকযাগর কপরয গকনত এাআ কাজগপররা ভরত গপলটায রক গদপরয় কযা পরয় থাপরক গপলটায রক রাআ ধযপরনয add_filter() এফাং remove_filter() পাাংন খফ গরতবনড একগট কথা গপলটায রকপরক গযটানড কযপরত য় ltphp

add_filter($tag $function $priority $accepted_args)

gt

$tag- ডম রকপরক াঅগন ডযগজসটায কযপরত চান $function- ডম পাাংনপরক াঅগন াঅউটপরট গপলটায কপরয ডদখাপরত চান $priority- একগট াআগনটজায াংখযা মা াঅনায গপলটাযপরক িভানাপরয াজাপরফ মগদ ডকান

াংখযা না ডদয়া থাপরক তাপরর এগট ১০ গডপলট গপরপরফ থাপরক $ accepted_args- ডম াংখযক যাযাগভটায একগট পাাংন েি কযপরত াপরয গডপলট গপরপরফ

১ থাপরক াঅনায পাাংপরন ানততাঃ একগট যাযাগভটায থাকপরত পরফ মা গযটানড কযপরফ apply_filter($tag$value)

$tag- গপলটায রপরকয নাভ $value- রপরকয ভধয গদপরয় ডম যাযাগভটায া কযাপরফন

াঅভযা এখন একগট উদাযি ডদখফ ডমখাপরন টাাআপরটর এয েগতটা ওয়াডডপরক ফড় াপরতয াকষপরয রানতয কযফ গনপরচ একগট পলাগগন ডদখন- ltphp

Plugin Name Liton filter

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10

16

Author Md Liton Arefin

Author URI httpliton-onlinecom

add_filter(the_titleliton_modify_title)

function liton_modify_title($content)

return ucwords($content)

gt

পলাগগনগট এগকটপরবট কযায াঅপরগ ডাসট টাাআপরটর ডদখন-

এফায পলাগগনগট এগকটপরবট কযায পরয ডাসট টাাআপরটর ডদখন-

এাআ পলাগগনগট াঅভাপরদয াপরনক ভয়াআ কাপরজ রাগপরত াপরয কাযন াপরনপরকাআ াঅভযা এাআ পযভযাটগট িনদ কগয ঠাৎ কপরযাআ াঅভযা ডাসট টাাআপরটর গরখায ভয় ফড় াপরতয াকষয কযপরত বপরর ডমপরত াগয াঅভযা এাআ কাজগট খফ ডিাট একগট পলাগগন গদপরয় াপরটাপরভগটকবাপরফ কযপরত াগয

17

এখন াঅগভ গকি াগতগযি গফলয় গনপরয় াঅপররাচনা কযফ ডমগপররা ডভপরন চরপরর বগফষযপরতয জনয বার পরফ াঅগভ একগট পাাংন গরপরখগি- add_filter(the_titleliton_modify_title)

function liton_modify_title($content)

return ucwords($content)

একট গফসতাগযত ফরপরর াঅভযা the_title এয ভধয গদপরয় মা া কযফ তা গপলটায কযপরফ এখাপরন াঅভযা ucwords the_title এয ভধয গদপরয় া কপরযগি এফায াঅপরযা টড পভড ডদগখ add_filter(the_title ucwords)

তায ভাপরন পরযা পলাগগনগট পরফ এযকভ- ltphp

Plugin Name Liton filter

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_filter(the_title ucwords)

gt

গক খফ জ রাগপরি এখাপরন ফপরর যাগখ ডম ucwords এগট গযগব কযপরফ the_title মা া কযপরি এফাং াপরটাপরভগটকযাগর গযটানড কযপরফ the_title এ সতযাাং এখাপরন গযটানড এয দযকায ডনাআ এফায াঅগন মগদ গএাআচগ বাডন ৫৩ ফযফায কপরযন তাপরর গনপরচয ভত কপরয anonymous function ফযফায কযপরফন াঅনাযা জাবাগিে ডজকপরয়গয‟য াপরথ গযগচত এগট াপরনকটাাআ এযকভ ltphp

Plugin Name Liton filter

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_filter(the_title function($content)

return ucwords($content)

)

gt

বার কপরয ডদখন ডতা াথডকযটা ডকাথায় গনপরজ গনপরজ কাজ কযপরর এবাপরফ কযপরফন াফশযাআ এগট একট এডবানস ডরপরফপররয কাজ মগদও পলাগগন ফানাপরনায ডকষপরতর এগট এখপরনা াঅদড নয় কাযন াপরনপরকযাআ গএাআচগ বাডন এখপরনা ৪ এাআ ডথপরক ডগপরি সতযাাং এাআ িগতগট একানতাআ গনপরজয জনয

18

এযাকন রক (Action Hooks) Action Hooks পরচছ ড ভসত রক ডমগপররা ওয়াডডপরেপরয রাাআপ াাআপরকর গনপরয় কাজ কপরয Action Hooks রাআ ধযপরনয add_action() remove_action() এাআ রকগপররা কাজ কপরয মখন ডকান ডাসট ডব কযা য় ডাসট াফগর কযা য় কপরভনট কযা য় ডকান বলগ ডাপরসট াথফা ওপরয়ফাাআপরট ডডাযপটায ডজনাপরযট য় এগপররা েগতগট একগট একগট কপরয Actions মখন াআউজায তায এডগভগনপরসটরটয ডভনপরত েপরফ কপরয এগপররা ফাআ Action Hooks এখাপরন াঅভযা কনপরটনটপরক গপলটায কযগিনা াঅভযা ওয়াডডপরেপরয গনগদডষট পাাংনগপররাপরক রক কপরয কাজ কযগি াঅভযা একগট উদাযন ডদগখ- ltphp

Plugin Name Liton Action

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(wp_footer function($content)

echo Hello This is Liton Arefin

)

gt

াঅনাপরদয সগফধাপরথড ডফাোয জনয গনপরচয ভত কপরয গরখন- ltphp

Plugin Name Liton Action

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(wp_footer liton_footer_action)

function liton_footer_action($content)

echo Hello This is Liton Arefin

gt

াঅভযা খফ ডিাট একগট উদাযন গদপরয় ডদখরাভ ডম action রক গকবাপরফ কাজ কপরয গনপরচ ডদগখ াাআপরট ডকভন ডদখায়-

19

উপরযয িগফপরত ডদখন াঅগভ Hello This is Liton Arefin এাআ রাাআনগট গেনট কপরযগি এফাং তা পটাপরযয ফাভ াপর এপরকফাপরয গনপরচ ডদখাপরচছ এফায ডাড ডকাড এ ডদগখ াঅপররাআ এয গজন টা ডকাথায় াঅপরি

উপরয ডদখন পটাপরযয গঠক গনপরচাআ রাাআনগট ডদখাপরচছ এফায াঅপরযকগট ফাসতফ এফাং খফাআ গরতবনড উদাযন ডদগখ এাআ পলাগগনগটয কাজ পরফ মখনাআ ডকান কপরভনট ডাসট পরফ তখনাআ এডগভনপরক ডভাআর াঠাপরফ ডম নতন কপরভনট ডাসট পরয়পরি মগদও ওয়াডডপরে এাআ কাজগট কপরয থাপরক াঅভযা এাআ কাজগট ভযানয়ারী কপরয ডদগখ ltphp

Plugin Name Liton Comments Mail

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(comment_post function()

$email= get_bloginfo(admin_email)

wp_mail(

$email

New Comment Posted

A new comment has been left on your blog

)

)

gt

এখাপরন comment_post নাপরভয রপরক একগট ডবগযপরয়ফর $email ndashএ এডগভন ডভাআরপরক ডসটায কপরযগি মাপরত কপরয ডাাআনাগভক বাপরফ ড ডমপরকান াাআপরটয এডগভন ডভাআরপরক গডপরটকট কযপরত াপরয তপরফ এপরকষপরতর মগদ bloginfo(admin_email) ফযফায কযা ত তাপরর এডগভন ডভাআরপরক গডপরটকট কযত গকনত get_bloginfo(admin_email) ফযফায কযায পপরর াঅভযা াআপরভাআর বযারগটপরক গযটানড কপরয ডসটায কযগি এফাপরয ওয়াডডপরেপরয গফলটাআন ডভাআর পাাংন wp_mail(emailsubjectmessage) এয ভত কপরয গরপরখগি বার কপরয ডদখন পলাগগনগট এগকটপরবট কপরয ডদখন াঅনায াাআট মগদ ানরাাআপরন থাপরক তাপরর গনপরজাআ একগট কপরভনট কপরয ডদখন াঅনায এডগভন ডভাআপরর একগট ডভাআর চপরর ডগপরি

20

াধযায়- চাযাঃ পলাগগন ডকাগডাং সটযানডাডড

পলাগগন এগকটপরবনগডএগকটপরবন পাাংন াঅগন মখন একগট পলাগগনপরক এগকটব কপরযন তখনাআ এগকটপরবন পাাংন গিগায য় এাআ পাাংনপরক register_activation_hook() ফপরর ltphp register_activation_hook($file $function) gt

Parameters

$file- োাআভাগয পলাগগন পাাআপররয াথ

$function- ডম পাাংনগট গিগায পরফ মখন পলাগগন এগকটপরবট য় ডমভনাঃ- ltphp

register_activation_hook(__FILE__ bdquoliton_plugin_install‟)

function liton_plugin_install()

do something cool stuff

gt

াঅভযা একগট পলাগগন ফানাাআ এবাপরফ-

ltphp

Plugin Name Liton Version

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

register_activation_hook(__FILE__ liton_plugin_install)

function liton_plugin_install()

If(version_compare(get_bloginfo(version)51lt))

deactivate_plugins(basename(__FILE__))

deactivate our plugin

gt

মখন াঅভযা পলাগগন গডএগকটপরবট কগয তখন পলাগগন গডএগকটপরবন পাাংন কর য়

21

ltphp

register_deactivation_hook ($file $function) gt

-

ltphp

register_deactivation_hook (__FILE__ bdquoliton_plugin_install‟)

function liton_plugin_install()

do something

gt

াঅপরযকগট গরতবনড গফলয় র াঅনাআনসটর ওয়াডডপরে াঅনাপরক পলাগগন াঅনাআনসটর এয জনয রগট ান গদপরচছ- uninstallphp file and the uninstall hook

uninstallphp

এগট ডভাটাভগট েনপরমাগয িগত এ ডভথড ফযফায কযায জনয াঅনাপরক uninstallphp নাপরভ একগট পাাআর ততগয কযপরত পরফ াঅনায পলাগগন গডপরযকটগযপরত পাাআরগট গনপরচয ভত পরফ- ltphp

মগদ ওয়াডডপরে এগকসট কযায াপরথ াঅনাআনসটর কর কযা না য় If(defined(bdquoWP_UNINSTALL_PLUGIN‟))

exit()

delete_option(bdquoliton_plugin_options‟)

াগতগযি ান এফাং কাসটভ ডটগফর ভপরি ডপরন gt

Uninstall Hook

গিতীয় িগত র Uninstall Hook মগদ াঅগন ডকান পলাগগনপরক গডগরট কযপরত চান এফাং uninstallphp পাাআর না থাপরক তাপরর এাআ রক এগকসগকউট য়(মগদ থাপরক) ltphp

register_uninstall_hook($file$function)

gt

22

ডকাগডাং সটযানডাডড পলাগগন ফানাপরফন গকনত াঅনায ডকাড ডকভন পরফ গচনতা াঅপরত াপরয ওয়াডডপরে াঅনায জনয একগট সটযানডাডড গদপরয় গদপরয়পরি মা াঅনাপরক ওয়াডডপরেপরয জনয পলাগগন গরখপরত ডগপরর পপররা কযপরতাআ পরফ httpcodexwordpressorgWordPress_Coding_Standards

ডফগক একগট উদাযন গদরাভ গনপরচ- ltphp

Short description

Longer more detailed description

param type $varname1 Description

param type $varname2 Description

return type Description

function boj_super_function( $varname1 $varname2 )

do function stuff

gt

গএাআচগ সটানডাডড াঅভযা াপরনপরকাআ গএাআচগয টড পভড(lt gt) ফযফায কগয এটা মপিডরপর ফজডন করন কাযন াপরনক ডাগসটাং ডকামপাগনপরতাআ এটা গডপলট গপরপরফ ফনধ কপরয ডদয়া থাপরক সটযানডাডড টযাগ ফযফায করন(ltphp gt)

এগকউএর ডসটটপরভনট পলাগগন ততগযয ভয় াঅনাপরক াপরনক ভয়াআ ডাটাপরফ ডথপরক াআনপযপরভন গনপরত পরত াপরয াপরনক রাাআপরনয ডকাড গরখপরত পরত াপরয ডপরকষপরতর বার েযাকগট পরচছ এগকউএর এয কভানড গপররা ফড় াপরতয াকষপরয ডরখা ডমভন- SELECT username FROM table1 WHERE status = active

23

াধযায়- াাচাঃ ওয়াডডপরেপরয াপরথ াআগনটপরেন

ডভন এফাং াফ ডভন ততগয করন াঅভযা াপরনক পলাগগপরনাআ ডদগখ ডম একগট ডভন াঅাআপরটভ গপরপরফ াঅভাপরদয ডযাপরফাপরডড ডদখপরত াাআ এফাং ডাআ ডভনপরত গিক কযপরর ডগটাং ডজ াঅপর ডখাপরন পলাগগপরনয মাফতীয় ডগটাং গদপরয় াঅভযা পলাগগন কনগপগায কগয এফায এাআ চভৎকায কাজগট কযফ াঅভযা

ট ডরপরবর ডভন েথভ িগত পরচছ একগট ট ডরপরবর ডভন ততগয কযা ডমগট াঅভযা ডযাপরফাপরডড ডভন গরপরসট একগট নতন াঅাআপরটভ গপরপরফ ডমাগ কযফ ডভন ততগয কযায জনয াঅনাপরক add_menu_page( ) পাাংন ফযফায কযপরত পরফ ltphp

add_menu_page( page_title menu_title capability menu_slug functionicon_url

position )

gt

add_menu_page() পাাংন গনপরচয যাযাগভটাযগপররা াপরাটড কপরয page_title- াঅনায ডপরজয টাাআপরটর গক পরফ lttitlegt tag এয ভপরধয menu_title- ডযাপরফাপরডড াঅনায ডভনয নাভ capability- ফডগনমন capability রাগপরফ একগট ডভন গবউ পরত menu_slug- সলাগ নাভ মা ডভনপরক ডযপায কপরয- তপরফ এগট াআউগনক পরত পরফ function- একগট ডপরজয কনপরটনট ডদখপরত ডম পাাংন কর কযা য় icon_url- একগট কাসটভ াআপরভজ গরঙক ডভন াঅাআকন ডদখাপরনায জনয position- ডভনয গজন াডডায ডমখাপরন এটা ডদখাপরনা পরফ

এফায াঅভযা একগট ফাসতফ উদাযন ডদখফ- ltphp

Plugin Name Liton Menu

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action( admin_menu liton_menu)

function liton_menu()

24

create custom top-level menu

add_menu_page( Liton Menu Page Liton Menu Page manage_options

__FILE__ liton_menu_settings_page plugins_url( imageswp-logopng

__FILE__ ) )

gt

াঅভযা একগট ট ডরপরবর ডভন ততগয কযরাভ ডদখন ডযাপরফাপরডড ডকভন ডদখায়-

Liton Menu Page নাপরভ একগট ডভন ততগয পরয় ডগপরি এফাপরয াঅভযা াফপরভন কযফ ভাপরন Liton Menu Page এয গনপরচ গকি ডগটাং ডভন(মগদ েপরয়াজন য়) াফ ডভন ডযগজসটায কযায জনয add_submenu_page( ) পাাংন ফযফায কযা য় ltphp

add_submenu_page( parent_slug page_title menu_title capabilitymenu_slug

function )

gt

parent_slug- ডভন সলাগ মা াঅভযা াঅপরগ গডপাাআন কপরযগি menu_slug- মা ডভনপরক াফপরভনপরত ডযপায কযপরফ ফাগক পাাংনগপররা াঅপরগয ভতাআ

এফায াফপরভনয জনয গকি াগতগযি ডকাড ডমাগ কগয create submenu items

add_submenu_page( __FILE__ About My Plugin About manage_options

__FILE___about liton_menu_about_page )

add_submenu_page( __FILE__ Help with My Plugin Help

manage_options

__FILE___help liton_menu_help_page )

add_submenu_page( __FILE__ Uninstall My Plugin Uninstall

manage_options

__FILE___uninstall liton_menu_uninstall_page )

25

পরযা ডকাডগট পরফ এযকভ- ltphp

Plugin Name Liton Menu

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action( admin_menu liton_menu

)

function liton_menu()

create custom top-level menu

add_menu_page( Liton Menu Settings Page Liton Menu Page

manage_options __FILE__

liton_menu_settings_page

plugins_url( imageswp-logopng __FILE__ ) )

create submenu items

add_submenu_page( __FILE__ About My Plugin About manage_options

__FILE___about liton_menu_about_page )

add_submenu_page( __FILE__ Help with My Plugin Help

manage_options

__FILE___help liton_menu_help_page )

add_submenu_page( __FILE__ Uninstall My Plugin Uninstall

manage_options

__FILE___uninstall liton_menu_uninstall_page )

gt

গনপরচ ডদখন াফপরভনগপররা ততগয পরয় ডগপরি-

26

ডভনপরক াঅপরগয ডভনয াপরথ মি কযা এফায াঅগ গিতীয় িগতপরত মগদ াঅনায পলাগগপরনয একগট ভাতর ডজ থাপরক একগট ভাতর ডপরজাআ াঅনায কর ডগটাং পরয় মায় তাপরর এাআ িগত েন করন ডমভন ডয়াগযাং াাআটগপররায জনয রধ াঅনায াঅাআগডপযানপরপরজয াঅাআগড দযকায য় এযকভ পলাগগন এধযপরনয পলাগগপরনয জনয াঅনায াগতগযি ডভন ততগয কযায দযকায ডনাআ ফযাং এপরত কপরয াআউজায গফযি ডফাধ কযপরত াপরযন এ ধযপরনয পলাগগনগপররা ডগটাং এয াফপরভন গপরপরফ থাপরক add_options_page() এাআ পাাংন গদপরয় এফ ডভন ডযগজসটায কযা য় ltphp

add_options_page( page_title menu_title capability

menu_slug function)

gt

এফায চরন এযকভ একগট ডভন ততগয কগয- ltphp

Plugin Name Liton Sub Menu

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action( admin_menu liton_submenu)

function liton_submenu()

create a submenu under Settings

add_options_page( Liton Menu Settings Page Liton Menu Page

manage_options __FILE__

liton_menu_settings_page)

27

gt

াফপরভন ততগয পরয় ডগপরি চরন ডদগখ ডযাপরফাপরডড ডকভন ডদখায়-

এপরকফাপরয গনপরচয গদপরক ডদখন Liton Menu Page নাপরভ একগট ডভন ততগয পরয়পরি

উাআপরজট ততগয কযা উাআপরজট ততগয কযায জনয ওয়াডডপরে WP-Widget িা গদপরয় ততগয কযা য় উাআপরজট এয একগট পযভযাট ডদখন গনপরচ ltphp

class My_Widget extends WP_Widget

function My_Widget()

processes the widget

function form($instance)

displays the widget form in the admin dashboard

function update($new_instance $old_instance)

process widget options to save

function widget($args $instance)

displays the widget

gt

28

উাআপরজট ডযগজসটায কযায জনয widget_init() পাাংনপরক রক কযা য় চরন একগট উাআপরজট ততগয কগয- ltphp

Plugin Name Liton Widget

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

class Messager extends WP_Widget

function __construct()

$params=array(

description =gtDisplay message to readers

name =gt Message

)

parent__construct(Messager $params)

public function form()

public function widget()

add_action(widgets_initliton_register_message)

function liton_register_message()

register_widget(Messager)

gt

29

খফ াধাযন একগট উাআপরজট পলাগগন এগট াঅভযা াআউজাযপরদযপরক একগট ডভপরজ ডদখাপরফা াাআডফাপরয ডটাাআ কযায ডচষটা কযগি এখন পলাগগনগট এগকটপরবট কপরয ডদগখ-

াঅভাপরদয উাআপরজটগট ডদখাপরচছ এফায াঅপরযা গকি পাাংনার কাজ কগয এগট মগদ াাআডফাপরয ডরাগ কপরয ডদন তাপরর ডকান কাজ কযপরফ না কাযন াঅভযা এখপরনা গকিাআ কগযগন পভড পাাংপরন গকি কাজ কগয মা উাআপরজট টাাআপরটর গপরপরফ ডদখাপরফ- public function form($instance)

extract($instance)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title)gtgtTitle ltlabelgt

ltinput

class=widefat

id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt

value=ltphp if(isset($title)) echo esc_attr($title) gt gt

ltpgt

ltphp

াঅভযা উপরয class=widefat ফযফায কপরযগি এাআ িা ফযফায কযায কাযপরন পভড এয াআনট গপলডগট াপরনক সনদয পরয়পরি

30

মগদ এাআ িা ফযফায না কগয তাপরর ডকভন ডদখাপরফ গনপরচ ডদখন-

াঅভাপরদয উাআপরজট পলাগগনগটয ডকাড গনপরচ ডদওয়া র ltphp

Plugin Name Liton Widget

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

class Messager extends WP_Widget

function __construct()

$params=array(

description =gtDisplay message to readers

name =gt Message

)

parent__construct(Messager$params)

31

public function form($instance)

extract($instance)

print_r($instance)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title)gtgtTitle ltlabelgt

ltinput

class=widefat

id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt

value=ltphp if(isset($title)) echo esc_attr($title) gt gt

ltpgt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(description)gtgtDescription

ltlabelgt

lttextarea

class=widefat

rows=10

id=ltphp echo $this-gtget_field_id(description) gt

name=ltphp echo $this-gtget_field_name(description) gtgtltphp

if(isset($description)) echo esc_attr($description) gtlttextareagt

ltpgt

ltphp

public function widget($args$instance)

extract($args)

extract($instance)

echo $before_widget

echo $before_title$title$after_title

echo ltpgt$descriptionltpgt

echo $after_widget

add_action(widgets_initliton_register_message)

function liton_register_message()

32

register_widget(Messager)

gt

এফায াঅভযা ডযাপরফাডড ডথপরক একগট ডভপরজ ডদফ গবগজটযপরদযপরক-

াঅভযা এাআ উাআপরজটগট ডাাআনাগভক বাপরফ কপরযগি কাযন এখাপরন lth2gt lth3gt lth4gt এ ধযপরনয ডকান টযাগ াঅভযা ফযফায কগযগন াঅভযা গথভ ডডপরবর কযগিনা সতযাাং এ কাজগট াঅভাপরদয ানযবাপরফ কযা দযকায গির এগট গথভ ডডপরবরায ডদগখপরয় ডদপরফন ডম ডকভন টযাগ পরফ াাআডফাপরয াাআপরটয াাআডফাপরয ডকভন ডদখায় তা ডদখন- াঅভযা রগট গথপরভ এগট ডটসট কপরয ডদখফ েথভগট টপরয়গনট াআপররপরবন

33

এফায াঅপরযকগট গথপরভ ডদগখ-

34

াধযায়- িয়াঃ পলাগগন পাাংন

গকি ডফগক পাাংন __() পাাংন

__() পাাংনগট গএাআচগপরত াঅনায ডটকসটপরক ডযগড কপরয িানসপররন এফাং গযটানড কপরয উদাযন গপরপরফ াঅগন একগট বযারপরক __() পাাংপরনয ভপরধয ডবগযপরয়ফর গদপরয় assign করন ভপরন যাখপরফন এাআ পাাংনগট রগট াঅনডাযপরিায(_) গদপরয় গগঠত একগট নয় ltphp

$text=__(bdquoWordpress is a wonderful publishing platform‟‟liton_plugin‟)

gt

_e() পাাংন _e() পাাংনগট াঅনায ডটকসবপরট ডরাকারাাআজ কপরয এটা গএাআচগপরত echo এয ভত কাজ কপরয ডকান ডটকসটপরক গিপরন ডদখাপরনায জনয এফায একট ভজা কগয মা রপরক ডদপরখগি াঅপরগাআ- _e() পাাংনগট গদপরয় াঅপরগয পলাগগনগট এগডট কযফ ltphp

Plugin Name Liton Action

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(wp_footer liton_footer_action)

function liton_footer_action()

Output the translated text

_e( This site runs off the coolest platform ever ampmdash

WordPress

liton-plugin )

gt

35

এফায াঅউটট ডদগখ

esc_attr__() পাাংন এাআ পাাংনগট esc_attr() এয ভত এগট এাআচগটএভএর এগিগফউটপরক escape কপরয াঅভযা এফায esc_attr__() এফাং __() এাআ রগট পাাংনপরক একগট কপরয পলাগগন ততগয কযফ ltphp

Plugin Name Liton Esc Attr

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

A function that returns a link to the sites terms of service

page

function liton_terms_of_service_link()

return lta href=httpliton-onlinecomtos title=

esc_attr__( Visit the Terms of Service page boj-plugin ) gt __( Terms of

Service liton-plugin ) ltagt

Display the output of the liton_terms_of_service_link()

function

echo liton_terms_of_service_link()

gt

পলাগগনগটয াঅউটট ডদখন-

36

এযকভ াঅপরযা গকি পাাংন াঅপরি ডমগপররা াঅনাযা ডদপরখ ডনপরফন াআনটাযপরনট ডঘপরট

esc_html__() Function

esc_attr() Function

esc_url() Function

esc_js() Function

esc_html() Function

esc_attr_e() Function

esc_html_e() Function

_x() Function

_ex() Function

esc_attr_x() Function

esc_html_x() Function

_n() Function

_nx() Function

_n_noop() Function

_nx_noop() Function

Translation

bull Poedit httppoeditnet

bull GlotPress httpglotpressorg

bull Launchpad httpstranslationslaunchpadnet

bull Pootle httppootlelocamotionorg

bull KBabel httpi18nkdeorg

bull GNU Gettext httpgnuorgsoftwaregettext

GlotPress এখন ওপরয়ফ ডফড টর গপরপরফ ফযফায কযা পরচছ ওয়াডডে েপরজপরকটয ডিপরন একজন াথফা গটপরভয জনয িানসপররগটাং পটওয়যায গপরপরফ

37

াধযায়- াতাঃ পলাগগন গগকউগযগট

গগকউগযগট কগমপউটাপরযয বালায় ldquoগগকউগযগটrdquo ভাপরন বীগতকয একগট বদ ডমভন Cross Site

Scripting(XSS) Cross Site Request Forgery(CSRF) SQL Injection Privilege

Escalation Vulnerabilities এফাং Holes রফডর ডকাড একগট াবডাপরযয সযকষায জনয রভকীয কাযন পরত াপরয

পলাগগপরনয গগকউগযগট গক াঅনায পলাগগনগট ডমন গগকউয য় vulnerabilities data integrity এফাং reliability ডথপরক

াঅনায পলাগগনপরক গক গগকউগযগট ডদপরফন ওয়াডডপরে এনবায়যনপরভপরনট াঅনায পলাগগনপরক গগকউগযগট ডদয়া খফ কগঠন কাজ নয় এফাং খফ ভয় াপরকষ গফলয়ও নয় ওয়াডডপরেপরয গনজসব গকি পাাংন এপরকষপরতর াঅনাপরক খফাআ াাময কযপরফ

াআউজায াযগভন াঅভযা াপরনক পলাগগন াআনসটর কযায পরযাআ ডদপরখগি ডম মখনাআ এডগভন যাপরনর এ েপরফ কযপরত মাাআ তখন একগট এযয ডভপরজ াঅপর ডভপরজগট গনপরচয ভত-

ডরখা াঅপরি- You do not have sufficient permissionshellip এটা গনশচয়তা ডদয় ডম ডমপরকান এযাকন ীভাফি থাপরক গনগদডষট গকি যাাআট গদপরয় ওয়াডডপরেপরয একগট কভন পাাংন র current_user_can() একগট উদাযন ডদাআ-

38

ltphp

Capability

if ( current_user_can(install_plugins) )

wp_die( Insufficient permissions )

Role

if( current_user_can(editor) )

wp_die( You cannot edit this setting )

gt

খফ তাড়াতাগড় াঅগন এাআ current_user_can() পাাংন ডচক কযপরফন না কাযন এটা গনবডয কযপরফ get_currentuserinfo() এাআ পাাংপরনয উপরয াঅয এয ফযফাপরয ীভাফিতা াঅপরি এটা একগট পলাপরগফর পাাংন(pluggable function) াঅয এয ডরাপরকন পরচছ wp-

includespluggablephp মা পলাগগন এগকটব ফায য ডরাড য়

Nonces

ডকউ এগটপরক াঅফায Nonsense( গনপরফডাধ) বাফপরফন নাএগট ওয়াডডপরেপরয বালায় Nonces কগমপউটাপরযয বালায় nonce ফা cryptographic nonce পরচছ ldquonumber used once rdquo এটা ডিাট এফাং সপষট গকি য যানডভ গসটরাং ডমভন- াওয়াডড মা গকি গনপরদড কপরয Nonce গপরডন গপলড পভডপরক Retrieve ফা display কপরয-

একজন ওয়াডডপরে াআউজায ডমপরকান একগট এযাকন (delete update save and such) একগট াফপরজকট(একগট ডাসট পলাগগন ডগটাং াআতযাগদ) ২৪ ঘনটায একগট ভয় ডিভ

ডমভন ডাসট 50 গডগরট কযপরফন াঅনায ওয়াডডপরে বলগ ডথপরক তাপরর াঅনায গরঙকগট পরফ এযকভ- httpexamplecomwp-admin

postphppost=43ampaction=trashamp_wpnonce=83a08fcbc2

এখাপরন 83a08fcbc2 এগট র nonce মা ২৪ ঘনটা সথায়ী থাপরক রধভাতর এগট মগদ াঅনায িাযা ফযফরত য় এফাং গডগরট য় ডাসট 50 মখন াঅগন গরপরঙক গিক কপরযন ফপরচপরয় গযতবনড র ডম Nonce ডকান malicious াআউজায ফেপরত াপরযনা এফাং গঠক গরঙক িাড়া nonce এযয ডপরজ চপরর মায় ডমখাপরন াযগভন থাপরক না াঅপরযা গফসতাগযত ডদখন httpcodexwordpressorgWordPress_Nonces

39

Nonce URL ততগয এফায চরন াঅপরগয উদাযন ডথপরক Nonce URL ততগয কগয একগট ডাসট গডগরট কযায জনয wp_nonce_url() পাাংন ফযফায কযা য় ltphp

$url = wp_nonce_url( $url $action )

gt

েথভ যাযাগভটায $url পরচছ গসটরাং URL এপরডর এয মাপরক াঅগন কপরয়যী গসটরাং এয Nonce কযপরত চান াফযফহরত পলাগগপরনয গডগরট গরঙক এযকভ থাপরক- httpexamplecomwp-admineditphppage= liton

_utagsampliton_action=deleteampid=6

এখাপরন ডদখন যাযাগভটায liton_action এফাং এয টযাগ াঅাআগড গিতীয় যাযাগভটায পরচছ $action একগট গসটরাং মা াঅগন একগট াফপরজকট এয জনয একগট action ততগয কযপরফন উপরয ডদখরাভ delete এযাকন এয টযাগ াঅাআগড 6 সতযাাং $action যাযাগভটায পরত াপরয bdquoliton_utags-delete_tag6‟ গনপরচ ফাসতফ উদাযন ডদগখ- ltphp

$delete_url = add_query_arg(array( liton _action=gtdeleteid=gt$id) )

$nonced_url = wp_nonce_url( $delete_url bdquoliton _utags-delete_tag$id )

gt

lta href=ltphp echo $nonced_url gtgtdeleteltagt

এাআ টযাগগট পরফ গডগরট গরঙক এখাপরন add_query_arg() পাাংন ফযফায কযা পরয়পরি মা কাপরযনট URL ডক এযাপরয যাযাগভটায এয ভপরধয যাপরখ ানযবাপরফ ফরপরর এগট ডমাগ কপরয এযকভাঃ liton_action=deleteampid=6 amp liton_action=deleteampid=6

Nonce Form ততগয Nonce পভডপরকও ডোপরটকট কপরয wp_nonce_field() পাাংপরনয ভাধযপরভ ltphp

wp_nonce_field( $action $name $referer $echo ) gt

$action ( string) (optional) - action নাভ াআউগনক identifier optional

গকনত recommended $name (string) (optional) ndash গপরডন গপলড পভড ডবগযপরয়ফর নাভ $referer (boolean) (optional) ndash গডপলট গপরপরফ true থাপরক ডমখাপরন গপলড

ডবগরপরডন এয দযকায য়

40

$echo (boolean) (optional) - গডপলট গপরপরফ true থাপরক ডমখাপরন াঅউটট ডদখাপরনায ফা গপরডন পভড গপলড গযটানড কযায জনয দযকায য়

পপরভড াঅনায action এয নাভ গদন ltform method=postgt

lt-- some inputs here --gt

ltphp wp_nonce_field(name_of_my_actionname_of_nonce_field) gt

ltformgt

াঅভযা একগট পলাগগন ফানাপরফা ডমখাপরন াফযফরত টযাগগপররাপরক াঅভযা ভযানয়াগর গডগরট ফা গযপরনভ কযপরত াযফ এগট একট ফড় গকনত াপরনক গফলয়াআ াঅপরগাআ াঅপররাচনা কযা পরয়পরি ডদখপররাআ ফেপরত াযপরফন একগট ফাসতফধভডী উদাযন গনপরচ গদরাভ- ltphp

Plugin Name Liton Unused Tags

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add an entry for our option page to the Posts menu

add_action(admin_menu liton_utags_add_page)

function liton_utags_add_page()

add_posts_page( Unused Tags Unused Tagsmanage_optionsliton_utags

liton_utags_option_page )

Catch any liton_action parameter in query string

add_action( admin_init liton_utags_do_action )

Proceed to requested liton_action if applicable

function liton_utags_do_action()

if( isset( $_REQUEST[liton_action] ) )

return

if( current_user_can( manage_options ) )

wp_die( Insufficient privileges )

41

$id = $_REQUEST[id]

$action = $_REQUEST[liton_action]

if( $action == done )

add_action( admin_notices liton_utags_message )

return

check_admin_referer( liton_utags-$action_tag$id )

switch( $action )

case rename

$newtag = array( name =gt $_POST[name] slug =gt

$_POST[name] )

wp_update_term( $id post_tag $newtag )

break

case delete

wp_delete_term( $id post_tag )

break

wp_redirect( add_query_arg( array( liton_action =gt done )

) )

Admin notice

function liton_utags_message()

echo ltdiv class=updatedgtltpgtAction

completedltpgtltdivgt

Draw the tag management page

function liton_utags_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtUnused Tagslth2gt

ltphp

if( $tags = liton_utags_find_orphans() )

echo ltpgtYou currently have count( $tags ) unused

tagsltpgt

echo ltolgt

foreach( $tags as $tag )

42

$id = $tag-gtterm_id

$name = esc_attr( $tag-gtname )

$delete_url= add_query_arg(

array(liton_action=gtdeleteid=gt$id) )

$nonced_url= wp_nonce_url( $delete_url

liton_utags-delete_tag$id )

gt

ltligt

ltform action= method=postgt

ltphp wp_nonce_field( liton_utags-rename_tag$id )

gt

ltinput type=hidden name=liton_action

value=rename gt

ltinput type=hidden name=id value=ltphp echo

$id gt gt

ltinput type=text name=name value=ltphp echo

$name gt gt

ltinput type=submit value=Rename gt or

lta href=ltphp echo $nonced_url gtgtdeleteltagt

this tag

ltformgt

ltligt

ltphp

else gt

ltpgtYou have no unused tagsltpgt

ltphp endif gt

ltolgt

ltdivgt

ltphp

Find unused tags return them in an array

function liton_utags_find_orphans()

global $wpdb

$sql = SELECT termsterm_id termsname FROM

$wpdb-gtterms terms

INNER JOIN $wpdb-gtterm_taxonomy taxo

ON termsterm_id=taxoterm_id

WHERE taxotaxonomy = post_tag

43

AND taxocount=0

return $wpdb-gtget_results( $sql )

gt

ডযাপরফাপরডড এাআ পলাগগপরনয ডভন াওয়া মাপরফ ডাসট এয াফপরভন গপরপরফ গনপরচ ডদখন-

এফায পলাগগন ডভনপরত গিক কপরয ডদগখ পলাগগপরনয ডবতপরযয কাজ-

উপরয ডদখন াঅগভ একগট টযাগ ততগয কপরযগিরাভ l i নাপরভ এগট এখাপরন ডদখাপরচছ াঅগভ চাাআপরর এগট এগডট ফা গডগরট কযপরত াগয এফায গডগরট গরঙক এ ভাউপরয কাডয ডযপরখ গনপরচ গরঙক ডদখন ফা গডগরট করন একগট টযাগ াঅভায এখাপরন URL গট এযকভ httplocalhostdev-litonwp-

admineditphppage=liton_utagsampliton_action=doneampid=4amp_wpnonce=30a44b7

986

এখাপরন াঅগভ liton_action=done ফযফায কপরযগি Nonces এয পাাংনগপররায নাভ গনপরচ গদরাভ াঅনাযা ডদপরখ গনপরফন াআনটাযপরনট ডথপরক wp_nonce_field()

wp_nonce_url()

wp_verify_nonce()

wp_create_nonce()

44

check_admin_referer()

check_ajax_referer()

ডাটাপরফ াঅনাযা ডমপরত গএাআচগ গনপরয় কাজ কপরযন এগকউএর ডাটাপরফ এয াপরথ ফাাআ কভপরফী গযগচত এয গনটযাকস গপররা ডভাটাভগট ফায জানা একাআ বাপরফ াপরনপরকাআ ওয়াডডপরেপরও ডাটাপরফ ডকাড গরপরখন এটা ডকাগডাং এয জনয খাযা গদক াঅগভ নযভার গএাআচগ- এগকউএর ডকাড এয উদাযন গদগচছ- ltphp

$sql=rdquoINSERT INTO $wpdb-gtposts(post_title) VALUES(bdquo$title‟)rdquo

$wpdb-gtquery($sql) gt

এফায ওয়াডডপরেপরয সটযানডাডড ডকাগডাং গপরসটভ ডদখন- ltphp

$wpdb-gtinsert($wpdb-gtposts

array(bdquopost_title‟ =gt $title)

array(bdquos‟)

)

gt

ডাটাপরফ গগকউয কযায জনয াঅপরডট াাপরযন ডদখাফ- গনপরচয ডকাডগট খাযা েযাকগট ltphp

$wpdb-gtquery(ldquoUPDATE $wpdb-gtposts SET post_title=‟$newTitle‟ WHERE

ID=$my_idrdquo )

gt

উপরযয ভত কপরয না গরপরখ গনপরচয ভত কপরয গরখন- ltphp

$wpdb-gtupdate($wpdb-gtposts

Array(bdquopost_title‟ =gt‟$newTitle‟)

Array(bdquoID‟ =gt$my_id

)

gt

ানর বাপরফ ানযানয াাপরযন গপররা গরখপরফন

45

াধযায়- াঅটাঃ ডরাকারাাআপরজন এফাং Set t i ngs API

ডরাকারাাআপরজন ডরাকারাাআপরজন একগট গরতবনড গফলয় এয পাাংনগপররা র- load_theme_textdomain()

load_plugin_textdomain()

উদাযন- ltphp $var=__(bdquoHello‟‟domain‟) gt

ltphp _e(bdquoHello‟‟domain‟) gt

গফসতাগযত গনপরচয গরপরঙক ডদখন- httpcodexwordpressorgI18n_for_WordPress_Developers

ডগটাং API

ডগটাং API পরচছ াঅগন গকি ান ততগয কযপরফন মা াআনটাযনার বাপরফ াঅনায পলাগগপরন এপলাাআ পরফ মখন াঅগন াআউজায- গডপাাআন ান ততগয কযপরফন াঅনায পলাগগপরনয জনয তখন Settings

API ndashএ াঅনায ডকাড মতটা ারন জ করন Settings API াঅনায ডম কাজগপররা handle কপরয-

ওয়াডডপরেপরক জাগনপরয় ডদয় ডম াঅগন গনজসব ান ফযফায কযপরফন াঅনায াআনটপরক পাাংপরনয ভপরধয উপরেখ কযপরফ ডফগয বাগ ান ডজ গনপরজাআ ততগয কযপরফ $_POST ডাটা গপররাপরক ভগনটয কপরয ান ততগয এফাং াঅপরডট কপরয(মগদ েপরয়াজন য়)

Settings API পাাংন Settings API পাাংপরন গতনগট ডসট থাপরক- ১ েথপরভ ওয়াডডপরেপরক ফপরর ডম াঅগন নতন ডগটাং ফযফায কযপরফন াঅনায পলাগগপরনয জনয ২ এয পরয ডগটাং গডপাাআন করন (text areas input boxes and any

HTML form element) এফাং এপরদযপরক একাপরথ রে কপরয যাপরখ ৩ ওয়াডডপরেপরক াঅনায ডগটাং actual form এ ডদখাপরনায জনয ফপরর

46

এফায াঅভযা একগট পলাগগন ফানাপরফা Administration Page ndashএ ডযপাপরযনস গপরপরফ ডদখপরত াপরযন- httpcodexwordpressorgAdding_Administration_Menus

httpcodexwordpressorgFunction_Referenceadd_options_page

httpcodexwordpressorgAction_ReferenceActions_Run_During_an_Admin_P

age_Request

পলাগগপরনয এডগভন ডজ পরফ এযকভ- httpexamplecomwp-adminoptions-generalphppage=liton_myplugin

েথপরভ াঅভযা ডভন ততগয কযফ াঅপরগয ভত কপরয- Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

এফায ান ডজ এ পভড গনপরয় গকি ডগটাং ডদফ function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

উপরযয ডকাপরড াঅভযা একগট পপরভডয ভপরধয রধ াফগভট ফাটন এফাং My Plugin নাপরভ ডজ ততগয কপরযগি ডযাপরফাপরডড ডদখন-

47

ডগটাং এয াফ ডভন গপরপরফ My Plugin াঅপরি এফাং My Plugin ডত গিক কযপরর াঅভযা উপরযয ডজ ততগয কপরযগি ডমখাপরন াফগভট ফাটনগট ডদখাপরচছ এফায গতনগট যাযাগভটায ডযগজসটায কযফ- ltphp

register_setting( liton _myplugin_options liton _myplugin_options liton

_myplugin_validate_options)

gt

েথভগট ডগটাং রেপরয নাভ গিতীয়গট ান নাভ মা াঅভযা get_option() পাাংন গদপরয়ও ডপরত াগয ততীয়গট করফযাক পাাংন এগট একগট গসটরাং ডযপাপরযনস পাাংন এখাপরন াঅভযা নাভ

48

গদপরয়গি liton _myplugin_validate_options মা া কযপরফ পপরভডয কর ডব ডগটাং াঅভযা এটা পরয গডপাাআন কযফ

ডগটাং গডপাাআন ডকন add_settings_field() এফাং add_settings_section() পাাংন গদপরয় াঅভযা াঅভাপরদয কর ডগটাং গডপাাআন কযফ ltphp

add_settings_section( liton_myplugin_main My Plugin Settings

liton_myplugin_section_text liton _myplugin)

add_settings_field( liton _myplugin_text_string Enter text here

liton _myplugin_setting_input liton _myplugin liton _myplugin_main)

gt

add_settings_section() পাাংন গদপরয় াঅভযা ডদখাফ াঅপরর ডজ এ ডকন ডকভন ডদখাপরফ এয চাযগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ ডকন টাাআপরটর ltH3gt টযাপরগয ভপরধয করফযাক পাাংন এয নাভ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ (page= liton _myplugin এগট

URL এয াাং গপরপরফ থাকপরফ) গিতীয় যাযাগভটায add_settings_field() পপরভডয াআনট গপরপরফ ডদখাপরনা পরয়পরি এখাপরন াাচগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ পরযয গপপরলড গক গেনট কযা পরফ তা ডটকসট গপরপরফ ডদখাপরনা পরয়পরি(Enter text

here)

করফযাক পাাংন পপরভড গেনট কযপরফ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ ডগটাং ডপরজয ডকন গপলড মা add_settings_section() পাাংপরন গডপাাআন

কযা পরয়পরি ltphp

Explanations about this section

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

49

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton _myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name= liton _myplugin_options[text_string]

type=text value=$options[text_string] gt

gt

গিতীয় পাাংন ান বযার text_string ডক এযাপরযপরত ডসটায কপরয ডযপরখপরি এফায াআউজায াআনট বযাগরপরডট কযফ- ltphp

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace([^a-zA-Z]$input[text_string] )

return $valid

gt

পভডপরক ডযনডায কযফ- ltphp

Draw the options page

function liton_myplugin_options_page()

gt

ltdiv class=wrapgt

ltphp

screen_icon()

gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp

settings_fields( liton_myplugin_options)

do_settings_sections(liton_myplugin)

50

gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

settings_fields() পাাংনগট ডযপাপরযনস গপরপরফ ফযফায কযা পরয়পরি মা াঅভযা register_setting() পাাংপরন গডপরিয়ায কপরযগি do_settings_sections() পাাংনগট কর কযপরফ কর াঅউটট ডকন এফাং পভড গপলডপরক মা াঅভযা পরফড গডপাাআন কপরযগি াঅভাপরদয কাজ ডল এফায পরযা পলাগগনগট ডদখফ- ltphp

Plugin Name Settings API example

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

Draw the option page

function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save

Changes gt

ltformgtltdivgt

ltphp

51

Register and define the settings

add_action(admin_init liton_myplugin_admin_init)

function liton_myplugin_admin_init()

register_setting( liton_myplugin_options

liton_myplugin_options

liton_myplugin_validate_options )

add_settings_section( liton_myplugin_main My Plugin

Settings

liton_myplugin_section_text liton_myplugin )

add_settings_field( liton_myplugin_text_string Enter text

here

liton_myplugin_setting_input liton_myplugin

liton_myplugin_main )

Draw the section header

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton_myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name=liton_myplugin_options[text_string]

type=text value=$text_string gt

Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

return $valid

gt

52

ডদখন ডযাপরফাপরডড ডকভন ডদখায়-

পরয় ডগর াঅভাপরদয েথভ নডাাংগ পলাগগন ান ডজ াঅপরযকগট গজগন ডমটায জনয এতগকি পলাগগন URL এপরডর- httplocalhostdev-litonwp-adminoptions-

generalphppage=liton_mypluginampsettings-updated=true

াঅভায এখাপরন এযকভ ডদখাপরচছ ডটকসট ফপরকস ডকান গকি গরপরখ ডব কযায য এফাপরয াঅপরযকগট গজগন ডদখফ াঅভযা াপরনক ভয়াআ াপরনক পলাগগপরনয াআনট গপপরলড বর ডাটা াআনট কযপরর এযয ডভপরজ ডদখায় এাআ কাজগট কযফ এফায াঅভযা এখাপরন esc_attr() ফা esc_html() ফযফায কগযগন সতযাাং াঅভাপরদয গরগভপরটন থাকপরি ডবগরপরডট পাাংনগট একট এগডট কগয গনপরচয ভত কপরয Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

if( $valid[text_string] = $input[text_string] )

add_settings_error(liton_myplugin_text_stringliton_myplugin_texterror

53

Incorrect value enterederror)

return $valid

উপরয ডদখন add_settings_error() পাাংন ফযফায কপরযগি মা এযয ডচক কযপরফ পপরভডয াঅগভ একগট বর ডাটা(পরসপার কযাপরযকটায) াআনট কপরয ডদখরাভ এযয ডদখাপরচছ-

তায ভাপরন াঅভযা পর পরয়গি াঅনায পলাগগনগট এগডট কপরয ডনপরফন ডকায ডকন এফাং গপপরলডয গরসট গদরাভ াঅনাপরদয সগফধায জনয

54

CSSJS পাাআর মি কযা

াঅনায পলাগগপরন গএএ ফা জাবাগিে ডমাগ কযপরত পরত াপরয াঅগন চাাআপরর ফাগপরযয ডকান ফা াঅনায ততগয ডকান গএএ ফা জাবাগিে পাাআর ডমাগ কযপরত াপরযন তপরফ এপরকষপরতর াঅভযা ডমবাপরফ HTML এ পাাআর ডমাগ কগয ডযকভ না function liton_scripts()

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtojqueryjsrdquogtltscriptgt‟

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtoscriptjsrdquogtltscriptgt‟

add_action(bdquowp_head‟‟liton_scripts‟)

এগট মপনডরপর বর িগত গনপরচ ডদখন ওয়াডডপরেপর গকবাপরফ পাাআর মি কযপরত য়- function liton_scripts()

wp_enqueue_script(bdquojquery‟)

wp_enqueue_script(bdquotheme-scripts‟‟pathtoscriptsjs‟)

add_action(bdquowp_enqueue_script‟‟liton_scripts‟)

ানর বাপরফ াঅগন সটাাআরীট ডমাগ কযপরত াপরযন- function liton_styles()

wp_enqueue_ style (bdquocss‟)

wp_enqueue_ style (bdquotheme- styles‟pathto stylescss‟)

ডযপাপরযনস ডদখন- httpcodexwordpressorgFunction_Referencewp_enqueue_script

httpcodexwordpressorgFunction_Referencewp_enqueue_style

টডপরকাড টডপরকাড পরচছ ওয়াডডপরেপরয ডসপগগপক ডসপার টযাগ মা াঅগন ডাসট ফা ডপরজয ভপরধয াআনাটড কপরয ানয ডকান কনপরটনটপরক ওপরয়ফাাআপরটয ভপরধয গযপরপল কযপরত াযপরফন মগদ াঅগন গযারাগয টাাআপরয ডকান পলাগগন ফযফায কপরয থাপরকন তাপরর াঅনায ধাযনা থাকায কথা মাাআ ডাক াঅগভ কপরয়কগট উদাযি ডদখাফ

55

েথপরভ একগট পলাগগন ততগয কযফ ডমখাপরন add_shortcode() নাপরভয একগট পাাংন থাকপরফ এগট রগট যাযাগভটায েন কপরয েথভগট টডপরকাপরডয নাভ গিতীয়গট ডম পাাংনপরক কর কযপরফন ডগট াঅভযা একগট উদাযন ডদগখ- ltphp

Plugin Name Liton Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(litonhi)

function hi()

echo Hello World

gt

উপরয ডদখন খফ ডিাট গকনত াঅগন চাাআপরর এয ফযফায াপরনক গফসতত কযপরত াপরযন এখাপরন টডপরকাড নাভ পরচছ liton াঅয এগটপরক ডরখা য় এবাপরফ [liton] াঅভযা ডাপরসটয ভপরধয াআনাটড কপরয ডদগখ াঅউটট ডকভন ডদখায়-

এফায াঅউটট ডদগখ-

56

াঅভাপরদয ততগয কযা টডপরকাড পরবাপরফাআ কাজ কযপরি াঅপরযকগট উদাযন ডদখফ াঅনাযা াপরনপরকাআ গগর এডপরনস গনপরয় কাজ কপরযন াঅনাযা াপরনপরকাআ এডপরনস এয জনয পলাগগন ফযফায কপরযন গকনত চাাআপররাআ এাআ কাজগট াঅনাযা গনপরজয ভত কপরয াগজপরয় গনপরত াপরযন গগপররয কাপরি ফ ডাসট বযার ায়না াঅনাযা মাযা একসাটড াঅপরিন তাযা এটা বার কপরয জাপরনন তাাআ াপরনপরকাআ গগপররয ডকাড ফ ডপরজ ডদখাপরত চান না এজনয পলাগগন ফযফায কপরয রাব য়না কাযন পলাগগপরন জায়গা গপকসড থাপরক এপরত কপরয াঅগনডাং ও কভ য় াঅনাযা টডপরকাড ফযফায কপরয ডমপরকান জায়গায় এড ডদখাপরত াপরযন গনপরচ াঅগভ রগট টডপরকাড ততগয কপরযগি র‟ধযপরনয এড ডদখাপরনায জনয ltphp

Plugin Name Liton Adsense Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(adsense_468adsense_468_60)

add_shortcode(adsense_250adsense_250_250)

function adsense_468_60($atts)

return ltscript type=textjavascriptgtlt--

57

google_ad_client = ca-pub-0956247412222369

468x60 created 101510

google_ad_slot = 4372705450

google_ad_width = 468

google_ad_height = 60

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

function adsense_250_250($atts)

return ltscript type=textjavascriptgtlt--

google_ad_client = ca-pub-0956247412222369

250x250 created 81809

google_ad_slot = 9368091893

google_ad_width = 250

google_ad_height = 250

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

gt

একগট টডপরকাড ফযানায টাাআপরয জনয এফাং াঅপরযকগট ২৫০২৫০ াাআপরজয এফায ডাপরসট ডমপরকান একগট টডপরকাড াআনাটড করন ডমখাপরন াঅনায ডদখাপরনায েপরয়াজন ভপরন কপরযন াঅগভ রগট ডকাড ডটসট কপরয ডদখরাভ-

58

এফায াাআপরটয াঅউটট ডদগখ-

রগট এডাআ ডদখাপরচছ াঅপরযা াপরনক কাপরজ াঅগন টডপরকাড ফযফায কযপরত াপরযন ডযপাপরযনসাঃ httpcodexwordpressorgShortcode_API

59

াধযায়- নয়াঃ পলাগগন উদাযন

ওয়াডডপরেপরয ডডটটাাআভকপরভনট নামবায ফাাংরা কযায পলাগগন াঅভাপরক কপরয়কজন ফপররগিপররন ওয়াডডপরেপরয গডপলট ডডটটাাআভকপরভনট নামবায ফাাংরা য়না রযাাংগপরয়জ ফাাংরা কযায যও ডডটটাাআভকপরভনট নামবায গপররা াআাংপরযগজ ডথপরক মায় গনপরচয পলাগগনগট ফযফায কপরয ডদখপরত াপরযন- ltphp

Plugin Name Liton Bangla datetimecomment number

Plugin URI httpliton-onlinecomplugins

Description Bangla datetimecomment number

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

This function converts all english numbers to bangla number

function make_bangla_number($str)

$engNumber = array(1234567890)

$bangNumber = array( ১ ২ ৩ ৪ ৫ ৬ ৭ ৮ ৯ ০ ) $converted = str_replace($engNumber $bangNumber $str)

return $converted

add_filter( get_the_time make_bangla_number )

add_filter( the_date make_bangla_number )

add_filter( get_the_date make_bangla_number )

add_filter( comments_number make_bangla_number )

add_filter( get_comment_date make_bangla_number )

add_filter( get_comment_time make_bangla_number )

gt

60

সলাাআডায পলাগগন াঅভযা এাআ ফাআপরয়য কর গটউপরটাগযয়াপরর মা মা গখরাভ তা এফায একগট নডাাংগ পলাগগপরনয এপলাাআ কযফ সলাাআডায পলাগগন মপপরকড াঅভযা ফাাআ জাগন একগট ওপরয়ফাাআপরটয ডচাযা ারপরট ডদয় একগট সলাাআডায াপরনক ডাাআনাগভক ভপরন য় ডদখপরতও াপরনক বার রাপরগ এাআ পলাগগপরন াঅভযা এডগভন যাপরনর ডথপরক াআপরভজ ডমাগ কযফ এফাং তা াঅভাপরদয াাআপরট ডদখাফ চরন কাজ রর কগয- েথপরভ গনপরবা সলাাআডায এয ওপরয়ফাাআপরট মান এফাং jQuery Plugin ডাউনপররাড করন

ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom Version 10

gt

াঅভযা পলাগগপরনয ডডায ততগয কযরাভ

পলাগগন গরপরসট ডদখাপরচছ bdquoLitons Nivo Plugin‟ াঅভাপরদয েথভ কাজ পরচছ custom post

type ওয়াডডপরে পাাংনাগরগট একগট নতন কাসটভ ডজ ততগয কযপরত custom post type

ফযফহরত পরফ ডমখাপরন একগট াআপরভজ থাকপরফ াঅভযা রধ টাাআপরটর ডনভ এফাং াআপরভজ াঅপররাডায গপরপরফ গপচায াআপরভজ পাাংনাগরগট ফযফায কযফ function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_function 600 280 true)

61

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

add_action(init np_init)

উপরযয ডকাপরড np_init() পাাংনগট রক কপরযগি মা ডডায যান কযায াঅপরগ যান পরফ াঅয এজনয register_post_type() পাাংনপরক এয যাযাগভটায গদপরয় np_init() পাাংপরনয ডবতপরয মি কপরযগি এটা মগদ না কযতাভ তাপরর ldquoHeaders already sentrdquo ডভপরজ ডদখাত এাআ ডভপরজগটয াপরথ াপরনপরকাআ গযগচত াঅা কগয register_post_type() পাাংন গদপরয় াঅভযা াআপরভজ মি এফাং ভযাপরনজ কযফ ভরত াঅভযা একগট নতন custom post type ডমাগ কপরযগি np_images নাভ গদপরয় নতন custom post type ডক ডগটাং বযার গপরপরফ াঅযগপরভনট া কপরযগি $args ডবগযপরয়ফরগট ট ডরপরবর ডভন ততগয কপরয াঅপরগাআ ডদপরখগি পলাগগনগট এগকটপরবট কযপরর াঅভযা গনপরচয ভত ডদখপরত াফ-

এফায গিে এফাং সটাাআরীট ডক মি কযফ- add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

এফায রক কযা পাাংনগপররা গডপরিয়ায কগয- function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__) array( jquery ))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

62

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

উপরযয ডকাডগপররা নতন কপরয ফিডনা কযায গকি ডনাআ াঅপরগাআ wp_enqueue_style() এফাং wp_enqueue_script() মপপরকড ফরা পরয়পরি নতন াঅপরযকগট পাাআর ততগয করন একাআ গডপরযকটগযপরত scriptjs এফাং গনপরচয ডকাডটক গদন- jQuery(document)ready(function($)

$(slider)nivoSlider()

)

াআপরভজপরক গযাাআজ করন- add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

াঅভযা এাআ পলাগগনগটপরক উাআপরজট গপরপরফও ফযফায কযফ ডগট পরয ডদখফ াঅপরযকগট গজগন মগদ গথপরভ না ডদয়া থাপরক ডজনয থামবপরনাআর াপরাটড গদপরয় গদন- add_theme_support( post-thumbnails )

এফায ওয়াডডপরেপরয কাপরযনট ডাসট কপরয়যী কযায ডকাড াঅয $result ডবগযপরয়ফপরর ডমফ ltdivgt টযাগ ফযফায কযা পরয়পরি তা jQuery Plugin গট একসিাকট কপরয indexhtml ডজগটয ডভাআন সলাাআডায ডকাডগট ডদখন একাআ াঅপরি রধ ডখানকায ltdivgt টযাগ গপররাপরক কগ কপরয এাআ পলাগগপরন ফযফায কযা পরয়পরি এফায টডপরকাড গদন- add_shortcode(np-shortcode np_function)

এাআ টডপরকাড গএাআচগ পাাংনপরক রক কযপরফ এফাং এয ভধয ডথপরক সলাাআডপরায কনপরটনট ডক গযটানড কযপরফ াঅভাপরদয টডপরকাড পরচছ [np-shortcode] াঅভযা পলাগগপরন মাাআ এফাং একগট িগফ মি কগয গপচাযড াআপরভজ গপরপরফ গনপরচ ডদখন-

63

াঅগভ াঅপরযকগট ডজ ততগয কপরযগি ডমখাপরন টডপরকাড গদপরয়গি

াঅউটট ডজ ডদগখ এফায-

64

পরয় ডগর াঅভাপরদয সলাাআডায পলাগগন পরযা ডকাডগট গনপরচ গদরাভ- ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

65

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

66

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

এফায াঅগন মগদ উাআপরজট গপরপরফ ফযফায কযপরত চান তাপরর গনপরচয ডকাডটক গদন- class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

67

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

echo $after_widget

াঅপরযা রগট কাজ কযপরত পরফ াঅনাপরক এক াআপরভজ াাআজ উাআপরজট এয জনয গঠক কপরয গদপরত পরফ- add_image_size(np_widget 180 100 true)

াঅপরযকগট র উাআপরজট এযাকন রক ডমাগ কযা add_action(widgets_init np_widgets_init)

উাআপরজট পরযা ডকাড াঅফায গদরাভ- ltphp

Plugin Name Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Ciprian Turcu

Version 10

68

class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

69

echo $after_widget

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

70

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(widgets_init np_widgets_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

71

পলাগগন গনপরয় এত ডিাট গযপরয ডরখা মভফ নয় এজনযাআ ভপরন য় পলাগগন গনপরয় ডকউ ডরপরখন না কাযন এখাপরন এত গফলয় াঅপরি মা াঅপররাচনা কযপরত ডগপরর ৫০০ ডজ ায পরয় মাপরফ ডফাোয সগফধাপরথড াঅগভ মথামভফ উদাযন গদপরয় ডফাোপরনায ডচষটা কপরযগি াঅগভ এখাপরন টাপরগডট কপরযগি মাযা টকটাক জাপরন পলাগগন মপপরকড এডবানস ডরপরবপররয নয় কাযন তাযা জাপরনন াঅভায উপরেশয গির মাযা জানপরত চায় তাপরদযপরক জানাপরনা এখাপরন ডমফ গফলয় াঅপররাচনা কযা পরয়পরি তা ডভাটাভগট ভাপরনয একগট পলাগগন ফানাপরনায জনয মপরথষট তপরফ ভাপরনাননয়পরনয জনয াঅনাপরক গনপরজাআ খাপরজ গনপরত পরফ াঅনায জনয ডকানটা বার পরফ াঅগভ রধ গদক গনপরদডনা গদরাভ ভাতর এাআ ফাআগট রধভাতর ওয়াডডপরে রেপরয জনয ডরখা াপরনক বর ভরাগনত থাকপরত াপরয াঅনাযা কষভাসনদয দগষটপরত ডদখপরফন াঅগভ ডচষটা কপরযগি মতটা জ কপরয ডরখা মায় াপরনক ভয় ডদখা মায় ডম খফ ডিাট খাপরটা গফলয় গনপরয় াপরনপরকাআ নক কপরযন এটা গতয রাঃখজনক াঅনাযা গগপরর একট খাজপররাআ ভাধান াপরফন াঅপরগ গনপরজ ডচষটা করন তায পরয ানযপরক ভাধাপরনয জনয গজজঞাা করন াঅভায জনয ডদায়া কযপরফন বাপররা রাগপরর জানাপরফন খাযা রাগপররও জানাপরফন তাপররাআ াঅভায গযশরভ সবাথডক পরফ ভতাভত জাগনপরয় াঅভাপরক ডভাআর কযপরত াপরযন litonice09gmailcom |

72

Page 15: Wordpress Plugin Development

16

Author Md Liton Arefin

Author URI httpliton-onlinecom

add_filter(the_titleliton_modify_title)

function liton_modify_title($content)

return ucwords($content)

gt

পলাগগনগট এগকটপরবট কযায াঅপরগ ডাসট টাাআপরটর ডদখন-

এফায পলাগগনগট এগকটপরবট কযায পরয ডাসট টাাআপরটর ডদখন-

এাআ পলাগগনগট াঅভাপরদয াপরনক ভয়াআ কাপরজ রাগপরত াপরয কাযন াপরনপরকাআ াঅভযা এাআ পযভযাটগট িনদ কগয ঠাৎ কপরযাআ াঅভযা ডাসট টাাআপরটর গরখায ভয় ফড় াপরতয াকষয কযপরত বপরর ডমপরত াগয াঅভযা এাআ কাজগট খফ ডিাট একগট পলাগগন গদপরয় াপরটাপরভগটকবাপরফ কযপরত াগয

17

এখন াঅগভ গকি াগতগযি গফলয় গনপরয় াঅপররাচনা কযফ ডমগপররা ডভপরন চরপরর বগফষযপরতয জনয বার পরফ াঅগভ একগট পাাংন গরপরখগি- add_filter(the_titleliton_modify_title)

function liton_modify_title($content)

return ucwords($content)

একট গফসতাগযত ফরপরর াঅভযা the_title এয ভধয গদপরয় মা া কযফ তা গপলটায কযপরফ এখাপরন াঅভযা ucwords the_title এয ভধয গদপরয় া কপরযগি এফায াঅপরযা টড পভড ডদগখ add_filter(the_title ucwords)

তায ভাপরন পরযা পলাগগনগট পরফ এযকভ- ltphp

Plugin Name Liton filter

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_filter(the_title ucwords)

gt

গক খফ জ রাগপরি এখাপরন ফপরর যাগখ ডম ucwords এগট গযগব কযপরফ the_title মা া কযপরি এফাং াপরটাপরভগটকযাগর গযটানড কযপরফ the_title এ সতযাাং এখাপরন গযটানড এয দযকায ডনাআ এফায াঅগন মগদ গএাআচগ বাডন ৫৩ ফযফায কপরযন তাপরর গনপরচয ভত কপরয anonymous function ফযফায কযপরফন াঅনাযা জাবাগিে ডজকপরয়গয‟য াপরথ গযগচত এগট াপরনকটাাআ এযকভ ltphp

Plugin Name Liton filter

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_filter(the_title function($content)

return ucwords($content)

)

gt

বার কপরয ডদখন ডতা াথডকযটা ডকাথায় গনপরজ গনপরজ কাজ কযপরর এবাপরফ কযপরফন াফশযাআ এগট একট এডবানস ডরপরফপররয কাজ মগদও পলাগগন ফানাপরনায ডকষপরতর এগট এখপরনা াঅদড নয় কাযন াপরনপরকযাআ গএাআচগ বাডন এখপরনা ৪ এাআ ডথপরক ডগপরি সতযাাং এাআ িগতগট একানতাআ গনপরজয জনয

18

এযাকন রক (Action Hooks) Action Hooks পরচছ ড ভসত রক ডমগপররা ওয়াডডপরেপরয রাাআপ াাআপরকর গনপরয় কাজ কপরয Action Hooks রাআ ধযপরনয add_action() remove_action() এাআ রকগপররা কাজ কপরয মখন ডকান ডাসট ডব কযা য় ডাসট াফগর কযা য় কপরভনট কযা য় ডকান বলগ ডাপরসট াথফা ওপরয়ফাাআপরট ডডাযপটায ডজনাপরযট য় এগপররা েগতগট একগট একগট কপরয Actions মখন াআউজায তায এডগভগনপরসটরটয ডভনপরত েপরফ কপরয এগপররা ফাআ Action Hooks এখাপরন াঅভযা কনপরটনটপরক গপলটায কযগিনা াঅভযা ওয়াডডপরেপরয গনগদডষট পাাংনগপররাপরক রক কপরয কাজ কযগি াঅভযা একগট উদাযন ডদগখ- ltphp

Plugin Name Liton Action

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(wp_footer function($content)

echo Hello This is Liton Arefin

)

gt

াঅনাপরদয সগফধাপরথড ডফাোয জনয গনপরচয ভত কপরয গরখন- ltphp

Plugin Name Liton Action

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(wp_footer liton_footer_action)

function liton_footer_action($content)

echo Hello This is Liton Arefin

gt

াঅভযা খফ ডিাট একগট উদাযন গদপরয় ডদখরাভ ডম action রক গকবাপরফ কাজ কপরয গনপরচ ডদগখ াাআপরট ডকভন ডদখায়-

19

উপরযয িগফপরত ডদখন াঅগভ Hello This is Liton Arefin এাআ রাাআনগট গেনট কপরযগি এফাং তা পটাপরযয ফাভ াপর এপরকফাপরয গনপরচ ডদখাপরচছ এফায ডাড ডকাড এ ডদগখ াঅপররাআ এয গজন টা ডকাথায় াঅপরি

উপরয ডদখন পটাপরযয গঠক গনপরচাআ রাাআনগট ডদখাপরচছ এফায াঅপরযকগট ফাসতফ এফাং খফাআ গরতবনড উদাযন ডদগখ এাআ পলাগগনগটয কাজ পরফ মখনাআ ডকান কপরভনট ডাসট পরফ তখনাআ এডগভনপরক ডভাআর াঠাপরফ ডম নতন কপরভনট ডাসট পরয়পরি মগদও ওয়াডডপরে এাআ কাজগট কপরয থাপরক াঅভযা এাআ কাজগট ভযানয়ারী কপরয ডদগখ ltphp

Plugin Name Liton Comments Mail

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(comment_post function()

$email= get_bloginfo(admin_email)

wp_mail(

$email

New Comment Posted

A new comment has been left on your blog

)

)

gt

এখাপরন comment_post নাপরভয রপরক একগট ডবগযপরয়ফর $email ndashএ এডগভন ডভাআরপরক ডসটায কপরযগি মাপরত কপরয ডাাআনাগভক বাপরফ ড ডমপরকান াাআপরটয এডগভন ডভাআরপরক গডপরটকট কযপরত াপরয তপরফ এপরকষপরতর মগদ bloginfo(admin_email) ফযফায কযা ত তাপরর এডগভন ডভাআরপরক গডপরটকট কযত গকনত get_bloginfo(admin_email) ফযফায কযায পপরর াঅভযা াআপরভাআর বযারগটপরক গযটানড কপরয ডসটায কযগি এফাপরয ওয়াডডপরেপরয গফলটাআন ডভাআর পাাংন wp_mail(emailsubjectmessage) এয ভত কপরয গরপরখগি বার কপরয ডদখন পলাগগনগট এগকটপরবট কপরয ডদখন াঅনায াাআট মগদ ানরাাআপরন থাপরক তাপরর গনপরজাআ একগট কপরভনট কপরয ডদখন াঅনায এডগভন ডভাআপরর একগট ডভাআর চপরর ডগপরি

20

াধযায়- চাযাঃ পলাগগন ডকাগডাং সটযানডাডড

পলাগগন এগকটপরবনগডএগকটপরবন পাাংন াঅগন মখন একগট পলাগগনপরক এগকটব কপরযন তখনাআ এগকটপরবন পাাংন গিগায য় এাআ পাাংনপরক register_activation_hook() ফপরর ltphp register_activation_hook($file $function) gt

Parameters

$file- োাআভাগয পলাগগন পাাআপররয াথ

$function- ডম পাাংনগট গিগায পরফ মখন পলাগগন এগকটপরবট য় ডমভনাঃ- ltphp

register_activation_hook(__FILE__ bdquoliton_plugin_install‟)

function liton_plugin_install()

do something cool stuff

gt

াঅভযা একগট পলাগগন ফানাাআ এবাপরফ-

ltphp

Plugin Name Liton Version

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

register_activation_hook(__FILE__ liton_plugin_install)

function liton_plugin_install()

If(version_compare(get_bloginfo(version)51lt))

deactivate_plugins(basename(__FILE__))

deactivate our plugin

gt

মখন াঅভযা পলাগগন গডএগকটপরবট কগয তখন পলাগগন গডএগকটপরবন পাাংন কর য়

21

ltphp

register_deactivation_hook ($file $function) gt

-

ltphp

register_deactivation_hook (__FILE__ bdquoliton_plugin_install‟)

function liton_plugin_install()

do something

gt

াঅপরযকগট গরতবনড গফলয় র াঅনাআনসটর ওয়াডডপরে াঅনাপরক পলাগগন াঅনাআনসটর এয জনয রগট ান গদপরচছ- uninstallphp file and the uninstall hook

uninstallphp

এগট ডভাটাভগট েনপরমাগয িগত এ ডভথড ফযফায কযায জনয াঅনাপরক uninstallphp নাপরভ একগট পাাআর ততগয কযপরত পরফ াঅনায পলাগগন গডপরযকটগযপরত পাাআরগট গনপরচয ভত পরফ- ltphp

মগদ ওয়াডডপরে এগকসট কযায াপরথ াঅনাআনসটর কর কযা না য় If(defined(bdquoWP_UNINSTALL_PLUGIN‟))

exit()

delete_option(bdquoliton_plugin_options‟)

াগতগযি ান এফাং কাসটভ ডটগফর ভপরি ডপরন gt

Uninstall Hook

গিতীয় িগত র Uninstall Hook মগদ াঅগন ডকান পলাগগনপরক গডগরট কযপরত চান এফাং uninstallphp পাাআর না থাপরক তাপরর এাআ রক এগকসগকউট য়(মগদ থাপরক) ltphp

register_uninstall_hook($file$function)

gt

22

ডকাগডাং সটযানডাডড পলাগগন ফানাপরফন গকনত াঅনায ডকাড ডকভন পরফ গচনতা াঅপরত াপরয ওয়াডডপরে াঅনায জনয একগট সটযানডাডড গদপরয় গদপরয়পরি মা াঅনাপরক ওয়াডডপরেপরয জনয পলাগগন গরখপরত ডগপরর পপররা কযপরতাআ পরফ httpcodexwordpressorgWordPress_Coding_Standards

ডফগক একগট উদাযন গদরাভ গনপরচ- ltphp

Short description

Longer more detailed description

param type $varname1 Description

param type $varname2 Description

return type Description

function boj_super_function( $varname1 $varname2 )

do function stuff

gt

গএাআচগ সটানডাডড াঅভযা াপরনপরকাআ গএাআচগয টড পভড(lt gt) ফযফায কগয এটা মপিডরপর ফজডন করন কাযন াপরনক ডাগসটাং ডকামপাগনপরতাআ এটা গডপলট গপরপরফ ফনধ কপরয ডদয়া থাপরক সটযানডাডড টযাগ ফযফায করন(ltphp gt)

এগকউএর ডসটটপরভনট পলাগগন ততগযয ভয় াঅনাপরক াপরনক ভয়াআ ডাটাপরফ ডথপরক াআনপযপরভন গনপরত পরত াপরয াপরনক রাাআপরনয ডকাড গরখপরত পরত াপরয ডপরকষপরতর বার েযাকগট পরচছ এগকউএর এয কভানড গপররা ফড় াপরতয াকষপরয ডরখা ডমভন- SELECT username FROM table1 WHERE status = active

23

াধযায়- াাচাঃ ওয়াডডপরেপরয াপরথ াআগনটপরেন

ডভন এফাং াফ ডভন ততগয করন াঅভযা াপরনক পলাগগপরনাআ ডদগখ ডম একগট ডভন াঅাআপরটভ গপরপরফ াঅভাপরদয ডযাপরফাপরডড ডদখপরত াাআ এফাং ডাআ ডভনপরত গিক কযপরর ডগটাং ডজ াঅপর ডখাপরন পলাগগপরনয মাফতীয় ডগটাং গদপরয় াঅভযা পলাগগন কনগপগায কগয এফায এাআ চভৎকায কাজগট কযফ াঅভযা

ট ডরপরবর ডভন েথভ িগত পরচছ একগট ট ডরপরবর ডভন ততগয কযা ডমগট াঅভযা ডযাপরফাপরডড ডভন গরপরসট একগট নতন াঅাআপরটভ গপরপরফ ডমাগ কযফ ডভন ততগয কযায জনয াঅনাপরক add_menu_page( ) পাাংন ফযফায কযপরত পরফ ltphp

add_menu_page( page_title menu_title capability menu_slug functionicon_url

position )

gt

add_menu_page() পাাংন গনপরচয যাযাগভটাযগপররা াপরাটড কপরয page_title- াঅনায ডপরজয টাাআপরটর গক পরফ lttitlegt tag এয ভপরধয menu_title- ডযাপরফাপরডড াঅনায ডভনয নাভ capability- ফডগনমন capability রাগপরফ একগট ডভন গবউ পরত menu_slug- সলাগ নাভ মা ডভনপরক ডযপায কপরয- তপরফ এগট াআউগনক পরত পরফ function- একগট ডপরজয কনপরটনট ডদখপরত ডম পাাংন কর কযা য় icon_url- একগট কাসটভ াআপরভজ গরঙক ডভন াঅাআকন ডদখাপরনায জনয position- ডভনয গজন াডডায ডমখাপরন এটা ডদখাপরনা পরফ

এফায াঅভযা একগট ফাসতফ উদাযন ডদখফ- ltphp

Plugin Name Liton Menu

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action( admin_menu liton_menu)

function liton_menu()

24

create custom top-level menu

add_menu_page( Liton Menu Page Liton Menu Page manage_options

__FILE__ liton_menu_settings_page plugins_url( imageswp-logopng

__FILE__ ) )

gt

াঅভযা একগট ট ডরপরবর ডভন ততগয কযরাভ ডদখন ডযাপরফাপরডড ডকভন ডদখায়-

Liton Menu Page নাপরভ একগট ডভন ততগয পরয় ডগপরি এফাপরয াঅভযা াফপরভন কযফ ভাপরন Liton Menu Page এয গনপরচ গকি ডগটাং ডভন(মগদ েপরয়াজন য়) াফ ডভন ডযগজসটায কযায জনয add_submenu_page( ) পাাংন ফযফায কযা য় ltphp

add_submenu_page( parent_slug page_title menu_title capabilitymenu_slug

function )

gt

parent_slug- ডভন সলাগ মা াঅভযা াঅপরগ গডপাাআন কপরযগি menu_slug- মা ডভনপরক াফপরভনপরত ডযপায কযপরফ ফাগক পাাংনগপররা াঅপরগয ভতাআ

এফায াফপরভনয জনয গকি াগতগযি ডকাড ডমাগ কগয create submenu items

add_submenu_page( __FILE__ About My Plugin About manage_options

__FILE___about liton_menu_about_page )

add_submenu_page( __FILE__ Help with My Plugin Help

manage_options

__FILE___help liton_menu_help_page )

add_submenu_page( __FILE__ Uninstall My Plugin Uninstall

manage_options

__FILE___uninstall liton_menu_uninstall_page )

25

পরযা ডকাডগট পরফ এযকভ- ltphp

Plugin Name Liton Menu

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action( admin_menu liton_menu

)

function liton_menu()

create custom top-level menu

add_menu_page( Liton Menu Settings Page Liton Menu Page

manage_options __FILE__

liton_menu_settings_page

plugins_url( imageswp-logopng __FILE__ ) )

create submenu items

add_submenu_page( __FILE__ About My Plugin About manage_options

__FILE___about liton_menu_about_page )

add_submenu_page( __FILE__ Help with My Plugin Help

manage_options

__FILE___help liton_menu_help_page )

add_submenu_page( __FILE__ Uninstall My Plugin Uninstall

manage_options

__FILE___uninstall liton_menu_uninstall_page )

gt

গনপরচ ডদখন াফপরভনগপররা ততগয পরয় ডগপরি-

26

ডভনপরক াঅপরগয ডভনয াপরথ মি কযা এফায াঅগ গিতীয় িগতপরত মগদ াঅনায পলাগগপরনয একগট ভাতর ডজ থাপরক একগট ভাতর ডপরজাআ াঅনায কর ডগটাং পরয় মায় তাপরর এাআ িগত েন করন ডমভন ডয়াগযাং াাআটগপররায জনয রধ াঅনায াঅাআগডপযানপরপরজয াঅাআগড দযকায য় এযকভ পলাগগন এধযপরনয পলাগগপরনয জনয াঅনায াগতগযি ডভন ততগয কযায দযকায ডনাআ ফযাং এপরত কপরয াআউজায গফযি ডফাধ কযপরত াপরযন এ ধযপরনয পলাগগনগপররা ডগটাং এয াফপরভন গপরপরফ থাপরক add_options_page() এাআ পাাংন গদপরয় এফ ডভন ডযগজসটায কযা য় ltphp

add_options_page( page_title menu_title capability

menu_slug function)

gt

এফায চরন এযকভ একগট ডভন ততগয কগয- ltphp

Plugin Name Liton Sub Menu

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action( admin_menu liton_submenu)

function liton_submenu()

create a submenu under Settings

add_options_page( Liton Menu Settings Page Liton Menu Page

manage_options __FILE__

liton_menu_settings_page)

27

gt

াফপরভন ততগয পরয় ডগপরি চরন ডদগখ ডযাপরফাপরডড ডকভন ডদখায়-

এপরকফাপরয গনপরচয গদপরক ডদখন Liton Menu Page নাপরভ একগট ডভন ততগয পরয়পরি

উাআপরজট ততগয কযা উাআপরজট ততগয কযায জনয ওয়াডডপরে WP-Widget িা গদপরয় ততগয কযা য় উাআপরজট এয একগট পযভযাট ডদখন গনপরচ ltphp

class My_Widget extends WP_Widget

function My_Widget()

processes the widget

function form($instance)

displays the widget form in the admin dashboard

function update($new_instance $old_instance)

process widget options to save

function widget($args $instance)

displays the widget

gt

28

উাআপরজট ডযগজসটায কযায জনয widget_init() পাাংনপরক রক কযা য় চরন একগট উাআপরজট ততগয কগয- ltphp

Plugin Name Liton Widget

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

class Messager extends WP_Widget

function __construct()

$params=array(

description =gtDisplay message to readers

name =gt Message

)

parent__construct(Messager $params)

public function form()

public function widget()

add_action(widgets_initliton_register_message)

function liton_register_message()

register_widget(Messager)

gt

29

খফ াধাযন একগট উাআপরজট পলাগগন এগট াঅভযা াআউজাযপরদযপরক একগট ডভপরজ ডদখাপরফা াাআডফাপরয ডটাাআ কযায ডচষটা কযগি এখন পলাগগনগট এগকটপরবট কপরয ডদগখ-

াঅভাপরদয উাআপরজটগট ডদখাপরচছ এফায াঅপরযা গকি পাাংনার কাজ কগয এগট মগদ াাআডফাপরয ডরাগ কপরয ডদন তাপরর ডকান কাজ কযপরফ না কাযন াঅভযা এখপরনা গকিাআ কগযগন পভড পাাংপরন গকি কাজ কগয মা উাআপরজট টাাআপরটর গপরপরফ ডদখাপরফ- public function form($instance)

extract($instance)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title)gtgtTitle ltlabelgt

ltinput

class=widefat

id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt

value=ltphp if(isset($title)) echo esc_attr($title) gt gt

ltpgt

ltphp

াঅভযা উপরয class=widefat ফযফায কপরযগি এাআ িা ফযফায কযায কাযপরন পভড এয াআনট গপলডগট াপরনক সনদয পরয়পরি

30

মগদ এাআ িা ফযফায না কগয তাপরর ডকভন ডদখাপরফ গনপরচ ডদখন-

াঅভাপরদয উাআপরজট পলাগগনগটয ডকাড গনপরচ ডদওয়া র ltphp

Plugin Name Liton Widget

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

class Messager extends WP_Widget

function __construct()

$params=array(

description =gtDisplay message to readers

name =gt Message

)

parent__construct(Messager$params)

31

public function form($instance)

extract($instance)

print_r($instance)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title)gtgtTitle ltlabelgt

ltinput

class=widefat

id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt

value=ltphp if(isset($title)) echo esc_attr($title) gt gt

ltpgt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(description)gtgtDescription

ltlabelgt

lttextarea

class=widefat

rows=10

id=ltphp echo $this-gtget_field_id(description) gt

name=ltphp echo $this-gtget_field_name(description) gtgtltphp

if(isset($description)) echo esc_attr($description) gtlttextareagt

ltpgt

ltphp

public function widget($args$instance)

extract($args)

extract($instance)

echo $before_widget

echo $before_title$title$after_title

echo ltpgt$descriptionltpgt

echo $after_widget

add_action(widgets_initliton_register_message)

function liton_register_message()

32

register_widget(Messager)

gt

এফায াঅভযা ডযাপরফাডড ডথপরক একগট ডভপরজ ডদফ গবগজটযপরদযপরক-

াঅভযা এাআ উাআপরজটগট ডাাআনাগভক বাপরফ কপরযগি কাযন এখাপরন lth2gt lth3gt lth4gt এ ধযপরনয ডকান টযাগ াঅভযা ফযফায কগযগন াঅভযা গথভ ডডপরবর কযগিনা সতযাাং এ কাজগট াঅভাপরদয ানযবাপরফ কযা দযকায গির এগট গথভ ডডপরবরায ডদগখপরয় ডদপরফন ডম ডকভন টযাগ পরফ াাআডফাপরয াাআপরটয াাআডফাপরয ডকভন ডদখায় তা ডদখন- াঅভযা রগট গথপরভ এগট ডটসট কপরয ডদখফ েথভগট টপরয়গনট াআপররপরবন

33

এফায াঅপরযকগট গথপরভ ডদগখ-

34

াধযায়- িয়াঃ পলাগগন পাাংন

গকি ডফগক পাাংন __() পাাংন

__() পাাংনগট গএাআচগপরত াঅনায ডটকসটপরক ডযগড কপরয িানসপররন এফাং গযটানড কপরয উদাযন গপরপরফ াঅগন একগট বযারপরক __() পাাংপরনয ভপরধয ডবগযপরয়ফর গদপরয় assign করন ভপরন যাখপরফন এাআ পাাংনগট রগট াঅনডাযপরিায(_) গদপরয় গগঠত একগট নয় ltphp

$text=__(bdquoWordpress is a wonderful publishing platform‟‟liton_plugin‟)

gt

_e() পাাংন _e() পাাংনগট াঅনায ডটকসবপরট ডরাকারাাআজ কপরয এটা গএাআচগপরত echo এয ভত কাজ কপরয ডকান ডটকসটপরক গিপরন ডদখাপরনায জনয এফায একট ভজা কগয মা রপরক ডদপরখগি াঅপরগাআ- _e() পাাংনগট গদপরয় াঅপরগয পলাগগনগট এগডট কযফ ltphp

Plugin Name Liton Action

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(wp_footer liton_footer_action)

function liton_footer_action()

Output the translated text

_e( This site runs off the coolest platform ever ampmdash

WordPress

liton-plugin )

gt

35

এফায াঅউটট ডদগখ

esc_attr__() পাাংন এাআ পাাংনগট esc_attr() এয ভত এগট এাআচগটএভএর এগিগফউটপরক escape কপরয াঅভযা এফায esc_attr__() এফাং __() এাআ রগট পাাংনপরক একগট কপরয পলাগগন ততগয কযফ ltphp

Plugin Name Liton Esc Attr

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

A function that returns a link to the sites terms of service

page

function liton_terms_of_service_link()

return lta href=httpliton-onlinecomtos title=

esc_attr__( Visit the Terms of Service page boj-plugin ) gt __( Terms of

Service liton-plugin ) ltagt

Display the output of the liton_terms_of_service_link()

function

echo liton_terms_of_service_link()

gt

পলাগগনগটয াঅউটট ডদখন-

36

এযকভ াঅপরযা গকি পাাংন াঅপরি ডমগপররা াঅনাযা ডদপরখ ডনপরফন াআনটাযপরনট ডঘপরট

esc_html__() Function

esc_attr() Function

esc_url() Function

esc_js() Function

esc_html() Function

esc_attr_e() Function

esc_html_e() Function

_x() Function

_ex() Function

esc_attr_x() Function

esc_html_x() Function

_n() Function

_nx() Function

_n_noop() Function

_nx_noop() Function

Translation

bull Poedit httppoeditnet

bull GlotPress httpglotpressorg

bull Launchpad httpstranslationslaunchpadnet

bull Pootle httppootlelocamotionorg

bull KBabel httpi18nkdeorg

bull GNU Gettext httpgnuorgsoftwaregettext

GlotPress এখন ওপরয়ফ ডফড টর গপরপরফ ফযফায কযা পরচছ ওয়াডডে েপরজপরকটয ডিপরন একজন াথফা গটপরভয জনয িানসপররগটাং পটওয়যায গপরপরফ

37

াধযায়- াতাঃ পলাগগন গগকউগযগট

গগকউগযগট কগমপউটাপরযয বালায় ldquoগগকউগযগটrdquo ভাপরন বীগতকয একগট বদ ডমভন Cross Site

Scripting(XSS) Cross Site Request Forgery(CSRF) SQL Injection Privilege

Escalation Vulnerabilities এফাং Holes রফডর ডকাড একগট াবডাপরযয সযকষায জনয রভকীয কাযন পরত াপরয

পলাগগপরনয গগকউগযগট গক াঅনায পলাগগনগট ডমন গগকউয য় vulnerabilities data integrity এফাং reliability ডথপরক

াঅনায পলাগগনপরক গক গগকউগযগট ডদপরফন ওয়াডডপরে এনবায়যনপরভপরনট াঅনায পলাগগনপরক গগকউগযগট ডদয়া খফ কগঠন কাজ নয় এফাং খফ ভয় াপরকষ গফলয়ও নয় ওয়াডডপরেপরয গনজসব গকি পাাংন এপরকষপরতর াঅনাপরক খফাআ াাময কযপরফ

াআউজায াযগভন াঅভযা াপরনক পলাগগন াআনসটর কযায পরযাআ ডদপরখগি ডম মখনাআ এডগভন যাপরনর এ েপরফ কযপরত মাাআ তখন একগট এযয ডভপরজ াঅপর ডভপরজগট গনপরচয ভত-

ডরখা াঅপরি- You do not have sufficient permissionshellip এটা গনশচয়তা ডদয় ডম ডমপরকান এযাকন ীভাফি থাপরক গনগদডষট গকি যাাআট গদপরয় ওয়াডডপরেপরয একগট কভন পাাংন র current_user_can() একগট উদাযন ডদাআ-

38

ltphp

Capability

if ( current_user_can(install_plugins) )

wp_die( Insufficient permissions )

Role

if( current_user_can(editor) )

wp_die( You cannot edit this setting )

gt

খফ তাড়াতাগড় াঅগন এাআ current_user_can() পাাংন ডচক কযপরফন না কাযন এটা গনবডয কযপরফ get_currentuserinfo() এাআ পাাংপরনয উপরয াঅয এয ফযফাপরয ীভাফিতা াঅপরি এটা একগট পলাপরগফর পাাংন(pluggable function) াঅয এয ডরাপরকন পরচছ wp-

includespluggablephp মা পলাগগন এগকটব ফায য ডরাড য়

Nonces

ডকউ এগটপরক াঅফায Nonsense( গনপরফডাধ) বাফপরফন নাএগট ওয়াডডপরেপরয বালায় Nonces কগমপউটাপরযয বালায় nonce ফা cryptographic nonce পরচছ ldquonumber used once rdquo এটা ডিাট এফাং সপষট গকি য যানডভ গসটরাং ডমভন- াওয়াডড মা গকি গনপরদড কপরয Nonce গপরডন গপলড পভডপরক Retrieve ফা display কপরয-

একজন ওয়াডডপরে াআউজায ডমপরকান একগট এযাকন (delete update save and such) একগট াফপরজকট(একগট ডাসট পলাগগন ডগটাং াআতযাগদ) ২৪ ঘনটায একগট ভয় ডিভ

ডমভন ডাসট 50 গডগরট কযপরফন াঅনায ওয়াডডপরে বলগ ডথপরক তাপরর াঅনায গরঙকগট পরফ এযকভ- httpexamplecomwp-admin

postphppost=43ampaction=trashamp_wpnonce=83a08fcbc2

এখাপরন 83a08fcbc2 এগট র nonce মা ২৪ ঘনটা সথায়ী থাপরক রধভাতর এগট মগদ াঅনায িাযা ফযফরত য় এফাং গডগরট য় ডাসট 50 মখন াঅগন গরপরঙক গিক কপরযন ফপরচপরয় গযতবনড র ডম Nonce ডকান malicious াআউজায ফেপরত াপরযনা এফাং গঠক গরঙক িাড়া nonce এযয ডপরজ চপরর মায় ডমখাপরন াযগভন থাপরক না াঅপরযা গফসতাগযত ডদখন httpcodexwordpressorgWordPress_Nonces

39

Nonce URL ততগয এফায চরন াঅপরগয উদাযন ডথপরক Nonce URL ততগয কগয একগট ডাসট গডগরট কযায জনয wp_nonce_url() পাাংন ফযফায কযা য় ltphp

$url = wp_nonce_url( $url $action )

gt

েথভ যাযাগভটায $url পরচছ গসটরাং URL এপরডর এয মাপরক াঅগন কপরয়যী গসটরাং এয Nonce কযপরত চান াফযফহরত পলাগগপরনয গডগরট গরঙক এযকভ থাপরক- httpexamplecomwp-admineditphppage= liton

_utagsampliton_action=deleteampid=6

এখাপরন ডদখন যাযাগভটায liton_action এফাং এয টযাগ াঅাআগড গিতীয় যাযাগভটায পরচছ $action একগট গসটরাং মা াঅগন একগট াফপরজকট এয জনয একগট action ততগয কযপরফন উপরয ডদখরাভ delete এযাকন এয টযাগ াঅাআগড 6 সতযাাং $action যাযাগভটায পরত াপরয bdquoliton_utags-delete_tag6‟ গনপরচ ফাসতফ উদাযন ডদগখ- ltphp

$delete_url = add_query_arg(array( liton _action=gtdeleteid=gt$id) )

$nonced_url = wp_nonce_url( $delete_url bdquoliton _utags-delete_tag$id )

gt

lta href=ltphp echo $nonced_url gtgtdeleteltagt

এাআ টযাগগট পরফ গডগরট গরঙক এখাপরন add_query_arg() পাাংন ফযফায কযা পরয়পরি মা কাপরযনট URL ডক এযাপরয যাযাগভটায এয ভপরধয যাপরখ ানযবাপরফ ফরপরর এগট ডমাগ কপরয এযকভাঃ liton_action=deleteampid=6 amp liton_action=deleteampid=6

Nonce Form ততগয Nonce পভডপরকও ডোপরটকট কপরয wp_nonce_field() পাাংপরনয ভাধযপরভ ltphp

wp_nonce_field( $action $name $referer $echo ) gt

$action ( string) (optional) - action নাভ াআউগনক identifier optional

গকনত recommended $name (string) (optional) ndash গপরডন গপলড পভড ডবগযপরয়ফর নাভ $referer (boolean) (optional) ndash গডপলট গপরপরফ true থাপরক ডমখাপরন গপলড

ডবগরপরডন এয দযকায য়

40

$echo (boolean) (optional) - গডপলট গপরপরফ true থাপরক ডমখাপরন াঅউটট ডদখাপরনায ফা গপরডন পভড গপলড গযটানড কযায জনয দযকায য়

পপরভড াঅনায action এয নাভ গদন ltform method=postgt

lt-- some inputs here --gt

ltphp wp_nonce_field(name_of_my_actionname_of_nonce_field) gt

ltformgt

াঅভযা একগট পলাগগন ফানাপরফা ডমখাপরন াফযফরত টযাগগপররাপরক াঅভযা ভযানয়াগর গডগরট ফা গযপরনভ কযপরত াযফ এগট একট ফড় গকনত াপরনক গফলয়াআ াঅপরগাআ াঅপররাচনা কযা পরয়পরি ডদখপররাআ ফেপরত াযপরফন একগট ফাসতফধভডী উদাযন গনপরচ গদরাভ- ltphp

Plugin Name Liton Unused Tags

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add an entry for our option page to the Posts menu

add_action(admin_menu liton_utags_add_page)

function liton_utags_add_page()

add_posts_page( Unused Tags Unused Tagsmanage_optionsliton_utags

liton_utags_option_page )

Catch any liton_action parameter in query string

add_action( admin_init liton_utags_do_action )

Proceed to requested liton_action if applicable

function liton_utags_do_action()

if( isset( $_REQUEST[liton_action] ) )

return

if( current_user_can( manage_options ) )

wp_die( Insufficient privileges )

41

$id = $_REQUEST[id]

$action = $_REQUEST[liton_action]

if( $action == done )

add_action( admin_notices liton_utags_message )

return

check_admin_referer( liton_utags-$action_tag$id )

switch( $action )

case rename

$newtag = array( name =gt $_POST[name] slug =gt

$_POST[name] )

wp_update_term( $id post_tag $newtag )

break

case delete

wp_delete_term( $id post_tag )

break

wp_redirect( add_query_arg( array( liton_action =gt done )

) )

Admin notice

function liton_utags_message()

echo ltdiv class=updatedgtltpgtAction

completedltpgtltdivgt

Draw the tag management page

function liton_utags_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtUnused Tagslth2gt

ltphp

if( $tags = liton_utags_find_orphans() )

echo ltpgtYou currently have count( $tags ) unused

tagsltpgt

echo ltolgt

foreach( $tags as $tag )

42

$id = $tag-gtterm_id

$name = esc_attr( $tag-gtname )

$delete_url= add_query_arg(

array(liton_action=gtdeleteid=gt$id) )

$nonced_url= wp_nonce_url( $delete_url

liton_utags-delete_tag$id )

gt

ltligt

ltform action= method=postgt

ltphp wp_nonce_field( liton_utags-rename_tag$id )

gt

ltinput type=hidden name=liton_action

value=rename gt

ltinput type=hidden name=id value=ltphp echo

$id gt gt

ltinput type=text name=name value=ltphp echo

$name gt gt

ltinput type=submit value=Rename gt or

lta href=ltphp echo $nonced_url gtgtdeleteltagt

this tag

ltformgt

ltligt

ltphp

else gt

ltpgtYou have no unused tagsltpgt

ltphp endif gt

ltolgt

ltdivgt

ltphp

Find unused tags return them in an array

function liton_utags_find_orphans()

global $wpdb

$sql = SELECT termsterm_id termsname FROM

$wpdb-gtterms terms

INNER JOIN $wpdb-gtterm_taxonomy taxo

ON termsterm_id=taxoterm_id

WHERE taxotaxonomy = post_tag

43

AND taxocount=0

return $wpdb-gtget_results( $sql )

gt

ডযাপরফাপরডড এাআ পলাগগপরনয ডভন াওয়া মাপরফ ডাসট এয াফপরভন গপরপরফ গনপরচ ডদখন-

এফায পলাগগন ডভনপরত গিক কপরয ডদগখ পলাগগপরনয ডবতপরযয কাজ-

উপরয ডদখন াঅগভ একগট টযাগ ততগয কপরযগিরাভ l i নাপরভ এগট এখাপরন ডদখাপরচছ াঅগভ চাাআপরর এগট এগডট ফা গডগরট কযপরত াগয এফায গডগরট গরঙক এ ভাউপরয কাডয ডযপরখ গনপরচ গরঙক ডদখন ফা গডগরট করন একগট টযাগ াঅভায এখাপরন URL গট এযকভ httplocalhostdev-litonwp-

admineditphppage=liton_utagsampliton_action=doneampid=4amp_wpnonce=30a44b7

986

এখাপরন াঅগভ liton_action=done ফযফায কপরযগি Nonces এয পাাংনগপররায নাভ গনপরচ গদরাভ াঅনাযা ডদপরখ গনপরফন াআনটাযপরনট ডথপরক wp_nonce_field()

wp_nonce_url()

wp_verify_nonce()

wp_create_nonce()

44

check_admin_referer()

check_ajax_referer()

ডাটাপরফ াঅনাযা ডমপরত গএাআচগ গনপরয় কাজ কপরযন এগকউএর ডাটাপরফ এয াপরথ ফাাআ কভপরফী গযগচত এয গনটযাকস গপররা ডভাটাভগট ফায জানা একাআ বাপরফ াপরনপরকাআ ওয়াডডপরেপরও ডাটাপরফ ডকাড গরপরখন এটা ডকাগডাং এয জনয খাযা গদক াঅগভ নযভার গএাআচগ- এগকউএর ডকাড এয উদাযন গদগচছ- ltphp

$sql=rdquoINSERT INTO $wpdb-gtposts(post_title) VALUES(bdquo$title‟)rdquo

$wpdb-gtquery($sql) gt

এফায ওয়াডডপরেপরয সটযানডাডড ডকাগডাং গপরসটভ ডদখন- ltphp

$wpdb-gtinsert($wpdb-gtposts

array(bdquopost_title‟ =gt $title)

array(bdquos‟)

)

gt

ডাটাপরফ গগকউয কযায জনয াঅপরডট াাপরযন ডদখাফ- গনপরচয ডকাডগট খাযা েযাকগট ltphp

$wpdb-gtquery(ldquoUPDATE $wpdb-gtposts SET post_title=‟$newTitle‟ WHERE

ID=$my_idrdquo )

gt

উপরযয ভত কপরয না গরপরখ গনপরচয ভত কপরয গরখন- ltphp

$wpdb-gtupdate($wpdb-gtposts

Array(bdquopost_title‟ =gt‟$newTitle‟)

Array(bdquoID‟ =gt$my_id

)

gt

ানর বাপরফ ানযানয াাপরযন গপররা গরখপরফন

45

াধযায়- াঅটাঃ ডরাকারাাআপরজন এফাং Set t i ngs API

ডরাকারাাআপরজন ডরাকারাাআপরজন একগট গরতবনড গফলয় এয পাাংনগপররা র- load_theme_textdomain()

load_plugin_textdomain()

উদাযন- ltphp $var=__(bdquoHello‟‟domain‟) gt

ltphp _e(bdquoHello‟‟domain‟) gt

গফসতাগযত গনপরচয গরপরঙক ডদখন- httpcodexwordpressorgI18n_for_WordPress_Developers

ডগটাং API

ডগটাং API পরচছ াঅগন গকি ান ততগয কযপরফন মা াআনটাযনার বাপরফ াঅনায পলাগগপরন এপলাাআ পরফ মখন াঅগন াআউজায- গডপাাআন ান ততগয কযপরফন াঅনায পলাগগপরনয জনয তখন Settings

API ndashএ াঅনায ডকাড মতটা ারন জ করন Settings API াঅনায ডম কাজগপররা handle কপরয-

ওয়াডডপরেপরক জাগনপরয় ডদয় ডম াঅগন গনজসব ান ফযফায কযপরফন াঅনায াআনটপরক পাাংপরনয ভপরধয উপরেখ কযপরফ ডফগয বাগ ান ডজ গনপরজাআ ততগয কযপরফ $_POST ডাটা গপররাপরক ভগনটয কপরয ান ততগয এফাং াঅপরডট কপরয(মগদ েপরয়াজন য়)

Settings API পাাংন Settings API পাাংপরন গতনগট ডসট থাপরক- ১ েথপরভ ওয়াডডপরেপরক ফপরর ডম াঅগন নতন ডগটাং ফযফায কযপরফন াঅনায পলাগগপরনয জনয ২ এয পরয ডগটাং গডপাাআন করন (text areas input boxes and any

HTML form element) এফাং এপরদযপরক একাপরথ রে কপরয যাপরখ ৩ ওয়াডডপরেপরক াঅনায ডগটাং actual form এ ডদখাপরনায জনয ফপরর

46

এফায াঅভযা একগট পলাগগন ফানাপরফা Administration Page ndashএ ডযপাপরযনস গপরপরফ ডদখপরত াপরযন- httpcodexwordpressorgAdding_Administration_Menus

httpcodexwordpressorgFunction_Referenceadd_options_page

httpcodexwordpressorgAction_ReferenceActions_Run_During_an_Admin_P

age_Request

পলাগগপরনয এডগভন ডজ পরফ এযকভ- httpexamplecomwp-adminoptions-generalphppage=liton_myplugin

েথপরভ াঅভযা ডভন ততগয কযফ াঅপরগয ভত কপরয- Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

এফায ান ডজ এ পভড গনপরয় গকি ডগটাং ডদফ function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

উপরযয ডকাপরড াঅভযা একগট পপরভডয ভপরধয রধ াফগভট ফাটন এফাং My Plugin নাপরভ ডজ ততগয কপরযগি ডযাপরফাপরডড ডদখন-

47

ডগটাং এয াফ ডভন গপরপরফ My Plugin াঅপরি এফাং My Plugin ডত গিক কযপরর াঅভযা উপরযয ডজ ততগয কপরযগি ডমখাপরন াফগভট ফাটনগট ডদখাপরচছ এফায গতনগট যাযাগভটায ডযগজসটায কযফ- ltphp

register_setting( liton _myplugin_options liton _myplugin_options liton

_myplugin_validate_options)

gt

েথভগট ডগটাং রেপরয নাভ গিতীয়গট ান নাভ মা াঅভযা get_option() পাাংন গদপরয়ও ডপরত াগয ততীয়গট করফযাক পাাংন এগট একগট গসটরাং ডযপাপরযনস পাাংন এখাপরন াঅভযা নাভ

48

গদপরয়গি liton _myplugin_validate_options মা া কযপরফ পপরভডয কর ডব ডগটাং াঅভযা এটা পরয গডপাাআন কযফ

ডগটাং গডপাাআন ডকন add_settings_field() এফাং add_settings_section() পাাংন গদপরয় াঅভযা াঅভাপরদয কর ডগটাং গডপাাআন কযফ ltphp

add_settings_section( liton_myplugin_main My Plugin Settings

liton_myplugin_section_text liton _myplugin)

add_settings_field( liton _myplugin_text_string Enter text here

liton _myplugin_setting_input liton _myplugin liton _myplugin_main)

gt

add_settings_section() পাাংন গদপরয় াঅভযা ডদখাফ াঅপরর ডজ এ ডকন ডকভন ডদখাপরফ এয চাযগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ ডকন টাাআপরটর ltH3gt টযাপরগয ভপরধয করফযাক পাাংন এয নাভ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ (page= liton _myplugin এগট

URL এয াাং গপরপরফ থাকপরফ) গিতীয় যাযাগভটায add_settings_field() পপরভডয াআনট গপরপরফ ডদখাপরনা পরয়পরি এখাপরন াাচগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ পরযয গপপরলড গক গেনট কযা পরফ তা ডটকসট গপরপরফ ডদখাপরনা পরয়পরি(Enter text

here)

করফযাক পাাংন পপরভড গেনট কযপরফ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ ডগটাং ডপরজয ডকন গপলড মা add_settings_section() পাাংপরন গডপাাআন

কযা পরয়পরি ltphp

Explanations about this section

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

49

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton _myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name= liton _myplugin_options[text_string]

type=text value=$options[text_string] gt

gt

গিতীয় পাাংন ান বযার text_string ডক এযাপরযপরত ডসটায কপরয ডযপরখপরি এফায াআউজায াআনট বযাগরপরডট কযফ- ltphp

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace([^a-zA-Z]$input[text_string] )

return $valid

gt

পভডপরক ডযনডায কযফ- ltphp

Draw the options page

function liton_myplugin_options_page()

gt

ltdiv class=wrapgt

ltphp

screen_icon()

gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp

settings_fields( liton_myplugin_options)

do_settings_sections(liton_myplugin)

50

gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

settings_fields() পাাংনগট ডযপাপরযনস গপরপরফ ফযফায কযা পরয়পরি মা াঅভযা register_setting() পাাংপরন গডপরিয়ায কপরযগি do_settings_sections() পাাংনগট কর কযপরফ কর াঅউটট ডকন এফাং পভড গপলডপরক মা াঅভযা পরফড গডপাাআন কপরযগি াঅভাপরদয কাজ ডল এফায পরযা পলাগগনগট ডদখফ- ltphp

Plugin Name Settings API example

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

Draw the option page

function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save

Changes gt

ltformgtltdivgt

ltphp

51

Register and define the settings

add_action(admin_init liton_myplugin_admin_init)

function liton_myplugin_admin_init()

register_setting( liton_myplugin_options

liton_myplugin_options

liton_myplugin_validate_options )

add_settings_section( liton_myplugin_main My Plugin

Settings

liton_myplugin_section_text liton_myplugin )

add_settings_field( liton_myplugin_text_string Enter text

here

liton_myplugin_setting_input liton_myplugin

liton_myplugin_main )

Draw the section header

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton_myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name=liton_myplugin_options[text_string]

type=text value=$text_string gt

Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

return $valid

gt

52

ডদখন ডযাপরফাপরডড ডকভন ডদখায়-

পরয় ডগর াঅভাপরদয েথভ নডাাংগ পলাগগন ান ডজ াঅপরযকগট গজগন ডমটায জনয এতগকি পলাগগন URL এপরডর- httplocalhostdev-litonwp-adminoptions-

generalphppage=liton_mypluginampsettings-updated=true

াঅভায এখাপরন এযকভ ডদখাপরচছ ডটকসট ফপরকস ডকান গকি গরপরখ ডব কযায য এফাপরয াঅপরযকগট গজগন ডদখফ াঅভযা াপরনক ভয়াআ াপরনক পলাগগপরনয াআনট গপপরলড বর ডাটা াআনট কযপরর এযয ডভপরজ ডদখায় এাআ কাজগট কযফ এফায াঅভযা এখাপরন esc_attr() ফা esc_html() ফযফায কগযগন সতযাাং াঅভাপরদয গরগভপরটন থাকপরি ডবগরপরডট পাাংনগট একট এগডট কগয গনপরচয ভত কপরয Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

if( $valid[text_string] = $input[text_string] )

add_settings_error(liton_myplugin_text_stringliton_myplugin_texterror

53

Incorrect value enterederror)

return $valid

উপরয ডদখন add_settings_error() পাাংন ফযফায কপরযগি মা এযয ডচক কযপরফ পপরভডয াঅগভ একগট বর ডাটা(পরসপার কযাপরযকটায) াআনট কপরয ডদখরাভ এযয ডদখাপরচছ-

তায ভাপরন াঅভযা পর পরয়গি াঅনায পলাগগনগট এগডট কপরয ডনপরফন ডকায ডকন এফাং গপপরলডয গরসট গদরাভ াঅনাপরদয সগফধায জনয

54

CSSJS পাাআর মি কযা

াঅনায পলাগগপরন গএএ ফা জাবাগিে ডমাগ কযপরত পরত াপরয াঅগন চাাআপরর ফাগপরযয ডকান ফা াঅনায ততগয ডকান গএএ ফা জাবাগিে পাাআর ডমাগ কযপরত াপরযন তপরফ এপরকষপরতর াঅভযা ডমবাপরফ HTML এ পাাআর ডমাগ কগয ডযকভ না function liton_scripts()

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtojqueryjsrdquogtltscriptgt‟

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtoscriptjsrdquogtltscriptgt‟

add_action(bdquowp_head‟‟liton_scripts‟)

এগট মপনডরপর বর িগত গনপরচ ডদখন ওয়াডডপরেপর গকবাপরফ পাাআর মি কযপরত য়- function liton_scripts()

wp_enqueue_script(bdquojquery‟)

wp_enqueue_script(bdquotheme-scripts‟‟pathtoscriptsjs‟)

add_action(bdquowp_enqueue_script‟‟liton_scripts‟)

ানর বাপরফ াঅগন সটাাআরীট ডমাগ কযপরত াপরযন- function liton_styles()

wp_enqueue_ style (bdquocss‟)

wp_enqueue_ style (bdquotheme- styles‟pathto stylescss‟)

ডযপাপরযনস ডদখন- httpcodexwordpressorgFunction_Referencewp_enqueue_script

httpcodexwordpressorgFunction_Referencewp_enqueue_style

টডপরকাড টডপরকাড পরচছ ওয়াডডপরেপরয ডসপগগপক ডসপার টযাগ মা াঅগন ডাসট ফা ডপরজয ভপরধয াআনাটড কপরয ানয ডকান কনপরটনটপরক ওপরয়ফাাআপরটয ভপরধয গযপরপল কযপরত াযপরফন মগদ াঅগন গযারাগয টাাআপরয ডকান পলাগগন ফযফায কপরয থাপরকন তাপরর াঅনায ধাযনা থাকায কথা মাাআ ডাক াঅগভ কপরয়কগট উদাযি ডদখাফ

55

েথপরভ একগট পলাগগন ততগয কযফ ডমখাপরন add_shortcode() নাপরভয একগট পাাংন থাকপরফ এগট রগট যাযাগভটায েন কপরয েথভগট টডপরকাপরডয নাভ গিতীয়গট ডম পাাংনপরক কর কযপরফন ডগট াঅভযা একগট উদাযন ডদগখ- ltphp

Plugin Name Liton Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(litonhi)

function hi()

echo Hello World

gt

উপরয ডদখন খফ ডিাট গকনত াঅগন চাাআপরর এয ফযফায াপরনক গফসতত কযপরত াপরযন এখাপরন টডপরকাড নাভ পরচছ liton াঅয এগটপরক ডরখা য় এবাপরফ [liton] াঅভযা ডাপরসটয ভপরধয াআনাটড কপরয ডদগখ াঅউটট ডকভন ডদখায়-

এফায াঅউটট ডদগখ-

56

াঅভাপরদয ততগয কযা টডপরকাড পরবাপরফাআ কাজ কযপরি াঅপরযকগট উদাযন ডদখফ াঅনাযা াপরনপরকাআ গগর এডপরনস গনপরয় কাজ কপরযন াঅনাযা াপরনপরকাআ এডপরনস এয জনয পলাগগন ফযফায কপরযন গকনত চাাআপররাআ এাআ কাজগট াঅনাযা গনপরজয ভত কপরয াগজপরয় গনপরত াপরযন গগপররয কাপরি ফ ডাসট বযার ায়না াঅনাযা মাযা একসাটড াঅপরিন তাযা এটা বার কপরয জাপরনন তাাআ াপরনপরকাআ গগপররয ডকাড ফ ডপরজ ডদখাপরত চান না এজনয পলাগগন ফযফায কপরয রাব য়না কাযন পলাগগপরন জায়গা গপকসড থাপরক এপরত কপরয াঅগনডাং ও কভ য় াঅনাযা টডপরকাড ফযফায কপরয ডমপরকান জায়গায় এড ডদখাপরত াপরযন গনপরচ াঅগভ রগট টডপরকাড ততগয কপরযগি র‟ধযপরনয এড ডদখাপরনায জনয ltphp

Plugin Name Liton Adsense Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(adsense_468adsense_468_60)

add_shortcode(adsense_250adsense_250_250)

function adsense_468_60($atts)

return ltscript type=textjavascriptgtlt--

57

google_ad_client = ca-pub-0956247412222369

468x60 created 101510

google_ad_slot = 4372705450

google_ad_width = 468

google_ad_height = 60

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

function adsense_250_250($atts)

return ltscript type=textjavascriptgtlt--

google_ad_client = ca-pub-0956247412222369

250x250 created 81809

google_ad_slot = 9368091893

google_ad_width = 250

google_ad_height = 250

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

gt

একগট টডপরকাড ফযানায টাাআপরয জনয এফাং াঅপরযকগট ২৫০২৫০ াাআপরজয এফায ডাপরসট ডমপরকান একগট টডপরকাড াআনাটড করন ডমখাপরন াঅনায ডদখাপরনায েপরয়াজন ভপরন কপরযন াঅগভ রগট ডকাড ডটসট কপরয ডদখরাভ-

58

এফায াাআপরটয াঅউটট ডদগখ-

রগট এডাআ ডদখাপরচছ াঅপরযা াপরনক কাপরজ াঅগন টডপরকাড ফযফায কযপরত াপরযন ডযপাপরযনসাঃ httpcodexwordpressorgShortcode_API

59

াধযায়- নয়াঃ পলাগগন উদাযন

ওয়াডডপরেপরয ডডটটাাআভকপরভনট নামবায ফাাংরা কযায পলাগগন াঅভাপরক কপরয়কজন ফপররগিপররন ওয়াডডপরেপরয গডপলট ডডটটাাআভকপরভনট নামবায ফাাংরা য়না রযাাংগপরয়জ ফাাংরা কযায যও ডডটটাাআভকপরভনট নামবায গপররা াআাংপরযগজ ডথপরক মায় গনপরচয পলাগগনগট ফযফায কপরয ডদখপরত াপরযন- ltphp

Plugin Name Liton Bangla datetimecomment number

Plugin URI httpliton-onlinecomplugins

Description Bangla datetimecomment number

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

This function converts all english numbers to bangla number

function make_bangla_number($str)

$engNumber = array(1234567890)

$bangNumber = array( ১ ২ ৩ ৪ ৫ ৬ ৭ ৮ ৯ ০ ) $converted = str_replace($engNumber $bangNumber $str)

return $converted

add_filter( get_the_time make_bangla_number )

add_filter( the_date make_bangla_number )

add_filter( get_the_date make_bangla_number )

add_filter( comments_number make_bangla_number )

add_filter( get_comment_date make_bangla_number )

add_filter( get_comment_time make_bangla_number )

gt

60

সলাাআডায পলাগগন াঅভযা এাআ ফাআপরয়য কর গটউপরটাগযয়াপরর মা মা গখরাভ তা এফায একগট নডাাংগ পলাগগপরনয এপলাাআ কযফ সলাাআডায পলাগগন মপপরকড াঅভযা ফাাআ জাগন একগট ওপরয়ফাাআপরটয ডচাযা ারপরট ডদয় একগট সলাাআডায াপরনক ডাাআনাগভক ভপরন য় ডদখপরতও াপরনক বার রাপরগ এাআ পলাগগপরন াঅভযা এডগভন যাপরনর ডথপরক াআপরভজ ডমাগ কযফ এফাং তা াঅভাপরদয াাআপরট ডদখাফ চরন কাজ রর কগয- েথপরভ গনপরবা সলাাআডায এয ওপরয়ফাাআপরট মান এফাং jQuery Plugin ডাউনপররাড করন

ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom Version 10

gt

াঅভযা পলাগগপরনয ডডায ততগয কযরাভ

পলাগগন গরপরসট ডদখাপরচছ bdquoLitons Nivo Plugin‟ াঅভাপরদয েথভ কাজ পরচছ custom post

type ওয়াডডপরে পাাংনাগরগট একগট নতন কাসটভ ডজ ততগয কযপরত custom post type

ফযফহরত পরফ ডমখাপরন একগট াআপরভজ থাকপরফ াঅভযা রধ টাাআপরটর ডনভ এফাং াআপরভজ াঅপররাডায গপরপরফ গপচায াআপরভজ পাাংনাগরগট ফযফায কযফ function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_function 600 280 true)

61

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

add_action(init np_init)

উপরযয ডকাপরড np_init() পাাংনগট রক কপরযগি মা ডডায যান কযায াঅপরগ যান পরফ াঅয এজনয register_post_type() পাাংনপরক এয যাযাগভটায গদপরয় np_init() পাাংপরনয ডবতপরয মি কপরযগি এটা মগদ না কযতাভ তাপরর ldquoHeaders already sentrdquo ডভপরজ ডদখাত এাআ ডভপরজগটয াপরথ াপরনপরকাআ গযগচত াঅা কগয register_post_type() পাাংন গদপরয় াঅভযা াআপরভজ মি এফাং ভযাপরনজ কযফ ভরত াঅভযা একগট নতন custom post type ডমাগ কপরযগি np_images নাভ গদপরয় নতন custom post type ডক ডগটাং বযার গপরপরফ াঅযগপরভনট া কপরযগি $args ডবগযপরয়ফরগট ট ডরপরবর ডভন ততগয কপরয াঅপরগাআ ডদপরখগি পলাগগনগট এগকটপরবট কযপরর াঅভযা গনপরচয ভত ডদখপরত াফ-

এফায গিে এফাং সটাাআরীট ডক মি কযফ- add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

এফায রক কযা পাাংনগপররা গডপরিয়ায কগয- function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__) array( jquery ))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

62

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

উপরযয ডকাডগপররা নতন কপরয ফিডনা কযায গকি ডনাআ াঅপরগাআ wp_enqueue_style() এফাং wp_enqueue_script() মপপরকড ফরা পরয়পরি নতন াঅপরযকগট পাাআর ততগয করন একাআ গডপরযকটগযপরত scriptjs এফাং গনপরচয ডকাডটক গদন- jQuery(document)ready(function($)

$(slider)nivoSlider()

)

াআপরভজপরক গযাাআজ করন- add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

াঅভযা এাআ পলাগগনগটপরক উাআপরজট গপরপরফও ফযফায কযফ ডগট পরয ডদখফ াঅপরযকগট গজগন মগদ গথপরভ না ডদয়া থাপরক ডজনয থামবপরনাআর াপরাটড গদপরয় গদন- add_theme_support( post-thumbnails )

এফায ওয়াডডপরেপরয কাপরযনট ডাসট কপরয়যী কযায ডকাড াঅয $result ডবগযপরয়ফপরর ডমফ ltdivgt টযাগ ফযফায কযা পরয়পরি তা jQuery Plugin গট একসিাকট কপরয indexhtml ডজগটয ডভাআন সলাাআডায ডকাডগট ডদখন একাআ াঅপরি রধ ডখানকায ltdivgt টযাগ গপররাপরক কগ কপরয এাআ পলাগগপরন ফযফায কযা পরয়পরি এফায টডপরকাড গদন- add_shortcode(np-shortcode np_function)

এাআ টডপরকাড গএাআচগ পাাংনপরক রক কযপরফ এফাং এয ভধয ডথপরক সলাাআডপরায কনপরটনট ডক গযটানড কযপরফ াঅভাপরদয টডপরকাড পরচছ [np-shortcode] াঅভযা পলাগগপরন মাাআ এফাং একগট িগফ মি কগয গপচাযড াআপরভজ গপরপরফ গনপরচ ডদখন-

63

াঅগভ াঅপরযকগট ডজ ততগয কপরযগি ডমখাপরন টডপরকাড গদপরয়গি

াঅউটট ডজ ডদগখ এফায-

64

পরয় ডগর াঅভাপরদয সলাাআডায পলাগগন পরযা ডকাডগট গনপরচ গদরাভ- ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

65

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

66

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

এফায াঅগন মগদ উাআপরজট গপরপরফ ফযফায কযপরত চান তাপরর গনপরচয ডকাডটক গদন- class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

67

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

echo $after_widget

াঅপরযা রগট কাজ কযপরত পরফ াঅনাপরক এক াআপরভজ াাআজ উাআপরজট এয জনয গঠক কপরয গদপরত পরফ- add_image_size(np_widget 180 100 true)

াঅপরযকগট র উাআপরজট এযাকন রক ডমাগ কযা add_action(widgets_init np_widgets_init)

উাআপরজট পরযা ডকাড াঅফায গদরাভ- ltphp

Plugin Name Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Ciprian Turcu

Version 10

68

class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

69

echo $after_widget

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

70

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(widgets_init np_widgets_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

71

পলাগগন গনপরয় এত ডিাট গযপরয ডরখা মভফ নয় এজনযাআ ভপরন য় পলাগগন গনপরয় ডকউ ডরপরখন না কাযন এখাপরন এত গফলয় াঅপরি মা াঅপররাচনা কযপরত ডগপরর ৫০০ ডজ ায পরয় মাপরফ ডফাোয সগফধাপরথড াঅগভ মথামভফ উদাযন গদপরয় ডফাোপরনায ডচষটা কপরযগি াঅগভ এখাপরন টাপরগডট কপরযগি মাযা টকটাক জাপরন পলাগগন মপপরকড এডবানস ডরপরবপররয নয় কাযন তাযা জাপরনন াঅভায উপরেশয গির মাযা জানপরত চায় তাপরদযপরক জানাপরনা এখাপরন ডমফ গফলয় াঅপররাচনা কযা পরয়পরি তা ডভাটাভগট ভাপরনয একগট পলাগগন ফানাপরনায জনয মপরথষট তপরফ ভাপরনাননয়পরনয জনয াঅনাপরক গনপরজাআ খাপরজ গনপরত পরফ াঅনায জনয ডকানটা বার পরফ াঅগভ রধ গদক গনপরদডনা গদরাভ ভাতর এাআ ফাআগট রধভাতর ওয়াডডপরে রেপরয জনয ডরখা াপরনক বর ভরাগনত থাকপরত াপরয াঅনাযা কষভাসনদয দগষটপরত ডদখপরফন াঅগভ ডচষটা কপরযগি মতটা জ কপরয ডরখা মায় াপরনক ভয় ডদখা মায় ডম খফ ডিাট খাপরটা গফলয় গনপরয় াপরনপরকাআ নক কপরযন এটা গতয রাঃখজনক াঅনাযা গগপরর একট খাজপররাআ ভাধান াপরফন াঅপরগ গনপরজ ডচষটা করন তায পরয ানযপরক ভাধাপরনয জনয গজজঞাা করন াঅভায জনয ডদায়া কযপরফন বাপররা রাগপরর জানাপরফন খাযা রাগপররও জানাপরফন তাপররাআ াঅভায গযশরভ সবাথডক পরফ ভতাভত জাগনপরয় াঅভাপরক ডভাআর কযপরত াপরযন litonice09gmailcom |

72

Page 16: Wordpress Plugin Development

17

এখন াঅগভ গকি াগতগযি গফলয় গনপরয় াঅপররাচনা কযফ ডমগপররা ডভপরন চরপরর বগফষযপরতয জনয বার পরফ াঅগভ একগট পাাংন গরপরখগি- add_filter(the_titleliton_modify_title)

function liton_modify_title($content)

return ucwords($content)

একট গফসতাগযত ফরপরর াঅভযা the_title এয ভধয গদপরয় মা া কযফ তা গপলটায কযপরফ এখাপরন াঅভযা ucwords the_title এয ভধয গদপরয় া কপরযগি এফায াঅপরযা টড পভড ডদগখ add_filter(the_title ucwords)

তায ভাপরন পরযা পলাগগনগট পরফ এযকভ- ltphp

Plugin Name Liton filter

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_filter(the_title ucwords)

gt

গক খফ জ রাগপরি এখাপরন ফপরর যাগখ ডম ucwords এগট গযগব কযপরফ the_title মা া কযপরি এফাং াপরটাপরভগটকযাগর গযটানড কযপরফ the_title এ সতযাাং এখাপরন গযটানড এয দযকায ডনাআ এফায াঅগন মগদ গএাআচগ বাডন ৫৩ ফযফায কপরযন তাপরর গনপরচয ভত কপরয anonymous function ফযফায কযপরফন াঅনাযা জাবাগিে ডজকপরয়গয‟য াপরথ গযগচত এগট াপরনকটাাআ এযকভ ltphp

Plugin Name Liton filter

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_filter(the_title function($content)

return ucwords($content)

)

gt

বার কপরয ডদখন ডতা াথডকযটা ডকাথায় গনপরজ গনপরজ কাজ কযপরর এবাপরফ কযপরফন াফশযাআ এগট একট এডবানস ডরপরফপররয কাজ মগদও পলাগগন ফানাপরনায ডকষপরতর এগট এখপরনা াঅদড নয় কাযন াপরনপরকযাআ গএাআচগ বাডন এখপরনা ৪ এাআ ডথপরক ডগপরি সতযাাং এাআ িগতগট একানতাআ গনপরজয জনয

18

এযাকন রক (Action Hooks) Action Hooks পরচছ ড ভসত রক ডমগপররা ওয়াডডপরেপরয রাাআপ াাআপরকর গনপরয় কাজ কপরয Action Hooks রাআ ধযপরনয add_action() remove_action() এাআ রকগপররা কাজ কপরয মখন ডকান ডাসট ডব কযা য় ডাসট াফগর কযা য় কপরভনট কযা য় ডকান বলগ ডাপরসট াথফা ওপরয়ফাাআপরট ডডাযপটায ডজনাপরযট য় এগপররা েগতগট একগট একগট কপরয Actions মখন াআউজায তায এডগভগনপরসটরটয ডভনপরত েপরফ কপরয এগপররা ফাআ Action Hooks এখাপরন াঅভযা কনপরটনটপরক গপলটায কযগিনা াঅভযা ওয়াডডপরেপরয গনগদডষট পাাংনগপররাপরক রক কপরয কাজ কযগি াঅভযা একগট উদাযন ডদগখ- ltphp

Plugin Name Liton Action

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(wp_footer function($content)

echo Hello This is Liton Arefin

)

gt

াঅনাপরদয সগফধাপরথড ডফাোয জনয গনপরচয ভত কপরয গরখন- ltphp

Plugin Name Liton Action

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(wp_footer liton_footer_action)

function liton_footer_action($content)

echo Hello This is Liton Arefin

gt

াঅভযা খফ ডিাট একগট উদাযন গদপরয় ডদখরাভ ডম action রক গকবাপরফ কাজ কপরয গনপরচ ডদগখ াাআপরট ডকভন ডদখায়-

19

উপরযয িগফপরত ডদখন াঅগভ Hello This is Liton Arefin এাআ রাাআনগট গেনট কপরযগি এফাং তা পটাপরযয ফাভ াপর এপরকফাপরয গনপরচ ডদখাপরচছ এফায ডাড ডকাড এ ডদগখ াঅপররাআ এয গজন টা ডকাথায় াঅপরি

উপরয ডদখন পটাপরযয গঠক গনপরচাআ রাাআনগট ডদখাপরচছ এফায াঅপরযকগট ফাসতফ এফাং খফাআ গরতবনড উদাযন ডদগখ এাআ পলাগগনগটয কাজ পরফ মখনাআ ডকান কপরভনট ডাসট পরফ তখনাআ এডগভনপরক ডভাআর াঠাপরফ ডম নতন কপরভনট ডাসট পরয়পরি মগদও ওয়াডডপরে এাআ কাজগট কপরয থাপরক াঅভযা এাআ কাজগট ভযানয়ারী কপরয ডদগখ ltphp

Plugin Name Liton Comments Mail

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(comment_post function()

$email= get_bloginfo(admin_email)

wp_mail(

$email

New Comment Posted

A new comment has been left on your blog

)

)

gt

এখাপরন comment_post নাপরভয রপরক একগট ডবগযপরয়ফর $email ndashএ এডগভন ডভাআরপরক ডসটায কপরযগি মাপরত কপরয ডাাআনাগভক বাপরফ ড ডমপরকান াাআপরটয এডগভন ডভাআরপরক গডপরটকট কযপরত াপরয তপরফ এপরকষপরতর মগদ bloginfo(admin_email) ফযফায কযা ত তাপরর এডগভন ডভাআরপরক গডপরটকট কযত গকনত get_bloginfo(admin_email) ফযফায কযায পপরর াঅভযা াআপরভাআর বযারগটপরক গযটানড কপরয ডসটায কযগি এফাপরয ওয়াডডপরেপরয গফলটাআন ডভাআর পাাংন wp_mail(emailsubjectmessage) এয ভত কপরয গরপরখগি বার কপরয ডদখন পলাগগনগট এগকটপরবট কপরয ডদখন াঅনায াাআট মগদ ানরাাআপরন থাপরক তাপরর গনপরজাআ একগট কপরভনট কপরয ডদখন াঅনায এডগভন ডভাআপরর একগট ডভাআর চপরর ডগপরি

20

াধযায়- চাযাঃ পলাগগন ডকাগডাং সটযানডাডড

পলাগগন এগকটপরবনগডএগকটপরবন পাাংন াঅগন মখন একগট পলাগগনপরক এগকটব কপরযন তখনাআ এগকটপরবন পাাংন গিগায য় এাআ পাাংনপরক register_activation_hook() ফপরর ltphp register_activation_hook($file $function) gt

Parameters

$file- োাআভাগয পলাগগন পাাআপররয াথ

$function- ডম পাাংনগট গিগায পরফ মখন পলাগগন এগকটপরবট য় ডমভনাঃ- ltphp

register_activation_hook(__FILE__ bdquoliton_plugin_install‟)

function liton_plugin_install()

do something cool stuff

gt

াঅভযা একগট পলাগগন ফানাাআ এবাপরফ-

ltphp

Plugin Name Liton Version

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

register_activation_hook(__FILE__ liton_plugin_install)

function liton_plugin_install()

If(version_compare(get_bloginfo(version)51lt))

deactivate_plugins(basename(__FILE__))

deactivate our plugin

gt

মখন াঅভযা পলাগগন গডএগকটপরবট কগয তখন পলাগগন গডএগকটপরবন পাাংন কর য়

21

ltphp

register_deactivation_hook ($file $function) gt

-

ltphp

register_deactivation_hook (__FILE__ bdquoliton_plugin_install‟)

function liton_plugin_install()

do something

gt

াঅপরযকগট গরতবনড গফলয় র াঅনাআনসটর ওয়াডডপরে াঅনাপরক পলাগগন াঅনাআনসটর এয জনয রগট ান গদপরচছ- uninstallphp file and the uninstall hook

uninstallphp

এগট ডভাটাভগট েনপরমাগয িগত এ ডভথড ফযফায কযায জনয াঅনাপরক uninstallphp নাপরভ একগট পাাআর ততগয কযপরত পরফ াঅনায পলাগগন গডপরযকটগযপরত পাাআরগট গনপরচয ভত পরফ- ltphp

মগদ ওয়াডডপরে এগকসট কযায াপরথ াঅনাআনসটর কর কযা না য় If(defined(bdquoWP_UNINSTALL_PLUGIN‟))

exit()

delete_option(bdquoliton_plugin_options‟)

াগতগযি ান এফাং কাসটভ ডটগফর ভপরি ডপরন gt

Uninstall Hook

গিতীয় িগত র Uninstall Hook মগদ াঅগন ডকান পলাগগনপরক গডগরট কযপরত চান এফাং uninstallphp পাাআর না থাপরক তাপরর এাআ রক এগকসগকউট য়(মগদ থাপরক) ltphp

register_uninstall_hook($file$function)

gt

22

ডকাগডাং সটযানডাডড পলাগগন ফানাপরফন গকনত াঅনায ডকাড ডকভন পরফ গচনতা াঅপরত াপরয ওয়াডডপরে াঅনায জনয একগট সটযানডাডড গদপরয় গদপরয়পরি মা াঅনাপরক ওয়াডডপরেপরয জনয পলাগগন গরখপরত ডগপরর পপররা কযপরতাআ পরফ httpcodexwordpressorgWordPress_Coding_Standards

ডফগক একগট উদাযন গদরাভ গনপরচ- ltphp

Short description

Longer more detailed description

param type $varname1 Description

param type $varname2 Description

return type Description

function boj_super_function( $varname1 $varname2 )

do function stuff

gt

গএাআচগ সটানডাডড াঅভযা াপরনপরকাআ গএাআচগয টড পভড(lt gt) ফযফায কগয এটা মপিডরপর ফজডন করন কাযন াপরনক ডাগসটাং ডকামপাগনপরতাআ এটা গডপলট গপরপরফ ফনধ কপরয ডদয়া থাপরক সটযানডাডড টযাগ ফযফায করন(ltphp gt)

এগকউএর ডসটটপরভনট পলাগগন ততগযয ভয় াঅনাপরক াপরনক ভয়াআ ডাটাপরফ ডথপরক াআনপযপরভন গনপরত পরত াপরয াপরনক রাাআপরনয ডকাড গরখপরত পরত াপরয ডপরকষপরতর বার েযাকগট পরচছ এগকউএর এয কভানড গপররা ফড় াপরতয াকষপরয ডরখা ডমভন- SELECT username FROM table1 WHERE status = active

23

াধযায়- াাচাঃ ওয়াডডপরেপরয াপরথ াআগনটপরেন

ডভন এফাং াফ ডভন ততগয করন াঅভযা াপরনক পলাগগপরনাআ ডদগখ ডম একগট ডভন াঅাআপরটভ গপরপরফ াঅভাপরদয ডযাপরফাপরডড ডদখপরত াাআ এফাং ডাআ ডভনপরত গিক কযপরর ডগটাং ডজ াঅপর ডখাপরন পলাগগপরনয মাফতীয় ডগটাং গদপরয় াঅভযা পলাগগন কনগপগায কগয এফায এাআ চভৎকায কাজগট কযফ াঅভযা

ট ডরপরবর ডভন েথভ িগত পরচছ একগট ট ডরপরবর ডভন ততগয কযা ডমগট াঅভযা ডযাপরফাপরডড ডভন গরপরসট একগট নতন াঅাআপরটভ গপরপরফ ডমাগ কযফ ডভন ততগয কযায জনয াঅনাপরক add_menu_page( ) পাাংন ফযফায কযপরত পরফ ltphp

add_menu_page( page_title menu_title capability menu_slug functionicon_url

position )

gt

add_menu_page() পাাংন গনপরচয যাযাগভটাযগপররা াপরাটড কপরয page_title- াঅনায ডপরজয টাাআপরটর গক পরফ lttitlegt tag এয ভপরধয menu_title- ডযাপরফাপরডড াঅনায ডভনয নাভ capability- ফডগনমন capability রাগপরফ একগট ডভন গবউ পরত menu_slug- সলাগ নাভ মা ডভনপরক ডযপায কপরয- তপরফ এগট াআউগনক পরত পরফ function- একগট ডপরজয কনপরটনট ডদখপরত ডম পাাংন কর কযা য় icon_url- একগট কাসটভ াআপরভজ গরঙক ডভন াঅাআকন ডদখাপরনায জনয position- ডভনয গজন াডডায ডমখাপরন এটা ডদখাপরনা পরফ

এফায াঅভযা একগট ফাসতফ উদাযন ডদখফ- ltphp

Plugin Name Liton Menu

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action( admin_menu liton_menu)

function liton_menu()

24

create custom top-level menu

add_menu_page( Liton Menu Page Liton Menu Page manage_options

__FILE__ liton_menu_settings_page plugins_url( imageswp-logopng

__FILE__ ) )

gt

াঅভযা একগট ট ডরপরবর ডভন ততগয কযরাভ ডদখন ডযাপরফাপরডড ডকভন ডদখায়-

Liton Menu Page নাপরভ একগট ডভন ততগয পরয় ডগপরি এফাপরয াঅভযা াফপরভন কযফ ভাপরন Liton Menu Page এয গনপরচ গকি ডগটাং ডভন(মগদ েপরয়াজন য়) াফ ডভন ডযগজসটায কযায জনয add_submenu_page( ) পাাংন ফযফায কযা য় ltphp

add_submenu_page( parent_slug page_title menu_title capabilitymenu_slug

function )

gt

parent_slug- ডভন সলাগ মা াঅভযা াঅপরগ গডপাাআন কপরযগি menu_slug- মা ডভনপরক াফপরভনপরত ডযপায কযপরফ ফাগক পাাংনগপররা াঅপরগয ভতাআ

এফায াফপরভনয জনয গকি াগতগযি ডকাড ডমাগ কগয create submenu items

add_submenu_page( __FILE__ About My Plugin About manage_options

__FILE___about liton_menu_about_page )

add_submenu_page( __FILE__ Help with My Plugin Help

manage_options

__FILE___help liton_menu_help_page )

add_submenu_page( __FILE__ Uninstall My Plugin Uninstall

manage_options

__FILE___uninstall liton_menu_uninstall_page )

25

পরযা ডকাডগট পরফ এযকভ- ltphp

Plugin Name Liton Menu

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action( admin_menu liton_menu

)

function liton_menu()

create custom top-level menu

add_menu_page( Liton Menu Settings Page Liton Menu Page

manage_options __FILE__

liton_menu_settings_page

plugins_url( imageswp-logopng __FILE__ ) )

create submenu items

add_submenu_page( __FILE__ About My Plugin About manage_options

__FILE___about liton_menu_about_page )

add_submenu_page( __FILE__ Help with My Plugin Help

manage_options

__FILE___help liton_menu_help_page )

add_submenu_page( __FILE__ Uninstall My Plugin Uninstall

manage_options

__FILE___uninstall liton_menu_uninstall_page )

gt

গনপরচ ডদখন াফপরভনগপররা ততগয পরয় ডগপরি-

26

ডভনপরক াঅপরগয ডভনয াপরথ মি কযা এফায াঅগ গিতীয় িগতপরত মগদ াঅনায পলাগগপরনয একগট ভাতর ডজ থাপরক একগট ভাতর ডপরজাআ াঅনায কর ডগটাং পরয় মায় তাপরর এাআ িগত েন করন ডমভন ডয়াগযাং াাআটগপররায জনয রধ াঅনায াঅাআগডপযানপরপরজয াঅাআগড দযকায য় এযকভ পলাগগন এধযপরনয পলাগগপরনয জনয াঅনায াগতগযি ডভন ততগয কযায দযকায ডনাআ ফযাং এপরত কপরয াআউজায গফযি ডফাধ কযপরত াপরযন এ ধযপরনয পলাগগনগপররা ডগটাং এয াফপরভন গপরপরফ থাপরক add_options_page() এাআ পাাংন গদপরয় এফ ডভন ডযগজসটায কযা য় ltphp

add_options_page( page_title menu_title capability

menu_slug function)

gt

এফায চরন এযকভ একগট ডভন ততগয কগয- ltphp

Plugin Name Liton Sub Menu

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action( admin_menu liton_submenu)

function liton_submenu()

create a submenu under Settings

add_options_page( Liton Menu Settings Page Liton Menu Page

manage_options __FILE__

liton_menu_settings_page)

27

gt

াফপরভন ততগয পরয় ডগপরি চরন ডদগখ ডযাপরফাপরডড ডকভন ডদখায়-

এপরকফাপরয গনপরচয গদপরক ডদখন Liton Menu Page নাপরভ একগট ডভন ততগয পরয়পরি

উাআপরজট ততগয কযা উাআপরজট ততগয কযায জনয ওয়াডডপরে WP-Widget িা গদপরয় ততগয কযা য় উাআপরজট এয একগট পযভযাট ডদখন গনপরচ ltphp

class My_Widget extends WP_Widget

function My_Widget()

processes the widget

function form($instance)

displays the widget form in the admin dashboard

function update($new_instance $old_instance)

process widget options to save

function widget($args $instance)

displays the widget

gt

28

উাআপরজট ডযগজসটায কযায জনয widget_init() পাাংনপরক রক কযা য় চরন একগট উাআপরজট ততগয কগয- ltphp

Plugin Name Liton Widget

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

class Messager extends WP_Widget

function __construct()

$params=array(

description =gtDisplay message to readers

name =gt Message

)

parent__construct(Messager $params)

public function form()

public function widget()

add_action(widgets_initliton_register_message)

function liton_register_message()

register_widget(Messager)

gt

29

খফ াধাযন একগট উাআপরজট পলাগগন এগট াঅভযা াআউজাযপরদযপরক একগট ডভপরজ ডদখাপরফা াাআডফাপরয ডটাাআ কযায ডচষটা কযগি এখন পলাগগনগট এগকটপরবট কপরয ডদগখ-

াঅভাপরদয উাআপরজটগট ডদখাপরচছ এফায াঅপরযা গকি পাাংনার কাজ কগয এগট মগদ াাআডফাপরয ডরাগ কপরয ডদন তাপরর ডকান কাজ কযপরফ না কাযন াঅভযা এখপরনা গকিাআ কগযগন পভড পাাংপরন গকি কাজ কগয মা উাআপরজট টাাআপরটর গপরপরফ ডদখাপরফ- public function form($instance)

extract($instance)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title)gtgtTitle ltlabelgt

ltinput

class=widefat

id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt

value=ltphp if(isset($title)) echo esc_attr($title) gt gt

ltpgt

ltphp

াঅভযা উপরয class=widefat ফযফায কপরযগি এাআ িা ফযফায কযায কাযপরন পভড এয াআনট গপলডগট াপরনক সনদয পরয়পরি

30

মগদ এাআ িা ফযফায না কগয তাপরর ডকভন ডদখাপরফ গনপরচ ডদখন-

াঅভাপরদয উাআপরজট পলাগগনগটয ডকাড গনপরচ ডদওয়া র ltphp

Plugin Name Liton Widget

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

class Messager extends WP_Widget

function __construct()

$params=array(

description =gtDisplay message to readers

name =gt Message

)

parent__construct(Messager$params)

31

public function form($instance)

extract($instance)

print_r($instance)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title)gtgtTitle ltlabelgt

ltinput

class=widefat

id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt

value=ltphp if(isset($title)) echo esc_attr($title) gt gt

ltpgt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(description)gtgtDescription

ltlabelgt

lttextarea

class=widefat

rows=10

id=ltphp echo $this-gtget_field_id(description) gt

name=ltphp echo $this-gtget_field_name(description) gtgtltphp

if(isset($description)) echo esc_attr($description) gtlttextareagt

ltpgt

ltphp

public function widget($args$instance)

extract($args)

extract($instance)

echo $before_widget

echo $before_title$title$after_title

echo ltpgt$descriptionltpgt

echo $after_widget

add_action(widgets_initliton_register_message)

function liton_register_message()

32

register_widget(Messager)

gt

এফায াঅভযা ডযাপরফাডড ডথপরক একগট ডভপরজ ডদফ গবগজটযপরদযপরক-

াঅভযা এাআ উাআপরজটগট ডাাআনাগভক বাপরফ কপরযগি কাযন এখাপরন lth2gt lth3gt lth4gt এ ধযপরনয ডকান টযাগ াঅভযা ফযফায কগযগন াঅভযা গথভ ডডপরবর কযগিনা সতযাাং এ কাজগট াঅভাপরদয ানযবাপরফ কযা দযকায গির এগট গথভ ডডপরবরায ডদগখপরয় ডদপরফন ডম ডকভন টযাগ পরফ াাআডফাপরয াাআপরটয াাআডফাপরয ডকভন ডদখায় তা ডদখন- াঅভযা রগট গথপরভ এগট ডটসট কপরয ডদখফ েথভগট টপরয়গনট াআপররপরবন

33

এফায াঅপরযকগট গথপরভ ডদগখ-

34

াধযায়- িয়াঃ পলাগগন পাাংন

গকি ডফগক পাাংন __() পাাংন

__() পাাংনগট গএাআচগপরত াঅনায ডটকসটপরক ডযগড কপরয িানসপররন এফাং গযটানড কপরয উদাযন গপরপরফ াঅগন একগট বযারপরক __() পাাংপরনয ভপরধয ডবগযপরয়ফর গদপরয় assign করন ভপরন যাখপরফন এাআ পাাংনগট রগট াঅনডাযপরিায(_) গদপরয় গগঠত একগট নয় ltphp

$text=__(bdquoWordpress is a wonderful publishing platform‟‟liton_plugin‟)

gt

_e() পাাংন _e() পাাংনগট াঅনায ডটকসবপরট ডরাকারাাআজ কপরয এটা গএাআচগপরত echo এয ভত কাজ কপরয ডকান ডটকসটপরক গিপরন ডদখাপরনায জনয এফায একট ভজা কগয মা রপরক ডদপরখগি াঅপরগাআ- _e() পাাংনগট গদপরয় াঅপরগয পলাগগনগট এগডট কযফ ltphp

Plugin Name Liton Action

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(wp_footer liton_footer_action)

function liton_footer_action()

Output the translated text

_e( This site runs off the coolest platform ever ampmdash

WordPress

liton-plugin )

gt

35

এফায াঅউটট ডদগখ

esc_attr__() পাাংন এাআ পাাংনগট esc_attr() এয ভত এগট এাআচগটএভএর এগিগফউটপরক escape কপরয াঅভযা এফায esc_attr__() এফাং __() এাআ রগট পাাংনপরক একগট কপরয পলাগগন ততগয কযফ ltphp

Plugin Name Liton Esc Attr

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

A function that returns a link to the sites terms of service

page

function liton_terms_of_service_link()

return lta href=httpliton-onlinecomtos title=

esc_attr__( Visit the Terms of Service page boj-plugin ) gt __( Terms of

Service liton-plugin ) ltagt

Display the output of the liton_terms_of_service_link()

function

echo liton_terms_of_service_link()

gt

পলাগগনগটয াঅউটট ডদখন-

36

এযকভ াঅপরযা গকি পাাংন াঅপরি ডমগপররা াঅনাযা ডদপরখ ডনপরফন াআনটাযপরনট ডঘপরট

esc_html__() Function

esc_attr() Function

esc_url() Function

esc_js() Function

esc_html() Function

esc_attr_e() Function

esc_html_e() Function

_x() Function

_ex() Function

esc_attr_x() Function

esc_html_x() Function

_n() Function

_nx() Function

_n_noop() Function

_nx_noop() Function

Translation

bull Poedit httppoeditnet

bull GlotPress httpglotpressorg

bull Launchpad httpstranslationslaunchpadnet

bull Pootle httppootlelocamotionorg

bull KBabel httpi18nkdeorg

bull GNU Gettext httpgnuorgsoftwaregettext

GlotPress এখন ওপরয়ফ ডফড টর গপরপরফ ফযফায কযা পরচছ ওয়াডডে েপরজপরকটয ডিপরন একজন াথফা গটপরভয জনয িানসপররগটাং পটওয়যায গপরপরফ

37

াধযায়- াতাঃ পলাগগন গগকউগযগট

গগকউগযগট কগমপউটাপরযয বালায় ldquoগগকউগযগটrdquo ভাপরন বীগতকয একগট বদ ডমভন Cross Site

Scripting(XSS) Cross Site Request Forgery(CSRF) SQL Injection Privilege

Escalation Vulnerabilities এফাং Holes রফডর ডকাড একগট াবডাপরযয সযকষায জনয রভকীয কাযন পরত াপরয

পলাগগপরনয গগকউগযগট গক াঅনায পলাগগনগট ডমন গগকউয য় vulnerabilities data integrity এফাং reliability ডথপরক

াঅনায পলাগগনপরক গক গগকউগযগট ডদপরফন ওয়াডডপরে এনবায়যনপরভপরনট াঅনায পলাগগনপরক গগকউগযগট ডদয়া খফ কগঠন কাজ নয় এফাং খফ ভয় াপরকষ গফলয়ও নয় ওয়াডডপরেপরয গনজসব গকি পাাংন এপরকষপরতর াঅনাপরক খফাআ াাময কযপরফ

াআউজায াযগভন াঅভযা াপরনক পলাগগন াআনসটর কযায পরযাআ ডদপরখগি ডম মখনাআ এডগভন যাপরনর এ েপরফ কযপরত মাাআ তখন একগট এযয ডভপরজ াঅপর ডভপরজগট গনপরচয ভত-

ডরখা াঅপরি- You do not have sufficient permissionshellip এটা গনশচয়তা ডদয় ডম ডমপরকান এযাকন ীভাফি থাপরক গনগদডষট গকি যাাআট গদপরয় ওয়াডডপরেপরয একগট কভন পাাংন র current_user_can() একগট উদাযন ডদাআ-

38

ltphp

Capability

if ( current_user_can(install_plugins) )

wp_die( Insufficient permissions )

Role

if( current_user_can(editor) )

wp_die( You cannot edit this setting )

gt

খফ তাড়াতাগড় াঅগন এাআ current_user_can() পাাংন ডচক কযপরফন না কাযন এটা গনবডয কযপরফ get_currentuserinfo() এাআ পাাংপরনয উপরয াঅয এয ফযফাপরয ীভাফিতা াঅপরি এটা একগট পলাপরগফর পাাংন(pluggable function) াঅয এয ডরাপরকন পরচছ wp-

includespluggablephp মা পলাগগন এগকটব ফায য ডরাড য়

Nonces

ডকউ এগটপরক াঅফায Nonsense( গনপরফডাধ) বাফপরফন নাএগট ওয়াডডপরেপরয বালায় Nonces কগমপউটাপরযয বালায় nonce ফা cryptographic nonce পরচছ ldquonumber used once rdquo এটা ডিাট এফাং সপষট গকি য যানডভ গসটরাং ডমভন- াওয়াডড মা গকি গনপরদড কপরয Nonce গপরডন গপলড পভডপরক Retrieve ফা display কপরয-

একজন ওয়াডডপরে াআউজায ডমপরকান একগট এযাকন (delete update save and such) একগট াফপরজকট(একগট ডাসট পলাগগন ডগটাং াআতযাগদ) ২৪ ঘনটায একগট ভয় ডিভ

ডমভন ডাসট 50 গডগরট কযপরফন াঅনায ওয়াডডপরে বলগ ডথপরক তাপরর াঅনায গরঙকগট পরফ এযকভ- httpexamplecomwp-admin

postphppost=43ampaction=trashamp_wpnonce=83a08fcbc2

এখাপরন 83a08fcbc2 এগট র nonce মা ২৪ ঘনটা সথায়ী থাপরক রধভাতর এগট মগদ াঅনায িাযা ফযফরত য় এফাং গডগরট য় ডাসট 50 মখন াঅগন গরপরঙক গিক কপরযন ফপরচপরয় গযতবনড র ডম Nonce ডকান malicious াআউজায ফেপরত াপরযনা এফাং গঠক গরঙক িাড়া nonce এযয ডপরজ চপরর মায় ডমখাপরন াযগভন থাপরক না াঅপরযা গফসতাগযত ডদখন httpcodexwordpressorgWordPress_Nonces

39

Nonce URL ততগয এফায চরন াঅপরগয উদাযন ডথপরক Nonce URL ততগয কগয একগট ডাসট গডগরট কযায জনয wp_nonce_url() পাাংন ফযফায কযা য় ltphp

$url = wp_nonce_url( $url $action )

gt

েথভ যাযাগভটায $url পরচছ গসটরাং URL এপরডর এয মাপরক াঅগন কপরয়যী গসটরাং এয Nonce কযপরত চান াফযফহরত পলাগগপরনয গডগরট গরঙক এযকভ থাপরক- httpexamplecomwp-admineditphppage= liton

_utagsampliton_action=deleteampid=6

এখাপরন ডদখন যাযাগভটায liton_action এফাং এয টযাগ াঅাআগড গিতীয় যাযাগভটায পরচছ $action একগট গসটরাং মা াঅগন একগট াফপরজকট এয জনয একগট action ততগয কযপরফন উপরয ডদখরাভ delete এযাকন এয টযাগ াঅাআগড 6 সতযাাং $action যাযাগভটায পরত াপরয bdquoliton_utags-delete_tag6‟ গনপরচ ফাসতফ উদাযন ডদগখ- ltphp

$delete_url = add_query_arg(array( liton _action=gtdeleteid=gt$id) )

$nonced_url = wp_nonce_url( $delete_url bdquoliton _utags-delete_tag$id )

gt

lta href=ltphp echo $nonced_url gtgtdeleteltagt

এাআ টযাগগট পরফ গডগরট গরঙক এখাপরন add_query_arg() পাাংন ফযফায কযা পরয়পরি মা কাপরযনট URL ডক এযাপরয যাযাগভটায এয ভপরধয যাপরখ ানযবাপরফ ফরপরর এগট ডমাগ কপরয এযকভাঃ liton_action=deleteampid=6 amp liton_action=deleteampid=6

Nonce Form ততগয Nonce পভডপরকও ডোপরটকট কপরয wp_nonce_field() পাাংপরনয ভাধযপরভ ltphp

wp_nonce_field( $action $name $referer $echo ) gt

$action ( string) (optional) - action নাভ াআউগনক identifier optional

গকনত recommended $name (string) (optional) ndash গপরডন গপলড পভড ডবগযপরয়ফর নাভ $referer (boolean) (optional) ndash গডপলট গপরপরফ true থাপরক ডমখাপরন গপলড

ডবগরপরডন এয দযকায য়

40

$echo (boolean) (optional) - গডপলট গপরপরফ true থাপরক ডমখাপরন াঅউটট ডদখাপরনায ফা গপরডন পভড গপলড গযটানড কযায জনয দযকায য়

পপরভড াঅনায action এয নাভ গদন ltform method=postgt

lt-- some inputs here --gt

ltphp wp_nonce_field(name_of_my_actionname_of_nonce_field) gt

ltformgt

াঅভযা একগট পলাগগন ফানাপরফা ডমখাপরন াফযফরত টযাগগপররাপরক াঅভযা ভযানয়াগর গডগরট ফা গযপরনভ কযপরত াযফ এগট একট ফড় গকনত াপরনক গফলয়াআ াঅপরগাআ াঅপররাচনা কযা পরয়পরি ডদখপররাআ ফেপরত াযপরফন একগট ফাসতফধভডী উদাযন গনপরচ গদরাভ- ltphp

Plugin Name Liton Unused Tags

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add an entry for our option page to the Posts menu

add_action(admin_menu liton_utags_add_page)

function liton_utags_add_page()

add_posts_page( Unused Tags Unused Tagsmanage_optionsliton_utags

liton_utags_option_page )

Catch any liton_action parameter in query string

add_action( admin_init liton_utags_do_action )

Proceed to requested liton_action if applicable

function liton_utags_do_action()

if( isset( $_REQUEST[liton_action] ) )

return

if( current_user_can( manage_options ) )

wp_die( Insufficient privileges )

41

$id = $_REQUEST[id]

$action = $_REQUEST[liton_action]

if( $action == done )

add_action( admin_notices liton_utags_message )

return

check_admin_referer( liton_utags-$action_tag$id )

switch( $action )

case rename

$newtag = array( name =gt $_POST[name] slug =gt

$_POST[name] )

wp_update_term( $id post_tag $newtag )

break

case delete

wp_delete_term( $id post_tag )

break

wp_redirect( add_query_arg( array( liton_action =gt done )

) )

Admin notice

function liton_utags_message()

echo ltdiv class=updatedgtltpgtAction

completedltpgtltdivgt

Draw the tag management page

function liton_utags_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtUnused Tagslth2gt

ltphp

if( $tags = liton_utags_find_orphans() )

echo ltpgtYou currently have count( $tags ) unused

tagsltpgt

echo ltolgt

foreach( $tags as $tag )

42

$id = $tag-gtterm_id

$name = esc_attr( $tag-gtname )

$delete_url= add_query_arg(

array(liton_action=gtdeleteid=gt$id) )

$nonced_url= wp_nonce_url( $delete_url

liton_utags-delete_tag$id )

gt

ltligt

ltform action= method=postgt

ltphp wp_nonce_field( liton_utags-rename_tag$id )

gt

ltinput type=hidden name=liton_action

value=rename gt

ltinput type=hidden name=id value=ltphp echo

$id gt gt

ltinput type=text name=name value=ltphp echo

$name gt gt

ltinput type=submit value=Rename gt or

lta href=ltphp echo $nonced_url gtgtdeleteltagt

this tag

ltformgt

ltligt

ltphp

else gt

ltpgtYou have no unused tagsltpgt

ltphp endif gt

ltolgt

ltdivgt

ltphp

Find unused tags return them in an array

function liton_utags_find_orphans()

global $wpdb

$sql = SELECT termsterm_id termsname FROM

$wpdb-gtterms terms

INNER JOIN $wpdb-gtterm_taxonomy taxo

ON termsterm_id=taxoterm_id

WHERE taxotaxonomy = post_tag

43

AND taxocount=0

return $wpdb-gtget_results( $sql )

gt

ডযাপরফাপরডড এাআ পলাগগপরনয ডভন াওয়া মাপরফ ডাসট এয াফপরভন গপরপরফ গনপরচ ডদখন-

এফায পলাগগন ডভনপরত গিক কপরয ডদগখ পলাগগপরনয ডবতপরযয কাজ-

উপরয ডদখন াঅগভ একগট টযাগ ততগয কপরযগিরাভ l i নাপরভ এগট এখাপরন ডদখাপরচছ াঅগভ চাাআপরর এগট এগডট ফা গডগরট কযপরত াগয এফায গডগরট গরঙক এ ভাউপরয কাডয ডযপরখ গনপরচ গরঙক ডদখন ফা গডগরট করন একগট টযাগ াঅভায এখাপরন URL গট এযকভ httplocalhostdev-litonwp-

admineditphppage=liton_utagsampliton_action=doneampid=4amp_wpnonce=30a44b7

986

এখাপরন াঅগভ liton_action=done ফযফায কপরযগি Nonces এয পাাংনগপররায নাভ গনপরচ গদরাভ াঅনাযা ডদপরখ গনপরফন াআনটাযপরনট ডথপরক wp_nonce_field()

wp_nonce_url()

wp_verify_nonce()

wp_create_nonce()

44

check_admin_referer()

check_ajax_referer()

ডাটাপরফ াঅনাযা ডমপরত গএাআচগ গনপরয় কাজ কপরযন এগকউএর ডাটাপরফ এয াপরথ ফাাআ কভপরফী গযগচত এয গনটযাকস গপররা ডভাটাভগট ফায জানা একাআ বাপরফ াপরনপরকাআ ওয়াডডপরেপরও ডাটাপরফ ডকাড গরপরখন এটা ডকাগডাং এয জনয খাযা গদক াঅগভ নযভার গএাআচগ- এগকউএর ডকাড এয উদাযন গদগচছ- ltphp

$sql=rdquoINSERT INTO $wpdb-gtposts(post_title) VALUES(bdquo$title‟)rdquo

$wpdb-gtquery($sql) gt

এফায ওয়াডডপরেপরয সটযানডাডড ডকাগডাং গপরসটভ ডদখন- ltphp

$wpdb-gtinsert($wpdb-gtposts

array(bdquopost_title‟ =gt $title)

array(bdquos‟)

)

gt

ডাটাপরফ গগকউয কযায জনয াঅপরডট াাপরযন ডদখাফ- গনপরচয ডকাডগট খাযা েযাকগট ltphp

$wpdb-gtquery(ldquoUPDATE $wpdb-gtposts SET post_title=‟$newTitle‟ WHERE

ID=$my_idrdquo )

gt

উপরযয ভত কপরয না গরপরখ গনপরচয ভত কপরয গরখন- ltphp

$wpdb-gtupdate($wpdb-gtposts

Array(bdquopost_title‟ =gt‟$newTitle‟)

Array(bdquoID‟ =gt$my_id

)

gt

ানর বাপরফ ানযানয াাপরযন গপররা গরখপরফন

45

াধযায়- াঅটাঃ ডরাকারাাআপরজন এফাং Set t i ngs API

ডরাকারাাআপরজন ডরাকারাাআপরজন একগট গরতবনড গফলয় এয পাাংনগপররা র- load_theme_textdomain()

load_plugin_textdomain()

উদাযন- ltphp $var=__(bdquoHello‟‟domain‟) gt

ltphp _e(bdquoHello‟‟domain‟) gt

গফসতাগযত গনপরচয গরপরঙক ডদখন- httpcodexwordpressorgI18n_for_WordPress_Developers

ডগটাং API

ডগটাং API পরচছ াঅগন গকি ান ততগয কযপরফন মা াআনটাযনার বাপরফ াঅনায পলাগগপরন এপলাাআ পরফ মখন াঅগন াআউজায- গডপাাআন ান ততগয কযপরফন াঅনায পলাগগপরনয জনয তখন Settings

API ndashএ াঅনায ডকাড মতটা ারন জ করন Settings API াঅনায ডম কাজগপররা handle কপরয-

ওয়াডডপরেপরক জাগনপরয় ডদয় ডম াঅগন গনজসব ান ফযফায কযপরফন াঅনায াআনটপরক পাাংপরনয ভপরধয উপরেখ কযপরফ ডফগয বাগ ান ডজ গনপরজাআ ততগয কযপরফ $_POST ডাটা গপররাপরক ভগনটয কপরয ান ততগয এফাং াঅপরডট কপরয(মগদ েপরয়াজন য়)

Settings API পাাংন Settings API পাাংপরন গতনগট ডসট থাপরক- ১ েথপরভ ওয়াডডপরেপরক ফপরর ডম াঅগন নতন ডগটাং ফযফায কযপরফন াঅনায পলাগগপরনয জনয ২ এয পরয ডগটাং গডপাাআন করন (text areas input boxes and any

HTML form element) এফাং এপরদযপরক একাপরথ রে কপরয যাপরখ ৩ ওয়াডডপরেপরক াঅনায ডগটাং actual form এ ডদখাপরনায জনয ফপরর

46

এফায াঅভযা একগট পলাগগন ফানাপরফা Administration Page ndashএ ডযপাপরযনস গপরপরফ ডদখপরত াপরযন- httpcodexwordpressorgAdding_Administration_Menus

httpcodexwordpressorgFunction_Referenceadd_options_page

httpcodexwordpressorgAction_ReferenceActions_Run_During_an_Admin_P

age_Request

পলাগগপরনয এডগভন ডজ পরফ এযকভ- httpexamplecomwp-adminoptions-generalphppage=liton_myplugin

েথপরভ াঅভযা ডভন ততগয কযফ াঅপরগয ভত কপরয- Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

এফায ান ডজ এ পভড গনপরয় গকি ডগটাং ডদফ function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

উপরযয ডকাপরড াঅভযা একগট পপরভডয ভপরধয রধ াফগভট ফাটন এফাং My Plugin নাপরভ ডজ ততগয কপরযগি ডযাপরফাপরডড ডদখন-

47

ডগটাং এয াফ ডভন গপরপরফ My Plugin াঅপরি এফাং My Plugin ডত গিক কযপরর াঅভযা উপরযয ডজ ততগয কপরযগি ডমখাপরন াফগভট ফাটনগট ডদখাপরচছ এফায গতনগট যাযাগভটায ডযগজসটায কযফ- ltphp

register_setting( liton _myplugin_options liton _myplugin_options liton

_myplugin_validate_options)

gt

েথভগট ডগটাং রেপরয নাভ গিতীয়গট ান নাভ মা াঅভযা get_option() পাাংন গদপরয়ও ডপরত াগয ততীয়গট করফযাক পাাংন এগট একগট গসটরাং ডযপাপরযনস পাাংন এখাপরন াঅভযা নাভ

48

গদপরয়গি liton _myplugin_validate_options মা া কযপরফ পপরভডয কর ডব ডগটাং াঅভযা এটা পরয গডপাাআন কযফ

ডগটাং গডপাাআন ডকন add_settings_field() এফাং add_settings_section() পাাংন গদপরয় াঅভযা াঅভাপরদয কর ডগটাং গডপাাআন কযফ ltphp

add_settings_section( liton_myplugin_main My Plugin Settings

liton_myplugin_section_text liton _myplugin)

add_settings_field( liton _myplugin_text_string Enter text here

liton _myplugin_setting_input liton _myplugin liton _myplugin_main)

gt

add_settings_section() পাাংন গদপরয় াঅভযা ডদখাফ াঅপরর ডজ এ ডকন ডকভন ডদখাপরফ এয চাযগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ ডকন টাাআপরটর ltH3gt টযাপরগয ভপরধয করফযাক পাাংন এয নাভ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ (page= liton _myplugin এগট

URL এয াাং গপরপরফ থাকপরফ) গিতীয় যাযাগভটায add_settings_field() পপরভডয াআনট গপরপরফ ডদখাপরনা পরয়পরি এখাপরন াাচগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ পরযয গপপরলড গক গেনট কযা পরফ তা ডটকসট গপরপরফ ডদখাপরনা পরয়পরি(Enter text

here)

করফযাক পাাংন পপরভড গেনট কযপরফ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ ডগটাং ডপরজয ডকন গপলড মা add_settings_section() পাাংপরন গডপাাআন

কযা পরয়পরি ltphp

Explanations about this section

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

49

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton _myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name= liton _myplugin_options[text_string]

type=text value=$options[text_string] gt

gt

গিতীয় পাাংন ান বযার text_string ডক এযাপরযপরত ডসটায কপরয ডযপরখপরি এফায াআউজায াআনট বযাগরপরডট কযফ- ltphp

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace([^a-zA-Z]$input[text_string] )

return $valid

gt

পভডপরক ডযনডায কযফ- ltphp

Draw the options page

function liton_myplugin_options_page()

gt

ltdiv class=wrapgt

ltphp

screen_icon()

gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp

settings_fields( liton_myplugin_options)

do_settings_sections(liton_myplugin)

50

gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

settings_fields() পাাংনগট ডযপাপরযনস গপরপরফ ফযফায কযা পরয়পরি মা াঅভযা register_setting() পাাংপরন গডপরিয়ায কপরযগি do_settings_sections() পাাংনগট কর কযপরফ কর াঅউটট ডকন এফাং পভড গপলডপরক মা াঅভযা পরফড গডপাাআন কপরযগি াঅভাপরদয কাজ ডল এফায পরযা পলাগগনগট ডদখফ- ltphp

Plugin Name Settings API example

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

Draw the option page

function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save

Changes gt

ltformgtltdivgt

ltphp

51

Register and define the settings

add_action(admin_init liton_myplugin_admin_init)

function liton_myplugin_admin_init()

register_setting( liton_myplugin_options

liton_myplugin_options

liton_myplugin_validate_options )

add_settings_section( liton_myplugin_main My Plugin

Settings

liton_myplugin_section_text liton_myplugin )

add_settings_field( liton_myplugin_text_string Enter text

here

liton_myplugin_setting_input liton_myplugin

liton_myplugin_main )

Draw the section header

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton_myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name=liton_myplugin_options[text_string]

type=text value=$text_string gt

Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

return $valid

gt

52

ডদখন ডযাপরফাপরডড ডকভন ডদখায়-

পরয় ডগর াঅভাপরদয েথভ নডাাংগ পলাগগন ান ডজ াঅপরযকগট গজগন ডমটায জনয এতগকি পলাগগন URL এপরডর- httplocalhostdev-litonwp-adminoptions-

generalphppage=liton_mypluginampsettings-updated=true

াঅভায এখাপরন এযকভ ডদখাপরচছ ডটকসট ফপরকস ডকান গকি গরপরখ ডব কযায য এফাপরয াঅপরযকগট গজগন ডদখফ াঅভযা াপরনক ভয়াআ াপরনক পলাগগপরনয াআনট গপপরলড বর ডাটা াআনট কযপরর এযয ডভপরজ ডদখায় এাআ কাজগট কযফ এফায াঅভযা এখাপরন esc_attr() ফা esc_html() ফযফায কগযগন সতযাাং াঅভাপরদয গরগভপরটন থাকপরি ডবগরপরডট পাাংনগট একট এগডট কগয গনপরচয ভত কপরয Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

if( $valid[text_string] = $input[text_string] )

add_settings_error(liton_myplugin_text_stringliton_myplugin_texterror

53

Incorrect value enterederror)

return $valid

উপরয ডদখন add_settings_error() পাাংন ফযফায কপরযগি মা এযয ডচক কযপরফ পপরভডয াঅগভ একগট বর ডাটা(পরসপার কযাপরযকটায) াআনট কপরয ডদখরাভ এযয ডদখাপরচছ-

তায ভাপরন াঅভযা পর পরয়গি াঅনায পলাগগনগট এগডট কপরয ডনপরফন ডকায ডকন এফাং গপপরলডয গরসট গদরাভ াঅনাপরদয সগফধায জনয

54

CSSJS পাাআর মি কযা

াঅনায পলাগগপরন গএএ ফা জাবাগিে ডমাগ কযপরত পরত াপরয াঅগন চাাআপরর ফাগপরযয ডকান ফা াঅনায ততগয ডকান গএএ ফা জাবাগিে পাাআর ডমাগ কযপরত াপরযন তপরফ এপরকষপরতর াঅভযা ডমবাপরফ HTML এ পাাআর ডমাগ কগয ডযকভ না function liton_scripts()

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtojqueryjsrdquogtltscriptgt‟

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtoscriptjsrdquogtltscriptgt‟

add_action(bdquowp_head‟‟liton_scripts‟)

এগট মপনডরপর বর িগত গনপরচ ডদখন ওয়াডডপরেপর গকবাপরফ পাাআর মি কযপরত য়- function liton_scripts()

wp_enqueue_script(bdquojquery‟)

wp_enqueue_script(bdquotheme-scripts‟‟pathtoscriptsjs‟)

add_action(bdquowp_enqueue_script‟‟liton_scripts‟)

ানর বাপরফ াঅগন সটাাআরীট ডমাগ কযপরত াপরযন- function liton_styles()

wp_enqueue_ style (bdquocss‟)

wp_enqueue_ style (bdquotheme- styles‟pathto stylescss‟)

ডযপাপরযনস ডদখন- httpcodexwordpressorgFunction_Referencewp_enqueue_script

httpcodexwordpressorgFunction_Referencewp_enqueue_style

টডপরকাড টডপরকাড পরচছ ওয়াডডপরেপরয ডসপগগপক ডসপার টযাগ মা াঅগন ডাসট ফা ডপরজয ভপরধয াআনাটড কপরয ানয ডকান কনপরটনটপরক ওপরয়ফাাআপরটয ভপরধয গযপরপল কযপরত াযপরফন মগদ াঅগন গযারাগয টাাআপরয ডকান পলাগগন ফযফায কপরয থাপরকন তাপরর াঅনায ধাযনা থাকায কথা মাাআ ডাক াঅগভ কপরয়কগট উদাযি ডদখাফ

55

েথপরভ একগট পলাগগন ততগয কযফ ডমখাপরন add_shortcode() নাপরভয একগট পাাংন থাকপরফ এগট রগট যাযাগভটায েন কপরয েথভগট টডপরকাপরডয নাভ গিতীয়গট ডম পাাংনপরক কর কযপরফন ডগট াঅভযা একগট উদাযন ডদগখ- ltphp

Plugin Name Liton Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(litonhi)

function hi()

echo Hello World

gt

উপরয ডদখন খফ ডিাট গকনত াঅগন চাাআপরর এয ফযফায াপরনক গফসতত কযপরত াপরযন এখাপরন টডপরকাড নাভ পরচছ liton াঅয এগটপরক ডরখা য় এবাপরফ [liton] াঅভযা ডাপরসটয ভপরধয াআনাটড কপরয ডদগখ াঅউটট ডকভন ডদখায়-

এফায াঅউটট ডদগখ-

56

াঅভাপরদয ততগয কযা টডপরকাড পরবাপরফাআ কাজ কযপরি াঅপরযকগট উদাযন ডদখফ াঅনাযা াপরনপরকাআ গগর এডপরনস গনপরয় কাজ কপরযন াঅনাযা াপরনপরকাআ এডপরনস এয জনয পলাগগন ফযফায কপরযন গকনত চাাআপররাআ এাআ কাজগট াঅনাযা গনপরজয ভত কপরয াগজপরয় গনপরত াপরযন গগপররয কাপরি ফ ডাসট বযার ায়না াঅনাযা মাযা একসাটড াঅপরিন তাযা এটা বার কপরয জাপরনন তাাআ াপরনপরকাআ গগপররয ডকাড ফ ডপরজ ডদখাপরত চান না এজনয পলাগগন ফযফায কপরয রাব য়না কাযন পলাগগপরন জায়গা গপকসড থাপরক এপরত কপরয াঅগনডাং ও কভ য় াঅনাযা টডপরকাড ফযফায কপরয ডমপরকান জায়গায় এড ডদখাপরত াপরযন গনপরচ াঅগভ রগট টডপরকাড ততগয কপরযগি র‟ধযপরনয এড ডদখাপরনায জনয ltphp

Plugin Name Liton Adsense Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(adsense_468adsense_468_60)

add_shortcode(adsense_250adsense_250_250)

function adsense_468_60($atts)

return ltscript type=textjavascriptgtlt--

57

google_ad_client = ca-pub-0956247412222369

468x60 created 101510

google_ad_slot = 4372705450

google_ad_width = 468

google_ad_height = 60

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

function adsense_250_250($atts)

return ltscript type=textjavascriptgtlt--

google_ad_client = ca-pub-0956247412222369

250x250 created 81809

google_ad_slot = 9368091893

google_ad_width = 250

google_ad_height = 250

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

gt

একগট টডপরকাড ফযানায টাাআপরয জনয এফাং াঅপরযকগট ২৫০২৫০ াাআপরজয এফায ডাপরসট ডমপরকান একগট টডপরকাড াআনাটড করন ডমখাপরন াঅনায ডদখাপরনায েপরয়াজন ভপরন কপরযন াঅগভ রগট ডকাড ডটসট কপরয ডদখরাভ-

58

এফায াাআপরটয াঅউটট ডদগখ-

রগট এডাআ ডদখাপরচছ াঅপরযা াপরনক কাপরজ াঅগন টডপরকাড ফযফায কযপরত াপরযন ডযপাপরযনসাঃ httpcodexwordpressorgShortcode_API

59

াধযায়- নয়াঃ পলাগগন উদাযন

ওয়াডডপরেপরয ডডটটাাআভকপরভনট নামবায ফাাংরা কযায পলাগগন াঅভাপরক কপরয়কজন ফপররগিপররন ওয়াডডপরেপরয গডপলট ডডটটাাআভকপরভনট নামবায ফাাংরা য়না রযাাংগপরয়জ ফাাংরা কযায যও ডডটটাাআভকপরভনট নামবায গপররা াআাংপরযগজ ডথপরক মায় গনপরচয পলাগগনগট ফযফায কপরয ডদখপরত াপরযন- ltphp

Plugin Name Liton Bangla datetimecomment number

Plugin URI httpliton-onlinecomplugins

Description Bangla datetimecomment number

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

This function converts all english numbers to bangla number

function make_bangla_number($str)

$engNumber = array(1234567890)

$bangNumber = array( ১ ২ ৩ ৪ ৫ ৬ ৭ ৮ ৯ ০ ) $converted = str_replace($engNumber $bangNumber $str)

return $converted

add_filter( get_the_time make_bangla_number )

add_filter( the_date make_bangla_number )

add_filter( get_the_date make_bangla_number )

add_filter( comments_number make_bangla_number )

add_filter( get_comment_date make_bangla_number )

add_filter( get_comment_time make_bangla_number )

gt

60

সলাাআডায পলাগগন াঅভযা এাআ ফাআপরয়য কর গটউপরটাগযয়াপরর মা মা গখরাভ তা এফায একগট নডাাংগ পলাগগপরনয এপলাাআ কযফ সলাাআডায পলাগগন মপপরকড াঅভযা ফাাআ জাগন একগট ওপরয়ফাাআপরটয ডচাযা ারপরট ডদয় একগট সলাাআডায াপরনক ডাাআনাগভক ভপরন য় ডদখপরতও াপরনক বার রাপরগ এাআ পলাগগপরন াঅভযা এডগভন যাপরনর ডথপরক াআপরভজ ডমাগ কযফ এফাং তা াঅভাপরদয াাআপরট ডদখাফ চরন কাজ রর কগয- েথপরভ গনপরবা সলাাআডায এয ওপরয়ফাাআপরট মান এফাং jQuery Plugin ডাউনপররাড করন

ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom Version 10

gt

াঅভযা পলাগগপরনয ডডায ততগয কযরাভ

পলাগগন গরপরসট ডদখাপরচছ bdquoLitons Nivo Plugin‟ াঅভাপরদয েথভ কাজ পরচছ custom post

type ওয়াডডপরে পাাংনাগরগট একগট নতন কাসটভ ডজ ততগয কযপরত custom post type

ফযফহরত পরফ ডমখাপরন একগট াআপরভজ থাকপরফ াঅভযা রধ টাাআপরটর ডনভ এফাং াআপরভজ াঅপররাডায গপরপরফ গপচায াআপরভজ পাাংনাগরগট ফযফায কযফ function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_function 600 280 true)

61

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

add_action(init np_init)

উপরযয ডকাপরড np_init() পাাংনগট রক কপরযগি মা ডডায যান কযায াঅপরগ যান পরফ াঅয এজনয register_post_type() পাাংনপরক এয যাযাগভটায গদপরয় np_init() পাাংপরনয ডবতপরয মি কপরযগি এটা মগদ না কযতাভ তাপরর ldquoHeaders already sentrdquo ডভপরজ ডদখাত এাআ ডভপরজগটয াপরথ াপরনপরকাআ গযগচত াঅা কগয register_post_type() পাাংন গদপরয় াঅভযা াআপরভজ মি এফাং ভযাপরনজ কযফ ভরত াঅভযা একগট নতন custom post type ডমাগ কপরযগি np_images নাভ গদপরয় নতন custom post type ডক ডগটাং বযার গপরপরফ াঅযগপরভনট া কপরযগি $args ডবগযপরয়ফরগট ট ডরপরবর ডভন ততগয কপরয াঅপরগাআ ডদপরখগি পলাগগনগট এগকটপরবট কযপরর াঅভযা গনপরচয ভত ডদখপরত াফ-

এফায গিে এফাং সটাাআরীট ডক মি কযফ- add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

এফায রক কযা পাাংনগপররা গডপরিয়ায কগয- function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__) array( jquery ))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

62

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

উপরযয ডকাডগপররা নতন কপরয ফিডনা কযায গকি ডনাআ াঅপরগাআ wp_enqueue_style() এফাং wp_enqueue_script() মপপরকড ফরা পরয়পরি নতন াঅপরযকগট পাাআর ততগয করন একাআ গডপরযকটগযপরত scriptjs এফাং গনপরচয ডকাডটক গদন- jQuery(document)ready(function($)

$(slider)nivoSlider()

)

াআপরভজপরক গযাাআজ করন- add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

াঅভযা এাআ পলাগগনগটপরক উাআপরজট গপরপরফও ফযফায কযফ ডগট পরয ডদখফ াঅপরযকগট গজগন মগদ গথপরভ না ডদয়া থাপরক ডজনয থামবপরনাআর াপরাটড গদপরয় গদন- add_theme_support( post-thumbnails )

এফায ওয়াডডপরেপরয কাপরযনট ডাসট কপরয়যী কযায ডকাড াঅয $result ডবগযপরয়ফপরর ডমফ ltdivgt টযাগ ফযফায কযা পরয়পরি তা jQuery Plugin গট একসিাকট কপরয indexhtml ডজগটয ডভাআন সলাাআডায ডকাডগট ডদখন একাআ াঅপরি রধ ডখানকায ltdivgt টযাগ গপররাপরক কগ কপরয এাআ পলাগগপরন ফযফায কযা পরয়পরি এফায টডপরকাড গদন- add_shortcode(np-shortcode np_function)

এাআ টডপরকাড গএাআচগ পাাংনপরক রক কযপরফ এফাং এয ভধয ডথপরক সলাাআডপরায কনপরটনট ডক গযটানড কযপরফ াঅভাপরদয টডপরকাড পরচছ [np-shortcode] াঅভযা পলাগগপরন মাাআ এফাং একগট িগফ মি কগয গপচাযড াআপরভজ গপরপরফ গনপরচ ডদখন-

63

াঅগভ াঅপরযকগট ডজ ততগয কপরযগি ডমখাপরন টডপরকাড গদপরয়গি

াঅউটট ডজ ডদগখ এফায-

64

পরয় ডগর াঅভাপরদয সলাাআডায পলাগগন পরযা ডকাডগট গনপরচ গদরাভ- ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

65

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

66

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

এফায াঅগন মগদ উাআপরজট গপরপরফ ফযফায কযপরত চান তাপরর গনপরচয ডকাডটক গদন- class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

67

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

echo $after_widget

াঅপরযা রগট কাজ কযপরত পরফ াঅনাপরক এক াআপরভজ াাআজ উাআপরজট এয জনয গঠক কপরয গদপরত পরফ- add_image_size(np_widget 180 100 true)

াঅপরযকগট র উাআপরজট এযাকন রক ডমাগ কযা add_action(widgets_init np_widgets_init)

উাআপরজট পরযা ডকাড াঅফায গদরাভ- ltphp

Plugin Name Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Ciprian Turcu

Version 10

68

class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

69

echo $after_widget

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

70

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(widgets_init np_widgets_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

71

পলাগগন গনপরয় এত ডিাট গযপরয ডরখা মভফ নয় এজনযাআ ভপরন য় পলাগগন গনপরয় ডকউ ডরপরখন না কাযন এখাপরন এত গফলয় াঅপরি মা াঅপররাচনা কযপরত ডগপরর ৫০০ ডজ ায পরয় মাপরফ ডফাোয সগফধাপরথড াঅগভ মথামভফ উদাযন গদপরয় ডফাোপরনায ডচষটা কপরযগি াঅগভ এখাপরন টাপরগডট কপরযগি মাযা টকটাক জাপরন পলাগগন মপপরকড এডবানস ডরপরবপররয নয় কাযন তাযা জাপরনন াঅভায উপরেশয গির মাযা জানপরত চায় তাপরদযপরক জানাপরনা এখাপরন ডমফ গফলয় াঅপররাচনা কযা পরয়পরি তা ডভাটাভগট ভাপরনয একগট পলাগগন ফানাপরনায জনয মপরথষট তপরফ ভাপরনাননয়পরনয জনয াঅনাপরক গনপরজাআ খাপরজ গনপরত পরফ াঅনায জনয ডকানটা বার পরফ াঅগভ রধ গদক গনপরদডনা গদরাভ ভাতর এাআ ফাআগট রধভাতর ওয়াডডপরে রেপরয জনয ডরখা াপরনক বর ভরাগনত থাকপরত াপরয াঅনাযা কষভাসনদয দগষটপরত ডদখপরফন াঅগভ ডচষটা কপরযগি মতটা জ কপরয ডরখা মায় াপরনক ভয় ডদখা মায় ডম খফ ডিাট খাপরটা গফলয় গনপরয় াপরনপরকাআ নক কপরযন এটা গতয রাঃখজনক াঅনাযা গগপরর একট খাজপররাআ ভাধান াপরফন াঅপরগ গনপরজ ডচষটা করন তায পরয ানযপরক ভাধাপরনয জনয গজজঞাা করন াঅভায জনয ডদায়া কযপরফন বাপররা রাগপরর জানাপরফন খাযা রাগপররও জানাপরফন তাপররাআ াঅভায গযশরভ সবাথডক পরফ ভতাভত জাগনপরয় াঅভাপরক ডভাআর কযপরত াপরযন litonice09gmailcom |

72

Page 17: Wordpress Plugin Development

18

এযাকন রক (Action Hooks) Action Hooks পরচছ ড ভসত রক ডমগপররা ওয়াডডপরেপরয রাাআপ াাআপরকর গনপরয় কাজ কপরয Action Hooks রাআ ধযপরনয add_action() remove_action() এাআ রকগপররা কাজ কপরয মখন ডকান ডাসট ডব কযা য় ডাসট াফগর কযা য় কপরভনট কযা য় ডকান বলগ ডাপরসট াথফা ওপরয়ফাাআপরট ডডাযপটায ডজনাপরযট য় এগপররা েগতগট একগট একগট কপরয Actions মখন াআউজায তায এডগভগনপরসটরটয ডভনপরত েপরফ কপরয এগপররা ফাআ Action Hooks এখাপরন াঅভযা কনপরটনটপরক গপলটায কযগিনা াঅভযা ওয়াডডপরেপরয গনগদডষট পাাংনগপররাপরক রক কপরয কাজ কযগি াঅভযা একগট উদাযন ডদগখ- ltphp

Plugin Name Liton Action

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(wp_footer function($content)

echo Hello This is Liton Arefin

)

gt

াঅনাপরদয সগফধাপরথড ডফাোয জনয গনপরচয ভত কপরয গরখন- ltphp

Plugin Name Liton Action

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(wp_footer liton_footer_action)

function liton_footer_action($content)

echo Hello This is Liton Arefin

gt

াঅভযা খফ ডিাট একগট উদাযন গদপরয় ডদখরাভ ডম action রক গকবাপরফ কাজ কপরয গনপরচ ডদগখ াাআপরট ডকভন ডদখায়-

19

উপরযয িগফপরত ডদখন াঅগভ Hello This is Liton Arefin এাআ রাাআনগট গেনট কপরযগি এফাং তা পটাপরযয ফাভ াপর এপরকফাপরয গনপরচ ডদখাপরচছ এফায ডাড ডকাড এ ডদগখ াঅপররাআ এয গজন টা ডকাথায় াঅপরি

উপরয ডদখন পটাপরযয গঠক গনপরচাআ রাাআনগট ডদখাপরচছ এফায াঅপরযকগট ফাসতফ এফাং খফাআ গরতবনড উদাযন ডদগখ এাআ পলাগগনগটয কাজ পরফ মখনাআ ডকান কপরভনট ডাসট পরফ তখনাআ এডগভনপরক ডভাআর াঠাপরফ ডম নতন কপরভনট ডাসট পরয়পরি মগদও ওয়াডডপরে এাআ কাজগট কপরয থাপরক াঅভযা এাআ কাজগট ভযানয়ারী কপরয ডদগখ ltphp

Plugin Name Liton Comments Mail

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(comment_post function()

$email= get_bloginfo(admin_email)

wp_mail(

$email

New Comment Posted

A new comment has been left on your blog

)

)

gt

এখাপরন comment_post নাপরভয রপরক একগট ডবগযপরয়ফর $email ndashএ এডগভন ডভাআরপরক ডসটায কপরযগি মাপরত কপরয ডাাআনাগভক বাপরফ ড ডমপরকান াাআপরটয এডগভন ডভাআরপরক গডপরটকট কযপরত াপরয তপরফ এপরকষপরতর মগদ bloginfo(admin_email) ফযফায কযা ত তাপরর এডগভন ডভাআরপরক গডপরটকট কযত গকনত get_bloginfo(admin_email) ফযফায কযায পপরর াঅভযা াআপরভাআর বযারগটপরক গযটানড কপরয ডসটায কযগি এফাপরয ওয়াডডপরেপরয গফলটাআন ডভাআর পাাংন wp_mail(emailsubjectmessage) এয ভত কপরয গরপরখগি বার কপরয ডদখন পলাগগনগট এগকটপরবট কপরয ডদখন াঅনায াাআট মগদ ানরাাআপরন থাপরক তাপরর গনপরজাআ একগট কপরভনট কপরয ডদখন াঅনায এডগভন ডভাআপরর একগট ডভাআর চপরর ডগপরি

20

াধযায়- চাযাঃ পলাগগন ডকাগডাং সটযানডাডড

পলাগগন এগকটপরবনগডএগকটপরবন পাাংন াঅগন মখন একগট পলাগগনপরক এগকটব কপরযন তখনাআ এগকটপরবন পাাংন গিগায য় এাআ পাাংনপরক register_activation_hook() ফপরর ltphp register_activation_hook($file $function) gt

Parameters

$file- োাআভাগয পলাগগন পাাআপররয াথ

$function- ডম পাাংনগট গিগায পরফ মখন পলাগগন এগকটপরবট য় ডমভনাঃ- ltphp

register_activation_hook(__FILE__ bdquoliton_plugin_install‟)

function liton_plugin_install()

do something cool stuff

gt

াঅভযা একগট পলাগগন ফানাাআ এবাপরফ-

ltphp

Plugin Name Liton Version

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

register_activation_hook(__FILE__ liton_plugin_install)

function liton_plugin_install()

If(version_compare(get_bloginfo(version)51lt))

deactivate_plugins(basename(__FILE__))

deactivate our plugin

gt

মখন াঅভযা পলাগগন গডএগকটপরবট কগয তখন পলাগগন গডএগকটপরবন পাাংন কর য়

21

ltphp

register_deactivation_hook ($file $function) gt

-

ltphp

register_deactivation_hook (__FILE__ bdquoliton_plugin_install‟)

function liton_plugin_install()

do something

gt

াঅপরযকগট গরতবনড গফলয় র াঅনাআনসটর ওয়াডডপরে াঅনাপরক পলাগগন াঅনাআনসটর এয জনয রগট ান গদপরচছ- uninstallphp file and the uninstall hook

uninstallphp

এগট ডভাটাভগট েনপরমাগয িগত এ ডভথড ফযফায কযায জনয াঅনাপরক uninstallphp নাপরভ একগট পাাআর ততগয কযপরত পরফ াঅনায পলাগগন গডপরযকটগযপরত পাাআরগট গনপরচয ভত পরফ- ltphp

মগদ ওয়াডডপরে এগকসট কযায াপরথ াঅনাআনসটর কর কযা না য় If(defined(bdquoWP_UNINSTALL_PLUGIN‟))

exit()

delete_option(bdquoliton_plugin_options‟)

াগতগযি ান এফাং কাসটভ ডটগফর ভপরি ডপরন gt

Uninstall Hook

গিতীয় িগত র Uninstall Hook মগদ াঅগন ডকান পলাগগনপরক গডগরট কযপরত চান এফাং uninstallphp পাাআর না থাপরক তাপরর এাআ রক এগকসগকউট য়(মগদ থাপরক) ltphp

register_uninstall_hook($file$function)

gt

22

ডকাগডাং সটযানডাডড পলাগগন ফানাপরফন গকনত াঅনায ডকাড ডকভন পরফ গচনতা াঅপরত াপরয ওয়াডডপরে াঅনায জনয একগট সটযানডাডড গদপরয় গদপরয়পরি মা াঅনাপরক ওয়াডডপরেপরয জনয পলাগগন গরখপরত ডগপরর পপররা কযপরতাআ পরফ httpcodexwordpressorgWordPress_Coding_Standards

ডফগক একগট উদাযন গদরাভ গনপরচ- ltphp

Short description

Longer more detailed description

param type $varname1 Description

param type $varname2 Description

return type Description

function boj_super_function( $varname1 $varname2 )

do function stuff

gt

গএাআচগ সটানডাডড াঅভযা াপরনপরকাআ গএাআচগয টড পভড(lt gt) ফযফায কগয এটা মপিডরপর ফজডন করন কাযন াপরনক ডাগসটাং ডকামপাগনপরতাআ এটা গডপলট গপরপরফ ফনধ কপরয ডদয়া থাপরক সটযানডাডড টযাগ ফযফায করন(ltphp gt)

এগকউএর ডসটটপরভনট পলাগগন ততগযয ভয় াঅনাপরক াপরনক ভয়াআ ডাটাপরফ ডথপরক াআনপযপরভন গনপরত পরত াপরয াপরনক রাাআপরনয ডকাড গরখপরত পরত াপরয ডপরকষপরতর বার েযাকগট পরচছ এগকউএর এয কভানড গপররা ফড় াপরতয াকষপরয ডরখা ডমভন- SELECT username FROM table1 WHERE status = active

23

াধযায়- াাচাঃ ওয়াডডপরেপরয াপরথ াআগনটপরেন

ডভন এফাং াফ ডভন ততগয করন াঅভযা াপরনক পলাগগপরনাআ ডদগখ ডম একগট ডভন াঅাআপরটভ গপরপরফ াঅভাপরদয ডযাপরফাপরডড ডদখপরত াাআ এফাং ডাআ ডভনপরত গিক কযপরর ডগটাং ডজ াঅপর ডখাপরন পলাগগপরনয মাফতীয় ডগটাং গদপরয় াঅভযা পলাগগন কনগপগায কগয এফায এাআ চভৎকায কাজগট কযফ াঅভযা

ট ডরপরবর ডভন েথভ িগত পরচছ একগট ট ডরপরবর ডভন ততগয কযা ডমগট াঅভযা ডযাপরফাপরডড ডভন গরপরসট একগট নতন াঅাআপরটভ গপরপরফ ডমাগ কযফ ডভন ততগয কযায জনয াঅনাপরক add_menu_page( ) পাাংন ফযফায কযপরত পরফ ltphp

add_menu_page( page_title menu_title capability menu_slug functionicon_url

position )

gt

add_menu_page() পাাংন গনপরচয যাযাগভটাযগপররা াপরাটড কপরয page_title- াঅনায ডপরজয টাাআপরটর গক পরফ lttitlegt tag এয ভপরধয menu_title- ডযাপরফাপরডড াঅনায ডভনয নাভ capability- ফডগনমন capability রাগপরফ একগট ডভন গবউ পরত menu_slug- সলাগ নাভ মা ডভনপরক ডযপায কপরয- তপরফ এগট াআউগনক পরত পরফ function- একগট ডপরজয কনপরটনট ডদখপরত ডম পাাংন কর কযা য় icon_url- একগট কাসটভ াআপরভজ গরঙক ডভন াঅাআকন ডদখাপরনায জনয position- ডভনয গজন াডডায ডমখাপরন এটা ডদখাপরনা পরফ

এফায াঅভযা একগট ফাসতফ উদাযন ডদখফ- ltphp

Plugin Name Liton Menu

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action( admin_menu liton_menu)

function liton_menu()

24

create custom top-level menu

add_menu_page( Liton Menu Page Liton Menu Page manage_options

__FILE__ liton_menu_settings_page plugins_url( imageswp-logopng

__FILE__ ) )

gt

াঅভযা একগট ট ডরপরবর ডভন ততগয কযরাভ ডদখন ডযাপরফাপরডড ডকভন ডদখায়-

Liton Menu Page নাপরভ একগট ডভন ততগয পরয় ডগপরি এফাপরয াঅভযা াফপরভন কযফ ভাপরন Liton Menu Page এয গনপরচ গকি ডগটাং ডভন(মগদ েপরয়াজন য়) াফ ডভন ডযগজসটায কযায জনয add_submenu_page( ) পাাংন ফযফায কযা য় ltphp

add_submenu_page( parent_slug page_title menu_title capabilitymenu_slug

function )

gt

parent_slug- ডভন সলাগ মা াঅভযা াঅপরগ গডপাাআন কপরযগি menu_slug- মা ডভনপরক াফপরভনপরত ডযপায কযপরফ ফাগক পাাংনগপররা াঅপরগয ভতাআ

এফায াফপরভনয জনয গকি াগতগযি ডকাড ডমাগ কগয create submenu items

add_submenu_page( __FILE__ About My Plugin About manage_options

__FILE___about liton_menu_about_page )

add_submenu_page( __FILE__ Help with My Plugin Help

manage_options

__FILE___help liton_menu_help_page )

add_submenu_page( __FILE__ Uninstall My Plugin Uninstall

manage_options

__FILE___uninstall liton_menu_uninstall_page )

25

পরযা ডকাডগট পরফ এযকভ- ltphp

Plugin Name Liton Menu

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action( admin_menu liton_menu

)

function liton_menu()

create custom top-level menu

add_menu_page( Liton Menu Settings Page Liton Menu Page

manage_options __FILE__

liton_menu_settings_page

plugins_url( imageswp-logopng __FILE__ ) )

create submenu items

add_submenu_page( __FILE__ About My Plugin About manage_options

__FILE___about liton_menu_about_page )

add_submenu_page( __FILE__ Help with My Plugin Help

manage_options

__FILE___help liton_menu_help_page )

add_submenu_page( __FILE__ Uninstall My Plugin Uninstall

manage_options

__FILE___uninstall liton_menu_uninstall_page )

gt

গনপরচ ডদখন াফপরভনগপররা ততগয পরয় ডগপরি-

26

ডভনপরক াঅপরগয ডভনয াপরথ মি কযা এফায াঅগ গিতীয় িগতপরত মগদ াঅনায পলাগগপরনয একগট ভাতর ডজ থাপরক একগট ভাতর ডপরজাআ াঅনায কর ডগটাং পরয় মায় তাপরর এাআ িগত েন করন ডমভন ডয়াগযাং াাআটগপররায জনয রধ াঅনায াঅাআগডপযানপরপরজয াঅাআগড দযকায য় এযকভ পলাগগন এধযপরনয পলাগগপরনয জনয াঅনায াগতগযি ডভন ততগয কযায দযকায ডনাআ ফযাং এপরত কপরয াআউজায গফযি ডফাধ কযপরত াপরযন এ ধযপরনয পলাগগনগপররা ডগটাং এয াফপরভন গপরপরফ থাপরক add_options_page() এাআ পাাংন গদপরয় এফ ডভন ডযগজসটায কযা য় ltphp

add_options_page( page_title menu_title capability

menu_slug function)

gt

এফায চরন এযকভ একগট ডভন ততগয কগয- ltphp

Plugin Name Liton Sub Menu

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action( admin_menu liton_submenu)

function liton_submenu()

create a submenu under Settings

add_options_page( Liton Menu Settings Page Liton Menu Page

manage_options __FILE__

liton_menu_settings_page)

27

gt

াফপরভন ততগয পরয় ডগপরি চরন ডদগখ ডযাপরফাপরডড ডকভন ডদখায়-

এপরকফাপরয গনপরচয গদপরক ডদখন Liton Menu Page নাপরভ একগট ডভন ততগয পরয়পরি

উাআপরজট ততগয কযা উাআপরজট ততগয কযায জনয ওয়াডডপরে WP-Widget িা গদপরয় ততগয কযা য় উাআপরজট এয একগট পযভযাট ডদখন গনপরচ ltphp

class My_Widget extends WP_Widget

function My_Widget()

processes the widget

function form($instance)

displays the widget form in the admin dashboard

function update($new_instance $old_instance)

process widget options to save

function widget($args $instance)

displays the widget

gt

28

উাআপরজট ডযগজসটায কযায জনয widget_init() পাাংনপরক রক কযা য় চরন একগট উাআপরজট ততগয কগয- ltphp

Plugin Name Liton Widget

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

class Messager extends WP_Widget

function __construct()

$params=array(

description =gtDisplay message to readers

name =gt Message

)

parent__construct(Messager $params)

public function form()

public function widget()

add_action(widgets_initliton_register_message)

function liton_register_message()

register_widget(Messager)

gt

29

খফ াধাযন একগট উাআপরজট পলাগগন এগট াঅভযা াআউজাযপরদযপরক একগট ডভপরজ ডদখাপরফা াাআডফাপরয ডটাাআ কযায ডচষটা কযগি এখন পলাগগনগট এগকটপরবট কপরয ডদগখ-

াঅভাপরদয উাআপরজটগট ডদখাপরচছ এফায াঅপরযা গকি পাাংনার কাজ কগয এগট মগদ াাআডফাপরয ডরাগ কপরয ডদন তাপরর ডকান কাজ কযপরফ না কাযন াঅভযা এখপরনা গকিাআ কগযগন পভড পাাংপরন গকি কাজ কগয মা উাআপরজট টাাআপরটর গপরপরফ ডদখাপরফ- public function form($instance)

extract($instance)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title)gtgtTitle ltlabelgt

ltinput

class=widefat

id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt

value=ltphp if(isset($title)) echo esc_attr($title) gt gt

ltpgt

ltphp

াঅভযা উপরয class=widefat ফযফায কপরযগি এাআ িা ফযফায কযায কাযপরন পভড এয াআনট গপলডগট াপরনক সনদয পরয়পরি

30

মগদ এাআ িা ফযফায না কগয তাপরর ডকভন ডদখাপরফ গনপরচ ডদখন-

াঅভাপরদয উাআপরজট পলাগগনগটয ডকাড গনপরচ ডদওয়া র ltphp

Plugin Name Liton Widget

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

class Messager extends WP_Widget

function __construct()

$params=array(

description =gtDisplay message to readers

name =gt Message

)

parent__construct(Messager$params)

31

public function form($instance)

extract($instance)

print_r($instance)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title)gtgtTitle ltlabelgt

ltinput

class=widefat

id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt

value=ltphp if(isset($title)) echo esc_attr($title) gt gt

ltpgt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(description)gtgtDescription

ltlabelgt

lttextarea

class=widefat

rows=10

id=ltphp echo $this-gtget_field_id(description) gt

name=ltphp echo $this-gtget_field_name(description) gtgtltphp

if(isset($description)) echo esc_attr($description) gtlttextareagt

ltpgt

ltphp

public function widget($args$instance)

extract($args)

extract($instance)

echo $before_widget

echo $before_title$title$after_title

echo ltpgt$descriptionltpgt

echo $after_widget

add_action(widgets_initliton_register_message)

function liton_register_message()

32

register_widget(Messager)

gt

এফায াঅভযা ডযাপরফাডড ডথপরক একগট ডভপরজ ডদফ গবগজটযপরদযপরক-

াঅভযা এাআ উাআপরজটগট ডাাআনাগভক বাপরফ কপরযগি কাযন এখাপরন lth2gt lth3gt lth4gt এ ধযপরনয ডকান টযাগ াঅভযা ফযফায কগযগন াঅভযা গথভ ডডপরবর কযগিনা সতযাাং এ কাজগট াঅভাপরদয ানযবাপরফ কযা দযকায গির এগট গথভ ডডপরবরায ডদগখপরয় ডদপরফন ডম ডকভন টযাগ পরফ াাআডফাপরয াাআপরটয াাআডফাপরয ডকভন ডদখায় তা ডদখন- াঅভযা রগট গথপরভ এগট ডটসট কপরয ডদখফ েথভগট টপরয়গনট াআপররপরবন

33

এফায াঅপরযকগট গথপরভ ডদগখ-

34

াধযায়- িয়াঃ পলাগগন পাাংন

গকি ডফগক পাাংন __() পাাংন

__() পাাংনগট গএাআচগপরত াঅনায ডটকসটপরক ডযগড কপরয িানসপররন এফাং গযটানড কপরয উদাযন গপরপরফ াঅগন একগট বযারপরক __() পাাংপরনয ভপরধয ডবগযপরয়ফর গদপরয় assign করন ভপরন যাখপরফন এাআ পাাংনগট রগট াঅনডাযপরিায(_) গদপরয় গগঠত একগট নয় ltphp

$text=__(bdquoWordpress is a wonderful publishing platform‟‟liton_plugin‟)

gt

_e() পাাংন _e() পাাংনগট াঅনায ডটকসবপরট ডরাকারাাআজ কপরয এটা গএাআচগপরত echo এয ভত কাজ কপরয ডকান ডটকসটপরক গিপরন ডদখাপরনায জনয এফায একট ভজা কগয মা রপরক ডদপরখগি াঅপরগাআ- _e() পাাংনগট গদপরয় াঅপরগয পলাগগনগট এগডট কযফ ltphp

Plugin Name Liton Action

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(wp_footer liton_footer_action)

function liton_footer_action()

Output the translated text

_e( This site runs off the coolest platform ever ampmdash

WordPress

liton-plugin )

gt

35

এফায াঅউটট ডদগখ

esc_attr__() পাাংন এাআ পাাংনগট esc_attr() এয ভত এগট এাআচগটএভএর এগিগফউটপরক escape কপরয াঅভযা এফায esc_attr__() এফাং __() এাআ রগট পাাংনপরক একগট কপরয পলাগগন ততগয কযফ ltphp

Plugin Name Liton Esc Attr

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

A function that returns a link to the sites terms of service

page

function liton_terms_of_service_link()

return lta href=httpliton-onlinecomtos title=

esc_attr__( Visit the Terms of Service page boj-plugin ) gt __( Terms of

Service liton-plugin ) ltagt

Display the output of the liton_terms_of_service_link()

function

echo liton_terms_of_service_link()

gt

পলাগগনগটয াঅউটট ডদখন-

36

এযকভ াঅপরযা গকি পাাংন াঅপরি ডমগপররা াঅনাযা ডদপরখ ডনপরফন াআনটাযপরনট ডঘপরট

esc_html__() Function

esc_attr() Function

esc_url() Function

esc_js() Function

esc_html() Function

esc_attr_e() Function

esc_html_e() Function

_x() Function

_ex() Function

esc_attr_x() Function

esc_html_x() Function

_n() Function

_nx() Function

_n_noop() Function

_nx_noop() Function

Translation

bull Poedit httppoeditnet

bull GlotPress httpglotpressorg

bull Launchpad httpstranslationslaunchpadnet

bull Pootle httppootlelocamotionorg

bull KBabel httpi18nkdeorg

bull GNU Gettext httpgnuorgsoftwaregettext

GlotPress এখন ওপরয়ফ ডফড টর গপরপরফ ফযফায কযা পরচছ ওয়াডডে েপরজপরকটয ডিপরন একজন াথফা গটপরভয জনয িানসপররগটাং পটওয়যায গপরপরফ

37

াধযায়- াতাঃ পলাগগন গগকউগযগট

গগকউগযগট কগমপউটাপরযয বালায় ldquoগগকউগযগটrdquo ভাপরন বীগতকয একগট বদ ডমভন Cross Site

Scripting(XSS) Cross Site Request Forgery(CSRF) SQL Injection Privilege

Escalation Vulnerabilities এফাং Holes রফডর ডকাড একগট াবডাপরযয সযকষায জনয রভকীয কাযন পরত াপরয

পলাগগপরনয গগকউগযগট গক াঅনায পলাগগনগট ডমন গগকউয য় vulnerabilities data integrity এফাং reliability ডথপরক

াঅনায পলাগগনপরক গক গগকউগযগট ডদপরফন ওয়াডডপরে এনবায়যনপরভপরনট াঅনায পলাগগনপরক গগকউগযগট ডদয়া খফ কগঠন কাজ নয় এফাং খফ ভয় াপরকষ গফলয়ও নয় ওয়াডডপরেপরয গনজসব গকি পাাংন এপরকষপরতর াঅনাপরক খফাআ াাময কযপরফ

াআউজায াযগভন াঅভযা াপরনক পলাগগন াআনসটর কযায পরযাআ ডদপরখগি ডম মখনাআ এডগভন যাপরনর এ েপরফ কযপরত মাাআ তখন একগট এযয ডভপরজ াঅপর ডভপরজগট গনপরচয ভত-

ডরখা াঅপরি- You do not have sufficient permissionshellip এটা গনশচয়তা ডদয় ডম ডমপরকান এযাকন ীভাফি থাপরক গনগদডষট গকি যাাআট গদপরয় ওয়াডডপরেপরয একগট কভন পাাংন র current_user_can() একগট উদাযন ডদাআ-

38

ltphp

Capability

if ( current_user_can(install_plugins) )

wp_die( Insufficient permissions )

Role

if( current_user_can(editor) )

wp_die( You cannot edit this setting )

gt

খফ তাড়াতাগড় াঅগন এাআ current_user_can() পাাংন ডচক কযপরফন না কাযন এটা গনবডয কযপরফ get_currentuserinfo() এাআ পাাংপরনয উপরয াঅয এয ফযফাপরয ীভাফিতা াঅপরি এটা একগট পলাপরগফর পাাংন(pluggable function) াঅয এয ডরাপরকন পরচছ wp-

includespluggablephp মা পলাগগন এগকটব ফায য ডরাড য়

Nonces

ডকউ এগটপরক াঅফায Nonsense( গনপরফডাধ) বাফপরফন নাএগট ওয়াডডপরেপরয বালায় Nonces কগমপউটাপরযয বালায় nonce ফা cryptographic nonce পরচছ ldquonumber used once rdquo এটা ডিাট এফাং সপষট গকি য যানডভ গসটরাং ডমভন- াওয়াডড মা গকি গনপরদড কপরয Nonce গপরডন গপলড পভডপরক Retrieve ফা display কপরয-

একজন ওয়াডডপরে াআউজায ডমপরকান একগট এযাকন (delete update save and such) একগট াফপরজকট(একগট ডাসট পলাগগন ডগটাং াআতযাগদ) ২৪ ঘনটায একগট ভয় ডিভ

ডমভন ডাসট 50 গডগরট কযপরফন াঅনায ওয়াডডপরে বলগ ডথপরক তাপরর াঅনায গরঙকগট পরফ এযকভ- httpexamplecomwp-admin

postphppost=43ampaction=trashamp_wpnonce=83a08fcbc2

এখাপরন 83a08fcbc2 এগট র nonce মা ২৪ ঘনটা সথায়ী থাপরক রধভাতর এগট মগদ াঅনায িাযা ফযফরত য় এফাং গডগরট য় ডাসট 50 মখন াঅগন গরপরঙক গিক কপরযন ফপরচপরয় গযতবনড র ডম Nonce ডকান malicious াআউজায ফেপরত াপরযনা এফাং গঠক গরঙক িাড়া nonce এযয ডপরজ চপরর মায় ডমখাপরন াযগভন থাপরক না াঅপরযা গফসতাগযত ডদখন httpcodexwordpressorgWordPress_Nonces

39

Nonce URL ততগয এফায চরন াঅপরগয উদাযন ডথপরক Nonce URL ততগয কগয একগট ডাসট গডগরট কযায জনয wp_nonce_url() পাাংন ফযফায কযা য় ltphp

$url = wp_nonce_url( $url $action )

gt

েথভ যাযাগভটায $url পরচছ গসটরাং URL এপরডর এয মাপরক াঅগন কপরয়যী গসটরাং এয Nonce কযপরত চান াফযফহরত পলাগগপরনয গডগরট গরঙক এযকভ থাপরক- httpexamplecomwp-admineditphppage= liton

_utagsampliton_action=deleteampid=6

এখাপরন ডদখন যাযাগভটায liton_action এফাং এয টযাগ াঅাআগড গিতীয় যাযাগভটায পরচছ $action একগট গসটরাং মা াঅগন একগট াফপরজকট এয জনয একগট action ততগয কযপরফন উপরয ডদখরাভ delete এযাকন এয টযাগ াঅাআগড 6 সতযাাং $action যাযাগভটায পরত াপরয bdquoliton_utags-delete_tag6‟ গনপরচ ফাসতফ উদাযন ডদগখ- ltphp

$delete_url = add_query_arg(array( liton _action=gtdeleteid=gt$id) )

$nonced_url = wp_nonce_url( $delete_url bdquoliton _utags-delete_tag$id )

gt

lta href=ltphp echo $nonced_url gtgtdeleteltagt

এাআ টযাগগট পরফ গডগরট গরঙক এখাপরন add_query_arg() পাাংন ফযফায কযা পরয়পরি মা কাপরযনট URL ডক এযাপরয যাযাগভটায এয ভপরধয যাপরখ ানযবাপরফ ফরপরর এগট ডমাগ কপরয এযকভাঃ liton_action=deleteampid=6 amp liton_action=deleteampid=6

Nonce Form ততগয Nonce পভডপরকও ডোপরটকট কপরয wp_nonce_field() পাাংপরনয ভাধযপরভ ltphp

wp_nonce_field( $action $name $referer $echo ) gt

$action ( string) (optional) - action নাভ াআউগনক identifier optional

গকনত recommended $name (string) (optional) ndash গপরডন গপলড পভড ডবগযপরয়ফর নাভ $referer (boolean) (optional) ndash গডপলট গপরপরফ true থাপরক ডমখাপরন গপলড

ডবগরপরডন এয দযকায য়

40

$echo (boolean) (optional) - গডপলট গপরপরফ true থাপরক ডমখাপরন াঅউটট ডদখাপরনায ফা গপরডন পভড গপলড গযটানড কযায জনয দযকায য়

পপরভড াঅনায action এয নাভ গদন ltform method=postgt

lt-- some inputs here --gt

ltphp wp_nonce_field(name_of_my_actionname_of_nonce_field) gt

ltformgt

াঅভযা একগট পলাগগন ফানাপরফা ডমখাপরন াফযফরত টযাগগপররাপরক াঅভযা ভযানয়াগর গডগরট ফা গযপরনভ কযপরত াযফ এগট একট ফড় গকনত াপরনক গফলয়াআ াঅপরগাআ াঅপররাচনা কযা পরয়পরি ডদখপররাআ ফেপরত াযপরফন একগট ফাসতফধভডী উদাযন গনপরচ গদরাভ- ltphp

Plugin Name Liton Unused Tags

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add an entry for our option page to the Posts menu

add_action(admin_menu liton_utags_add_page)

function liton_utags_add_page()

add_posts_page( Unused Tags Unused Tagsmanage_optionsliton_utags

liton_utags_option_page )

Catch any liton_action parameter in query string

add_action( admin_init liton_utags_do_action )

Proceed to requested liton_action if applicable

function liton_utags_do_action()

if( isset( $_REQUEST[liton_action] ) )

return

if( current_user_can( manage_options ) )

wp_die( Insufficient privileges )

41

$id = $_REQUEST[id]

$action = $_REQUEST[liton_action]

if( $action == done )

add_action( admin_notices liton_utags_message )

return

check_admin_referer( liton_utags-$action_tag$id )

switch( $action )

case rename

$newtag = array( name =gt $_POST[name] slug =gt

$_POST[name] )

wp_update_term( $id post_tag $newtag )

break

case delete

wp_delete_term( $id post_tag )

break

wp_redirect( add_query_arg( array( liton_action =gt done )

) )

Admin notice

function liton_utags_message()

echo ltdiv class=updatedgtltpgtAction

completedltpgtltdivgt

Draw the tag management page

function liton_utags_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtUnused Tagslth2gt

ltphp

if( $tags = liton_utags_find_orphans() )

echo ltpgtYou currently have count( $tags ) unused

tagsltpgt

echo ltolgt

foreach( $tags as $tag )

42

$id = $tag-gtterm_id

$name = esc_attr( $tag-gtname )

$delete_url= add_query_arg(

array(liton_action=gtdeleteid=gt$id) )

$nonced_url= wp_nonce_url( $delete_url

liton_utags-delete_tag$id )

gt

ltligt

ltform action= method=postgt

ltphp wp_nonce_field( liton_utags-rename_tag$id )

gt

ltinput type=hidden name=liton_action

value=rename gt

ltinput type=hidden name=id value=ltphp echo

$id gt gt

ltinput type=text name=name value=ltphp echo

$name gt gt

ltinput type=submit value=Rename gt or

lta href=ltphp echo $nonced_url gtgtdeleteltagt

this tag

ltformgt

ltligt

ltphp

else gt

ltpgtYou have no unused tagsltpgt

ltphp endif gt

ltolgt

ltdivgt

ltphp

Find unused tags return them in an array

function liton_utags_find_orphans()

global $wpdb

$sql = SELECT termsterm_id termsname FROM

$wpdb-gtterms terms

INNER JOIN $wpdb-gtterm_taxonomy taxo

ON termsterm_id=taxoterm_id

WHERE taxotaxonomy = post_tag

43

AND taxocount=0

return $wpdb-gtget_results( $sql )

gt

ডযাপরফাপরডড এাআ পলাগগপরনয ডভন াওয়া মাপরফ ডাসট এয াফপরভন গপরপরফ গনপরচ ডদখন-

এফায পলাগগন ডভনপরত গিক কপরয ডদগখ পলাগগপরনয ডবতপরযয কাজ-

উপরয ডদখন াঅগভ একগট টযাগ ততগয কপরযগিরাভ l i নাপরভ এগট এখাপরন ডদখাপরচছ াঅগভ চাাআপরর এগট এগডট ফা গডগরট কযপরত াগয এফায গডগরট গরঙক এ ভাউপরয কাডয ডযপরখ গনপরচ গরঙক ডদখন ফা গডগরট করন একগট টযাগ াঅভায এখাপরন URL গট এযকভ httplocalhostdev-litonwp-

admineditphppage=liton_utagsampliton_action=doneampid=4amp_wpnonce=30a44b7

986

এখাপরন াঅগভ liton_action=done ফযফায কপরযগি Nonces এয পাাংনগপররায নাভ গনপরচ গদরাভ াঅনাযা ডদপরখ গনপরফন াআনটাযপরনট ডথপরক wp_nonce_field()

wp_nonce_url()

wp_verify_nonce()

wp_create_nonce()

44

check_admin_referer()

check_ajax_referer()

ডাটাপরফ াঅনাযা ডমপরত গএাআচগ গনপরয় কাজ কপরযন এগকউএর ডাটাপরফ এয াপরথ ফাাআ কভপরফী গযগচত এয গনটযাকস গপররা ডভাটাভগট ফায জানা একাআ বাপরফ াপরনপরকাআ ওয়াডডপরেপরও ডাটাপরফ ডকাড গরপরখন এটা ডকাগডাং এয জনয খাযা গদক াঅগভ নযভার গএাআচগ- এগকউএর ডকাড এয উদাযন গদগচছ- ltphp

$sql=rdquoINSERT INTO $wpdb-gtposts(post_title) VALUES(bdquo$title‟)rdquo

$wpdb-gtquery($sql) gt

এফায ওয়াডডপরেপরয সটযানডাডড ডকাগডাং গপরসটভ ডদখন- ltphp

$wpdb-gtinsert($wpdb-gtposts

array(bdquopost_title‟ =gt $title)

array(bdquos‟)

)

gt

ডাটাপরফ গগকউয কযায জনয াঅপরডট াাপরযন ডদখাফ- গনপরচয ডকাডগট খাযা েযাকগট ltphp

$wpdb-gtquery(ldquoUPDATE $wpdb-gtposts SET post_title=‟$newTitle‟ WHERE

ID=$my_idrdquo )

gt

উপরযয ভত কপরয না গরপরখ গনপরচয ভত কপরয গরখন- ltphp

$wpdb-gtupdate($wpdb-gtposts

Array(bdquopost_title‟ =gt‟$newTitle‟)

Array(bdquoID‟ =gt$my_id

)

gt

ানর বাপরফ ানযানয াাপরযন গপররা গরখপরফন

45

াধযায়- াঅটাঃ ডরাকারাাআপরজন এফাং Set t i ngs API

ডরাকারাাআপরজন ডরাকারাাআপরজন একগট গরতবনড গফলয় এয পাাংনগপররা র- load_theme_textdomain()

load_plugin_textdomain()

উদাযন- ltphp $var=__(bdquoHello‟‟domain‟) gt

ltphp _e(bdquoHello‟‟domain‟) gt

গফসতাগযত গনপরচয গরপরঙক ডদখন- httpcodexwordpressorgI18n_for_WordPress_Developers

ডগটাং API

ডগটাং API পরচছ াঅগন গকি ান ততগয কযপরফন মা াআনটাযনার বাপরফ াঅনায পলাগগপরন এপলাাআ পরফ মখন াঅগন াআউজায- গডপাাআন ান ততগয কযপরফন াঅনায পলাগগপরনয জনয তখন Settings

API ndashএ াঅনায ডকাড মতটা ারন জ করন Settings API াঅনায ডম কাজগপররা handle কপরয-

ওয়াডডপরেপরক জাগনপরয় ডদয় ডম াঅগন গনজসব ান ফযফায কযপরফন াঅনায াআনটপরক পাাংপরনয ভপরধয উপরেখ কযপরফ ডফগয বাগ ান ডজ গনপরজাআ ততগয কযপরফ $_POST ডাটা গপররাপরক ভগনটয কপরয ান ততগয এফাং াঅপরডট কপরয(মগদ েপরয়াজন য়)

Settings API পাাংন Settings API পাাংপরন গতনগট ডসট থাপরক- ১ েথপরভ ওয়াডডপরেপরক ফপরর ডম াঅগন নতন ডগটাং ফযফায কযপরফন াঅনায পলাগগপরনয জনয ২ এয পরয ডগটাং গডপাাআন করন (text areas input boxes and any

HTML form element) এফাং এপরদযপরক একাপরথ রে কপরয যাপরখ ৩ ওয়াডডপরেপরক াঅনায ডগটাং actual form এ ডদখাপরনায জনয ফপরর

46

এফায াঅভযা একগট পলাগগন ফানাপরফা Administration Page ndashএ ডযপাপরযনস গপরপরফ ডদখপরত াপরযন- httpcodexwordpressorgAdding_Administration_Menus

httpcodexwordpressorgFunction_Referenceadd_options_page

httpcodexwordpressorgAction_ReferenceActions_Run_During_an_Admin_P

age_Request

পলাগগপরনয এডগভন ডজ পরফ এযকভ- httpexamplecomwp-adminoptions-generalphppage=liton_myplugin

েথপরভ াঅভযা ডভন ততগয কযফ াঅপরগয ভত কপরয- Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

এফায ান ডজ এ পভড গনপরয় গকি ডগটাং ডদফ function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

উপরযয ডকাপরড াঅভযা একগট পপরভডয ভপরধয রধ াফগভট ফাটন এফাং My Plugin নাপরভ ডজ ততগয কপরযগি ডযাপরফাপরডড ডদখন-

47

ডগটাং এয াফ ডভন গপরপরফ My Plugin াঅপরি এফাং My Plugin ডত গিক কযপরর াঅভযা উপরযয ডজ ততগয কপরযগি ডমখাপরন াফগভট ফাটনগট ডদখাপরচছ এফায গতনগট যাযাগভটায ডযগজসটায কযফ- ltphp

register_setting( liton _myplugin_options liton _myplugin_options liton

_myplugin_validate_options)

gt

েথভগট ডগটাং রেপরয নাভ গিতীয়গট ান নাভ মা াঅভযা get_option() পাাংন গদপরয়ও ডপরত াগয ততীয়গট করফযাক পাাংন এগট একগট গসটরাং ডযপাপরযনস পাাংন এখাপরন াঅভযা নাভ

48

গদপরয়গি liton _myplugin_validate_options মা া কযপরফ পপরভডয কর ডব ডগটাং াঅভযা এটা পরয গডপাাআন কযফ

ডগটাং গডপাাআন ডকন add_settings_field() এফাং add_settings_section() পাাংন গদপরয় াঅভযা াঅভাপরদয কর ডগটাং গডপাাআন কযফ ltphp

add_settings_section( liton_myplugin_main My Plugin Settings

liton_myplugin_section_text liton _myplugin)

add_settings_field( liton _myplugin_text_string Enter text here

liton _myplugin_setting_input liton _myplugin liton _myplugin_main)

gt

add_settings_section() পাাংন গদপরয় াঅভযা ডদখাফ াঅপরর ডজ এ ডকন ডকভন ডদখাপরফ এয চাযগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ ডকন টাাআপরটর ltH3gt টযাপরগয ভপরধয করফযাক পাাংন এয নাভ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ (page= liton _myplugin এগট

URL এয াাং গপরপরফ থাকপরফ) গিতীয় যাযাগভটায add_settings_field() পপরভডয াআনট গপরপরফ ডদখাপরনা পরয়পরি এখাপরন াাচগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ পরযয গপপরলড গক গেনট কযা পরফ তা ডটকসট গপরপরফ ডদখাপরনা পরয়পরি(Enter text

here)

করফযাক পাাংন পপরভড গেনট কযপরফ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ ডগটাং ডপরজয ডকন গপলড মা add_settings_section() পাাংপরন গডপাাআন

কযা পরয়পরি ltphp

Explanations about this section

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

49

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton _myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name= liton _myplugin_options[text_string]

type=text value=$options[text_string] gt

gt

গিতীয় পাাংন ান বযার text_string ডক এযাপরযপরত ডসটায কপরয ডযপরখপরি এফায াআউজায াআনট বযাগরপরডট কযফ- ltphp

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace([^a-zA-Z]$input[text_string] )

return $valid

gt

পভডপরক ডযনডায কযফ- ltphp

Draw the options page

function liton_myplugin_options_page()

gt

ltdiv class=wrapgt

ltphp

screen_icon()

gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp

settings_fields( liton_myplugin_options)

do_settings_sections(liton_myplugin)

50

gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

settings_fields() পাাংনগট ডযপাপরযনস গপরপরফ ফযফায কযা পরয়পরি মা াঅভযা register_setting() পাাংপরন গডপরিয়ায কপরযগি do_settings_sections() পাাংনগট কর কযপরফ কর াঅউটট ডকন এফাং পভড গপলডপরক মা াঅভযা পরফড গডপাাআন কপরযগি াঅভাপরদয কাজ ডল এফায পরযা পলাগগনগট ডদখফ- ltphp

Plugin Name Settings API example

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

Draw the option page

function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save

Changes gt

ltformgtltdivgt

ltphp

51

Register and define the settings

add_action(admin_init liton_myplugin_admin_init)

function liton_myplugin_admin_init()

register_setting( liton_myplugin_options

liton_myplugin_options

liton_myplugin_validate_options )

add_settings_section( liton_myplugin_main My Plugin

Settings

liton_myplugin_section_text liton_myplugin )

add_settings_field( liton_myplugin_text_string Enter text

here

liton_myplugin_setting_input liton_myplugin

liton_myplugin_main )

Draw the section header

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton_myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name=liton_myplugin_options[text_string]

type=text value=$text_string gt

Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

return $valid

gt

52

ডদখন ডযাপরফাপরডড ডকভন ডদখায়-

পরয় ডগর াঅভাপরদয েথভ নডাাংগ পলাগগন ান ডজ াঅপরযকগট গজগন ডমটায জনয এতগকি পলাগগন URL এপরডর- httplocalhostdev-litonwp-adminoptions-

generalphppage=liton_mypluginampsettings-updated=true

াঅভায এখাপরন এযকভ ডদখাপরচছ ডটকসট ফপরকস ডকান গকি গরপরখ ডব কযায য এফাপরয াঅপরযকগট গজগন ডদখফ াঅভযা াপরনক ভয়াআ াপরনক পলাগগপরনয াআনট গপপরলড বর ডাটা াআনট কযপরর এযয ডভপরজ ডদখায় এাআ কাজগট কযফ এফায াঅভযা এখাপরন esc_attr() ফা esc_html() ফযফায কগযগন সতযাাং াঅভাপরদয গরগভপরটন থাকপরি ডবগরপরডট পাাংনগট একট এগডট কগয গনপরচয ভত কপরয Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

if( $valid[text_string] = $input[text_string] )

add_settings_error(liton_myplugin_text_stringliton_myplugin_texterror

53

Incorrect value enterederror)

return $valid

উপরয ডদখন add_settings_error() পাাংন ফযফায কপরযগি মা এযয ডচক কযপরফ পপরভডয াঅগভ একগট বর ডাটা(পরসপার কযাপরযকটায) াআনট কপরয ডদখরাভ এযয ডদখাপরচছ-

তায ভাপরন াঅভযা পর পরয়গি াঅনায পলাগগনগট এগডট কপরয ডনপরফন ডকায ডকন এফাং গপপরলডয গরসট গদরাভ াঅনাপরদয সগফধায জনয

54

CSSJS পাাআর মি কযা

াঅনায পলাগগপরন গএএ ফা জাবাগিে ডমাগ কযপরত পরত াপরয াঅগন চাাআপরর ফাগপরযয ডকান ফা াঅনায ততগয ডকান গএএ ফা জাবাগিে পাাআর ডমাগ কযপরত াপরযন তপরফ এপরকষপরতর াঅভযা ডমবাপরফ HTML এ পাাআর ডমাগ কগয ডযকভ না function liton_scripts()

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtojqueryjsrdquogtltscriptgt‟

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtoscriptjsrdquogtltscriptgt‟

add_action(bdquowp_head‟‟liton_scripts‟)

এগট মপনডরপর বর িগত গনপরচ ডদখন ওয়াডডপরেপর গকবাপরফ পাাআর মি কযপরত য়- function liton_scripts()

wp_enqueue_script(bdquojquery‟)

wp_enqueue_script(bdquotheme-scripts‟‟pathtoscriptsjs‟)

add_action(bdquowp_enqueue_script‟‟liton_scripts‟)

ানর বাপরফ াঅগন সটাাআরীট ডমাগ কযপরত াপরযন- function liton_styles()

wp_enqueue_ style (bdquocss‟)

wp_enqueue_ style (bdquotheme- styles‟pathto stylescss‟)

ডযপাপরযনস ডদখন- httpcodexwordpressorgFunction_Referencewp_enqueue_script

httpcodexwordpressorgFunction_Referencewp_enqueue_style

টডপরকাড টডপরকাড পরচছ ওয়াডডপরেপরয ডসপগগপক ডসপার টযাগ মা াঅগন ডাসট ফা ডপরজয ভপরধয াআনাটড কপরয ানয ডকান কনপরটনটপরক ওপরয়ফাাআপরটয ভপরধয গযপরপল কযপরত াযপরফন মগদ াঅগন গযারাগয টাাআপরয ডকান পলাগগন ফযফায কপরয থাপরকন তাপরর াঅনায ধাযনা থাকায কথা মাাআ ডাক াঅগভ কপরয়কগট উদাযি ডদখাফ

55

েথপরভ একগট পলাগগন ততগয কযফ ডমখাপরন add_shortcode() নাপরভয একগট পাাংন থাকপরফ এগট রগট যাযাগভটায েন কপরয েথভগট টডপরকাপরডয নাভ গিতীয়গট ডম পাাংনপরক কর কযপরফন ডগট াঅভযা একগট উদাযন ডদগখ- ltphp

Plugin Name Liton Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(litonhi)

function hi()

echo Hello World

gt

উপরয ডদখন খফ ডিাট গকনত াঅগন চাাআপরর এয ফযফায াপরনক গফসতত কযপরত াপরযন এখাপরন টডপরকাড নাভ পরচছ liton াঅয এগটপরক ডরখা য় এবাপরফ [liton] াঅভযা ডাপরসটয ভপরধয াআনাটড কপরয ডদগখ াঅউটট ডকভন ডদখায়-

এফায াঅউটট ডদগখ-

56

াঅভাপরদয ততগয কযা টডপরকাড পরবাপরফাআ কাজ কযপরি াঅপরযকগট উদাযন ডদখফ াঅনাযা াপরনপরকাআ গগর এডপরনস গনপরয় কাজ কপরযন াঅনাযা াপরনপরকাআ এডপরনস এয জনয পলাগগন ফযফায কপরযন গকনত চাাআপররাআ এাআ কাজগট াঅনাযা গনপরজয ভত কপরয াগজপরয় গনপরত াপরযন গগপররয কাপরি ফ ডাসট বযার ায়না াঅনাযা মাযা একসাটড াঅপরিন তাযা এটা বার কপরয জাপরনন তাাআ াপরনপরকাআ গগপররয ডকাড ফ ডপরজ ডদখাপরত চান না এজনয পলাগগন ফযফায কপরয রাব য়না কাযন পলাগগপরন জায়গা গপকসড থাপরক এপরত কপরয াঅগনডাং ও কভ য় াঅনাযা টডপরকাড ফযফায কপরয ডমপরকান জায়গায় এড ডদখাপরত াপরযন গনপরচ াঅগভ রগট টডপরকাড ততগয কপরযগি র‟ধযপরনয এড ডদখাপরনায জনয ltphp

Plugin Name Liton Adsense Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(adsense_468adsense_468_60)

add_shortcode(adsense_250adsense_250_250)

function adsense_468_60($atts)

return ltscript type=textjavascriptgtlt--

57

google_ad_client = ca-pub-0956247412222369

468x60 created 101510

google_ad_slot = 4372705450

google_ad_width = 468

google_ad_height = 60

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

function adsense_250_250($atts)

return ltscript type=textjavascriptgtlt--

google_ad_client = ca-pub-0956247412222369

250x250 created 81809

google_ad_slot = 9368091893

google_ad_width = 250

google_ad_height = 250

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

gt

একগট টডপরকাড ফযানায টাাআপরয জনয এফাং াঅপরযকগট ২৫০২৫০ াাআপরজয এফায ডাপরসট ডমপরকান একগট টডপরকাড াআনাটড করন ডমখাপরন াঅনায ডদখাপরনায েপরয়াজন ভপরন কপরযন াঅগভ রগট ডকাড ডটসট কপরয ডদখরাভ-

58

এফায াাআপরটয াঅউটট ডদগখ-

রগট এডাআ ডদখাপরচছ াঅপরযা াপরনক কাপরজ াঅগন টডপরকাড ফযফায কযপরত াপরযন ডযপাপরযনসাঃ httpcodexwordpressorgShortcode_API

59

াধযায়- নয়াঃ পলাগগন উদাযন

ওয়াডডপরেপরয ডডটটাাআভকপরভনট নামবায ফাাংরা কযায পলাগগন াঅভাপরক কপরয়কজন ফপররগিপররন ওয়াডডপরেপরয গডপলট ডডটটাাআভকপরভনট নামবায ফাাংরা য়না রযাাংগপরয়জ ফাাংরা কযায যও ডডটটাাআভকপরভনট নামবায গপররা াআাংপরযগজ ডথপরক মায় গনপরচয পলাগগনগট ফযফায কপরয ডদখপরত াপরযন- ltphp

Plugin Name Liton Bangla datetimecomment number

Plugin URI httpliton-onlinecomplugins

Description Bangla datetimecomment number

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

This function converts all english numbers to bangla number

function make_bangla_number($str)

$engNumber = array(1234567890)

$bangNumber = array( ১ ২ ৩ ৪ ৫ ৬ ৭ ৮ ৯ ০ ) $converted = str_replace($engNumber $bangNumber $str)

return $converted

add_filter( get_the_time make_bangla_number )

add_filter( the_date make_bangla_number )

add_filter( get_the_date make_bangla_number )

add_filter( comments_number make_bangla_number )

add_filter( get_comment_date make_bangla_number )

add_filter( get_comment_time make_bangla_number )

gt

60

সলাাআডায পলাগগন াঅভযা এাআ ফাআপরয়য কর গটউপরটাগযয়াপরর মা মা গখরাভ তা এফায একগট নডাাংগ পলাগগপরনয এপলাাআ কযফ সলাাআডায পলাগগন মপপরকড াঅভযা ফাাআ জাগন একগট ওপরয়ফাাআপরটয ডচাযা ারপরট ডদয় একগট সলাাআডায াপরনক ডাাআনাগভক ভপরন য় ডদখপরতও াপরনক বার রাপরগ এাআ পলাগগপরন াঅভযা এডগভন যাপরনর ডথপরক াআপরভজ ডমাগ কযফ এফাং তা াঅভাপরদয াাআপরট ডদখাফ চরন কাজ রর কগয- েথপরভ গনপরবা সলাাআডায এয ওপরয়ফাাআপরট মান এফাং jQuery Plugin ডাউনপররাড করন

ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom Version 10

gt

াঅভযা পলাগগপরনয ডডায ততগয কযরাভ

পলাগগন গরপরসট ডদখাপরচছ bdquoLitons Nivo Plugin‟ াঅভাপরদয েথভ কাজ পরচছ custom post

type ওয়াডডপরে পাাংনাগরগট একগট নতন কাসটভ ডজ ততগয কযপরত custom post type

ফযফহরত পরফ ডমখাপরন একগট াআপরভজ থাকপরফ াঅভযা রধ টাাআপরটর ডনভ এফাং াআপরভজ াঅপররাডায গপরপরফ গপচায াআপরভজ পাাংনাগরগট ফযফায কযফ function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_function 600 280 true)

61

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

add_action(init np_init)

উপরযয ডকাপরড np_init() পাাংনগট রক কপরযগি মা ডডায যান কযায াঅপরগ যান পরফ াঅয এজনয register_post_type() পাাংনপরক এয যাযাগভটায গদপরয় np_init() পাাংপরনয ডবতপরয মি কপরযগি এটা মগদ না কযতাভ তাপরর ldquoHeaders already sentrdquo ডভপরজ ডদখাত এাআ ডভপরজগটয াপরথ াপরনপরকাআ গযগচত াঅা কগয register_post_type() পাাংন গদপরয় াঅভযা াআপরভজ মি এফাং ভযাপরনজ কযফ ভরত াঅভযা একগট নতন custom post type ডমাগ কপরযগি np_images নাভ গদপরয় নতন custom post type ডক ডগটাং বযার গপরপরফ াঅযগপরভনট া কপরযগি $args ডবগযপরয়ফরগট ট ডরপরবর ডভন ততগয কপরয াঅপরগাআ ডদপরখগি পলাগগনগট এগকটপরবট কযপরর াঅভযা গনপরচয ভত ডদখপরত াফ-

এফায গিে এফাং সটাাআরীট ডক মি কযফ- add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

এফায রক কযা পাাংনগপররা গডপরিয়ায কগয- function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__) array( jquery ))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

62

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

উপরযয ডকাডগপররা নতন কপরয ফিডনা কযায গকি ডনাআ াঅপরগাআ wp_enqueue_style() এফাং wp_enqueue_script() মপপরকড ফরা পরয়পরি নতন াঅপরযকগট পাাআর ততগয করন একাআ গডপরযকটগযপরত scriptjs এফাং গনপরচয ডকাডটক গদন- jQuery(document)ready(function($)

$(slider)nivoSlider()

)

াআপরভজপরক গযাাআজ করন- add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

াঅভযা এাআ পলাগগনগটপরক উাআপরজট গপরপরফও ফযফায কযফ ডগট পরয ডদখফ াঅপরযকগট গজগন মগদ গথপরভ না ডদয়া থাপরক ডজনয থামবপরনাআর াপরাটড গদপরয় গদন- add_theme_support( post-thumbnails )

এফায ওয়াডডপরেপরয কাপরযনট ডাসট কপরয়যী কযায ডকাড াঅয $result ডবগযপরয়ফপরর ডমফ ltdivgt টযাগ ফযফায কযা পরয়পরি তা jQuery Plugin গট একসিাকট কপরয indexhtml ডজগটয ডভাআন সলাাআডায ডকাডগট ডদখন একাআ াঅপরি রধ ডখানকায ltdivgt টযাগ গপররাপরক কগ কপরয এাআ পলাগগপরন ফযফায কযা পরয়পরি এফায টডপরকাড গদন- add_shortcode(np-shortcode np_function)

এাআ টডপরকাড গএাআচগ পাাংনপরক রক কযপরফ এফাং এয ভধয ডথপরক সলাাআডপরায কনপরটনট ডক গযটানড কযপরফ াঅভাপরদয টডপরকাড পরচছ [np-shortcode] াঅভযা পলাগগপরন মাাআ এফাং একগট িগফ মি কগয গপচাযড াআপরভজ গপরপরফ গনপরচ ডদখন-

63

াঅগভ াঅপরযকগট ডজ ততগয কপরযগি ডমখাপরন টডপরকাড গদপরয়গি

াঅউটট ডজ ডদগখ এফায-

64

পরয় ডগর াঅভাপরদয সলাাআডায পলাগগন পরযা ডকাডগট গনপরচ গদরাভ- ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

65

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

66

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

এফায াঅগন মগদ উাআপরজট গপরপরফ ফযফায কযপরত চান তাপরর গনপরচয ডকাডটক গদন- class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

67

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

echo $after_widget

াঅপরযা রগট কাজ কযপরত পরফ াঅনাপরক এক াআপরভজ াাআজ উাআপরজট এয জনয গঠক কপরয গদপরত পরফ- add_image_size(np_widget 180 100 true)

াঅপরযকগট র উাআপরজট এযাকন রক ডমাগ কযা add_action(widgets_init np_widgets_init)

উাআপরজট পরযা ডকাড াঅফায গদরাভ- ltphp

Plugin Name Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Ciprian Turcu

Version 10

68

class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

69

echo $after_widget

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

70

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(widgets_init np_widgets_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

71

পলাগগন গনপরয় এত ডিাট গযপরয ডরখা মভফ নয় এজনযাআ ভপরন য় পলাগগন গনপরয় ডকউ ডরপরখন না কাযন এখাপরন এত গফলয় াঅপরি মা াঅপররাচনা কযপরত ডগপরর ৫০০ ডজ ায পরয় মাপরফ ডফাোয সগফধাপরথড াঅগভ মথামভফ উদাযন গদপরয় ডফাোপরনায ডচষটা কপরযগি াঅগভ এখাপরন টাপরগডট কপরযগি মাযা টকটাক জাপরন পলাগগন মপপরকড এডবানস ডরপরবপররয নয় কাযন তাযা জাপরনন াঅভায উপরেশয গির মাযা জানপরত চায় তাপরদযপরক জানাপরনা এখাপরন ডমফ গফলয় াঅপররাচনা কযা পরয়পরি তা ডভাটাভগট ভাপরনয একগট পলাগগন ফানাপরনায জনয মপরথষট তপরফ ভাপরনাননয়পরনয জনয াঅনাপরক গনপরজাআ খাপরজ গনপরত পরফ াঅনায জনয ডকানটা বার পরফ াঅগভ রধ গদক গনপরদডনা গদরাভ ভাতর এাআ ফাআগট রধভাতর ওয়াডডপরে রেপরয জনয ডরখা াপরনক বর ভরাগনত থাকপরত াপরয াঅনাযা কষভাসনদয দগষটপরত ডদখপরফন াঅগভ ডচষটা কপরযগি মতটা জ কপরয ডরখা মায় াপরনক ভয় ডদখা মায় ডম খফ ডিাট খাপরটা গফলয় গনপরয় াপরনপরকাআ নক কপরযন এটা গতয রাঃখজনক াঅনাযা গগপরর একট খাজপররাআ ভাধান াপরফন াঅপরগ গনপরজ ডচষটা করন তায পরয ানযপরক ভাধাপরনয জনয গজজঞাা করন াঅভায জনয ডদায়া কযপরফন বাপররা রাগপরর জানাপরফন খাযা রাগপররও জানাপরফন তাপররাআ াঅভায গযশরভ সবাথডক পরফ ভতাভত জাগনপরয় াঅভাপরক ডভাআর কযপরত াপরযন litonice09gmailcom |

72

Page 18: Wordpress Plugin Development

19

উপরযয িগফপরত ডদখন াঅগভ Hello This is Liton Arefin এাআ রাাআনগট গেনট কপরযগি এফাং তা পটাপরযয ফাভ াপর এপরকফাপরয গনপরচ ডদখাপরচছ এফায ডাড ডকাড এ ডদগখ াঅপররাআ এয গজন টা ডকাথায় াঅপরি

উপরয ডদখন পটাপরযয গঠক গনপরচাআ রাাআনগট ডদখাপরচছ এফায াঅপরযকগট ফাসতফ এফাং খফাআ গরতবনড উদাযন ডদগখ এাআ পলাগগনগটয কাজ পরফ মখনাআ ডকান কপরভনট ডাসট পরফ তখনাআ এডগভনপরক ডভাআর াঠাপরফ ডম নতন কপরভনট ডাসট পরয়পরি মগদও ওয়াডডপরে এাআ কাজগট কপরয থাপরক াঅভযা এাআ কাজগট ভযানয়ারী কপরয ডদগখ ltphp

Plugin Name Liton Comments Mail

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(comment_post function()

$email= get_bloginfo(admin_email)

wp_mail(

$email

New Comment Posted

A new comment has been left on your blog

)

)

gt

এখাপরন comment_post নাপরভয রপরক একগট ডবগযপরয়ফর $email ndashএ এডগভন ডভাআরপরক ডসটায কপরযগি মাপরত কপরয ডাাআনাগভক বাপরফ ড ডমপরকান াাআপরটয এডগভন ডভাআরপরক গডপরটকট কযপরত াপরয তপরফ এপরকষপরতর মগদ bloginfo(admin_email) ফযফায কযা ত তাপরর এডগভন ডভাআরপরক গডপরটকট কযত গকনত get_bloginfo(admin_email) ফযফায কযায পপরর াঅভযা াআপরভাআর বযারগটপরক গযটানড কপরয ডসটায কযগি এফাপরয ওয়াডডপরেপরয গফলটাআন ডভাআর পাাংন wp_mail(emailsubjectmessage) এয ভত কপরয গরপরখগি বার কপরয ডদখন পলাগগনগট এগকটপরবট কপরয ডদখন াঅনায াাআট মগদ ানরাাআপরন থাপরক তাপরর গনপরজাআ একগট কপরভনট কপরয ডদখন াঅনায এডগভন ডভাআপরর একগট ডভাআর চপরর ডগপরি

20

াধযায়- চাযাঃ পলাগগন ডকাগডাং সটযানডাডড

পলাগগন এগকটপরবনগডএগকটপরবন পাাংন াঅগন মখন একগট পলাগগনপরক এগকটব কপরযন তখনাআ এগকটপরবন পাাংন গিগায য় এাআ পাাংনপরক register_activation_hook() ফপরর ltphp register_activation_hook($file $function) gt

Parameters

$file- োাআভাগয পলাগগন পাাআপররয াথ

$function- ডম পাাংনগট গিগায পরফ মখন পলাগগন এগকটপরবট য় ডমভনাঃ- ltphp

register_activation_hook(__FILE__ bdquoliton_plugin_install‟)

function liton_plugin_install()

do something cool stuff

gt

াঅভযা একগট পলাগগন ফানাাআ এবাপরফ-

ltphp

Plugin Name Liton Version

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

register_activation_hook(__FILE__ liton_plugin_install)

function liton_plugin_install()

If(version_compare(get_bloginfo(version)51lt))

deactivate_plugins(basename(__FILE__))

deactivate our plugin

gt

মখন াঅভযা পলাগগন গডএগকটপরবট কগয তখন পলাগগন গডএগকটপরবন পাাংন কর য়

21

ltphp

register_deactivation_hook ($file $function) gt

-

ltphp

register_deactivation_hook (__FILE__ bdquoliton_plugin_install‟)

function liton_plugin_install()

do something

gt

াঅপরযকগট গরতবনড গফলয় র াঅনাআনসটর ওয়াডডপরে াঅনাপরক পলাগগন াঅনাআনসটর এয জনয রগট ান গদপরচছ- uninstallphp file and the uninstall hook

uninstallphp

এগট ডভাটাভগট েনপরমাগয িগত এ ডভথড ফযফায কযায জনয াঅনাপরক uninstallphp নাপরভ একগট পাাআর ততগয কযপরত পরফ াঅনায পলাগগন গডপরযকটগযপরত পাাআরগট গনপরচয ভত পরফ- ltphp

মগদ ওয়াডডপরে এগকসট কযায াপরথ াঅনাআনসটর কর কযা না য় If(defined(bdquoWP_UNINSTALL_PLUGIN‟))

exit()

delete_option(bdquoliton_plugin_options‟)

াগতগযি ান এফাং কাসটভ ডটগফর ভপরি ডপরন gt

Uninstall Hook

গিতীয় িগত র Uninstall Hook মগদ াঅগন ডকান পলাগগনপরক গডগরট কযপরত চান এফাং uninstallphp পাাআর না থাপরক তাপরর এাআ রক এগকসগকউট য়(মগদ থাপরক) ltphp

register_uninstall_hook($file$function)

gt

22

ডকাগডাং সটযানডাডড পলাগগন ফানাপরফন গকনত াঅনায ডকাড ডকভন পরফ গচনতা াঅপরত াপরয ওয়াডডপরে াঅনায জনয একগট সটযানডাডড গদপরয় গদপরয়পরি মা াঅনাপরক ওয়াডডপরেপরয জনয পলাগগন গরখপরত ডগপরর পপররা কযপরতাআ পরফ httpcodexwordpressorgWordPress_Coding_Standards

ডফগক একগট উদাযন গদরাভ গনপরচ- ltphp

Short description

Longer more detailed description

param type $varname1 Description

param type $varname2 Description

return type Description

function boj_super_function( $varname1 $varname2 )

do function stuff

gt

গএাআচগ সটানডাডড াঅভযা াপরনপরকাআ গএাআচগয টড পভড(lt gt) ফযফায কগয এটা মপিডরপর ফজডন করন কাযন াপরনক ডাগসটাং ডকামপাগনপরতাআ এটা গডপলট গপরপরফ ফনধ কপরয ডদয়া থাপরক সটযানডাডড টযাগ ফযফায করন(ltphp gt)

এগকউএর ডসটটপরভনট পলাগগন ততগযয ভয় াঅনাপরক াপরনক ভয়াআ ডাটাপরফ ডথপরক াআনপযপরভন গনপরত পরত াপরয াপরনক রাাআপরনয ডকাড গরখপরত পরত াপরয ডপরকষপরতর বার েযাকগট পরচছ এগকউএর এয কভানড গপররা ফড় াপরতয াকষপরয ডরখা ডমভন- SELECT username FROM table1 WHERE status = active

23

াধযায়- াাচাঃ ওয়াডডপরেপরয াপরথ াআগনটপরেন

ডভন এফাং াফ ডভন ততগয করন াঅভযা াপরনক পলাগগপরনাআ ডদগখ ডম একগট ডভন াঅাআপরটভ গপরপরফ াঅভাপরদয ডযাপরফাপরডড ডদখপরত াাআ এফাং ডাআ ডভনপরত গিক কযপরর ডগটাং ডজ াঅপর ডখাপরন পলাগগপরনয মাফতীয় ডগটাং গদপরয় াঅভযা পলাগগন কনগপগায কগয এফায এাআ চভৎকায কাজগট কযফ াঅভযা

ট ডরপরবর ডভন েথভ িগত পরচছ একগট ট ডরপরবর ডভন ততগয কযা ডমগট াঅভযা ডযাপরফাপরডড ডভন গরপরসট একগট নতন াঅাআপরটভ গপরপরফ ডমাগ কযফ ডভন ততগয কযায জনয াঅনাপরক add_menu_page( ) পাাংন ফযফায কযপরত পরফ ltphp

add_menu_page( page_title menu_title capability menu_slug functionicon_url

position )

gt

add_menu_page() পাাংন গনপরচয যাযাগভটাযগপররা াপরাটড কপরয page_title- াঅনায ডপরজয টাাআপরটর গক পরফ lttitlegt tag এয ভপরধয menu_title- ডযাপরফাপরডড াঅনায ডভনয নাভ capability- ফডগনমন capability রাগপরফ একগট ডভন গবউ পরত menu_slug- সলাগ নাভ মা ডভনপরক ডযপায কপরয- তপরফ এগট াআউগনক পরত পরফ function- একগট ডপরজয কনপরটনট ডদখপরত ডম পাাংন কর কযা য় icon_url- একগট কাসটভ াআপরভজ গরঙক ডভন াঅাআকন ডদখাপরনায জনয position- ডভনয গজন াডডায ডমখাপরন এটা ডদখাপরনা পরফ

এফায াঅভযা একগট ফাসতফ উদাযন ডদখফ- ltphp

Plugin Name Liton Menu

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action( admin_menu liton_menu)

function liton_menu()

24

create custom top-level menu

add_menu_page( Liton Menu Page Liton Menu Page manage_options

__FILE__ liton_menu_settings_page plugins_url( imageswp-logopng

__FILE__ ) )

gt

াঅভযা একগট ট ডরপরবর ডভন ততগয কযরাভ ডদখন ডযাপরফাপরডড ডকভন ডদখায়-

Liton Menu Page নাপরভ একগট ডভন ততগয পরয় ডগপরি এফাপরয াঅভযা াফপরভন কযফ ভাপরন Liton Menu Page এয গনপরচ গকি ডগটাং ডভন(মগদ েপরয়াজন য়) াফ ডভন ডযগজসটায কযায জনয add_submenu_page( ) পাাংন ফযফায কযা য় ltphp

add_submenu_page( parent_slug page_title menu_title capabilitymenu_slug

function )

gt

parent_slug- ডভন সলাগ মা াঅভযা াঅপরগ গডপাাআন কপরযগি menu_slug- মা ডভনপরক াফপরভনপরত ডযপায কযপরফ ফাগক পাাংনগপররা াঅপরগয ভতাআ

এফায াফপরভনয জনয গকি াগতগযি ডকাড ডমাগ কগয create submenu items

add_submenu_page( __FILE__ About My Plugin About manage_options

__FILE___about liton_menu_about_page )

add_submenu_page( __FILE__ Help with My Plugin Help

manage_options

__FILE___help liton_menu_help_page )

add_submenu_page( __FILE__ Uninstall My Plugin Uninstall

manage_options

__FILE___uninstall liton_menu_uninstall_page )

25

পরযা ডকাডগট পরফ এযকভ- ltphp

Plugin Name Liton Menu

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action( admin_menu liton_menu

)

function liton_menu()

create custom top-level menu

add_menu_page( Liton Menu Settings Page Liton Menu Page

manage_options __FILE__

liton_menu_settings_page

plugins_url( imageswp-logopng __FILE__ ) )

create submenu items

add_submenu_page( __FILE__ About My Plugin About manage_options

__FILE___about liton_menu_about_page )

add_submenu_page( __FILE__ Help with My Plugin Help

manage_options

__FILE___help liton_menu_help_page )

add_submenu_page( __FILE__ Uninstall My Plugin Uninstall

manage_options

__FILE___uninstall liton_menu_uninstall_page )

gt

গনপরচ ডদখন াফপরভনগপররা ততগয পরয় ডগপরি-

26

ডভনপরক াঅপরগয ডভনয াপরথ মি কযা এফায াঅগ গিতীয় িগতপরত মগদ াঅনায পলাগগপরনয একগট ভাতর ডজ থাপরক একগট ভাতর ডপরজাআ াঅনায কর ডগটাং পরয় মায় তাপরর এাআ িগত েন করন ডমভন ডয়াগযাং াাআটগপররায জনয রধ াঅনায াঅাআগডপযানপরপরজয াঅাআগড দযকায য় এযকভ পলাগগন এধযপরনয পলাগগপরনয জনয াঅনায াগতগযি ডভন ততগয কযায দযকায ডনাআ ফযাং এপরত কপরয াআউজায গফযি ডফাধ কযপরত াপরযন এ ধযপরনয পলাগগনগপররা ডগটাং এয াফপরভন গপরপরফ থাপরক add_options_page() এাআ পাাংন গদপরয় এফ ডভন ডযগজসটায কযা য় ltphp

add_options_page( page_title menu_title capability

menu_slug function)

gt

এফায চরন এযকভ একগট ডভন ততগয কগয- ltphp

Plugin Name Liton Sub Menu

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action( admin_menu liton_submenu)

function liton_submenu()

create a submenu under Settings

add_options_page( Liton Menu Settings Page Liton Menu Page

manage_options __FILE__

liton_menu_settings_page)

27

gt

াফপরভন ততগয পরয় ডগপরি চরন ডদগখ ডযাপরফাপরডড ডকভন ডদখায়-

এপরকফাপরয গনপরচয গদপরক ডদখন Liton Menu Page নাপরভ একগট ডভন ততগয পরয়পরি

উাআপরজট ততগয কযা উাআপরজট ততগয কযায জনয ওয়াডডপরে WP-Widget িা গদপরয় ততগয কযা য় উাআপরজট এয একগট পযভযাট ডদখন গনপরচ ltphp

class My_Widget extends WP_Widget

function My_Widget()

processes the widget

function form($instance)

displays the widget form in the admin dashboard

function update($new_instance $old_instance)

process widget options to save

function widget($args $instance)

displays the widget

gt

28

উাআপরজট ডযগজসটায কযায জনয widget_init() পাাংনপরক রক কযা য় চরন একগট উাআপরজট ততগয কগয- ltphp

Plugin Name Liton Widget

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

class Messager extends WP_Widget

function __construct()

$params=array(

description =gtDisplay message to readers

name =gt Message

)

parent__construct(Messager $params)

public function form()

public function widget()

add_action(widgets_initliton_register_message)

function liton_register_message()

register_widget(Messager)

gt

29

খফ াধাযন একগট উাআপরজট পলাগগন এগট াঅভযা াআউজাযপরদযপরক একগট ডভপরজ ডদখাপরফা াাআডফাপরয ডটাাআ কযায ডচষটা কযগি এখন পলাগগনগট এগকটপরবট কপরয ডদগখ-

াঅভাপরদয উাআপরজটগট ডদখাপরচছ এফায াঅপরযা গকি পাাংনার কাজ কগয এগট মগদ াাআডফাপরয ডরাগ কপরয ডদন তাপরর ডকান কাজ কযপরফ না কাযন াঅভযা এখপরনা গকিাআ কগযগন পভড পাাংপরন গকি কাজ কগয মা উাআপরজট টাাআপরটর গপরপরফ ডদখাপরফ- public function form($instance)

extract($instance)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title)gtgtTitle ltlabelgt

ltinput

class=widefat

id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt

value=ltphp if(isset($title)) echo esc_attr($title) gt gt

ltpgt

ltphp

াঅভযা উপরয class=widefat ফযফায কপরযগি এাআ িা ফযফায কযায কাযপরন পভড এয াআনট গপলডগট াপরনক সনদয পরয়পরি

30

মগদ এাআ িা ফযফায না কগয তাপরর ডকভন ডদখাপরফ গনপরচ ডদখন-

াঅভাপরদয উাআপরজট পলাগগনগটয ডকাড গনপরচ ডদওয়া র ltphp

Plugin Name Liton Widget

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

class Messager extends WP_Widget

function __construct()

$params=array(

description =gtDisplay message to readers

name =gt Message

)

parent__construct(Messager$params)

31

public function form($instance)

extract($instance)

print_r($instance)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title)gtgtTitle ltlabelgt

ltinput

class=widefat

id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt

value=ltphp if(isset($title)) echo esc_attr($title) gt gt

ltpgt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(description)gtgtDescription

ltlabelgt

lttextarea

class=widefat

rows=10

id=ltphp echo $this-gtget_field_id(description) gt

name=ltphp echo $this-gtget_field_name(description) gtgtltphp

if(isset($description)) echo esc_attr($description) gtlttextareagt

ltpgt

ltphp

public function widget($args$instance)

extract($args)

extract($instance)

echo $before_widget

echo $before_title$title$after_title

echo ltpgt$descriptionltpgt

echo $after_widget

add_action(widgets_initliton_register_message)

function liton_register_message()

32

register_widget(Messager)

gt

এফায াঅভযা ডযাপরফাডড ডথপরক একগট ডভপরজ ডদফ গবগজটযপরদযপরক-

াঅভযা এাআ উাআপরজটগট ডাাআনাগভক বাপরফ কপরযগি কাযন এখাপরন lth2gt lth3gt lth4gt এ ধযপরনয ডকান টযাগ াঅভযা ফযফায কগযগন াঅভযা গথভ ডডপরবর কযগিনা সতযাাং এ কাজগট াঅভাপরদয ানযবাপরফ কযা দযকায গির এগট গথভ ডডপরবরায ডদগখপরয় ডদপরফন ডম ডকভন টযাগ পরফ াাআডফাপরয াাআপরটয াাআডফাপরয ডকভন ডদখায় তা ডদখন- াঅভযা রগট গথপরভ এগট ডটসট কপরয ডদখফ েথভগট টপরয়গনট াআপররপরবন

33

এফায াঅপরযকগট গথপরভ ডদগখ-

34

াধযায়- িয়াঃ পলাগগন পাাংন

গকি ডফগক পাাংন __() পাাংন

__() পাাংনগট গএাআচগপরত াঅনায ডটকসটপরক ডযগড কপরয িানসপররন এফাং গযটানড কপরয উদাযন গপরপরফ াঅগন একগট বযারপরক __() পাাংপরনয ভপরধয ডবগযপরয়ফর গদপরয় assign করন ভপরন যাখপরফন এাআ পাাংনগট রগট াঅনডাযপরিায(_) গদপরয় গগঠত একগট নয় ltphp

$text=__(bdquoWordpress is a wonderful publishing platform‟‟liton_plugin‟)

gt

_e() পাাংন _e() পাাংনগট াঅনায ডটকসবপরট ডরাকারাাআজ কপরয এটা গএাআচগপরত echo এয ভত কাজ কপরয ডকান ডটকসটপরক গিপরন ডদখাপরনায জনয এফায একট ভজা কগয মা রপরক ডদপরখগি াঅপরগাআ- _e() পাাংনগট গদপরয় াঅপরগয পলাগগনগট এগডট কযফ ltphp

Plugin Name Liton Action

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(wp_footer liton_footer_action)

function liton_footer_action()

Output the translated text

_e( This site runs off the coolest platform ever ampmdash

WordPress

liton-plugin )

gt

35

এফায াঅউটট ডদগখ

esc_attr__() পাাংন এাআ পাাংনগট esc_attr() এয ভত এগট এাআচগটএভএর এগিগফউটপরক escape কপরয াঅভযা এফায esc_attr__() এফাং __() এাআ রগট পাাংনপরক একগট কপরয পলাগগন ততগয কযফ ltphp

Plugin Name Liton Esc Attr

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

A function that returns a link to the sites terms of service

page

function liton_terms_of_service_link()

return lta href=httpliton-onlinecomtos title=

esc_attr__( Visit the Terms of Service page boj-plugin ) gt __( Terms of

Service liton-plugin ) ltagt

Display the output of the liton_terms_of_service_link()

function

echo liton_terms_of_service_link()

gt

পলাগগনগটয াঅউটট ডদখন-

36

এযকভ াঅপরযা গকি পাাংন াঅপরি ডমগপররা াঅনাযা ডদপরখ ডনপরফন াআনটাযপরনট ডঘপরট

esc_html__() Function

esc_attr() Function

esc_url() Function

esc_js() Function

esc_html() Function

esc_attr_e() Function

esc_html_e() Function

_x() Function

_ex() Function

esc_attr_x() Function

esc_html_x() Function

_n() Function

_nx() Function

_n_noop() Function

_nx_noop() Function

Translation

bull Poedit httppoeditnet

bull GlotPress httpglotpressorg

bull Launchpad httpstranslationslaunchpadnet

bull Pootle httppootlelocamotionorg

bull KBabel httpi18nkdeorg

bull GNU Gettext httpgnuorgsoftwaregettext

GlotPress এখন ওপরয়ফ ডফড টর গপরপরফ ফযফায কযা পরচছ ওয়াডডে েপরজপরকটয ডিপরন একজন াথফা গটপরভয জনয িানসপররগটাং পটওয়যায গপরপরফ

37

াধযায়- াতাঃ পলাগগন গগকউগযগট

গগকউগযগট কগমপউটাপরযয বালায় ldquoগগকউগযগটrdquo ভাপরন বীগতকয একগট বদ ডমভন Cross Site

Scripting(XSS) Cross Site Request Forgery(CSRF) SQL Injection Privilege

Escalation Vulnerabilities এফাং Holes রফডর ডকাড একগট াবডাপরযয সযকষায জনয রভকীয কাযন পরত াপরয

পলাগগপরনয গগকউগযগট গক াঅনায পলাগগনগট ডমন গগকউয য় vulnerabilities data integrity এফাং reliability ডথপরক

াঅনায পলাগগনপরক গক গগকউগযগট ডদপরফন ওয়াডডপরে এনবায়যনপরভপরনট াঅনায পলাগগনপরক গগকউগযগট ডদয়া খফ কগঠন কাজ নয় এফাং খফ ভয় াপরকষ গফলয়ও নয় ওয়াডডপরেপরয গনজসব গকি পাাংন এপরকষপরতর াঅনাপরক খফাআ াাময কযপরফ

াআউজায াযগভন াঅভযা াপরনক পলাগগন াআনসটর কযায পরযাআ ডদপরখগি ডম মখনাআ এডগভন যাপরনর এ েপরফ কযপরত মাাআ তখন একগট এযয ডভপরজ াঅপর ডভপরজগট গনপরচয ভত-

ডরখা াঅপরি- You do not have sufficient permissionshellip এটা গনশচয়তা ডদয় ডম ডমপরকান এযাকন ীভাফি থাপরক গনগদডষট গকি যাাআট গদপরয় ওয়াডডপরেপরয একগট কভন পাাংন র current_user_can() একগট উদাযন ডদাআ-

38

ltphp

Capability

if ( current_user_can(install_plugins) )

wp_die( Insufficient permissions )

Role

if( current_user_can(editor) )

wp_die( You cannot edit this setting )

gt

খফ তাড়াতাগড় াঅগন এাআ current_user_can() পাাংন ডচক কযপরফন না কাযন এটা গনবডয কযপরফ get_currentuserinfo() এাআ পাাংপরনয উপরয াঅয এয ফযফাপরয ীভাফিতা াঅপরি এটা একগট পলাপরগফর পাাংন(pluggable function) াঅয এয ডরাপরকন পরচছ wp-

includespluggablephp মা পলাগগন এগকটব ফায য ডরাড য়

Nonces

ডকউ এগটপরক াঅফায Nonsense( গনপরফডাধ) বাফপরফন নাএগট ওয়াডডপরেপরয বালায় Nonces কগমপউটাপরযয বালায় nonce ফা cryptographic nonce পরচছ ldquonumber used once rdquo এটা ডিাট এফাং সপষট গকি য যানডভ গসটরাং ডমভন- াওয়াডড মা গকি গনপরদড কপরয Nonce গপরডন গপলড পভডপরক Retrieve ফা display কপরয-

একজন ওয়াডডপরে াআউজায ডমপরকান একগট এযাকন (delete update save and such) একগট াফপরজকট(একগট ডাসট পলাগগন ডগটাং াআতযাগদ) ২৪ ঘনটায একগট ভয় ডিভ

ডমভন ডাসট 50 গডগরট কযপরফন াঅনায ওয়াডডপরে বলগ ডথপরক তাপরর াঅনায গরঙকগট পরফ এযকভ- httpexamplecomwp-admin

postphppost=43ampaction=trashamp_wpnonce=83a08fcbc2

এখাপরন 83a08fcbc2 এগট র nonce মা ২৪ ঘনটা সথায়ী থাপরক রধভাতর এগট মগদ াঅনায িাযা ফযফরত য় এফাং গডগরট য় ডাসট 50 মখন াঅগন গরপরঙক গিক কপরযন ফপরচপরয় গযতবনড র ডম Nonce ডকান malicious াআউজায ফেপরত াপরযনা এফাং গঠক গরঙক িাড়া nonce এযয ডপরজ চপরর মায় ডমখাপরন াযগভন থাপরক না াঅপরযা গফসতাগযত ডদখন httpcodexwordpressorgWordPress_Nonces

39

Nonce URL ততগয এফায চরন াঅপরগয উদাযন ডথপরক Nonce URL ততগয কগয একগট ডাসট গডগরট কযায জনয wp_nonce_url() পাাংন ফযফায কযা য় ltphp

$url = wp_nonce_url( $url $action )

gt

েথভ যাযাগভটায $url পরচছ গসটরাং URL এপরডর এয মাপরক াঅগন কপরয়যী গসটরাং এয Nonce কযপরত চান াফযফহরত পলাগগপরনয গডগরট গরঙক এযকভ থাপরক- httpexamplecomwp-admineditphppage= liton

_utagsampliton_action=deleteampid=6

এখাপরন ডদখন যাযাগভটায liton_action এফাং এয টযাগ াঅাআগড গিতীয় যাযাগভটায পরচছ $action একগট গসটরাং মা াঅগন একগট াফপরজকট এয জনয একগট action ততগয কযপরফন উপরয ডদখরাভ delete এযাকন এয টযাগ াঅাআগড 6 সতযাাং $action যাযাগভটায পরত াপরয bdquoliton_utags-delete_tag6‟ গনপরচ ফাসতফ উদাযন ডদগখ- ltphp

$delete_url = add_query_arg(array( liton _action=gtdeleteid=gt$id) )

$nonced_url = wp_nonce_url( $delete_url bdquoliton _utags-delete_tag$id )

gt

lta href=ltphp echo $nonced_url gtgtdeleteltagt

এাআ টযাগগট পরফ গডগরট গরঙক এখাপরন add_query_arg() পাাংন ফযফায কযা পরয়পরি মা কাপরযনট URL ডক এযাপরয যাযাগভটায এয ভপরধয যাপরখ ানযবাপরফ ফরপরর এগট ডমাগ কপরয এযকভাঃ liton_action=deleteampid=6 amp liton_action=deleteampid=6

Nonce Form ততগয Nonce পভডপরকও ডোপরটকট কপরয wp_nonce_field() পাাংপরনয ভাধযপরভ ltphp

wp_nonce_field( $action $name $referer $echo ) gt

$action ( string) (optional) - action নাভ াআউগনক identifier optional

গকনত recommended $name (string) (optional) ndash গপরডন গপলড পভড ডবগযপরয়ফর নাভ $referer (boolean) (optional) ndash গডপলট গপরপরফ true থাপরক ডমখাপরন গপলড

ডবগরপরডন এয দযকায য়

40

$echo (boolean) (optional) - গডপলট গপরপরফ true থাপরক ডমখাপরন াঅউটট ডদখাপরনায ফা গপরডন পভড গপলড গযটানড কযায জনয দযকায য়

পপরভড াঅনায action এয নাভ গদন ltform method=postgt

lt-- some inputs here --gt

ltphp wp_nonce_field(name_of_my_actionname_of_nonce_field) gt

ltformgt

াঅভযা একগট পলাগগন ফানাপরফা ডমখাপরন াফযফরত টযাগগপররাপরক াঅভযা ভযানয়াগর গডগরট ফা গযপরনভ কযপরত াযফ এগট একট ফড় গকনত াপরনক গফলয়াআ াঅপরগাআ াঅপররাচনা কযা পরয়পরি ডদখপররাআ ফেপরত াযপরফন একগট ফাসতফধভডী উদাযন গনপরচ গদরাভ- ltphp

Plugin Name Liton Unused Tags

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add an entry for our option page to the Posts menu

add_action(admin_menu liton_utags_add_page)

function liton_utags_add_page()

add_posts_page( Unused Tags Unused Tagsmanage_optionsliton_utags

liton_utags_option_page )

Catch any liton_action parameter in query string

add_action( admin_init liton_utags_do_action )

Proceed to requested liton_action if applicable

function liton_utags_do_action()

if( isset( $_REQUEST[liton_action] ) )

return

if( current_user_can( manage_options ) )

wp_die( Insufficient privileges )

41

$id = $_REQUEST[id]

$action = $_REQUEST[liton_action]

if( $action == done )

add_action( admin_notices liton_utags_message )

return

check_admin_referer( liton_utags-$action_tag$id )

switch( $action )

case rename

$newtag = array( name =gt $_POST[name] slug =gt

$_POST[name] )

wp_update_term( $id post_tag $newtag )

break

case delete

wp_delete_term( $id post_tag )

break

wp_redirect( add_query_arg( array( liton_action =gt done )

) )

Admin notice

function liton_utags_message()

echo ltdiv class=updatedgtltpgtAction

completedltpgtltdivgt

Draw the tag management page

function liton_utags_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtUnused Tagslth2gt

ltphp

if( $tags = liton_utags_find_orphans() )

echo ltpgtYou currently have count( $tags ) unused

tagsltpgt

echo ltolgt

foreach( $tags as $tag )

42

$id = $tag-gtterm_id

$name = esc_attr( $tag-gtname )

$delete_url= add_query_arg(

array(liton_action=gtdeleteid=gt$id) )

$nonced_url= wp_nonce_url( $delete_url

liton_utags-delete_tag$id )

gt

ltligt

ltform action= method=postgt

ltphp wp_nonce_field( liton_utags-rename_tag$id )

gt

ltinput type=hidden name=liton_action

value=rename gt

ltinput type=hidden name=id value=ltphp echo

$id gt gt

ltinput type=text name=name value=ltphp echo

$name gt gt

ltinput type=submit value=Rename gt or

lta href=ltphp echo $nonced_url gtgtdeleteltagt

this tag

ltformgt

ltligt

ltphp

else gt

ltpgtYou have no unused tagsltpgt

ltphp endif gt

ltolgt

ltdivgt

ltphp

Find unused tags return them in an array

function liton_utags_find_orphans()

global $wpdb

$sql = SELECT termsterm_id termsname FROM

$wpdb-gtterms terms

INNER JOIN $wpdb-gtterm_taxonomy taxo

ON termsterm_id=taxoterm_id

WHERE taxotaxonomy = post_tag

43

AND taxocount=0

return $wpdb-gtget_results( $sql )

gt

ডযাপরফাপরডড এাআ পলাগগপরনয ডভন াওয়া মাপরফ ডাসট এয াফপরভন গপরপরফ গনপরচ ডদখন-

এফায পলাগগন ডভনপরত গিক কপরয ডদগখ পলাগগপরনয ডবতপরযয কাজ-

উপরয ডদখন াঅগভ একগট টযাগ ততগয কপরযগিরাভ l i নাপরভ এগট এখাপরন ডদখাপরচছ াঅগভ চাাআপরর এগট এগডট ফা গডগরট কযপরত াগয এফায গডগরট গরঙক এ ভাউপরয কাডয ডযপরখ গনপরচ গরঙক ডদখন ফা গডগরট করন একগট টযাগ াঅভায এখাপরন URL গট এযকভ httplocalhostdev-litonwp-

admineditphppage=liton_utagsampliton_action=doneampid=4amp_wpnonce=30a44b7

986

এখাপরন াঅগভ liton_action=done ফযফায কপরযগি Nonces এয পাাংনগপররায নাভ গনপরচ গদরাভ াঅনাযা ডদপরখ গনপরফন াআনটাযপরনট ডথপরক wp_nonce_field()

wp_nonce_url()

wp_verify_nonce()

wp_create_nonce()

44

check_admin_referer()

check_ajax_referer()

ডাটাপরফ াঅনাযা ডমপরত গএাআচগ গনপরয় কাজ কপরযন এগকউএর ডাটাপরফ এয াপরথ ফাাআ কভপরফী গযগচত এয গনটযাকস গপররা ডভাটাভগট ফায জানা একাআ বাপরফ াপরনপরকাআ ওয়াডডপরেপরও ডাটাপরফ ডকাড গরপরখন এটা ডকাগডাং এয জনয খাযা গদক াঅগভ নযভার গএাআচগ- এগকউএর ডকাড এয উদাযন গদগচছ- ltphp

$sql=rdquoINSERT INTO $wpdb-gtposts(post_title) VALUES(bdquo$title‟)rdquo

$wpdb-gtquery($sql) gt

এফায ওয়াডডপরেপরয সটযানডাডড ডকাগডাং গপরসটভ ডদখন- ltphp

$wpdb-gtinsert($wpdb-gtposts

array(bdquopost_title‟ =gt $title)

array(bdquos‟)

)

gt

ডাটাপরফ গগকউয কযায জনয াঅপরডট াাপরযন ডদখাফ- গনপরচয ডকাডগট খাযা েযাকগট ltphp

$wpdb-gtquery(ldquoUPDATE $wpdb-gtposts SET post_title=‟$newTitle‟ WHERE

ID=$my_idrdquo )

gt

উপরযয ভত কপরয না গরপরখ গনপরচয ভত কপরয গরখন- ltphp

$wpdb-gtupdate($wpdb-gtposts

Array(bdquopost_title‟ =gt‟$newTitle‟)

Array(bdquoID‟ =gt$my_id

)

gt

ানর বাপরফ ানযানয াাপরযন গপররা গরখপরফন

45

াধযায়- াঅটাঃ ডরাকারাাআপরজন এফাং Set t i ngs API

ডরাকারাাআপরজন ডরাকারাাআপরজন একগট গরতবনড গফলয় এয পাাংনগপররা র- load_theme_textdomain()

load_plugin_textdomain()

উদাযন- ltphp $var=__(bdquoHello‟‟domain‟) gt

ltphp _e(bdquoHello‟‟domain‟) gt

গফসতাগযত গনপরচয গরপরঙক ডদখন- httpcodexwordpressorgI18n_for_WordPress_Developers

ডগটাং API

ডগটাং API পরচছ াঅগন গকি ান ততগয কযপরফন মা াআনটাযনার বাপরফ াঅনায পলাগগপরন এপলাাআ পরফ মখন াঅগন াআউজায- গডপাাআন ান ততগয কযপরফন াঅনায পলাগগপরনয জনয তখন Settings

API ndashএ াঅনায ডকাড মতটা ারন জ করন Settings API াঅনায ডম কাজগপররা handle কপরয-

ওয়াডডপরেপরক জাগনপরয় ডদয় ডম াঅগন গনজসব ান ফযফায কযপরফন াঅনায াআনটপরক পাাংপরনয ভপরধয উপরেখ কযপরফ ডফগয বাগ ান ডজ গনপরজাআ ততগয কযপরফ $_POST ডাটা গপররাপরক ভগনটয কপরয ান ততগয এফাং াঅপরডট কপরয(মগদ েপরয়াজন য়)

Settings API পাাংন Settings API পাাংপরন গতনগট ডসট থাপরক- ১ েথপরভ ওয়াডডপরেপরক ফপরর ডম াঅগন নতন ডগটাং ফযফায কযপরফন াঅনায পলাগগপরনয জনয ২ এয পরয ডগটাং গডপাাআন করন (text areas input boxes and any

HTML form element) এফাং এপরদযপরক একাপরথ রে কপরয যাপরখ ৩ ওয়াডডপরেপরক াঅনায ডগটাং actual form এ ডদখাপরনায জনয ফপরর

46

এফায াঅভযা একগট পলাগগন ফানাপরফা Administration Page ndashএ ডযপাপরযনস গপরপরফ ডদখপরত াপরযন- httpcodexwordpressorgAdding_Administration_Menus

httpcodexwordpressorgFunction_Referenceadd_options_page

httpcodexwordpressorgAction_ReferenceActions_Run_During_an_Admin_P

age_Request

পলাগগপরনয এডগভন ডজ পরফ এযকভ- httpexamplecomwp-adminoptions-generalphppage=liton_myplugin

েথপরভ াঅভযা ডভন ততগয কযফ াঅপরগয ভত কপরয- Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

এফায ান ডজ এ পভড গনপরয় গকি ডগটাং ডদফ function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

উপরযয ডকাপরড াঅভযা একগট পপরভডয ভপরধয রধ াফগভট ফাটন এফাং My Plugin নাপরভ ডজ ততগয কপরযগি ডযাপরফাপরডড ডদখন-

47

ডগটাং এয াফ ডভন গপরপরফ My Plugin াঅপরি এফাং My Plugin ডত গিক কযপরর াঅভযা উপরযয ডজ ততগয কপরযগি ডমখাপরন াফগভট ফাটনগট ডদখাপরচছ এফায গতনগট যাযাগভটায ডযগজসটায কযফ- ltphp

register_setting( liton _myplugin_options liton _myplugin_options liton

_myplugin_validate_options)

gt

েথভগট ডগটাং রেপরয নাভ গিতীয়গট ান নাভ মা াঅভযা get_option() পাাংন গদপরয়ও ডপরত াগয ততীয়গট করফযাক পাাংন এগট একগট গসটরাং ডযপাপরযনস পাাংন এখাপরন াঅভযা নাভ

48

গদপরয়গি liton _myplugin_validate_options মা া কযপরফ পপরভডয কর ডব ডগটাং াঅভযা এটা পরয গডপাাআন কযফ

ডগটাং গডপাাআন ডকন add_settings_field() এফাং add_settings_section() পাাংন গদপরয় াঅভযা াঅভাপরদয কর ডগটাং গডপাাআন কযফ ltphp

add_settings_section( liton_myplugin_main My Plugin Settings

liton_myplugin_section_text liton _myplugin)

add_settings_field( liton _myplugin_text_string Enter text here

liton _myplugin_setting_input liton _myplugin liton _myplugin_main)

gt

add_settings_section() পাাংন গদপরয় াঅভযা ডদখাফ াঅপরর ডজ এ ডকন ডকভন ডদখাপরফ এয চাযগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ ডকন টাাআপরটর ltH3gt টযাপরগয ভপরধয করফযাক পাাংন এয নাভ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ (page= liton _myplugin এগট

URL এয াাং গপরপরফ থাকপরফ) গিতীয় যাযাগভটায add_settings_field() পপরভডয াআনট গপরপরফ ডদখাপরনা পরয়পরি এখাপরন াাচগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ পরযয গপপরলড গক গেনট কযা পরফ তা ডটকসট গপরপরফ ডদখাপরনা পরয়পরি(Enter text

here)

করফযাক পাাংন পপরভড গেনট কযপরফ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ ডগটাং ডপরজয ডকন গপলড মা add_settings_section() পাাংপরন গডপাাআন

কযা পরয়পরি ltphp

Explanations about this section

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

49

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton _myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name= liton _myplugin_options[text_string]

type=text value=$options[text_string] gt

gt

গিতীয় পাাংন ান বযার text_string ডক এযাপরযপরত ডসটায কপরয ডযপরখপরি এফায াআউজায াআনট বযাগরপরডট কযফ- ltphp

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace([^a-zA-Z]$input[text_string] )

return $valid

gt

পভডপরক ডযনডায কযফ- ltphp

Draw the options page

function liton_myplugin_options_page()

gt

ltdiv class=wrapgt

ltphp

screen_icon()

gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp

settings_fields( liton_myplugin_options)

do_settings_sections(liton_myplugin)

50

gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

settings_fields() পাাংনগট ডযপাপরযনস গপরপরফ ফযফায কযা পরয়পরি মা াঅভযা register_setting() পাাংপরন গডপরিয়ায কপরযগি do_settings_sections() পাাংনগট কর কযপরফ কর াঅউটট ডকন এফাং পভড গপলডপরক মা াঅভযা পরফড গডপাাআন কপরযগি াঅভাপরদয কাজ ডল এফায পরযা পলাগগনগট ডদখফ- ltphp

Plugin Name Settings API example

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

Draw the option page

function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save

Changes gt

ltformgtltdivgt

ltphp

51

Register and define the settings

add_action(admin_init liton_myplugin_admin_init)

function liton_myplugin_admin_init()

register_setting( liton_myplugin_options

liton_myplugin_options

liton_myplugin_validate_options )

add_settings_section( liton_myplugin_main My Plugin

Settings

liton_myplugin_section_text liton_myplugin )

add_settings_field( liton_myplugin_text_string Enter text

here

liton_myplugin_setting_input liton_myplugin

liton_myplugin_main )

Draw the section header

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton_myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name=liton_myplugin_options[text_string]

type=text value=$text_string gt

Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

return $valid

gt

52

ডদখন ডযাপরফাপরডড ডকভন ডদখায়-

পরয় ডগর াঅভাপরদয েথভ নডাাংগ পলাগগন ান ডজ াঅপরযকগট গজগন ডমটায জনয এতগকি পলাগগন URL এপরডর- httplocalhostdev-litonwp-adminoptions-

generalphppage=liton_mypluginampsettings-updated=true

াঅভায এখাপরন এযকভ ডদখাপরচছ ডটকসট ফপরকস ডকান গকি গরপরখ ডব কযায য এফাপরয াঅপরযকগট গজগন ডদখফ াঅভযা াপরনক ভয়াআ াপরনক পলাগগপরনয াআনট গপপরলড বর ডাটা াআনট কযপরর এযয ডভপরজ ডদখায় এাআ কাজগট কযফ এফায াঅভযা এখাপরন esc_attr() ফা esc_html() ফযফায কগযগন সতযাাং াঅভাপরদয গরগভপরটন থাকপরি ডবগরপরডট পাাংনগট একট এগডট কগয গনপরচয ভত কপরয Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

if( $valid[text_string] = $input[text_string] )

add_settings_error(liton_myplugin_text_stringliton_myplugin_texterror

53

Incorrect value enterederror)

return $valid

উপরয ডদখন add_settings_error() পাাংন ফযফায কপরযগি মা এযয ডচক কযপরফ পপরভডয াঅগভ একগট বর ডাটা(পরসপার কযাপরযকটায) াআনট কপরয ডদখরাভ এযয ডদখাপরচছ-

তায ভাপরন াঅভযা পর পরয়গি াঅনায পলাগগনগট এগডট কপরয ডনপরফন ডকায ডকন এফাং গপপরলডয গরসট গদরাভ াঅনাপরদয সগফধায জনয

54

CSSJS পাাআর মি কযা

াঅনায পলাগগপরন গএএ ফা জাবাগিে ডমাগ কযপরত পরত াপরয াঅগন চাাআপরর ফাগপরযয ডকান ফা াঅনায ততগয ডকান গএএ ফা জাবাগিে পাাআর ডমাগ কযপরত াপরযন তপরফ এপরকষপরতর াঅভযা ডমবাপরফ HTML এ পাাআর ডমাগ কগয ডযকভ না function liton_scripts()

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtojqueryjsrdquogtltscriptgt‟

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtoscriptjsrdquogtltscriptgt‟

add_action(bdquowp_head‟‟liton_scripts‟)

এগট মপনডরপর বর িগত গনপরচ ডদখন ওয়াডডপরেপর গকবাপরফ পাাআর মি কযপরত য়- function liton_scripts()

wp_enqueue_script(bdquojquery‟)

wp_enqueue_script(bdquotheme-scripts‟‟pathtoscriptsjs‟)

add_action(bdquowp_enqueue_script‟‟liton_scripts‟)

ানর বাপরফ াঅগন সটাাআরীট ডমাগ কযপরত াপরযন- function liton_styles()

wp_enqueue_ style (bdquocss‟)

wp_enqueue_ style (bdquotheme- styles‟pathto stylescss‟)

ডযপাপরযনস ডদখন- httpcodexwordpressorgFunction_Referencewp_enqueue_script

httpcodexwordpressorgFunction_Referencewp_enqueue_style

টডপরকাড টডপরকাড পরচছ ওয়াডডপরেপরয ডসপগগপক ডসপার টযাগ মা াঅগন ডাসট ফা ডপরজয ভপরধয াআনাটড কপরয ানয ডকান কনপরটনটপরক ওপরয়ফাাআপরটয ভপরধয গযপরপল কযপরত াযপরফন মগদ াঅগন গযারাগয টাাআপরয ডকান পলাগগন ফযফায কপরয থাপরকন তাপরর াঅনায ধাযনা থাকায কথা মাাআ ডাক াঅগভ কপরয়কগট উদাযি ডদখাফ

55

েথপরভ একগট পলাগগন ততগয কযফ ডমখাপরন add_shortcode() নাপরভয একগট পাাংন থাকপরফ এগট রগট যাযাগভটায েন কপরয েথভগট টডপরকাপরডয নাভ গিতীয়গট ডম পাাংনপরক কর কযপরফন ডগট াঅভযা একগট উদাযন ডদগখ- ltphp

Plugin Name Liton Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(litonhi)

function hi()

echo Hello World

gt

উপরয ডদখন খফ ডিাট গকনত াঅগন চাাআপরর এয ফযফায াপরনক গফসতত কযপরত াপরযন এখাপরন টডপরকাড নাভ পরচছ liton াঅয এগটপরক ডরখা য় এবাপরফ [liton] াঅভযা ডাপরসটয ভপরধয াআনাটড কপরয ডদগখ াঅউটট ডকভন ডদখায়-

এফায াঅউটট ডদগখ-

56

াঅভাপরদয ততগয কযা টডপরকাড পরবাপরফাআ কাজ কযপরি াঅপরযকগট উদাযন ডদখফ াঅনাযা াপরনপরকাআ গগর এডপরনস গনপরয় কাজ কপরযন াঅনাযা াপরনপরকাআ এডপরনস এয জনয পলাগগন ফযফায কপরযন গকনত চাাআপররাআ এাআ কাজগট াঅনাযা গনপরজয ভত কপরয াগজপরয় গনপরত াপরযন গগপররয কাপরি ফ ডাসট বযার ায়না াঅনাযা মাযা একসাটড াঅপরিন তাযা এটা বার কপরয জাপরনন তাাআ াপরনপরকাআ গগপররয ডকাড ফ ডপরজ ডদখাপরত চান না এজনয পলাগগন ফযফায কপরয রাব য়না কাযন পলাগগপরন জায়গা গপকসড থাপরক এপরত কপরয াঅগনডাং ও কভ য় াঅনাযা টডপরকাড ফযফায কপরয ডমপরকান জায়গায় এড ডদখাপরত াপরযন গনপরচ াঅগভ রগট টডপরকাড ততগয কপরযগি র‟ধযপরনয এড ডদখাপরনায জনয ltphp

Plugin Name Liton Adsense Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(adsense_468adsense_468_60)

add_shortcode(adsense_250adsense_250_250)

function adsense_468_60($atts)

return ltscript type=textjavascriptgtlt--

57

google_ad_client = ca-pub-0956247412222369

468x60 created 101510

google_ad_slot = 4372705450

google_ad_width = 468

google_ad_height = 60

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

function adsense_250_250($atts)

return ltscript type=textjavascriptgtlt--

google_ad_client = ca-pub-0956247412222369

250x250 created 81809

google_ad_slot = 9368091893

google_ad_width = 250

google_ad_height = 250

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

gt

একগট টডপরকাড ফযানায টাাআপরয জনয এফাং াঅপরযকগট ২৫০২৫০ াাআপরজয এফায ডাপরসট ডমপরকান একগট টডপরকাড াআনাটড করন ডমখাপরন াঅনায ডদখাপরনায েপরয়াজন ভপরন কপরযন াঅগভ রগট ডকাড ডটসট কপরয ডদখরাভ-

58

এফায াাআপরটয াঅউটট ডদগখ-

রগট এডাআ ডদখাপরচছ াঅপরযা াপরনক কাপরজ াঅগন টডপরকাড ফযফায কযপরত াপরযন ডযপাপরযনসাঃ httpcodexwordpressorgShortcode_API

59

াধযায়- নয়াঃ পলাগগন উদাযন

ওয়াডডপরেপরয ডডটটাাআভকপরভনট নামবায ফাাংরা কযায পলাগগন াঅভাপরক কপরয়কজন ফপররগিপররন ওয়াডডপরেপরয গডপলট ডডটটাাআভকপরভনট নামবায ফাাংরা য়না রযাাংগপরয়জ ফাাংরা কযায যও ডডটটাাআভকপরভনট নামবায গপররা াআাংপরযগজ ডথপরক মায় গনপরচয পলাগগনগট ফযফায কপরয ডদখপরত াপরযন- ltphp

Plugin Name Liton Bangla datetimecomment number

Plugin URI httpliton-onlinecomplugins

Description Bangla datetimecomment number

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

This function converts all english numbers to bangla number

function make_bangla_number($str)

$engNumber = array(1234567890)

$bangNumber = array( ১ ২ ৩ ৪ ৫ ৬ ৭ ৮ ৯ ০ ) $converted = str_replace($engNumber $bangNumber $str)

return $converted

add_filter( get_the_time make_bangla_number )

add_filter( the_date make_bangla_number )

add_filter( get_the_date make_bangla_number )

add_filter( comments_number make_bangla_number )

add_filter( get_comment_date make_bangla_number )

add_filter( get_comment_time make_bangla_number )

gt

60

সলাাআডায পলাগগন াঅভযা এাআ ফাআপরয়য কর গটউপরটাগযয়াপরর মা মা গখরাভ তা এফায একগট নডাাংগ পলাগগপরনয এপলাাআ কযফ সলাাআডায পলাগগন মপপরকড াঅভযা ফাাআ জাগন একগট ওপরয়ফাাআপরটয ডচাযা ারপরট ডদয় একগট সলাাআডায াপরনক ডাাআনাগভক ভপরন য় ডদখপরতও াপরনক বার রাপরগ এাআ পলাগগপরন াঅভযা এডগভন যাপরনর ডথপরক াআপরভজ ডমাগ কযফ এফাং তা াঅভাপরদয াাআপরট ডদখাফ চরন কাজ রর কগয- েথপরভ গনপরবা সলাাআডায এয ওপরয়ফাাআপরট মান এফাং jQuery Plugin ডাউনপররাড করন

ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom Version 10

gt

াঅভযা পলাগগপরনয ডডায ততগয কযরাভ

পলাগগন গরপরসট ডদখাপরচছ bdquoLitons Nivo Plugin‟ াঅভাপরদয েথভ কাজ পরচছ custom post

type ওয়াডডপরে পাাংনাগরগট একগট নতন কাসটভ ডজ ততগয কযপরত custom post type

ফযফহরত পরফ ডমখাপরন একগট াআপরভজ থাকপরফ াঅভযা রধ টাাআপরটর ডনভ এফাং াআপরভজ াঅপররাডায গপরপরফ গপচায াআপরভজ পাাংনাগরগট ফযফায কযফ function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_function 600 280 true)

61

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

add_action(init np_init)

উপরযয ডকাপরড np_init() পাাংনগট রক কপরযগি মা ডডায যান কযায াঅপরগ যান পরফ াঅয এজনয register_post_type() পাাংনপরক এয যাযাগভটায গদপরয় np_init() পাাংপরনয ডবতপরয মি কপরযগি এটা মগদ না কযতাভ তাপরর ldquoHeaders already sentrdquo ডভপরজ ডদখাত এাআ ডভপরজগটয াপরথ াপরনপরকাআ গযগচত াঅা কগয register_post_type() পাাংন গদপরয় াঅভযা াআপরভজ মি এফাং ভযাপরনজ কযফ ভরত াঅভযা একগট নতন custom post type ডমাগ কপরযগি np_images নাভ গদপরয় নতন custom post type ডক ডগটাং বযার গপরপরফ াঅযগপরভনট া কপরযগি $args ডবগযপরয়ফরগট ট ডরপরবর ডভন ততগয কপরয াঅপরগাআ ডদপরখগি পলাগগনগট এগকটপরবট কযপরর াঅভযা গনপরচয ভত ডদখপরত াফ-

এফায গিে এফাং সটাাআরীট ডক মি কযফ- add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

এফায রক কযা পাাংনগপররা গডপরিয়ায কগয- function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__) array( jquery ))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

62

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

উপরযয ডকাডগপররা নতন কপরয ফিডনা কযায গকি ডনাআ াঅপরগাআ wp_enqueue_style() এফাং wp_enqueue_script() মপপরকড ফরা পরয়পরি নতন াঅপরযকগট পাাআর ততগয করন একাআ গডপরযকটগযপরত scriptjs এফাং গনপরচয ডকাডটক গদন- jQuery(document)ready(function($)

$(slider)nivoSlider()

)

াআপরভজপরক গযাাআজ করন- add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

াঅভযা এাআ পলাগগনগটপরক উাআপরজট গপরপরফও ফযফায কযফ ডগট পরয ডদখফ াঅপরযকগট গজগন মগদ গথপরভ না ডদয়া থাপরক ডজনয থামবপরনাআর াপরাটড গদপরয় গদন- add_theme_support( post-thumbnails )

এফায ওয়াডডপরেপরয কাপরযনট ডাসট কপরয়যী কযায ডকাড াঅয $result ডবগযপরয়ফপরর ডমফ ltdivgt টযাগ ফযফায কযা পরয়পরি তা jQuery Plugin গট একসিাকট কপরয indexhtml ডজগটয ডভাআন সলাাআডায ডকাডগট ডদখন একাআ াঅপরি রধ ডখানকায ltdivgt টযাগ গপররাপরক কগ কপরয এাআ পলাগগপরন ফযফায কযা পরয়পরি এফায টডপরকাড গদন- add_shortcode(np-shortcode np_function)

এাআ টডপরকাড গএাআচগ পাাংনপরক রক কযপরফ এফাং এয ভধয ডথপরক সলাাআডপরায কনপরটনট ডক গযটানড কযপরফ াঅভাপরদয টডপরকাড পরচছ [np-shortcode] াঅভযা পলাগগপরন মাাআ এফাং একগট িগফ মি কগয গপচাযড াআপরভজ গপরপরফ গনপরচ ডদখন-

63

াঅগভ াঅপরযকগট ডজ ততগয কপরযগি ডমখাপরন টডপরকাড গদপরয়গি

াঅউটট ডজ ডদগখ এফায-

64

পরয় ডগর াঅভাপরদয সলাাআডায পলাগগন পরযা ডকাডগট গনপরচ গদরাভ- ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

65

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

66

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

এফায াঅগন মগদ উাআপরজট গপরপরফ ফযফায কযপরত চান তাপরর গনপরচয ডকাডটক গদন- class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

67

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

echo $after_widget

াঅপরযা রগট কাজ কযপরত পরফ াঅনাপরক এক াআপরভজ াাআজ উাআপরজট এয জনয গঠক কপরয গদপরত পরফ- add_image_size(np_widget 180 100 true)

াঅপরযকগট র উাআপরজট এযাকন রক ডমাগ কযা add_action(widgets_init np_widgets_init)

উাআপরজট পরযা ডকাড াঅফায গদরাভ- ltphp

Plugin Name Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Ciprian Turcu

Version 10

68

class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

69

echo $after_widget

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

70

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(widgets_init np_widgets_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

71

পলাগগন গনপরয় এত ডিাট গযপরয ডরখা মভফ নয় এজনযাআ ভপরন য় পলাগগন গনপরয় ডকউ ডরপরখন না কাযন এখাপরন এত গফলয় াঅপরি মা াঅপররাচনা কযপরত ডগপরর ৫০০ ডজ ায পরয় মাপরফ ডফাোয সগফধাপরথড াঅগভ মথামভফ উদাযন গদপরয় ডফাোপরনায ডচষটা কপরযগি াঅগভ এখাপরন টাপরগডট কপরযগি মাযা টকটাক জাপরন পলাগগন মপপরকড এডবানস ডরপরবপররয নয় কাযন তাযা জাপরনন াঅভায উপরেশয গির মাযা জানপরত চায় তাপরদযপরক জানাপরনা এখাপরন ডমফ গফলয় াঅপররাচনা কযা পরয়পরি তা ডভাটাভগট ভাপরনয একগট পলাগগন ফানাপরনায জনয মপরথষট তপরফ ভাপরনাননয়পরনয জনয াঅনাপরক গনপরজাআ খাপরজ গনপরত পরফ াঅনায জনয ডকানটা বার পরফ াঅগভ রধ গদক গনপরদডনা গদরাভ ভাতর এাআ ফাআগট রধভাতর ওয়াডডপরে রেপরয জনয ডরখা াপরনক বর ভরাগনত থাকপরত াপরয াঅনাযা কষভাসনদয দগষটপরত ডদখপরফন াঅগভ ডচষটা কপরযগি মতটা জ কপরয ডরখা মায় াপরনক ভয় ডদখা মায় ডম খফ ডিাট খাপরটা গফলয় গনপরয় াপরনপরকাআ নক কপরযন এটা গতয রাঃখজনক াঅনাযা গগপরর একট খাজপররাআ ভাধান াপরফন াঅপরগ গনপরজ ডচষটা করন তায পরয ানযপরক ভাধাপরনয জনয গজজঞাা করন াঅভায জনয ডদায়া কযপরফন বাপররা রাগপরর জানাপরফন খাযা রাগপররও জানাপরফন তাপররাআ াঅভায গযশরভ সবাথডক পরফ ভতাভত জাগনপরয় াঅভাপরক ডভাআর কযপরত াপরযন litonice09gmailcom |

72

Page 19: Wordpress Plugin Development

20

াধযায়- চাযাঃ পলাগগন ডকাগডাং সটযানডাডড

পলাগগন এগকটপরবনগডএগকটপরবন পাাংন াঅগন মখন একগট পলাগগনপরক এগকটব কপরযন তখনাআ এগকটপরবন পাাংন গিগায য় এাআ পাাংনপরক register_activation_hook() ফপরর ltphp register_activation_hook($file $function) gt

Parameters

$file- োাআভাগয পলাগগন পাাআপররয াথ

$function- ডম পাাংনগট গিগায পরফ মখন পলাগগন এগকটপরবট য় ডমভনাঃ- ltphp

register_activation_hook(__FILE__ bdquoliton_plugin_install‟)

function liton_plugin_install()

do something cool stuff

gt

াঅভযা একগট পলাগগন ফানাাআ এবাপরফ-

ltphp

Plugin Name Liton Version

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

register_activation_hook(__FILE__ liton_plugin_install)

function liton_plugin_install()

If(version_compare(get_bloginfo(version)51lt))

deactivate_plugins(basename(__FILE__))

deactivate our plugin

gt

মখন াঅভযা পলাগগন গডএগকটপরবট কগয তখন পলাগগন গডএগকটপরবন পাাংন কর য়

21

ltphp

register_deactivation_hook ($file $function) gt

-

ltphp

register_deactivation_hook (__FILE__ bdquoliton_plugin_install‟)

function liton_plugin_install()

do something

gt

াঅপরযকগট গরতবনড গফলয় র াঅনাআনসটর ওয়াডডপরে াঅনাপরক পলাগগন াঅনাআনসটর এয জনয রগট ান গদপরচছ- uninstallphp file and the uninstall hook

uninstallphp

এগট ডভাটাভগট েনপরমাগয িগত এ ডভথড ফযফায কযায জনয াঅনাপরক uninstallphp নাপরভ একগট পাাআর ততগয কযপরত পরফ াঅনায পলাগগন গডপরযকটগযপরত পাাআরগট গনপরচয ভত পরফ- ltphp

মগদ ওয়াডডপরে এগকসট কযায াপরথ াঅনাআনসটর কর কযা না য় If(defined(bdquoWP_UNINSTALL_PLUGIN‟))

exit()

delete_option(bdquoliton_plugin_options‟)

াগতগযি ান এফাং কাসটভ ডটগফর ভপরি ডপরন gt

Uninstall Hook

গিতীয় িগত র Uninstall Hook মগদ াঅগন ডকান পলাগগনপরক গডগরট কযপরত চান এফাং uninstallphp পাাআর না থাপরক তাপরর এাআ রক এগকসগকউট য়(মগদ থাপরক) ltphp

register_uninstall_hook($file$function)

gt

22

ডকাগডাং সটযানডাডড পলাগগন ফানাপরফন গকনত াঅনায ডকাড ডকভন পরফ গচনতা াঅপরত াপরয ওয়াডডপরে াঅনায জনয একগট সটযানডাডড গদপরয় গদপরয়পরি মা াঅনাপরক ওয়াডডপরেপরয জনয পলাগগন গরখপরত ডগপরর পপররা কযপরতাআ পরফ httpcodexwordpressorgWordPress_Coding_Standards

ডফগক একগট উদাযন গদরাভ গনপরচ- ltphp

Short description

Longer more detailed description

param type $varname1 Description

param type $varname2 Description

return type Description

function boj_super_function( $varname1 $varname2 )

do function stuff

gt

গএাআচগ সটানডাডড াঅভযা াপরনপরকাআ গএাআচগয টড পভড(lt gt) ফযফায কগয এটা মপিডরপর ফজডন করন কাযন াপরনক ডাগসটাং ডকামপাগনপরতাআ এটা গডপলট গপরপরফ ফনধ কপরয ডদয়া থাপরক সটযানডাডড টযাগ ফযফায করন(ltphp gt)

এগকউএর ডসটটপরভনট পলাগগন ততগযয ভয় াঅনাপরক াপরনক ভয়াআ ডাটাপরফ ডথপরক াআনপযপরভন গনপরত পরত াপরয াপরনক রাাআপরনয ডকাড গরখপরত পরত াপরয ডপরকষপরতর বার েযাকগট পরচছ এগকউএর এয কভানড গপররা ফড় াপরতয াকষপরয ডরখা ডমভন- SELECT username FROM table1 WHERE status = active

23

াধযায়- াাচাঃ ওয়াডডপরেপরয াপরথ াআগনটপরেন

ডভন এফাং াফ ডভন ততগয করন াঅভযা াপরনক পলাগগপরনাআ ডদগখ ডম একগট ডভন াঅাআপরটভ গপরপরফ াঅভাপরদয ডযাপরফাপরডড ডদখপরত াাআ এফাং ডাআ ডভনপরত গিক কযপরর ডগটাং ডজ াঅপর ডখাপরন পলাগগপরনয মাফতীয় ডগটাং গদপরয় াঅভযা পলাগগন কনগপগায কগয এফায এাআ চভৎকায কাজগট কযফ াঅভযা

ট ডরপরবর ডভন েথভ িগত পরচছ একগট ট ডরপরবর ডভন ততগয কযা ডমগট াঅভযা ডযাপরফাপরডড ডভন গরপরসট একগট নতন াঅাআপরটভ গপরপরফ ডমাগ কযফ ডভন ততগয কযায জনয াঅনাপরক add_menu_page( ) পাাংন ফযফায কযপরত পরফ ltphp

add_menu_page( page_title menu_title capability menu_slug functionicon_url

position )

gt

add_menu_page() পাাংন গনপরচয যাযাগভটাযগপররা াপরাটড কপরয page_title- াঅনায ডপরজয টাাআপরটর গক পরফ lttitlegt tag এয ভপরধয menu_title- ডযাপরফাপরডড াঅনায ডভনয নাভ capability- ফডগনমন capability রাগপরফ একগট ডভন গবউ পরত menu_slug- সলাগ নাভ মা ডভনপরক ডযপায কপরয- তপরফ এগট াআউগনক পরত পরফ function- একগট ডপরজয কনপরটনট ডদখপরত ডম পাাংন কর কযা য় icon_url- একগট কাসটভ াআপরভজ গরঙক ডভন াঅাআকন ডদখাপরনায জনয position- ডভনয গজন াডডায ডমখাপরন এটা ডদখাপরনা পরফ

এফায াঅভযা একগট ফাসতফ উদাযন ডদখফ- ltphp

Plugin Name Liton Menu

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action( admin_menu liton_menu)

function liton_menu()

24

create custom top-level menu

add_menu_page( Liton Menu Page Liton Menu Page manage_options

__FILE__ liton_menu_settings_page plugins_url( imageswp-logopng

__FILE__ ) )

gt

াঅভযা একগট ট ডরপরবর ডভন ততগয কযরাভ ডদখন ডযাপরফাপরডড ডকভন ডদখায়-

Liton Menu Page নাপরভ একগট ডভন ততগয পরয় ডগপরি এফাপরয াঅভযা াফপরভন কযফ ভাপরন Liton Menu Page এয গনপরচ গকি ডগটাং ডভন(মগদ েপরয়াজন য়) াফ ডভন ডযগজসটায কযায জনয add_submenu_page( ) পাাংন ফযফায কযা য় ltphp

add_submenu_page( parent_slug page_title menu_title capabilitymenu_slug

function )

gt

parent_slug- ডভন সলাগ মা াঅভযা াঅপরগ গডপাাআন কপরযগি menu_slug- মা ডভনপরক াফপরভনপরত ডযপায কযপরফ ফাগক পাাংনগপররা াঅপরগয ভতাআ

এফায াফপরভনয জনয গকি াগতগযি ডকাড ডমাগ কগয create submenu items

add_submenu_page( __FILE__ About My Plugin About manage_options

__FILE___about liton_menu_about_page )

add_submenu_page( __FILE__ Help with My Plugin Help

manage_options

__FILE___help liton_menu_help_page )

add_submenu_page( __FILE__ Uninstall My Plugin Uninstall

manage_options

__FILE___uninstall liton_menu_uninstall_page )

25

পরযা ডকাডগট পরফ এযকভ- ltphp

Plugin Name Liton Menu

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action( admin_menu liton_menu

)

function liton_menu()

create custom top-level menu

add_menu_page( Liton Menu Settings Page Liton Menu Page

manage_options __FILE__

liton_menu_settings_page

plugins_url( imageswp-logopng __FILE__ ) )

create submenu items

add_submenu_page( __FILE__ About My Plugin About manage_options

__FILE___about liton_menu_about_page )

add_submenu_page( __FILE__ Help with My Plugin Help

manage_options

__FILE___help liton_menu_help_page )

add_submenu_page( __FILE__ Uninstall My Plugin Uninstall

manage_options

__FILE___uninstall liton_menu_uninstall_page )

gt

গনপরচ ডদখন াফপরভনগপররা ততগয পরয় ডগপরি-

26

ডভনপরক াঅপরগয ডভনয াপরথ মি কযা এফায াঅগ গিতীয় িগতপরত মগদ াঅনায পলাগগপরনয একগট ভাতর ডজ থাপরক একগট ভাতর ডপরজাআ াঅনায কর ডগটাং পরয় মায় তাপরর এাআ িগত েন করন ডমভন ডয়াগযাং াাআটগপররায জনয রধ াঅনায াঅাআগডপযানপরপরজয াঅাআগড দযকায য় এযকভ পলাগগন এধযপরনয পলাগগপরনয জনয াঅনায াগতগযি ডভন ততগয কযায দযকায ডনাআ ফযাং এপরত কপরয াআউজায গফযি ডফাধ কযপরত াপরযন এ ধযপরনয পলাগগনগপররা ডগটাং এয াফপরভন গপরপরফ থাপরক add_options_page() এাআ পাাংন গদপরয় এফ ডভন ডযগজসটায কযা য় ltphp

add_options_page( page_title menu_title capability

menu_slug function)

gt

এফায চরন এযকভ একগট ডভন ততগয কগয- ltphp

Plugin Name Liton Sub Menu

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action( admin_menu liton_submenu)

function liton_submenu()

create a submenu under Settings

add_options_page( Liton Menu Settings Page Liton Menu Page

manage_options __FILE__

liton_menu_settings_page)

27

gt

াফপরভন ততগয পরয় ডগপরি চরন ডদগখ ডযাপরফাপরডড ডকভন ডদখায়-

এপরকফাপরয গনপরচয গদপরক ডদখন Liton Menu Page নাপরভ একগট ডভন ততগয পরয়পরি

উাআপরজট ততগয কযা উাআপরজট ততগয কযায জনয ওয়াডডপরে WP-Widget িা গদপরয় ততগয কযা য় উাআপরজট এয একগট পযভযাট ডদখন গনপরচ ltphp

class My_Widget extends WP_Widget

function My_Widget()

processes the widget

function form($instance)

displays the widget form in the admin dashboard

function update($new_instance $old_instance)

process widget options to save

function widget($args $instance)

displays the widget

gt

28

উাআপরজট ডযগজসটায কযায জনয widget_init() পাাংনপরক রক কযা য় চরন একগট উাআপরজট ততগয কগয- ltphp

Plugin Name Liton Widget

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

class Messager extends WP_Widget

function __construct()

$params=array(

description =gtDisplay message to readers

name =gt Message

)

parent__construct(Messager $params)

public function form()

public function widget()

add_action(widgets_initliton_register_message)

function liton_register_message()

register_widget(Messager)

gt

29

খফ াধাযন একগট উাআপরজট পলাগগন এগট াঅভযা াআউজাযপরদযপরক একগট ডভপরজ ডদখাপরফা াাআডফাপরয ডটাাআ কযায ডচষটা কযগি এখন পলাগগনগট এগকটপরবট কপরয ডদগখ-

াঅভাপরদয উাআপরজটগট ডদখাপরচছ এফায াঅপরযা গকি পাাংনার কাজ কগয এগট মগদ াাআডফাপরয ডরাগ কপরয ডদন তাপরর ডকান কাজ কযপরফ না কাযন াঅভযা এখপরনা গকিাআ কগযগন পভড পাাংপরন গকি কাজ কগয মা উাআপরজট টাাআপরটর গপরপরফ ডদখাপরফ- public function form($instance)

extract($instance)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title)gtgtTitle ltlabelgt

ltinput

class=widefat

id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt

value=ltphp if(isset($title)) echo esc_attr($title) gt gt

ltpgt

ltphp

াঅভযা উপরয class=widefat ফযফায কপরযগি এাআ িা ফযফায কযায কাযপরন পভড এয াআনট গপলডগট াপরনক সনদয পরয়পরি

30

মগদ এাআ িা ফযফায না কগয তাপরর ডকভন ডদখাপরফ গনপরচ ডদখন-

াঅভাপরদয উাআপরজট পলাগগনগটয ডকাড গনপরচ ডদওয়া র ltphp

Plugin Name Liton Widget

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

class Messager extends WP_Widget

function __construct()

$params=array(

description =gtDisplay message to readers

name =gt Message

)

parent__construct(Messager$params)

31

public function form($instance)

extract($instance)

print_r($instance)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title)gtgtTitle ltlabelgt

ltinput

class=widefat

id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt

value=ltphp if(isset($title)) echo esc_attr($title) gt gt

ltpgt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(description)gtgtDescription

ltlabelgt

lttextarea

class=widefat

rows=10

id=ltphp echo $this-gtget_field_id(description) gt

name=ltphp echo $this-gtget_field_name(description) gtgtltphp

if(isset($description)) echo esc_attr($description) gtlttextareagt

ltpgt

ltphp

public function widget($args$instance)

extract($args)

extract($instance)

echo $before_widget

echo $before_title$title$after_title

echo ltpgt$descriptionltpgt

echo $after_widget

add_action(widgets_initliton_register_message)

function liton_register_message()

32

register_widget(Messager)

gt

এফায াঅভযা ডযাপরফাডড ডথপরক একগট ডভপরজ ডদফ গবগজটযপরদযপরক-

াঅভযা এাআ উাআপরজটগট ডাাআনাগভক বাপরফ কপরযগি কাযন এখাপরন lth2gt lth3gt lth4gt এ ধযপরনয ডকান টযাগ াঅভযা ফযফায কগযগন াঅভযা গথভ ডডপরবর কযগিনা সতযাাং এ কাজগট াঅভাপরদয ানযবাপরফ কযা দযকায গির এগট গথভ ডডপরবরায ডদগখপরয় ডদপরফন ডম ডকভন টযাগ পরফ াাআডফাপরয াাআপরটয াাআডফাপরয ডকভন ডদখায় তা ডদখন- াঅভযা রগট গথপরভ এগট ডটসট কপরয ডদখফ েথভগট টপরয়গনট াআপররপরবন

33

এফায াঅপরযকগট গথপরভ ডদগখ-

34

াধযায়- িয়াঃ পলাগগন পাাংন

গকি ডফগক পাাংন __() পাাংন

__() পাাংনগট গএাআচগপরত াঅনায ডটকসটপরক ডযগড কপরয িানসপররন এফাং গযটানড কপরয উদাযন গপরপরফ াঅগন একগট বযারপরক __() পাাংপরনয ভপরধয ডবগযপরয়ফর গদপরয় assign করন ভপরন যাখপরফন এাআ পাাংনগট রগট াঅনডাযপরিায(_) গদপরয় গগঠত একগট নয় ltphp

$text=__(bdquoWordpress is a wonderful publishing platform‟‟liton_plugin‟)

gt

_e() পাাংন _e() পাাংনগট াঅনায ডটকসবপরট ডরাকারাাআজ কপরয এটা গএাআচগপরত echo এয ভত কাজ কপরয ডকান ডটকসটপরক গিপরন ডদখাপরনায জনয এফায একট ভজা কগয মা রপরক ডদপরখগি াঅপরগাআ- _e() পাাংনগট গদপরয় াঅপরগয পলাগগনগট এগডট কযফ ltphp

Plugin Name Liton Action

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(wp_footer liton_footer_action)

function liton_footer_action()

Output the translated text

_e( This site runs off the coolest platform ever ampmdash

WordPress

liton-plugin )

gt

35

এফায াঅউটট ডদগখ

esc_attr__() পাাংন এাআ পাাংনগট esc_attr() এয ভত এগট এাআচগটএভএর এগিগফউটপরক escape কপরয াঅভযা এফায esc_attr__() এফাং __() এাআ রগট পাাংনপরক একগট কপরয পলাগগন ততগয কযফ ltphp

Plugin Name Liton Esc Attr

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

A function that returns a link to the sites terms of service

page

function liton_terms_of_service_link()

return lta href=httpliton-onlinecomtos title=

esc_attr__( Visit the Terms of Service page boj-plugin ) gt __( Terms of

Service liton-plugin ) ltagt

Display the output of the liton_terms_of_service_link()

function

echo liton_terms_of_service_link()

gt

পলাগগনগটয াঅউটট ডদখন-

36

এযকভ াঅপরযা গকি পাাংন াঅপরি ডমগপররা াঅনাযা ডদপরখ ডনপরফন াআনটাযপরনট ডঘপরট

esc_html__() Function

esc_attr() Function

esc_url() Function

esc_js() Function

esc_html() Function

esc_attr_e() Function

esc_html_e() Function

_x() Function

_ex() Function

esc_attr_x() Function

esc_html_x() Function

_n() Function

_nx() Function

_n_noop() Function

_nx_noop() Function

Translation

bull Poedit httppoeditnet

bull GlotPress httpglotpressorg

bull Launchpad httpstranslationslaunchpadnet

bull Pootle httppootlelocamotionorg

bull KBabel httpi18nkdeorg

bull GNU Gettext httpgnuorgsoftwaregettext

GlotPress এখন ওপরয়ফ ডফড টর গপরপরফ ফযফায কযা পরচছ ওয়াডডে েপরজপরকটয ডিপরন একজন াথফা গটপরভয জনয িানসপররগটাং পটওয়যায গপরপরফ

37

াধযায়- াতাঃ পলাগগন গগকউগযগট

গগকউগযগট কগমপউটাপরযয বালায় ldquoগগকউগযগটrdquo ভাপরন বীগতকয একগট বদ ডমভন Cross Site

Scripting(XSS) Cross Site Request Forgery(CSRF) SQL Injection Privilege

Escalation Vulnerabilities এফাং Holes রফডর ডকাড একগট াবডাপরযয সযকষায জনয রভকীয কাযন পরত াপরয

পলাগগপরনয গগকউগযগট গক াঅনায পলাগগনগট ডমন গগকউয য় vulnerabilities data integrity এফাং reliability ডথপরক

াঅনায পলাগগনপরক গক গগকউগযগট ডদপরফন ওয়াডডপরে এনবায়যনপরভপরনট াঅনায পলাগগনপরক গগকউগযগট ডদয়া খফ কগঠন কাজ নয় এফাং খফ ভয় াপরকষ গফলয়ও নয় ওয়াডডপরেপরয গনজসব গকি পাাংন এপরকষপরতর াঅনাপরক খফাআ াাময কযপরফ

াআউজায াযগভন াঅভযা াপরনক পলাগগন াআনসটর কযায পরযাআ ডদপরখগি ডম মখনাআ এডগভন যাপরনর এ েপরফ কযপরত মাাআ তখন একগট এযয ডভপরজ াঅপর ডভপরজগট গনপরচয ভত-

ডরখা াঅপরি- You do not have sufficient permissionshellip এটা গনশচয়তা ডদয় ডম ডমপরকান এযাকন ীভাফি থাপরক গনগদডষট গকি যাাআট গদপরয় ওয়াডডপরেপরয একগট কভন পাাংন র current_user_can() একগট উদাযন ডদাআ-

38

ltphp

Capability

if ( current_user_can(install_plugins) )

wp_die( Insufficient permissions )

Role

if( current_user_can(editor) )

wp_die( You cannot edit this setting )

gt

খফ তাড়াতাগড় াঅগন এাআ current_user_can() পাাংন ডচক কযপরফন না কাযন এটা গনবডয কযপরফ get_currentuserinfo() এাআ পাাংপরনয উপরয াঅয এয ফযফাপরয ীভাফিতা াঅপরি এটা একগট পলাপরগফর পাাংন(pluggable function) াঅয এয ডরাপরকন পরচছ wp-

includespluggablephp মা পলাগগন এগকটব ফায য ডরাড য়

Nonces

ডকউ এগটপরক াঅফায Nonsense( গনপরফডাধ) বাফপরফন নাএগট ওয়াডডপরেপরয বালায় Nonces কগমপউটাপরযয বালায় nonce ফা cryptographic nonce পরচছ ldquonumber used once rdquo এটা ডিাট এফাং সপষট গকি য যানডভ গসটরাং ডমভন- াওয়াডড মা গকি গনপরদড কপরয Nonce গপরডন গপলড পভডপরক Retrieve ফা display কপরয-

একজন ওয়াডডপরে াআউজায ডমপরকান একগট এযাকন (delete update save and such) একগট াফপরজকট(একগট ডাসট পলাগগন ডগটাং াআতযাগদ) ২৪ ঘনটায একগট ভয় ডিভ

ডমভন ডাসট 50 গডগরট কযপরফন াঅনায ওয়াডডপরে বলগ ডথপরক তাপরর াঅনায গরঙকগট পরফ এযকভ- httpexamplecomwp-admin

postphppost=43ampaction=trashamp_wpnonce=83a08fcbc2

এখাপরন 83a08fcbc2 এগট র nonce মা ২৪ ঘনটা সথায়ী থাপরক রধভাতর এগট মগদ াঅনায িাযা ফযফরত য় এফাং গডগরট য় ডাসট 50 মখন াঅগন গরপরঙক গিক কপরযন ফপরচপরয় গযতবনড র ডম Nonce ডকান malicious াআউজায ফেপরত াপরযনা এফাং গঠক গরঙক িাড়া nonce এযয ডপরজ চপরর মায় ডমখাপরন াযগভন থাপরক না াঅপরযা গফসতাগযত ডদখন httpcodexwordpressorgWordPress_Nonces

39

Nonce URL ততগয এফায চরন াঅপরগয উদাযন ডথপরক Nonce URL ততগয কগয একগট ডাসট গডগরট কযায জনয wp_nonce_url() পাাংন ফযফায কযা য় ltphp

$url = wp_nonce_url( $url $action )

gt

েথভ যাযাগভটায $url পরচছ গসটরাং URL এপরডর এয মাপরক াঅগন কপরয়যী গসটরাং এয Nonce কযপরত চান াফযফহরত পলাগগপরনয গডগরট গরঙক এযকভ থাপরক- httpexamplecomwp-admineditphppage= liton

_utagsampliton_action=deleteampid=6

এখাপরন ডদখন যাযাগভটায liton_action এফাং এয টযাগ াঅাআগড গিতীয় যাযাগভটায পরচছ $action একগট গসটরাং মা াঅগন একগট াফপরজকট এয জনয একগট action ততগয কযপরফন উপরয ডদখরাভ delete এযাকন এয টযাগ াঅাআগড 6 সতযাাং $action যাযাগভটায পরত াপরয bdquoliton_utags-delete_tag6‟ গনপরচ ফাসতফ উদাযন ডদগখ- ltphp

$delete_url = add_query_arg(array( liton _action=gtdeleteid=gt$id) )

$nonced_url = wp_nonce_url( $delete_url bdquoliton _utags-delete_tag$id )

gt

lta href=ltphp echo $nonced_url gtgtdeleteltagt

এাআ টযাগগট পরফ গডগরট গরঙক এখাপরন add_query_arg() পাাংন ফযফায কযা পরয়পরি মা কাপরযনট URL ডক এযাপরয যাযাগভটায এয ভপরধয যাপরখ ানযবাপরফ ফরপরর এগট ডমাগ কপরয এযকভাঃ liton_action=deleteampid=6 amp liton_action=deleteampid=6

Nonce Form ততগয Nonce পভডপরকও ডোপরটকট কপরয wp_nonce_field() পাাংপরনয ভাধযপরভ ltphp

wp_nonce_field( $action $name $referer $echo ) gt

$action ( string) (optional) - action নাভ াআউগনক identifier optional

গকনত recommended $name (string) (optional) ndash গপরডন গপলড পভড ডবগযপরয়ফর নাভ $referer (boolean) (optional) ndash গডপলট গপরপরফ true থাপরক ডমখাপরন গপলড

ডবগরপরডন এয দযকায য়

40

$echo (boolean) (optional) - গডপলট গপরপরফ true থাপরক ডমখাপরন াঅউটট ডদখাপরনায ফা গপরডন পভড গপলড গযটানড কযায জনয দযকায য়

পপরভড াঅনায action এয নাভ গদন ltform method=postgt

lt-- some inputs here --gt

ltphp wp_nonce_field(name_of_my_actionname_of_nonce_field) gt

ltformgt

াঅভযা একগট পলাগগন ফানাপরফা ডমখাপরন াফযফরত টযাগগপররাপরক াঅভযা ভযানয়াগর গডগরট ফা গযপরনভ কযপরত াযফ এগট একট ফড় গকনত াপরনক গফলয়াআ াঅপরগাআ াঅপররাচনা কযা পরয়পরি ডদখপররাআ ফেপরত াযপরফন একগট ফাসতফধভডী উদাযন গনপরচ গদরাভ- ltphp

Plugin Name Liton Unused Tags

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add an entry for our option page to the Posts menu

add_action(admin_menu liton_utags_add_page)

function liton_utags_add_page()

add_posts_page( Unused Tags Unused Tagsmanage_optionsliton_utags

liton_utags_option_page )

Catch any liton_action parameter in query string

add_action( admin_init liton_utags_do_action )

Proceed to requested liton_action if applicable

function liton_utags_do_action()

if( isset( $_REQUEST[liton_action] ) )

return

if( current_user_can( manage_options ) )

wp_die( Insufficient privileges )

41

$id = $_REQUEST[id]

$action = $_REQUEST[liton_action]

if( $action == done )

add_action( admin_notices liton_utags_message )

return

check_admin_referer( liton_utags-$action_tag$id )

switch( $action )

case rename

$newtag = array( name =gt $_POST[name] slug =gt

$_POST[name] )

wp_update_term( $id post_tag $newtag )

break

case delete

wp_delete_term( $id post_tag )

break

wp_redirect( add_query_arg( array( liton_action =gt done )

) )

Admin notice

function liton_utags_message()

echo ltdiv class=updatedgtltpgtAction

completedltpgtltdivgt

Draw the tag management page

function liton_utags_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtUnused Tagslth2gt

ltphp

if( $tags = liton_utags_find_orphans() )

echo ltpgtYou currently have count( $tags ) unused

tagsltpgt

echo ltolgt

foreach( $tags as $tag )

42

$id = $tag-gtterm_id

$name = esc_attr( $tag-gtname )

$delete_url= add_query_arg(

array(liton_action=gtdeleteid=gt$id) )

$nonced_url= wp_nonce_url( $delete_url

liton_utags-delete_tag$id )

gt

ltligt

ltform action= method=postgt

ltphp wp_nonce_field( liton_utags-rename_tag$id )

gt

ltinput type=hidden name=liton_action

value=rename gt

ltinput type=hidden name=id value=ltphp echo

$id gt gt

ltinput type=text name=name value=ltphp echo

$name gt gt

ltinput type=submit value=Rename gt or

lta href=ltphp echo $nonced_url gtgtdeleteltagt

this tag

ltformgt

ltligt

ltphp

else gt

ltpgtYou have no unused tagsltpgt

ltphp endif gt

ltolgt

ltdivgt

ltphp

Find unused tags return them in an array

function liton_utags_find_orphans()

global $wpdb

$sql = SELECT termsterm_id termsname FROM

$wpdb-gtterms terms

INNER JOIN $wpdb-gtterm_taxonomy taxo

ON termsterm_id=taxoterm_id

WHERE taxotaxonomy = post_tag

43

AND taxocount=0

return $wpdb-gtget_results( $sql )

gt

ডযাপরফাপরডড এাআ পলাগগপরনয ডভন াওয়া মাপরফ ডাসট এয াফপরভন গপরপরফ গনপরচ ডদখন-

এফায পলাগগন ডভনপরত গিক কপরয ডদগখ পলাগগপরনয ডবতপরযয কাজ-

উপরয ডদখন াঅগভ একগট টযাগ ততগয কপরযগিরাভ l i নাপরভ এগট এখাপরন ডদখাপরচছ াঅগভ চাাআপরর এগট এগডট ফা গডগরট কযপরত াগয এফায গডগরট গরঙক এ ভাউপরয কাডয ডযপরখ গনপরচ গরঙক ডদখন ফা গডগরট করন একগট টযাগ াঅভায এখাপরন URL গট এযকভ httplocalhostdev-litonwp-

admineditphppage=liton_utagsampliton_action=doneampid=4amp_wpnonce=30a44b7

986

এখাপরন াঅগভ liton_action=done ফযফায কপরযগি Nonces এয পাাংনগপররায নাভ গনপরচ গদরাভ াঅনাযা ডদপরখ গনপরফন াআনটাযপরনট ডথপরক wp_nonce_field()

wp_nonce_url()

wp_verify_nonce()

wp_create_nonce()

44

check_admin_referer()

check_ajax_referer()

ডাটাপরফ াঅনাযা ডমপরত গএাআচগ গনপরয় কাজ কপরযন এগকউএর ডাটাপরফ এয াপরথ ফাাআ কভপরফী গযগচত এয গনটযাকস গপররা ডভাটাভগট ফায জানা একাআ বাপরফ াপরনপরকাআ ওয়াডডপরেপরও ডাটাপরফ ডকাড গরপরখন এটা ডকাগডাং এয জনয খাযা গদক াঅগভ নযভার গএাআচগ- এগকউএর ডকাড এয উদাযন গদগচছ- ltphp

$sql=rdquoINSERT INTO $wpdb-gtposts(post_title) VALUES(bdquo$title‟)rdquo

$wpdb-gtquery($sql) gt

এফায ওয়াডডপরেপরয সটযানডাডড ডকাগডাং গপরসটভ ডদখন- ltphp

$wpdb-gtinsert($wpdb-gtposts

array(bdquopost_title‟ =gt $title)

array(bdquos‟)

)

gt

ডাটাপরফ গগকউয কযায জনয াঅপরডট াাপরযন ডদখাফ- গনপরচয ডকাডগট খাযা েযাকগট ltphp

$wpdb-gtquery(ldquoUPDATE $wpdb-gtposts SET post_title=‟$newTitle‟ WHERE

ID=$my_idrdquo )

gt

উপরযয ভত কপরয না গরপরখ গনপরচয ভত কপরয গরখন- ltphp

$wpdb-gtupdate($wpdb-gtposts

Array(bdquopost_title‟ =gt‟$newTitle‟)

Array(bdquoID‟ =gt$my_id

)

gt

ানর বাপরফ ানযানয াাপরযন গপররা গরখপরফন

45

াধযায়- াঅটাঃ ডরাকারাাআপরজন এফাং Set t i ngs API

ডরাকারাাআপরজন ডরাকারাাআপরজন একগট গরতবনড গফলয় এয পাাংনগপররা র- load_theme_textdomain()

load_plugin_textdomain()

উদাযন- ltphp $var=__(bdquoHello‟‟domain‟) gt

ltphp _e(bdquoHello‟‟domain‟) gt

গফসতাগযত গনপরচয গরপরঙক ডদখন- httpcodexwordpressorgI18n_for_WordPress_Developers

ডগটাং API

ডগটাং API পরচছ াঅগন গকি ান ততগয কযপরফন মা াআনটাযনার বাপরফ াঅনায পলাগগপরন এপলাাআ পরফ মখন াঅগন াআউজায- গডপাাআন ান ততগয কযপরফন াঅনায পলাগগপরনয জনয তখন Settings

API ndashএ াঅনায ডকাড মতটা ারন জ করন Settings API াঅনায ডম কাজগপররা handle কপরয-

ওয়াডডপরেপরক জাগনপরয় ডদয় ডম াঅগন গনজসব ান ফযফায কযপরফন াঅনায াআনটপরক পাাংপরনয ভপরধয উপরেখ কযপরফ ডফগয বাগ ান ডজ গনপরজাআ ততগয কযপরফ $_POST ডাটা গপররাপরক ভগনটয কপরয ান ততগয এফাং াঅপরডট কপরয(মগদ েপরয়াজন য়)

Settings API পাাংন Settings API পাাংপরন গতনগট ডসট থাপরক- ১ েথপরভ ওয়াডডপরেপরক ফপরর ডম াঅগন নতন ডগটাং ফযফায কযপরফন াঅনায পলাগগপরনয জনয ২ এয পরয ডগটাং গডপাাআন করন (text areas input boxes and any

HTML form element) এফাং এপরদযপরক একাপরথ রে কপরয যাপরখ ৩ ওয়াডডপরেপরক াঅনায ডগটাং actual form এ ডদখাপরনায জনয ফপরর

46

এফায াঅভযা একগট পলাগগন ফানাপরফা Administration Page ndashএ ডযপাপরযনস গপরপরফ ডদখপরত াপরযন- httpcodexwordpressorgAdding_Administration_Menus

httpcodexwordpressorgFunction_Referenceadd_options_page

httpcodexwordpressorgAction_ReferenceActions_Run_During_an_Admin_P

age_Request

পলাগগপরনয এডগভন ডজ পরফ এযকভ- httpexamplecomwp-adminoptions-generalphppage=liton_myplugin

েথপরভ াঅভযা ডভন ততগয কযফ াঅপরগয ভত কপরয- Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

এফায ান ডজ এ পভড গনপরয় গকি ডগটাং ডদফ function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

উপরযয ডকাপরড াঅভযা একগট পপরভডয ভপরধয রধ াফগভট ফাটন এফাং My Plugin নাপরভ ডজ ততগয কপরযগি ডযাপরফাপরডড ডদখন-

47

ডগটাং এয াফ ডভন গপরপরফ My Plugin াঅপরি এফাং My Plugin ডত গিক কযপরর াঅভযা উপরযয ডজ ততগয কপরযগি ডমখাপরন াফগভট ফাটনগট ডদখাপরচছ এফায গতনগট যাযাগভটায ডযগজসটায কযফ- ltphp

register_setting( liton _myplugin_options liton _myplugin_options liton

_myplugin_validate_options)

gt

েথভগট ডগটাং রেপরয নাভ গিতীয়গট ান নাভ মা াঅভযা get_option() পাাংন গদপরয়ও ডপরত াগয ততীয়গট করফযাক পাাংন এগট একগট গসটরাং ডযপাপরযনস পাাংন এখাপরন াঅভযা নাভ

48

গদপরয়গি liton _myplugin_validate_options মা া কযপরফ পপরভডয কর ডব ডগটাং াঅভযা এটা পরয গডপাাআন কযফ

ডগটাং গডপাাআন ডকন add_settings_field() এফাং add_settings_section() পাাংন গদপরয় াঅভযা াঅভাপরদয কর ডগটাং গডপাাআন কযফ ltphp

add_settings_section( liton_myplugin_main My Plugin Settings

liton_myplugin_section_text liton _myplugin)

add_settings_field( liton _myplugin_text_string Enter text here

liton _myplugin_setting_input liton _myplugin liton _myplugin_main)

gt

add_settings_section() পাাংন গদপরয় াঅভযা ডদখাফ াঅপরর ডজ এ ডকন ডকভন ডদখাপরফ এয চাযগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ ডকন টাাআপরটর ltH3gt টযাপরগয ভপরধয করফযাক পাাংন এয নাভ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ (page= liton _myplugin এগট

URL এয াাং গপরপরফ থাকপরফ) গিতীয় যাযাগভটায add_settings_field() পপরভডয াআনট গপরপরফ ডদখাপরনা পরয়পরি এখাপরন াাচগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ পরযয গপপরলড গক গেনট কযা পরফ তা ডটকসট গপরপরফ ডদখাপরনা পরয়পরি(Enter text

here)

করফযাক পাাংন পপরভড গেনট কযপরফ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ ডগটাং ডপরজয ডকন গপলড মা add_settings_section() পাাংপরন গডপাাআন

কযা পরয়পরি ltphp

Explanations about this section

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

49

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton _myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name= liton _myplugin_options[text_string]

type=text value=$options[text_string] gt

gt

গিতীয় পাাংন ান বযার text_string ডক এযাপরযপরত ডসটায কপরয ডযপরখপরি এফায াআউজায াআনট বযাগরপরডট কযফ- ltphp

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace([^a-zA-Z]$input[text_string] )

return $valid

gt

পভডপরক ডযনডায কযফ- ltphp

Draw the options page

function liton_myplugin_options_page()

gt

ltdiv class=wrapgt

ltphp

screen_icon()

gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp

settings_fields( liton_myplugin_options)

do_settings_sections(liton_myplugin)

50

gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

settings_fields() পাাংনগট ডযপাপরযনস গপরপরফ ফযফায কযা পরয়পরি মা াঅভযা register_setting() পাাংপরন গডপরিয়ায কপরযগি do_settings_sections() পাাংনগট কর কযপরফ কর াঅউটট ডকন এফাং পভড গপলডপরক মা াঅভযা পরফড গডপাাআন কপরযগি াঅভাপরদয কাজ ডল এফায পরযা পলাগগনগট ডদখফ- ltphp

Plugin Name Settings API example

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

Draw the option page

function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save

Changes gt

ltformgtltdivgt

ltphp

51

Register and define the settings

add_action(admin_init liton_myplugin_admin_init)

function liton_myplugin_admin_init()

register_setting( liton_myplugin_options

liton_myplugin_options

liton_myplugin_validate_options )

add_settings_section( liton_myplugin_main My Plugin

Settings

liton_myplugin_section_text liton_myplugin )

add_settings_field( liton_myplugin_text_string Enter text

here

liton_myplugin_setting_input liton_myplugin

liton_myplugin_main )

Draw the section header

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton_myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name=liton_myplugin_options[text_string]

type=text value=$text_string gt

Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

return $valid

gt

52

ডদখন ডযাপরফাপরডড ডকভন ডদখায়-

পরয় ডগর াঅভাপরদয েথভ নডাাংগ পলাগগন ান ডজ াঅপরযকগট গজগন ডমটায জনয এতগকি পলাগগন URL এপরডর- httplocalhostdev-litonwp-adminoptions-

generalphppage=liton_mypluginampsettings-updated=true

াঅভায এখাপরন এযকভ ডদখাপরচছ ডটকসট ফপরকস ডকান গকি গরপরখ ডব কযায য এফাপরয াঅপরযকগট গজগন ডদখফ াঅভযা াপরনক ভয়াআ াপরনক পলাগগপরনয াআনট গপপরলড বর ডাটা াআনট কযপরর এযয ডভপরজ ডদখায় এাআ কাজগট কযফ এফায াঅভযা এখাপরন esc_attr() ফা esc_html() ফযফায কগযগন সতযাাং াঅভাপরদয গরগভপরটন থাকপরি ডবগরপরডট পাাংনগট একট এগডট কগয গনপরচয ভত কপরয Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

if( $valid[text_string] = $input[text_string] )

add_settings_error(liton_myplugin_text_stringliton_myplugin_texterror

53

Incorrect value enterederror)

return $valid

উপরয ডদখন add_settings_error() পাাংন ফযফায কপরযগি মা এযয ডচক কযপরফ পপরভডয াঅগভ একগট বর ডাটা(পরসপার কযাপরযকটায) াআনট কপরয ডদখরাভ এযয ডদখাপরচছ-

তায ভাপরন াঅভযা পর পরয়গি াঅনায পলাগগনগট এগডট কপরয ডনপরফন ডকায ডকন এফাং গপপরলডয গরসট গদরাভ াঅনাপরদয সগফধায জনয

54

CSSJS পাাআর মি কযা

াঅনায পলাগগপরন গএএ ফা জাবাগিে ডমাগ কযপরত পরত াপরয াঅগন চাাআপরর ফাগপরযয ডকান ফা াঅনায ততগয ডকান গএএ ফা জাবাগিে পাাআর ডমাগ কযপরত াপরযন তপরফ এপরকষপরতর াঅভযা ডমবাপরফ HTML এ পাাআর ডমাগ কগয ডযকভ না function liton_scripts()

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtojqueryjsrdquogtltscriptgt‟

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtoscriptjsrdquogtltscriptgt‟

add_action(bdquowp_head‟‟liton_scripts‟)

এগট মপনডরপর বর িগত গনপরচ ডদখন ওয়াডডপরেপর গকবাপরফ পাাআর মি কযপরত য়- function liton_scripts()

wp_enqueue_script(bdquojquery‟)

wp_enqueue_script(bdquotheme-scripts‟‟pathtoscriptsjs‟)

add_action(bdquowp_enqueue_script‟‟liton_scripts‟)

ানর বাপরফ াঅগন সটাাআরীট ডমাগ কযপরত াপরযন- function liton_styles()

wp_enqueue_ style (bdquocss‟)

wp_enqueue_ style (bdquotheme- styles‟pathto stylescss‟)

ডযপাপরযনস ডদখন- httpcodexwordpressorgFunction_Referencewp_enqueue_script

httpcodexwordpressorgFunction_Referencewp_enqueue_style

টডপরকাড টডপরকাড পরচছ ওয়াডডপরেপরয ডসপগগপক ডসপার টযাগ মা াঅগন ডাসট ফা ডপরজয ভপরধয াআনাটড কপরয ানয ডকান কনপরটনটপরক ওপরয়ফাাআপরটয ভপরধয গযপরপল কযপরত াযপরফন মগদ াঅগন গযারাগয টাাআপরয ডকান পলাগগন ফযফায কপরয থাপরকন তাপরর াঅনায ধাযনা থাকায কথা মাাআ ডাক াঅগভ কপরয়কগট উদাযি ডদখাফ

55

েথপরভ একগট পলাগগন ততগয কযফ ডমখাপরন add_shortcode() নাপরভয একগট পাাংন থাকপরফ এগট রগট যাযাগভটায েন কপরয েথভগট টডপরকাপরডয নাভ গিতীয়গট ডম পাাংনপরক কর কযপরফন ডগট াঅভযা একগট উদাযন ডদগখ- ltphp

Plugin Name Liton Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(litonhi)

function hi()

echo Hello World

gt

উপরয ডদখন খফ ডিাট গকনত াঅগন চাাআপরর এয ফযফায াপরনক গফসতত কযপরত াপরযন এখাপরন টডপরকাড নাভ পরচছ liton াঅয এগটপরক ডরখা য় এবাপরফ [liton] াঅভযা ডাপরসটয ভপরধয াআনাটড কপরয ডদগখ াঅউটট ডকভন ডদখায়-

এফায াঅউটট ডদগখ-

56

াঅভাপরদয ততগয কযা টডপরকাড পরবাপরফাআ কাজ কযপরি াঅপরযকগট উদাযন ডদখফ াঅনাযা াপরনপরকাআ গগর এডপরনস গনপরয় কাজ কপরযন াঅনাযা াপরনপরকাআ এডপরনস এয জনয পলাগগন ফযফায কপরযন গকনত চাাআপররাআ এাআ কাজগট াঅনাযা গনপরজয ভত কপরয াগজপরয় গনপরত াপরযন গগপররয কাপরি ফ ডাসট বযার ায়না াঅনাযা মাযা একসাটড াঅপরিন তাযা এটা বার কপরয জাপরনন তাাআ াপরনপরকাআ গগপররয ডকাড ফ ডপরজ ডদখাপরত চান না এজনয পলাগগন ফযফায কপরয রাব য়না কাযন পলাগগপরন জায়গা গপকসড থাপরক এপরত কপরয াঅগনডাং ও কভ য় াঅনাযা টডপরকাড ফযফায কপরয ডমপরকান জায়গায় এড ডদখাপরত াপরযন গনপরচ াঅগভ রগট টডপরকাড ততগয কপরযগি র‟ধযপরনয এড ডদখাপরনায জনয ltphp

Plugin Name Liton Adsense Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(adsense_468adsense_468_60)

add_shortcode(adsense_250adsense_250_250)

function adsense_468_60($atts)

return ltscript type=textjavascriptgtlt--

57

google_ad_client = ca-pub-0956247412222369

468x60 created 101510

google_ad_slot = 4372705450

google_ad_width = 468

google_ad_height = 60

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

function adsense_250_250($atts)

return ltscript type=textjavascriptgtlt--

google_ad_client = ca-pub-0956247412222369

250x250 created 81809

google_ad_slot = 9368091893

google_ad_width = 250

google_ad_height = 250

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

gt

একগট টডপরকাড ফযানায টাাআপরয জনয এফাং াঅপরযকগট ২৫০২৫০ াাআপরজয এফায ডাপরসট ডমপরকান একগট টডপরকাড াআনাটড করন ডমখাপরন াঅনায ডদখাপরনায েপরয়াজন ভপরন কপরযন াঅগভ রগট ডকাড ডটসট কপরয ডদখরাভ-

58

এফায াাআপরটয াঅউটট ডদগখ-

রগট এডাআ ডদখাপরচছ াঅপরযা াপরনক কাপরজ াঅগন টডপরকাড ফযফায কযপরত াপরযন ডযপাপরযনসাঃ httpcodexwordpressorgShortcode_API

59

াধযায়- নয়াঃ পলাগগন উদাযন

ওয়াডডপরেপরয ডডটটাাআভকপরভনট নামবায ফাাংরা কযায পলাগগন াঅভাপরক কপরয়কজন ফপররগিপররন ওয়াডডপরেপরয গডপলট ডডটটাাআভকপরভনট নামবায ফাাংরা য়না রযাাংগপরয়জ ফাাংরা কযায যও ডডটটাাআভকপরভনট নামবায গপররা াআাংপরযগজ ডথপরক মায় গনপরচয পলাগগনগট ফযফায কপরয ডদখপরত াপরযন- ltphp

Plugin Name Liton Bangla datetimecomment number

Plugin URI httpliton-onlinecomplugins

Description Bangla datetimecomment number

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

This function converts all english numbers to bangla number

function make_bangla_number($str)

$engNumber = array(1234567890)

$bangNumber = array( ১ ২ ৩ ৪ ৫ ৬ ৭ ৮ ৯ ০ ) $converted = str_replace($engNumber $bangNumber $str)

return $converted

add_filter( get_the_time make_bangla_number )

add_filter( the_date make_bangla_number )

add_filter( get_the_date make_bangla_number )

add_filter( comments_number make_bangla_number )

add_filter( get_comment_date make_bangla_number )

add_filter( get_comment_time make_bangla_number )

gt

60

সলাাআডায পলাগগন াঅভযা এাআ ফাআপরয়য কর গটউপরটাগযয়াপরর মা মা গখরাভ তা এফায একগট নডাাংগ পলাগগপরনয এপলাাআ কযফ সলাাআডায পলাগগন মপপরকড াঅভযা ফাাআ জাগন একগট ওপরয়ফাাআপরটয ডচাযা ারপরট ডদয় একগট সলাাআডায াপরনক ডাাআনাগভক ভপরন য় ডদখপরতও াপরনক বার রাপরগ এাআ পলাগগপরন াঅভযা এডগভন যাপরনর ডথপরক াআপরভজ ডমাগ কযফ এফাং তা াঅভাপরদয াাআপরট ডদখাফ চরন কাজ রর কগয- েথপরভ গনপরবা সলাাআডায এয ওপরয়ফাাআপরট মান এফাং jQuery Plugin ডাউনপররাড করন

ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom Version 10

gt

াঅভযা পলাগগপরনয ডডায ততগয কযরাভ

পলাগগন গরপরসট ডদখাপরচছ bdquoLitons Nivo Plugin‟ াঅভাপরদয েথভ কাজ পরচছ custom post

type ওয়াডডপরে পাাংনাগরগট একগট নতন কাসটভ ডজ ততগয কযপরত custom post type

ফযফহরত পরফ ডমখাপরন একগট াআপরভজ থাকপরফ াঅভযা রধ টাাআপরটর ডনভ এফাং াআপরভজ াঅপররাডায গপরপরফ গপচায াআপরভজ পাাংনাগরগট ফযফায কযফ function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_function 600 280 true)

61

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

add_action(init np_init)

উপরযয ডকাপরড np_init() পাাংনগট রক কপরযগি মা ডডায যান কযায াঅপরগ যান পরফ াঅয এজনয register_post_type() পাাংনপরক এয যাযাগভটায গদপরয় np_init() পাাংপরনয ডবতপরয মি কপরযগি এটা মগদ না কযতাভ তাপরর ldquoHeaders already sentrdquo ডভপরজ ডদখাত এাআ ডভপরজগটয াপরথ াপরনপরকাআ গযগচত াঅা কগয register_post_type() পাাংন গদপরয় াঅভযা াআপরভজ মি এফাং ভযাপরনজ কযফ ভরত াঅভযা একগট নতন custom post type ডমাগ কপরযগি np_images নাভ গদপরয় নতন custom post type ডক ডগটাং বযার গপরপরফ াঅযগপরভনট া কপরযগি $args ডবগযপরয়ফরগট ট ডরপরবর ডভন ততগয কপরয াঅপরগাআ ডদপরখগি পলাগগনগট এগকটপরবট কযপরর াঅভযা গনপরচয ভত ডদখপরত াফ-

এফায গিে এফাং সটাাআরীট ডক মি কযফ- add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

এফায রক কযা পাাংনগপররা গডপরিয়ায কগয- function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__) array( jquery ))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

62

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

উপরযয ডকাডগপররা নতন কপরয ফিডনা কযায গকি ডনাআ াঅপরগাআ wp_enqueue_style() এফাং wp_enqueue_script() মপপরকড ফরা পরয়পরি নতন াঅপরযকগট পাাআর ততগয করন একাআ গডপরযকটগযপরত scriptjs এফাং গনপরচয ডকাডটক গদন- jQuery(document)ready(function($)

$(slider)nivoSlider()

)

াআপরভজপরক গযাাআজ করন- add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

াঅভযা এাআ পলাগগনগটপরক উাআপরজট গপরপরফও ফযফায কযফ ডগট পরয ডদখফ াঅপরযকগট গজগন মগদ গথপরভ না ডদয়া থাপরক ডজনয থামবপরনাআর াপরাটড গদপরয় গদন- add_theme_support( post-thumbnails )

এফায ওয়াডডপরেপরয কাপরযনট ডাসট কপরয়যী কযায ডকাড াঅয $result ডবগযপরয়ফপরর ডমফ ltdivgt টযাগ ফযফায কযা পরয়পরি তা jQuery Plugin গট একসিাকট কপরয indexhtml ডজগটয ডভাআন সলাাআডায ডকাডগট ডদখন একাআ াঅপরি রধ ডখানকায ltdivgt টযাগ গপররাপরক কগ কপরয এাআ পলাগগপরন ফযফায কযা পরয়পরি এফায টডপরকাড গদন- add_shortcode(np-shortcode np_function)

এাআ টডপরকাড গএাআচগ পাাংনপরক রক কযপরফ এফাং এয ভধয ডথপরক সলাাআডপরায কনপরটনট ডক গযটানড কযপরফ াঅভাপরদয টডপরকাড পরচছ [np-shortcode] াঅভযা পলাগগপরন মাাআ এফাং একগট িগফ মি কগয গপচাযড াআপরভজ গপরপরফ গনপরচ ডদখন-

63

াঅগভ াঅপরযকগট ডজ ততগয কপরযগি ডমখাপরন টডপরকাড গদপরয়গি

াঅউটট ডজ ডদগখ এফায-

64

পরয় ডগর াঅভাপরদয সলাাআডায পলাগগন পরযা ডকাডগট গনপরচ গদরাভ- ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

65

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

66

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

এফায াঅগন মগদ উাআপরজট গপরপরফ ফযফায কযপরত চান তাপরর গনপরচয ডকাডটক গদন- class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

67

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

echo $after_widget

াঅপরযা রগট কাজ কযপরত পরফ াঅনাপরক এক াআপরভজ াাআজ উাআপরজট এয জনয গঠক কপরয গদপরত পরফ- add_image_size(np_widget 180 100 true)

াঅপরযকগট র উাআপরজট এযাকন রক ডমাগ কযা add_action(widgets_init np_widgets_init)

উাআপরজট পরযা ডকাড াঅফায গদরাভ- ltphp

Plugin Name Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Ciprian Turcu

Version 10

68

class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

69

echo $after_widget

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

70

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(widgets_init np_widgets_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

71

পলাগগন গনপরয় এত ডিাট গযপরয ডরখা মভফ নয় এজনযাআ ভপরন য় পলাগগন গনপরয় ডকউ ডরপরখন না কাযন এখাপরন এত গফলয় াঅপরি মা াঅপররাচনা কযপরত ডগপরর ৫০০ ডজ ায পরয় মাপরফ ডফাোয সগফধাপরথড াঅগভ মথামভফ উদাযন গদপরয় ডফাোপরনায ডচষটা কপরযগি াঅগভ এখাপরন টাপরগডট কপরযগি মাযা টকটাক জাপরন পলাগগন মপপরকড এডবানস ডরপরবপররয নয় কাযন তাযা জাপরনন াঅভায উপরেশয গির মাযা জানপরত চায় তাপরদযপরক জানাপরনা এখাপরন ডমফ গফলয় াঅপররাচনা কযা পরয়পরি তা ডভাটাভগট ভাপরনয একগট পলাগগন ফানাপরনায জনয মপরথষট তপরফ ভাপরনাননয়পরনয জনয াঅনাপরক গনপরজাআ খাপরজ গনপরত পরফ াঅনায জনয ডকানটা বার পরফ াঅগভ রধ গদক গনপরদডনা গদরাভ ভাতর এাআ ফাআগট রধভাতর ওয়াডডপরে রেপরয জনয ডরখা াপরনক বর ভরাগনত থাকপরত াপরয াঅনাযা কষভাসনদয দগষটপরত ডদখপরফন াঅগভ ডচষটা কপরযগি মতটা জ কপরয ডরখা মায় াপরনক ভয় ডদখা মায় ডম খফ ডিাট খাপরটা গফলয় গনপরয় াপরনপরকাআ নক কপরযন এটা গতয রাঃখজনক াঅনাযা গগপরর একট খাজপররাআ ভাধান াপরফন াঅপরগ গনপরজ ডচষটা করন তায পরয ানযপরক ভাধাপরনয জনয গজজঞাা করন াঅভায জনয ডদায়া কযপরফন বাপররা রাগপরর জানাপরফন খাযা রাগপররও জানাপরফন তাপররাআ াঅভায গযশরভ সবাথডক পরফ ভতাভত জাগনপরয় াঅভাপরক ডভাআর কযপরত াপরযন litonice09gmailcom |

72

Page 20: Wordpress Plugin Development

21

ltphp

register_deactivation_hook ($file $function) gt

-

ltphp

register_deactivation_hook (__FILE__ bdquoliton_plugin_install‟)

function liton_plugin_install()

do something

gt

াঅপরযকগট গরতবনড গফলয় র াঅনাআনসটর ওয়াডডপরে াঅনাপরক পলাগগন াঅনাআনসটর এয জনয রগট ান গদপরচছ- uninstallphp file and the uninstall hook

uninstallphp

এগট ডভাটাভগট েনপরমাগয িগত এ ডভথড ফযফায কযায জনয াঅনাপরক uninstallphp নাপরভ একগট পাাআর ততগয কযপরত পরফ াঅনায পলাগগন গডপরযকটগযপরত পাাআরগট গনপরচয ভত পরফ- ltphp

মগদ ওয়াডডপরে এগকসট কযায াপরথ াঅনাআনসটর কর কযা না য় If(defined(bdquoWP_UNINSTALL_PLUGIN‟))

exit()

delete_option(bdquoliton_plugin_options‟)

াগতগযি ান এফাং কাসটভ ডটগফর ভপরি ডপরন gt

Uninstall Hook

গিতীয় িগত র Uninstall Hook মগদ াঅগন ডকান পলাগগনপরক গডগরট কযপরত চান এফাং uninstallphp পাাআর না থাপরক তাপরর এাআ রক এগকসগকউট য়(মগদ থাপরক) ltphp

register_uninstall_hook($file$function)

gt

22

ডকাগডাং সটযানডাডড পলাগগন ফানাপরফন গকনত াঅনায ডকাড ডকভন পরফ গচনতা াঅপরত াপরয ওয়াডডপরে াঅনায জনয একগট সটযানডাডড গদপরয় গদপরয়পরি মা াঅনাপরক ওয়াডডপরেপরয জনয পলাগগন গরখপরত ডগপরর পপররা কযপরতাআ পরফ httpcodexwordpressorgWordPress_Coding_Standards

ডফগক একগট উদাযন গদরাভ গনপরচ- ltphp

Short description

Longer more detailed description

param type $varname1 Description

param type $varname2 Description

return type Description

function boj_super_function( $varname1 $varname2 )

do function stuff

gt

গএাআচগ সটানডাডড াঅভযা াপরনপরকাআ গএাআচগয টড পভড(lt gt) ফযফায কগয এটা মপিডরপর ফজডন করন কাযন াপরনক ডাগসটাং ডকামপাগনপরতাআ এটা গডপলট গপরপরফ ফনধ কপরয ডদয়া থাপরক সটযানডাডড টযাগ ফযফায করন(ltphp gt)

এগকউএর ডসটটপরভনট পলাগগন ততগযয ভয় াঅনাপরক াপরনক ভয়াআ ডাটাপরফ ডথপরক াআনপযপরভন গনপরত পরত াপরয াপরনক রাাআপরনয ডকাড গরখপরত পরত াপরয ডপরকষপরতর বার েযাকগট পরচছ এগকউএর এয কভানড গপররা ফড় াপরতয াকষপরয ডরখা ডমভন- SELECT username FROM table1 WHERE status = active

23

াধযায়- াাচাঃ ওয়াডডপরেপরয াপরথ াআগনটপরেন

ডভন এফাং াফ ডভন ততগয করন াঅভযা াপরনক পলাগগপরনাআ ডদগখ ডম একগট ডভন াঅাআপরটভ গপরপরফ াঅভাপরদয ডযাপরফাপরডড ডদখপরত াাআ এফাং ডাআ ডভনপরত গিক কযপরর ডগটাং ডজ াঅপর ডখাপরন পলাগগপরনয মাফতীয় ডগটাং গদপরয় াঅভযা পলাগগন কনগপগায কগয এফায এাআ চভৎকায কাজগট কযফ াঅভযা

ট ডরপরবর ডভন েথভ িগত পরচছ একগট ট ডরপরবর ডভন ততগয কযা ডমগট াঅভযা ডযাপরফাপরডড ডভন গরপরসট একগট নতন াঅাআপরটভ গপরপরফ ডমাগ কযফ ডভন ততগয কযায জনয াঅনাপরক add_menu_page( ) পাাংন ফযফায কযপরত পরফ ltphp

add_menu_page( page_title menu_title capability menu_slug functionicon_url

position )

gt

add_menu_page() পাাংন গনপরচয যাযাগভটাযগপররা াপরাটড কপরয page_title- াঅনায ডপরজয টাাআপরটর গক পরফ lttitlegt tag এয ভপরধয menu_title- ডযাপরফাপরডড াঅনায ডভনয নাভ capability- ফডগনমন capability রাগপরফ একগট ডভন গবউ পরত menu_slug- সলাগ নাভ মা ডভনপরক ডযপায কপরয- তপরফ এগট াআউগনক পরত পরফ function- একগট ডপরজয কনপরটনট ডদখপরত ডম পাাংন কর কযা য় icon_url- একগট কাসটভ াআপরভজ গরঙক ডভন াঅাআকন ডদখাপরনায জনয position- ডভনয গজন াডডায ডমখাপরন এটা ডদখাপরনা পরফ

এফায াঅভযা একগট ফাসতফ উদাযন ডদখফ- ltphp

Plugin Name Liton Menu

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action( admin_menu liton_menu)

function liton_menu()

24

create custom top-level menu

add_menu_page( Liton Menu Page Liton Menu Page manage_options

__FILE__ liton_menu_settings_page plugins_url( imageswp-logopng

__FILE__ ) )

gt

াঅভযা একগট ট ডরপরবর ডভন ততগয কযরাভ ডদখন ডযাপরফাপরডড ডকভন ডদখায়-

Liton Menu Page নাপরভ একগট ডভন ততগয পরয় ডগপরি এফাপরয াঅভযা াফপরভন কযফ ভাপরন Liton Menu Page এয গনপরচ গকি ডগটাং ডভন(মগদ েপরয়াজন য়) াফ ডভন ডযগজসটায কযায জনয add_submenu_page( ) পাাংন ফযফায কযা য় ltphp

add_submenu_page( parent_slug page_title menu_title capabilitymenu_slug

function )

gt

parent_slug- ডভন সলাগ মা াঅভযা াঅপরগ গডপাাআন কপরযগি menu_slug- মা ডভনপরক াফপরভনপরত ডযপায কযপরফ ফাগক পাাংনগপররা াঅপরগয ভতাআ

এফায াফপরভনয জনয গকি াগতগযি ডকাড ডমাগ কগয create submenu items

add_submenu_page( __FILE__ About My Plugin About manage_options

__FILE___about liton_menu_about_page )

add_submenu_page( __FILE__ Help with My Plugin Help

manage_options

__FILE___help liton_menu_help_page )

add_submenu_page( __FILE__ Uninstall My Plugin Uninstall

manage_options

__FILE___uninstall liton_menu_uninstall_page )

25

পরযা ডকাডগট পরফ এযকভ- ltphp

Plugin Name Liton Menu

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action( admin_menu liton_menu

)

function liton_menu()

create custom top-level menu

add_menu_page( Liton Menu Settings Page Liton Menu Page

manage_options __FILE__

liton_menu_settings_page

plugins_url( imageswp-logopng __FILE__ ) )

create submenu items

add_submenu_page( __FILE__ About My Plugin About manage_options

__FILE___about liton_menu_about_page )

add_submenu_page( __FILE__ Help with My Plugin Help

manage_options

__FILE___help liton_menu_help_page )

add_submenu_page( __FILE__ Uninstall My Plugin Uninstall

manage_options

__FILE___uninstall liton_menu_uninstall_page )

gt

গনপরচ ডদখন াফপরভনগপররা ততগয পরয় ডগপরি-

26

ডভনপরক াঅপরগয ডভনয াপরথ মি কযা এফায াঅগ গিতীয় িগতপরত মগদ াঅনায পলাগগপরনয একগট ভাতর ডজ থাপরক একগট ভাতর ডপরজাআ াঅনায কর ডগটাং পরয় মায় তাপরর এাআ িগত েন করন ডমভন ডয়াগযাং াাআটগপররায জনয রধ াঅনায াঅাআগডপযানপরপরজয াঅাআগড দযকায য় এযকভ পলাগগন এধযপরনয পলাগগপরনয জনয াঅনায াগতগযি ডভন ততগয কযায দযকায ডনাআ ফযাং এপরত কপরয াআউজায গফযি ডফাধ কযপরত াপরযন এ ধযপরনয পলাগগনগপররা ডগটাং এয াফপরভন গপরপরফ থাপরক add_options_page() এাআ পাাংন গদপরয় এফ ডভন ডযগজসটায কযা য় ltphp

add_options_page( page_title menu_title capability

menu_slug function)

gt

এফায চরন এযকভ একগট ডভন ততগয কগয- ltphp

Plugin Name Liton Sub Menu

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action( admin_menu liton_submenu)

function liton_submenu()

create a submenu under Settings

add_options_page( Liton Menu Settings Page Liton Menu Page

manage_options __FILE__

liton_menu_settings_page)

27

gt

াফপরভন ততগয পরয় ডগপরি চরন ডদগখ ডযাপরফাপরডড ডকভন ডদখায়-

এপরকফাপরয গনপরচয গদপরক ডদখন Liton Menu Page নাপরভ একগট ডভন ততগয পরয়পরি

উাআপরজট ততগয কযা উাআপরজট ততগয কযায জনয ওয়াডডপরে WP-Widget িা গদপরয় ততগয কযা য় উাআপরজট এয একগট পযভযাট ডদখন গনপরচ ltphp

class My_Widget extends WP_Widget

function My_Widget()

processes the widget

function form($instance)

displays the widget form in the admin dashboard

function update($new_instance $old_instance)

process widget options to save

function widget($args $instance)

displays the widget

gt

28

উাআপরজট ডযগজসটায কযায জনয widget_init() পাাংনপরক রক কযা য় চরন একগট উাআপরজট ততগয কগয- ltphp

Plugin Name Liton Widget

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

class Messager extends WP_Widget

function __construct()

$params=array(

description =gtDisplay message to readers

name =gt Message

)

parent__construct(Messager $params)

public function form()

public function widget()

add_action(widgets_initliton_register_message)

function liton_register_message()

register_widget(Messager)

gt

29

খফ াধাযন একগট উাআপরজট পলাগগন এগট াঅভযা াআউজাযপরদযপরক একগট ডভপরজ ডদখাপরফা াাআডফাপরয ডটাাআ কযায ডচষটা কযগি এখন পলাগগনগট এগকটপরবট কপরয ডদগখ-

াঅভাপরদয উাআপরজটগট ডদখাপরচছ এফায াঅপরযা গকি পাাংনার কাজ কগয এগট মগদ াাআডফাপরয ডরাগ কপরয ডদন তাপরর ডকান কাজ কযপরফ না কাযন াঅভযা এখপরনা গকিাআ কগযগন পভড পাাংপরন গকি কাজ কগয মা উাআপরজট টাাআপরটর গপরপরফ ডদখাপরফ- public function form($instance)

extract($instance)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title)gtgtTitle ltlabelgt

ltinput

class=widefat

id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt

value=ltphp if(isset($title)) echo esc_attr($title) gt gt

ltpgt

ltphp

াঅভযা উপরয class=widefat ফযফায কপরযগি এাআ িা ফযফায কযায কাযপরন পভড এয াআনট গপলডগট াপরনক সনদয পরয়পরি

30

মগদ এাআ িা ফযফায না কগয তাপরর ডকভন ডদখাপরফ গনপরচ ডদখন-

াঅভাপরদয উাআপরজট পলাগগনগটয ডকাড গনপরচ ডদওয়া র ltphp

Plugin Name Liton Widget

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

class Messager extends WP_Widget

function __construct()

$params=array(

description =gtDisplay message to readers

name =gt Message

)

parent__construct(Messager$params)

31

public function form($instance)

extract($instance)

print_r($instance)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title)gtgtTitle ltlabelgt

ltinput

class=widefat

id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt

value=ltphp if(isset($title)) echo esc_attr($title) gt gt

ltpgt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(description)gtgtDescription

ltlabelgt

lttextarea

class=widefat

rows=10

id=ltphp echo $this-gtget_field_id(description) gt

name=ltphp echo $this-gtget_field_name(description) gtgtltphp

if(isset($description)) echo esc_attr($description) gtlttextareagt

ltpgt

ltphp

public function widget($args$instance)

extract($args)

extract($instance)

echo $before_widget

echo $before_title$title$after_title

echo ltpgt$descriptionltpgt

echo $after_widget

add_action(widgets_initliton_register_message)

function liton_register_message()

32

register_widget(Messager)

gt

এফায াঅভযা ডযাপরফাডড ডথপরক একগট ডভপরজ ডদফ গবগজটযপরদযপরক-

াঅভযা এাআ উাআপরজটগট ডাাআনাগভক বাপরফ কপরযগি কাযন এখাপরন lth2gt lth3gt lth4gt এ ধযপরনয ডকান টযাগ াঅভযা ফযফায কগযগন াঅভযা গথভ ডডপরবর কযগিনা সতযাাং এ কাজগট াঅভাপরদয ানযবাপরফ কযা দযকায গির এগট গথভ ডডপরবরায ডদগখপরয় ডদপরফন ডম ডকভন টযাগ পরফ াাআডফাপরয াাআপরটয াাআডফাপরয ডকভন ডদখায় তা ডদখন- াঅভযা রগট গথপরভ এগট ডটসট কপরয ডদখফ েথভগট টপরয়গনট াআপররপরবন

33

এফায াঅপরযকগট গথপরভ ডদগখ-

34

াধযায়- িয়াঃ পলাগগন পাাংন

গকি ডফগক পাাংন __() পাাংন

__() পাাংনগট গএাআচগপরত াঅনায ডটকসটপরক ডযগড কপরয িানসপররন এফাং গযটানড কপরয উদাযন গপরপরফ াঅগন একগট বযারপরক __() পাাংপরনয ভপরধয ডবগযপরয়ফর গদপরয় assign করন ভপরন যাখপরফন এাআ পাাংনগট রগট াঅনডাযপরিায(_) গদপরয় গগঠত একগট নয় ltphp

$text=__(bdquoWordpress is a wonderful publishing platform‟‟liton_plugin‟)

gt

_e() পাাংন _e() পাাংনগট াঅনায ডটকসবপরট ডরাকারাাআজ কপরয এটা গএাআচগপরত echo এয ভত কাজ কপরয ডকান ডটকসটপরক গিপরন ডদখাপরনায জনয এফায একট ভজা কগয মা রপরক ডদপরখগি াঅপরগাআ- _e() পাাংনগট গদপরয় াঅপরগয পলাগগনগট এগডট কযফ ltphp

Plugin Name Liton Action

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(wp_footer liton_footer_action)

function liton_footer_action()

Output the translated text

_e( This site runs off the coolest platform ever ampmdash

WordPress

liton-plugin )

gt

35

এফায াঅউটট ডদগখ

esc_attr__() পাাংন এাআ পাাংনগট esc_attr() এয ভত এগট এাআচগটএভএর এগিগফউটপরক escape কপরয াঅভযা এফায esc_attr__() এফাং __() এাআ রগট পাাংনপরক একগট কপরয পলাগগন ততগয কযফ ltphp

Plugin Name Liton Esc Attr

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

A function that returns a link to the sites terms of service

page

function liton_terms_of_service_link()

return lta href=httpliton-onlinecomtos title=

esc_attr__( Visit the Terms of Service page boj-plugin ) gt __( Terms of

Service liton-plugin ) ltagt

Display the output of the liton_terms_of_service_link()

function

echo liton_terms_of_service_link()

gt

পলাগগনগটয াঅউটট ডদখন-

36

এযকভ াঅপরযা গকি পাাংন াঅপরি ডমগপররা াঅনাযা ডদপরখ ডনপরফন াআনটাযপরনট ডঘপরট

esc_html__() Function

esc_attr() Function

esc_url() Function

esc_js() Function

esc_html() Function

esc_attr_e() Function

esc_html_e() Function

_x() Function

_ex() Function

esc_attr_x() Function

esc_html_x() Function

_n() Function

_nx() Function

_n_noop() Function

_nx_noop() Function

Translation

bull Poedit httppoeditnet

bull GlotPress httpglotpressorg

bull Launchpad httpstranslationslaunchpadnet

bull Pootle httppootlelocamotionorg

bull KBabel httpi18nkdeorg

bull GNU Gettext httpgnuorgsoftwaregettext

GlotPress এখন ওপরয়ফ ডফড টর গপরপরফ ফযফায কযা পরচছ ওয়াডডে েপরজপরকটয ডিপরন একজন াথফা গটপরভয জনয িানসপররগটাং পটওয়যায গপরপরফ

37

াধযায়- াতাঃ পলাগগন গগকউগযগট

গগকউগযগট কগমপউটাপরযয বালায় ldquoগগকউগযগটrdquo ভাপরন বীগতকয একগট বদ ডমভন Cross Site

Scripting(XSS) Cross Site Request Forgery(CSRF) SQL Injection Privilege

Escalation Vulnerabilities এফাং Holes রফডর ডকাড একগট াবডাপরযয সযকষায জনয রভকীয কাযন পরত াপরয

পলাগগপরনয গগকউগযগট গক াঅনায পলাগগনগট ডমন গগকউয য় vulnerabilities data integrity এফাং reliability ডথপরক

াঅনায পলাগগনপরক গক গগকউগযগট ডদপরফন ওয়াডডপরে এনবায়যনপরভপরনট াঅনায পলাগগনপরক গগকউগযগট ডদয়া খফ কগঠন কাজ নয় এফাং খফ ভয় াপরকষ গফলয়ও নয় ওয়াডডপরেপরয গনজসব গকি পাাংন এপরকষপরতর াঅনাপরক খফাআ াাময কযপরফ

াআউজায াযগভন াঅভযা াপরনক পলাগগন াআনসটর কযায পরযাআ ডদপরখগি ডম মখনাআ এডগভন যাপরনর এ েপরফ কযপরত মাাআ তখন একগট এযয ডভপরজ াঅপর ডভপরজগট গনপরচয ভত-

ডরখা াঅপরি- You do not have sufficient permissionshellip এটা গনশচয়তা ডদয় ডম ডমপরকান এযাকন ীভাফি থাপরক গনগদডষট গকি যাাআট গদপরয় ওয়াডডপরেপরয একগট কভন পাাংন র current_user_can() একগট উদাযন ডদাআ-

38

ltphp

Capability

if ( current_user_can(install_plugins) )

wp_die( Insufficient permissions )

Role

if( current_user_can(editor) )

wp_die( You cannot edit this setting )

gt

খফ তাড়াতাগড় াঅগন এাআ current_user_can() পাাংন ডচক কযপরফন না কাযন এটা গনবডয কযপরফ get_currentuserinfo() এাআ পাাংপরনয উপরয াঅয এয ফযফাপরয ীভাফিতা াঅপরি এটা একগট পলাপরগফর পাাংন(pluggable function) াঅয এয ডরাপরকন পরচছ wp-

includespluggablephp মা পলাগগন এগকটব ফায য ডরাড য়

Nonces

ডকউ এগটপরক াঅফায Nonsense( গনপরফডাধ) বাফপরফন নাএগট ওয়াডডপরেপরয বালায় Nonces কগমপউটাপরযয বালায় nonce ফা cryptographic nonce পরচছ ldquonumber used once rdquo এটা ডিাট এফাং সপষট গকি য যানডভ গসটরাং ডমভন- াওয়াডড মা গকি গনপরদড কপরয Nonce গপরডন গপলড পভডপরক Retrieve ফা display কপরয-

একজন ওয়াডডপরে াআউজায ডমপরকান একগট এযাকন (delete update save and such) একগট াফপরজকট(একগট ডাসট পলাগগন ডগটাং াআতযাগদ) ২৪ ঘনটায একগট ভয় ডিভ

ডমভন ডাসট 50 গডগরট কযপরফন াঅনায ওয়াডডপরে বলগ ডথপরক তাপরর াঅনায গরঙকগট পরফ এযকভ- httpexamplecomwp-admin

postphppost=43ampaction=trashamp_wpnonce=83a08fcbc2

এখাপরন 83a08fcbc2 এগট র nonce মা ২৪ ঘনটা সথায়ী থাপরক রধভাতর এগট মগদ াঅনায িাযা ফযফরত য় এফাং গডগরট য় ডাসট 50 মখন াঅগন গরপরঙক গিক কপরযন ফপরচপরয় গযতবনড র ডম Nonce ডকান malicious াআউজায ফেপরত াপরযনা এফাং গঠক গরঙক িাড়া nonce এযয ডপরজ চপরর মায় ডমখাপরন াযগভন থাপরক না াঅপরযা গফসতাগযত ডদখন httpcodexwordpressorgWordPress_Nonces

39

Nonce URL ততগয এফায চরন াঅপরগয উদাযন ডথপরক Nonce URL ততগয কগয একগট ডাসট গডগরট কযায জনয wp_nonce_url() পাাংন ফযফায কযা য় ltphp

$url = wp_nonce_url( $url $action )

gt

েথভ যাযাগভটায $url পরচছ গসটরাং URL এপরডর এয মাপরক াঅগন কপরয়যী গসটরাং এয Nonce কযপরত চান াফযফহরত পলাগগপরনয গডগরট গরঙক এযকভ থাপরক- httpexamplecomwp-admineditphppage= liton

_utagsampliton_action=deleteampid=6

এখাপরন ডদখন যাযাগভটায liton_action এফাং এয টযাগ াঅাআগড গিতীয় যাযাগভটায পরচছ $action একগট গসটরাং মা াঅগন একগট াফপরজকট এয জনয একগট action ততগয কযপরফন উপরয ডদখরাভ delete এযাকন এয টযাগ াঅাআগড 6 সতযাাং $action যাযাগভটায পরত াপরয bdquoliton_utags-delete_tag6‟ গনপরচ ফাসতফ উদাযন ডদগখ- ltphp

$delete_url = add_query_arg(array( liton _action=gtdeleteid=gt$id) )

$nonced_url = wp_nonce_url( $delete_url bdquoliton _utags-delete_tag$id )

gt

lta href=ltphp echo $nonced_url gtgtdeleteltagt

এাআ টযাগগট পরফ গডগরট গরঙক এখাপরন add_query_arg() পাাংন ফযফায কযা পরয়পরি মা কাপরযনট URL ডক এযাপরয যাযাগভটায এয ভপরধয যাপরখ ানযবাপরফ ফরপরর এগট ডমাগ কপরয এযকভাঃ liton_action=deleteampid=6 amp liton_action=deleteampid=6

Nonce Form ততগয Nonce পভডপরকও ডোপরটকট কপরয wp_nonce_field() পাাংপরনয ভাধযপরভ ltphp

wp_nonce_field( $action $name $referer $echo ) gt

$action ( string) (optional) - action নাভ াআউগনক identifier optional

গকনত recommended $name (string) (optional) ndash গপরডন গপলড পভড ডবগযপরয়ফর নাভ $referer (boolean) (optional) ndash গডপলট গপরপরফ true থাপরক ডমখাপরন গপলড

ডবগরপরডন এয দযকায য়

40

$echo (boolean) (optional) - গডপলট গপরপরফ true থাপরক ডমখাপরন াঅউটট ডদখাপরনায ফা গপরডন পভড গপলড গযটানড কযায জনয দযকায য়

পপরভড াঅনায action এয নাভ গদন ltform method=postgt

lt-- some inputs here --gt

ltphp wp_nonce_field(name_of_my_actionname_of_nonce_field) gt

ltformgt

াঅভযা একগট পলাগগন ফানাপরফা ডমখাপরন াফযফরত টযাগগপররাপরক াঅভযা ভযানয়াগর গডগরট ফা গযপরনভ কযপরত াযফ এগট একট ফড় গকনত াপরনক গফলয়াআ াঅপরগাআ াঅপররাচনা কযা পরয়পরি ডদখপররাআ ফেপরত াযপরফন একগট ফাসতফধভডী উদাযন গনপরচ গদরাভ- ltphp

Plugin Name Liton Unused Tags

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add an entry for our option page to the Posts menu

add_action(admin_menu liton_utags_add_page)

function liton_utags_add_page()

add_posts_page( Unused Tags Unused Tagsmanage_optionsliton_utags

liton_utags_option_page )

Catch any liton_action parameter in query string

add_action( admin_init liton_utags_do_action )

Proceed to requested liton_action if applicable

function liton_utags_do_action()

if( isset( $_REQUEST[liton_action] ) )

return

if( current_user_can( manage_options ) )

wp_die( Insufficient privileges )

41

$id = $_REQUEST[id]

$action = $_REQUEST[liton_action]

if( $action == done )

add_action( admin_notices liton_utags_message )

return

check_admin_referer( liton_utags-$action_tag$id )

switch( $action )

case rename

$newtag = array( name =gt $_POST[name] slug =gt

$_POST[name] )

wp_update_term( $id post_tag $newtag )

break

case delete

wp_delete_term( $id post_tag )

break

wp_redirect( add_query_arg( array( liton_action =gt done )

) )

Admin notice

function liton_utags_message()

echo ltdiv class=updatedgtltpgtAction

completedltpgtltdivgt

Draw the tag management page

function liton_utags_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtUnused Tagslth2gt

ltphp

if( $tags = liton_utags_find_orphans() )

echo ltpgtYou currently have count( $tags ) unused

tagsltpgt

echo ltolgt

foreach( $tags as $tag )

42

$id = $tag-gtterm_id

$name = esc_attr( $tag-gtname )

$delete_url= add_query_arg(

array(liton_action=gtdeleteid=gt$id) )

$nonced_url= wp_nonce_url( $delete_url

liton_utags-delete_tag$id )

gt

ltligt

ltform action= method=postgt

ltphp wp_nonce_field( liton_utags-rename_tag$id )

gt

ltinput type=hidden name=liton_action

value=rename gt

ltinput type=hidden name=id value=ltphp echo

$id gt gt

ltinput type=text name=name value=ltphp echo

$name gt gt

ltinput type=submit value=Rename gt or

lta href=ltphp echo $nonced_url gtgtdeleteltagt

this tag

ltformgt

ltligt

ltphp

else gt

ltpgtYou have no unused tagsltpgt

ltphp endif gt

ltolgt

ltdivgt

ltphp

Find unused tags return them in an array

function liton_utags_find_orphans()

global $wpdb

$sql = SELECT termsterm_id termsname FROM

$wpdb-gtterms terms

INNER JOIN $wpdb-gtterm_taxonomy taxo

ON termsterm_id=taxoterm_id

WHERE taxotaxonomy = post_tag

43

AND taxocount=0

return $wpdb-gtget_results( $sql )

gt

ডযাপরফাপরডড এাআ পলাগগপরনয ডভন াওয়া মাপরফ ডাসট এয াফপরভন গপরপরফ গনপরচ ডদখন-

এফায পলাগগন ডভনপরত গিক কপরয ডদগখ পলাগগপরনয ডবতপরযয কাজ-

উপরয ডদখন াঅগভ একগট টযাগ ততগয কপরযগিরাভ l i নাপরভ এগট এখাপরন ডদখাপরচছ াঅগভ চাাআপরর এগট এগডট ফা গডগরট কযপরত াগয এফায গডগরট গরঙক এ ভাউপরয কাডয ডযপরখ গনপরচ গরঙক ডদখন ফা গডগরট করন একগট টযাগ াঅভায এখাপরন URL গট এযকভ httplocalhostdev-litonwp-

admineditphppage=liton_utagsampliton_action=doneampid=4amp_wpnonce=30a44b7

986

এখাপরন াঅগভ liton_action=done ফযফায কপরযগি Nonces এয পাাংনগপররায নাভ গনপরচ গদরাভ াঅনাযা ডদপরখ গনপরফন াআনটাযপরনট ডথপরক wp_nonce_field()

wp_nonce_url()

wp_verify_nonce()

wp_create_nonce()

44

check_admin_referer()

check_ajax_referer()

ডাটাপরফ াঅনাযা ডমপরত গএাআচগ গনপরয় কাজ কপরযন এগকউএর ডাটাপরফ এয াপরথ ফাাআ কভপরফী গযগচত এয গনটযাকস গপররা ডভাটাভগট ফায জানা একাআ বাপরফ াপরনপরকাআ ওয়াডডপরেপরও ডাটাপরফ ডকাড গরপরখন এটা ডকাগডাং এয জনয খাযা গদক াঅগভ নযভার গএাআচগ- এগকউএর ডকাড এয উদাযন গদগচছ- ltphp

$sql=rdquoINSERT INTO $wpdb-gtposts(post_title) VALUES(bdquo$title‟)rdquo

$wpdb-gtquery($sql) gt

এফায ওয়াডডপরেপরয সটযানডাডড ডকাগডাং গপরসটভ ডদখন- ltphp

$wpdb-gtinsert($wpdb-gtposts

array(bdquopost_title‟ =gt $title)

array(bdquos‟)

)

gt

ডাটাপরফ গগকউয কযায জনয াঅপরডট াাপরযন ডদখাফ- গনপরচয ডকাডগট খাযা েযাকগট ltphp

$wpdb-gtquery(ldquoUPDATE $wpdb-gtposts SET post_title=‟$newTitle‟ WHERE

ID=$my_idrdquo )

gt

উপরযয ভত কপরয না গরপরখ গনপরচয ভত কপরয গরখন- ltphp

$wpdb-gtupdate($wpdb-gtposts

Array(bdquopost_title‟ =gt‟$newTitle‟)

Array(bdquoID‟ =gt$my_id

)

gt

ানর বাপরফ ানযানয াাপরযন গপররা গরখপরফন

45

াধযায়- াঅটাঃ ডরাকারাাআপরজন এফাং Set t i ngs API

ডরাকারাাআপরজন ডরাকারাাআপরজন একগট গরতবনড গফলয় এয পাাংনগপররা র- load_theme_textdomain()

load_plugin_textdomain()

উদাযন- ltphp $var=__(bdquoHello‟‟domain‟) gt

ltphp _e(bdquoHello‟‟domain‟) gt

গফসতাগযত গনপরচয গরপরঙক ডদখন- httpcodexwordpressorgI18n_for_WordPress_Developers

ডগটাং API

ডগটাং API পরচছ াঅগন গকি ান ততগয কযপরফন মা াআনটাযনার বাপরফ াঅনায পলাগগপরন এপলাাআ পরফ মখন াঅগন াআউজায- গডপাাআন ান ততগয কযপরফন াঅনায পলাগগপরনয জনয তখন Settings

API ndashএ াঅনায ডকাড মতটা ারন জ করন Settings API াঅনায ডম কাজগপররা handle কপরয-

ওয়াডডপরেপরক জাগনপরয় ডদয় ডম াঅগন গনজসব ান ফযফায কযপরফন াঅনায াআনটপরক পাাংপরনয ভপরধয উপরেখ কযপরফ ডফগয বাগ ান ডজ গনপরজাআ ততগয কযপরফ $_POST ডাটা গপররাপরক ভগনটয কপরয ান ততগয এফাং াঅপরডট কপরয(মগদ েপরয়াজন য়)

Settings API পাাংন Settings API পাাংপরন গতনগট ডসট থাপরক- ১ েথপরভ ওয়াডডপরেপরক ফপরর ডম াঅগন নতন ডগটাং ফযফায কযপরফন াঅনায পলাগগপরনয জনয ২ এয পরয ডগটাং গডপাাআন করন (text areas input boxes and any

HTML form element) এফাং এপরদযপরক একাপরথ রে কপরয যাপরখ ৩ ওয়াডডপরেপরক াঅনায ডগটাং actual form এ ডদখাপরনায জনয ফপরর

46

এফায াঅভযা একগট পলাগগন ফানাপরফা Administration Page ndashএ ডযপাপরযনস গপরপরফ ডদখপরত াপরযন- httpcodexwordpressorgAdding_Administration_Menus

httpcodexwordpressorgFunction_Referenceadd_options_page

httpcodexwordpressorgAction_ReferenceActions_Run_During_an_Admin_P

age_Request

পলাগগপরনয এডগভন ডজ পরফ এযকভ- httpexamplecomwp-adminoptions-generalphppage=liton_myplugin

েথপরভ াঅভযা ডভন ততগয কযফ াঅপরগয ভত কপরয- Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

এফায ান ডজ এ পভড গনপরয় গকি ডগটাং ডদফ function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

উপরযয ডকাপরড াঅভযা একগট পপরভডয ভপরধয রধ াফগভট ফাটন এফাং My Plugin নাপরভ ডজ ততগয কপরযগি ডযাপরফাপরডড ডদখন-

47

ডগটাং এয াফ ডভন গপরপরফ My Plugin াঅপরি এফাং My Plugin ডত গিক কযপরর াঅভযা উপরযয ডজ ততগয কপরযগি ডমখাপরন াফগভট ফাটনগট ডদখাপরচছ এফায গতনগট যাযাগভটায ডযগজসটায কযফ- ltphp

register_setting( liton _myplugin_options liton _myplugin_options liton

_myplugin_validate_options)

gt

েথভগট ডগটাং রেপরয নাভ গিতীয়গট ান নাভ মা াঅভযা get_option() পাাংন গদপরয়ও ডপরত াগয ততীয়গট করফযাক পাাংন এগট একগট গসটরাং ডযপাপরযনস পাাংন এখাপরন াঅভযা নাভ

48

গদপরয়গি liton _myplugin_validate_options মা া কযপরফ পপরভডয কর ডব ডগটাং াঅভযা এটা পরয গডপাাআন কযফ

ডগটাং গডপাাআন ডকন add_settings_field() এফাং add_settings_section() পাাংন গদপরয় াঅভযা াঅভাপরদয কর ডগটাং গডপাাআন কযফ ltphp

add_settings_section( liton_myplugin_main My Plugin Settings

liton_myplugin_section_text liton _myplugin)

add_settings_field( liton _myplugin_text_string Enter text here

liton _myplugin_setting_input liton _myplugin liton _myplugin_main)

gt

add_settings_section() পাাংন গদপরয় াঅভযা ডদখাফ াঅপরর ডজ এ ডকন ডকভন ডদখাপরফ এয চাযগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ ডকন টাাআপরটর ltH3gt টযাপরগয ভপরধয করফযাক পাাংন এয নাভ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ (page= liton _myplugin এগট

URL এয াাং গপরপরফ থাকপরফ) গিতীয় যাযাগভটায add_settings_field() পপরভডয াআনট গপরপরফ ডদখাপরনা পরয়পরি এখাপরন াাচগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ পরযয গপপরলড গক গেনট কযা পরফ তা ডটকসট গপরপরফ ডদখাপরনা পরয়পরি(Enter text

here)

করফযাক পাাংন পপরভড গেনট কযপরফ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ ডগটাং ডপরজয ডকন গপলড মা add_settings_section() পাাংপরন গডপাাআন

কযা পরয়পরি ltphp

Explanations about this section

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

49

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton _myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name= liton _myplugin_options[text_string]

type=text value=$options[text_string] gt

gt

গিতীয় পাাংন ান বযার text_string ডক এযাপরযপরত ডসটায কপরয ডযপরখপরি এফায াআউজায াআনট বযাগরপরডট কযফ- ltphp

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace([^a-zA-Z]$input[text_string] )

return $valid

gt

পভডপরক ডযনডায কযফ- ltphp

Draw the options page

function liton_myplugin_options_page()

gt

ltdiv class=wrapgt

ltphp

screen_icon()

gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp

settings_fields( liton_myplugin_options)

do_settings_sections(liton_myplugin)

50

gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

settings_fields() পাাংনগট ডযপাপরযনস গপরপরফ ফযফায কযা পরয়পরি মা াঅভযা register_setting() পাাংপরন গডপরিয়ায কপরযগি do_settings_sections() পাাংনগট কর কযপরফ কর াঅউটট ডকন এফাং পভড গপলডপরক মা াঅভযা পরফড গডপাাআন কপরযগি াঅভাপরদয কাজ ডল এফায পরযা পলাগগনগট ডদখফ- ltphp

Plugin Name Settings API example

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

Draw the option page

function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save

Changes gt

ltformgtltdivgt

ltphp

51

Register and define the settings

add_action(admin_init liton_myplugin_admin_init)

function liton_myplugin_admin_init()

register_setting( liton_myplugin_options

liton_myplugin_options

liton_myplugin_validate_options )

add_settings_section( liton_myplugin_main My Plugin

Settings

liton_myplugin_section_text liton_myplugin )

add_settings_field( liton_myplugin_text_string Enter text

here

liton_myplugin_setting_input liton_myplugin

liton_myplugin_main )

Draw the section header

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton_myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name=liton_myplugin_options[text_string]

type=text value=$text_string gt

Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

return $valid

gt

52

ডদখন ডযাপরফাপরডড ডকভন ডদখায়-

পরয় ডগর াঅভাপরদয েথভ নডাাংগ পলাগগন ান ডজ াঅপরযকগট গজগন ডমটায জনয এতগকি পলাগগন URL এপরডর- httplocalhostdev-litonwp-adminoptions-

generalphppage=liton_mypluginampsettings-updated=true

াঅভায এখাপরন এযকভ ডদখাপরচছ ডটকসট ফপরকস ডকান গকি গরপরখ ডব কযায য এফাপরয াঅপরযকগট গজগন ডদখফ াঅভযা াপরনক ভয়াআ াপরনক পলাগগপরনয াআনট গপপরলড বর ডাটা াআনট কযপরর এযয ডভপরজ ডদখায় এাআ কাজগট কযফ এফায াঅভযা এখাপরন esc_attr() ফা esc_html() ফযফায কগযগন সতযাাং াঅভাপরদয গরগভপরটন থাকপরি ডবগরপরডট পাাংনগট একট এগডট কগয গনপরচয ভত কপরয Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

if( $valid[text_string] = $input[text_string] )

add_settings_error(liton_myplugin_text_stringliton_myplugin_texterror

53

Incorrect value enterederror)

return $valid

উপরয ডদখন add_settings_error() পাাংন ফযফায কপরযগি মা এযয ডচক কযপরফ পপরভডয াঅগভ একগট বর ডাটা(পরসপার কযাপরযকটায) াআনট কপরয ডদখরাভ এযয ডদখাপরচছ-

তায ভাপরন াঅভযা পর পরয়গি াঅনায পলাগগনগট এগডট কপরয ডনপরফন ডকায ডকন এফাং গপপরলডয গরসট গদরাভ াঅনাপরদয সগফধায জনয

54

CSSJS পাাআর মি কযা

াঅনায পলাগগপরন গএএ ফা জাবাগিে ডমাগ কযপরত পরত াপরয াঅগন চাাআপরর ফাগপরযয ডকান ফা াঅনায ততগয ডকান গএএ ফা জাবাগিে পাাআর ডমাগ কযপরত াপরযন তপরফ এপরকষপরতর াঅভযা ডমবাপরফ HTML এ পাাআর ডমাগ কগয ডযকভ না function liton_scripts()

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtojqueryjsrdquogtltscriptgt‟

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtoscriptjsrdquogtltscriptgt‟

add_action(bdquowp_head‟‟liton_scripts‟)

এগট মপনডরপর বর িগত গনপরচ ডদখন ওয়াডডপরেপর গকবাপরফ পাাআর মি কযপরত য়- function liton_scripts()

wp_enqueue_script(bdquojquery‟)

wp_enqueue_script(bdquotheme-scripts‟‟pathtoscriptsjs‟)

add_action(bdquowp_enqueue_script‟‟liton_scripts‟)

ানর বাপরফ াঅগন সটাাআরীট ডমাগ কযপরত াপরযন- function liton_styles()

wp_enqueue_ style (bdquocss‟)

wp_enqueue_ style (bdquotheme- styles‟pathto stylescss‟)

ডযপাপরযনস ডদখন- httpcodexwordpressorgFunction_Referencewp_enqueue_script

httpcodexwordpressorgFunction_Referencewp_enqueue_style

টডপরকাড টডপরকাড পরচছ ওয়াডডপরেপরয ডসপগগপক ডসপার টযাগ মা াঅগন ডাসট ফা ডপরজয ভপরধয াআনাটড কপরয ানয ডকান কনপরটনটপরক ওপরয়ফাাআপরটয ভপরধয গযপরপল কযপরত াযপরফন মগদ াঅগন গযারাগয টাাআপরয ডকান পলাগগন ফযফায কপরয থাপরকন তাপরর াঅনায ধাযনা থাকায কথা মাাআ ডাক াঅগভ কপরয়কগট উদাযি ডদখাফ

55

েথপরভ একগট পলাগগন ততগয কযফ ডমখাপরন add_shortcode() নাপরভয একগট পাাংন থাকপরফ এগট রগট যাযাগভটায েন কপরয েথভগট টডপরকাপরডয নাভ গিতীয়গট ডম পাাংনপরক কর কযপরফন ডগট াঅভযা একগট উদাযন ডদগখ- ltphp

Plugin Name Liton Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(litonhi)

function hi()

echo Hello World

gt

উপরয ডদখন খফ ডিাট গকনত াঅগন চাাআপরর এয ফযফায াপরনক গফসতত কযপরত াপরযন এখাপরন টডপরকাড নাভ পরচছ liton াঅয এগটপরক ডরখা য় এবাপরফ [liton] াঅভযা ডাপরসটয ভপরধয াআনাটড কপরয ডদগখ াঅউটট ডকভন ডদখায়-

এফায াঅউটট ডদগখ-

56

াঅভাপরদয ততগয কযা টডপরকাড পরবাপরফাআ কাজ কযপরি াঅপরযকগট উদাযন ডদখফ াঅনাযা াপরনপরকাআ গগর এডপরনস গনপরয় কাজ কপরযন াঅনাযা াপরনপরকাআ এডপরনস এয জনয পলাগগন ফযফায কপরযন গকনত চাাআপররাআ এাআ কাজগট াঅনাযা গনপরজয ভত কপরয াগজপরয় গনপরত াপরযন গগপররয কাপরি ফ ডাসট বযার ায়না াঅনাযা মাযা একসাটড াঅপরিন তাযা এটা বার কপরয জাপরনন তাাআ াপরনপরকাআ গগপররয ডকাড ফ ডপরজ ডদখাপরত চান না এজনয পলাগগন ফযফায কপরয রাব য়না কাযন পলাগগপরন জায়গা গপকসড থাপরক এপরত কপরয াঅগনডাং ও কভ য় াঅনাযা টডপরকাড ফযফায কপরয ডমপরকান জায়গায় এড ডদখাপরত াপরযন গনপরচ াঅগভ রগট টডপরকাড ততগয কপরযগি র‟ধযপরনয এড ডদখাপরনায জনয ltphp

Plugin Name Liton Adsense Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(adsense_468adsense_468_60)

add_shortcode(adsense_250adsense_250_250)

function adsense_468_60($atts)

return ltscript type=textjavascriptgtlt--

57

google_ad_client = ca-pub-0956247412222369

468x60 created 101510

google_ad_slot = 4372705450

google_ad_width = 468

google_ad_height = 60

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

function adsense_250_250($atts)

return ltscript type=textjavascriptgtlt--

google_ad_client = ca-pub-0956247412222369

250x250 created 81809

google_ad_slot = 9368091893

google_ad_width = 250

google_ad_height = 250

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

gt

একগট টডপরকাড ফযানায টাাআপরয জনয এফাং াঅপরযকগট ২৫০২৫০ াাআপরজয এফায ডাপরসট ডমপরকান একগট টডপরকাড াআনাটড করন ডমখাপরন াঅনায ডদখাপরনায েপরয়াজন ভপরন কপরযন াঅগভ রগট ডকাড ডটসট কপরয ডদখরাভ-

58

এফায াাআপরটয াঅউটট ডদগখ-

রগট এডাআ ডদখাপরচছ াঅপরযা াপরনক কাপরজ াঅগন টডপরকাড ফযফায কযপরত াপরযন ডযপাপরযনসাঃ httpcodexwordpressorgShortcode_API

59

াধযায়- নয়াঃ পলাগগন উদাযন

ওয়াডডপরেপরয ডডটটাাআভকপরভনট নামবায ফাাংরা কযায পলাগগন াঅভাপরক কপরয়কজন ফপররগিপররন ওয়াডডপরেপরয গডপলট ডডটটাাআভকপরভনট নামবায ফাাংরা য়না রযাাংগপরয়জ ফাাংরা কযায যও ডডটটাাআভকপরভনট নামবায গপররা াআাংপরযগজ ডথপরক মায় গনপরচয পলাগগনগট ফযফায কপরয ডদখপরত াপরযন- ltphp

Plugin Name Liton Bangla datetimecomment number

Plugin URI httpliton-onlinecomplugins

Description Bangla datetimecomment number

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

This function converts all english numbers to bangla number

function make_bangla_number($str)

$engNumber = array(1234567890)

$bangNumber = array( ১ ২ ৩ ৪ ৫ ৬ ৭ ৮ ৯ ০ ) $converted = str_replace($engNumber $bangNumber $str)

return $converted

add_filter( get_the_time make_bangla_number )

add_filter( the_date make_bangla_number )

add_filter( get_the_date make_bangla_number )

add_filter( comments_number make_bangla_number )

add_filter( get_comment_date make_bangla_number )

add_filter( get_comment_time make_bangla_number )

gt

60

সলাাআডায পলাগগন াঅভযা এাআ ফাআপরয়য কর গটউপরটাগযয়াপরর মা মা গখরাভ তা এফায একগট নডাাংগ পলাগগপরনয এপলাাআ কযফ সলাাআডায পলাগগন মপপরকড াঅভযা ফাাআ জাগন একগট ওপরয়ফাাআপরটয ডচাযা ারপরট ডদয় একগট সলাাআডায াপরনক ডাাআনাগভক ভপরন য় ডদখপরতও াপরনক বার রাপরগ এাআ পলাগগপরন াঅভযা এডগভন যাপরনর ডথপরক াআপরভজ ডমাগ কযফ এফাং তা াঅভাপরদয াাআপরট ডদখাফ চরন কাজ রর কগয- েথপরভ গনপরবা সলাাআডায এয ওপরয়ফাাআপরট মান এফাং jQuery Plugin ডাউনপররাড করন

ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom Version 10

gt

াঅভযা পলাগগপরনয ডডায ততগয কযরাভ

পলাগগন গরপরসট ডদখাপরচছ bdquoLitons Nivo Plugin‟ াঅভাপরদয েথভ কাজ পরচছ custom post

type ওয়াডডপরে পাাংনাগরগট একগট নতন কাসটভ ডজ ততগয কযপরত custom post type

ফযফহরত পরফ ডমখাপরন একগট াআপরভজ থাকপরফ াঅভযা রধ টাাআপরটর ডনভ এফাং াআপরভজ াঅপররাডায গপরপরফ গপচায াআপরভজ পাাংনাগরগট ফযফায কযফ function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_function 600 280 true)

61

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

add_action(init np_init)

উপরযয ডকাপরড np_init() পাাংনগট রক কপরযগি মা ডডায যান কযায াঅপরগ যান পরফ াঅয এজনয register_post_type() পাাংনপরক এয যাযাগভটায গদপরয় np_init() পাাংপরনয ডবতপরয মি কপরযগি এটা মগদ না কযতাভ তাপরর ldquoHeaders already sentrdquo ডভপরজ ডদখাত এাআ ডভপরজগটয াপরথ াপরনপরকাআ গযগচত াঅা কগয register_post_type() পাাংন গদপরয় াঅভযা াআপরভজ মি এফাং ভযাপরনজ কযফ ভরত াঅভযা একগট নতন custom post type ডমাগ কপরযগি np_images নাভ গদপরয় নতন custom post type ডক ডগটাং বযার গপরপরফ াঅযগপরভনট া কপরযগি $args ডবগযপরয়ফরগট ট ডরপরবর ডভন ততগয কপরয াঅপরগাআ ডদপরখগি পলাগগনগট এগকটপরবট কযপরর াঅভযা গনপরচয ভত ডদখপরত াফ-

এফায গিে এফাং সটাাআরীট ডক মি কযফ- add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

এফায রক কযা পাাংনগপররা গডপরিয়ায কগয- function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__) array( jquery ))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

62

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

উপরযয ডকাডগপররা নতন কপরয ফিডনা কযায গকি ডনাআ াঅপরগাআ wp_enqueue_style() এফাং wp_enqueue_script() মপপরকড ফরা পরয়পরি নতন াঅপরযকগট পাাআর ততগয করন একাআ গডপরযকটগযপরত scriptjs এফাং গনপরচয ডকাডটক গদন- jQuery(document)ready(function($)

$(slider)nivoSlider()

)

াআপরভজপরক গযাাআজ করন- add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

াঅভযা এাআ পলাগগনগটপরক উাআপরজট গপরপরফও ফযফায কযফ ডগট পরয ডদখফ াঅপরযকগট গজগন মগদ গথপরভ না ডদয়া থাপরক ডজনয থামবপরনাআর াপরাটড গদপরয় গদন- add_theme_support( post-thumbnails )

এফায ওয়াডডপরেপরয কাপরযনট ডাসট কপরয়যী কযায ডকাড াঅয $result ডবগযপরয়ফপরর ডমফ ltdivgt টযাগ ফযফায কযা পরয়পরি তা jQuery Plugin গট একসিাকট কপরয indexhtml ডজগটয ডভাআন সলাাআডায ডকাডগট ডদখন একাআ াঅপরি রধ ডখানকায ltdivgt টযাগ গপররাপরক কগ কপরয এাআ পলাগগপরন ফযফায কযা পরয়পরি এফায টডপরকাড গদন- add_shortcode(np-shortcode np_function)

এাআ টডপরকাড গএাআচগ পাাংনপরক রক কযপরফ এফাং এয ভধয ডথপরক সলাাআডপরায কনপরটনট ডক গযটানড কযপরফ াঅভাপরদয টডপরকাড পরচছ [np-shortcode] াঅভযা পলাগগপরন মাাআ এফাং একগট িগফ মি কগয গপচাযড াআপরভজ গপরপরফ গনপরচ ডদখন-

63

াঅগভ াঅপরযকগট ডজ ততগয কপরযগি ডমখাপরন টডপরকাড গদপরয়গি

াঅউটট ডজ ডদগখ এফায-

64

পরয় ডগর াঅভাপরদয সলাাআডায পলাগগন পরযা ডকাডগট গনপরচ গদরাভ- ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

65

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

66

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

এফায াঅগন মগদ উাআপরজট গপরপরফ ফযফায কযপরত চান তাপরর গনপরচয ডকাডটক গদন- class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

67

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

echo $after_widget

াঅপরযা রগট কাজ কযপরত পরফ াঅনাপরক এক াআপরভজ াাআজ উাআপরজট এয জনয গঠক কপরয গদপরত পরফ- add_image_size(np_widget 180 100 true)

াঅপরযকগট র উাআপরজট এযাকন রক ডমাগ কযা add_action(widgets_init np_widgets_init)

উাআপরজট পরযা ডকাড াঅফায গদরাভ- ltphp

Plugin Name Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Ciprian Turcu

Version 10

68

class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

69

echo $after_widget

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

70

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(widgets_init np_widgets_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

71

পলাগগন গনপরয় এত ডিাট গযপরয ডরখা মভফ নয় এজনযাআ ভপরন য় পলাগগন গনপরয় ডকউ ডরপরখন না কাযন এখাপরন এত গফলয় াঅপরি মা াঅপররাচনা কযপরত ডগপরর ৫০০ ডজ ায পরয় মাপরফ ডফাোয সগফধাপরথড াঅগভ মথামভফ উদাযন গদপরয় ডফাোপরনায ডচষটা কপরযগি াঅগভ এখাপরন টাপরগডট কপরযগি মাযা টকটাক জাপরন পলাগগন মপপরকড এডবানস ডরপরবপররয নয় কাযন তাযা জাপরনন াঅভায উপরেশয গির মাযা জানপরত চায় তাপরদযপরক জানাপরনা এখাপরন ডমফ গফলয় াঅপররাচনা কযা পরয়পরি তা ডভাটাভগট ভাপরনয একগট পলাগগন ফানাপরনায জনয মপরথষট তপরফ ভাপরনাননয়পরনয জনয াঅনাপরক গনপরজাআ খাপরজ গনপরত পরফ াঅনায জনয ডকানটা বার পরফ াঅগভ রধ গদক গনপরদডনা গদরাভ ভাতর এাআ ফাআগট রধভাতর ওয়াডডপরে রেপরয জনয ডরখা াপরনক বর ভরাগনত থাকপরত াপরয াঅনাযা কষভাসনদয দগষটপরত ডদখপরফন াঅগভ ডচষটা কপরযগি মতটা জ কপরয ডরখা মায় াপরনক ভয় ডদখা মায় ডম খফ ডিাট খাপরটা গফলয় গনপরয় াপরনপরকাআ নক কপরযন এটা গতয রাঃখজনক াঅনাযা গগপরর একট খাজপররাআ ভাধান াপরফন াঅপরগ গনপরজ ডচষটা করন তায পরয ানযপরক ভাধাপরনয জনয গজজঞাা করন াঅভায জনয ডদায়া কযপরফন বাপররা রাগপরর জানাপরফন খাযা রাগপররও জানাপরফন তাপররাআ াঅভায গযশরভ সবাথডক পরফ ভতাভত জাগনপরয় াঅভাপরক ডভাআর কযপরত াপরযন litonice09gmailcom |

72

Page 21: Wordpress Plugin Development

22

ডকাগডাং সটযানডাডড পলাগগন ফানাপরফন গকনত াঅনায ডকাড ডকভন পরফ গচনতা াঅপরত াপরয ওয়াডডপরে াঅনায জনয একগট সটযানডাডড গদপরয় গদপরয়পরি মা াঅনাপরক ওয়াডডপরেপরয জনয পলাগগন গরখপরত ডগপরর পপররা কযপরতাআ পরফ httpcodexwordpressorgWordPress_Coding_Standards

ডফগক একগট উদাযন গদরাভ গনপরচ- ltphp

Short description

Longer more detailed description

param type $varname1 Description

param type $varname2 Description

return type Description

function boj_super_function( $varname1 $varname2 )

do function stuff

gt

গএাআচগ সটানডাডড াঅভযা াপরনপরকাআ গএাআচগয টড পভড(lt gt) ফযফায কগয এটা মপিডরপর ফজডন করন কাযন াপরনক ডাগসটাং ডকামপাগনপরতাআ এটা গডপলট গপরপরফ ফনধ কপরয ডদয়া থাপরক সটযানডাডড টযাগ ফযফায করন(ltphp gt)

এগকউএর ডসটটপরভনট পলাগগন ততগযয ভয় াঅনাপরক াপরনক ভয়াআ ডাটাপরফ ডথপরক াআনপযপরভন গনপরত পরত াপরয াপরনক রাাআপরনয ডকাড গরখপরত পরত াপরয ডপরকষপরতর বার েযাকগট পরচছ এগকউএর এয কভানড গপররা ফড় াপরতয াকষপরয ডরখা ডমভন- SELECT username FROM table1 WHERE status = active

23

াধযায়- াাচাঃ ওয়াডডপরেপরয াপরথ াআগনটপরেন

ডভন এফাং াফ ডভন ততগয করন াঅভযা াপরনক পলাগগপরনাআ ডদগখ ডম একগট ডভন াঅাআপরটভ গপরপরফ াঅভাপরদয ডযাপরফাপরডড ডদখপরত াাআ এফাং ডাআ ডভনপরত গিক কযপরর ডগটাং ডজ াঅপর ডখাপরন পলাগগপরনয মাফতীয় ডগটাং গদপরয় াঅভযা পলাগগন কনগপগায কগয এফায এাআ চভৎকায কাজগট কযফ াঅভযা

ট ডরপরবর ডভন েথভ িগত পরচছ একগট ট ডরপরবর ডভন ততগয কযা ডমগট াঅভযা ডযাপরফাপরডড ডভন গরপরসট একগট নতন াঅাআপরটভ গপরপরফ ডমাগ কযফ ডভন ততগয কযায জনয াঅনাপরক add_menu_page( ) পাাংন ফযফায কযপরত পরফ ltphp

add_menu_page( page_title menu_title capability menu_slug functionicon_url

position )

gt

add_menu_page() পাাংন গনপরচয যাযাগভটাযগপররা াপরাটড কপরয page_title- াঅনায ডপরজয টাাআপরটর গক পরফ lttitlegt tag এয ভপরধয menu_title- ডযাপরফাপরডড াঅনায ডভনয নাভ capability- ফডগনমন capability রাগপরফ একগট ডভন গবউ পরত menu_slug- সলাগ নাভ মা ডভনপরক ডযপায কপরয- তপরফ এগট াআউগনক পরত পরফ function- একগট ডপরজয কনপরটনট ডদখপরত ডম পাাংন কর কযা য় icon_url- একগট কাসটভ াআপরভজ গরঙক ডভন াঅাআকন ডদখাপরনায জনয position- ডভনয গজন াডডায ডমখাপরন এটা ডদখাপরনা পরফ

এফায াঅভযা একগট ফাসতফ উদাযন ডদখফ- ltphp

Plugin Name Liton Menu

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action( admin_menu liton_menu)

function liton_menu()

24

create custom top-level menu

add_menu_page( Liton Menu Page Liton Menu Page manage_options

__FILE__ liton_menu_settings_page plugins_url( imageswp-logopng

__FILE__ ) )

gt

াঅভযা একগট ট ডরপরবর ডভন ততগয কযরাভ ডদখন ডযাপরফাপরডড ডকভন ডদখায়-

Liton Menu Page নাপরভ একগট ডভন ততগয পরয় ডগপরি এফাপরয াঅভযা াফপরভন কযফ ভাপরন Liton Menu Page এয গনপরচ গকি ডগটাং ডভন(মগদ েপরয়াজন য়) াফ ডভন ডযগজসটায কযায জনয add_submenu_page( ) পাাংন ফযফায কযা য় ltphp

add_submenu_page( parent_slug page_title menu_title capabilitymenu_slug

function )

gt

parent_slug- ডভন সলাগ মা াঅভযা াঅপরগ গডপাাআন কপরযগি menu_slug- মা ডভনপরক াফপরভনপরত ডযপায কযপরফ ফাগক পাাংনগপররা াঅপরগয ভতাআ

এফায াফপরভনয জনয গকি াগতগযি ডকাড ডমাগ কগয create submenu items

add_submenu_page( __FILE__ About My Plugin About manage_options

__FILE___about liton_menu_about_page )

add_submenu_page( __FILE__ Help with My Plugin Help

manage_options

__FILE___help liton_menu_help_page )

add_submenu_page( __FILE__ Uninstall My Plugin Uninstall

manage_options

__FILE___uninstall liton_menu_uninstall_page )

25

পরযা ডকাডগট পরফ এযকভ- ltphp

Plugin Name Liton Menu

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action( admin_menu liton_menu

)

function liton_menu()

create custom top-level menu

add_menu_page( Liton Menu Settings Page Liton Menu Page

manage_options __FILE__

liton_menu_settings_page

plugins_url( imageswp-logopng __FILE__ ) )

create submenu items

add_submenu_page( __FILE__ About My Plugin About manage_options

__FILE___about liton_menu_about_page )

add_submenu_page( __FILE__ Help with My Plugin Help

manage_options

__FILE___help liton_menu_help_page )

add_submenu_page( __FILE__ Uninstall My Plugin Uninstall

manage_options

__FILE___uninstall liton_menu_uninstall_page )

gt

গনপরচ ডদখন াফপরভনগপররা ততগয পরয় ডগপরি-

26

ডভনপরক াঅপরগয ডভনয াপরথ মি কযা এফায াঅগ গিতীয় িগতপরত মগদ াঅনায পলাগগপরনয একগট ভাতর ডজ থাপরক একগট ভাতর ডপরজাআ াঅনায কর ডগটাং পরয় মায় তাপরর এাআ িগত েন করন ডমভন ডয়াগযাং াাআটগপররায জনয রধ াঅনায াঅাআগডপযানপরপরজয াঅাআগড দযকায য় এযকভ পলাগগন এধযপরনয পলাগগপরনয জনয াঅনায াগতগযি ডভন ততগয কযায দযকায ডনাআ ফযাং এপরত কপরয াআউজায গফযি ডফাধ কযপরত াপরযন এ ধযপরনয পলাগগনগপররা ডগটাং এয াফপরভন গপরপরফ থাপরক add_options_page() এাআ পাাংন গদপরয় এফ ডভন ডযগজসটায কযা য় ltphp

add_options_page( page_title menu_title capability

menu_slug function)

gt

এফায চরন এযকভ একগট ডভন ততগয কগয- ltphp

Plugin Name Liton Sub Menu

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action( admin_menu liton_submenu)

function liton_submenu()

create a submenu under Settings

add_options_page( Liton Menu Settings Page Liton Menu Page

manage_options __FILE__

liton_menu_settings_page)

27

gt

াফপরভন ততগয পরয় ডগপরি চরন ডদগখ ডযাপরফাপরডড ডকভন ডদখায়-

এপরকফাপরয গনপরচয গদপরক ডদখন Liton Menu Page নাপরভ একগট ডভন ততগয পরয়পরি

উাআপরজট ততগয কযা উাআপরজট ততগয কযায জনয ওয়াডডপরে WP-Widget িা গদপরয় ততগয কযা য় উাআপরজট এয একগট পযভযাট ডদখন গনপরচ ltphp

class My_Widget extends WP_Widget

function My_Widget()

processes the widget

function form($instance)

displays the widget form in the admin dashboard

function update($new_instance $old_instance)

process widget options to save

function widget($args $instance)

displays the widget

gt

28

উাআপরজট ডযগজসটায কযায জনয widget_init() পাাংনপরক রক কযা য় চরন একগট উাআপরজট ততগয কগয- ltphp

Plugin Name Liton Widget

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

class Messager extends WP_Widget

function __construct()

$params=array(

description =gtDisplay message to readers

name =gt Message

)

parent__construct(Messager $params)

public function form()

public function widget()

add_action(widgets_initliton_register_message)

function liton_register_message()

register_widget(Messager)

gt

29

খফ াধাযন একগট উাআপরজট পলাগগন এগট াঅভযা াআউজাযপরদযপরক একগট ডভপরজ ডদখাপরফা াাআডফাপরয ডটাাআ কযায ডচষটা কযগি এখন পলাগগনগট এগকটপরবট কপরয ডদগখ-

াঅভাপরদয উাআপরজটগট ডদখাপরচছ এফায াঅপরযা গকি পাাংনার কাজ কগয এগট মগদ াাআডফাপরয ডরাগ কপরয ডদন তাপরর ডকান কাজ কযপরফ না কাযন াঅভযা এখপরনা গকিাআ কগযগন পভড পাাংপরন গকি কাজ কগয মা উাআপরজট টাাআপরটর গপরপরফ ডদখাপরফ- public function form($instance)

extract($instance)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title)gtgtTitle ltlabelgt

ltinput

class=widefat

id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt

value=ltphp if(isset($title)) echo esc_attr($title) gt gt

ltpgt

ltphp

াঅভযা উপরয class=widefat ফযফায কপরযগি এাআ িা ফযফায কযায কাযপরন পভড এয াআনট গপলডগট াপরনক সনদয পরয়পরি

30

মগদ এাআ িা ফযফায না কগয তাপরর ডকভন ডদখাপরফ গনপরচ ডদখন-

াঅভাপরদয উাআপরজট পলাগগনগটয ডকাড গনপরচ ডদওয়া র ltphp

Plugin Name Liton Widget

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

class Messager extends WP_Widget

function __construct()

$params=array(

description =gtDisplay message to readers

name =gt Message

)

parent__construct(Messager$params)

31

public function form($instance)

extract($instance)

print_r($instance)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title)gtgtTitle ltlabelgt

ltinput

class=widefat

id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt

value=ltphp if(isset($title)) echo esc_attr($title) gt gt

ltpgt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(description)gtgtDescription

ltlabelgt

lttextarea

class=widefat

rows=10

id=ltphp echo $this-gtget_field_id(description) gt

name=ltphp echo $this-gtget_field_name(description) gtgtltphp

if(isset($description)) echo esc_attr($description) gtlttextareagt

ltpgt

ltphp

public function widget($args$instance)

extract($args)

extract($instance)

echo $before_widget

echo $before_title$title$after_title

echo ltpgt$descriptionltpgt

echo $after_widget

add_action(widgets_initliton_register_message)

function liton_register_message()

32

register_widget(Messager)

gt

এফায াঅভযা ডযাপরফাডড ডথপরক একগট ডভপরজ ডদফ গবগজটযপরদযপরক-

াঅভযা এাআ উাআপরজটগট ডাাআনাগভক বাপরফ কপরযগি কাযন এখাপরন lth2gt lth3gt lth4gt এ ধযপরনয ডকান টযাগ াঅভযা ফযফায কগযগন াঅভযা গথভ ডডপরবর কযগিনা সতযাাং এ কাজগট াঅভাপরদয ানযবাপরফ কযা দযকায গির এগট গথভ ডডপরবরায ডদগখপরয় ডদপরফন ডম ডকভন টযাগ পরফ াাআডফাপরয াাআপরটয াাআডফাপরয ডকভন ডদখায় তা ডদখন- াঅভযা রগট গথপরভ এগট ডটসট কপরয ডদখফ েথভগট টপরয়গনট াআপররপরবন

33

এফায াঅপরযকগট গথপরভ ডদগখ-

34

াধযায়- িয়াঃ পলাগগন পাাংন

গকি ডফগক পাাংন __() পাাংন

__() পাাংনগট গএাআচগপরত াঅনায ডটকসটপরক ডযগড কপরয িানসপররন এফাং গযটানড কপরয উদাযন গপরপরফ াঅগন একগট বযারপরক __() পাাংপরনয ভপরধয ডবগযপরয়ফর গদপরয় assign করন ভপরন যাখপরফন এাআ পাাংনগট রগট াঅনডাযপরিায(_) গদপরয় গগঠত একগট নয় ltphp

$text=__(bdquoWordpress is a wonderful publishing platform‟‟liton_plugin‟)

gt

_e() পাাংন _e() পাাংনগট াঅনায ডটকসবপরট ডরাকারাাআজ কপরয এটা গএাআচগপরত echo এয ভত কাজ কপরয ডকান ডটকসটপরক গিপরন ডদখাপরনায জনয এফায একট ভজা কগয মা রপরক ডদপরখগি াঅপরগাআ- _e() পাাংনগট গদপরয় াঅপরগয পলাগগনগট এগডট কযফ ltphp

Plugin Name Liton Action

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(wp_footer liton_footer_action)

function liton_footer_action()

Output the translated text

_e( This site runs off the coolest platform ever ampmdash

WordPress

liton-plugin )

gt

35

এফায াঅউটট ডদগখ

esc_attr__() পাাংন এাআ পাাংনগট esc_attr() এয ভত এগট এাআচগটএভএর এগিগফউটপরক escape কপরয াঅভযা এফায esc_attr__() এফাং __() এাআ রগট পাাংনপরক একগট কপরয পলাগগন ততগয কযফ ltphp

Plugin Name Liton Esc Attr

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

A function that returns a link to the sites terms of service

page

function liton_terms_of_service_link()

return lta href=httpliton-onlinecomtos title=

esc_attr__( Visit the Terms of Service page boj-plugin ) gt __( Terms of

Service liton-plugin ) ltagt

Display the output of the liton_terms_of_service_link()

function

echo liton_terms_of_service_link()

gt

পলাগগনগটয াঅউটট ডদখন-

36

এযকভ াঅপরযা গকি পাাংন াঅপরি ডমগপররা াঅনাযা ডদপরখ ডনপরফন াআনটাযপরনট ডঘপরট

esc_html__() Function

esc_attr() Function

esc_url() Function

esc_js() Function

esc_html() Function

esc_attr_e() Function

esc_html_e() Function

_x() Function

_ex() Function

esc_attr_x() Function

esc_html_x() Function

_n() Function

_nx() Function

_n_noop() Function

_nx_noop() Function

Translation

bull Poedit httppoeditnet

bull GlotPress httpglotpressorg

bull Launchpad httpstranslationslaunchpadnet

bull Pootle httppootlelocamotionorg

bull KBabel httpi18nkdeorg

bull GNU Gettext httpgnuorgsoftwaregettext

GlotPress এখন ওপরয়ফ ডফড টর গপরপরফ ফযফায কযা পরচছ ওয়াডডে েপরজপরকটয ডিপরন একজন াথফা গটপরভয জনয িানসপররগটাং পটওয়যায গপরপরফ

37

াধযায়- াতাঃ পলাগগন গগকউগযগট

গগকউগযগট কগমপউটাপরযয বালায় ldquoগগকউগযগটrdquo ভাপরন বীগতকয একগট বদ ডমভন Cross Site

Scripting(XSS) Cross Site Request Forgery(CSRF) SQL Injection Privilege

Escalation Vulnerabilities এফাং Holes রফডর ডকাড একগট াবডাপরযয সযকষায জনয রভকীয কাযন পরত াপরয

পলাগগপরনয গগকউগযগট গক াঅনায পলাগগনগট ডমন গগকউয য় vulnerabilities data integrity এফাং reliability ডথপরক

াঅনায পলাগগনপরক গক গগকউগযগট ডদপরফন ওয়াডডপরে এনবায়যনপরভপরনট াঅনায পলাগগনপরক গগকউগযগট ডদয়া খফ কগঠন কাজ নয় এফাং খফ ভয় াপরকষ গফলয়ও নয় ওয়াডডপরেপরয গনজসব গকি পাাংন এপরকষপরতর াঅনাপরক খফাআ াাময কযপরফ

াআউজায াযগভন াঅভযা াপরনক পলাগগন াআনসটর কযায পরযাআ ডদপরখগি ডম মখনাআ এডগভন যাপরনর এ েপরফ কযপরত মাাআ তখন একগট এযয ডভপরজ াঅপর ডভপরজগট গনপরচয ভত-

ডরখা াঅপরি- You do not have sufficient permissionshellip এটা গনশচয়তা ডদয় ডম ডমপরকান এযাকন ীভাফি থাপরক গনগদডষট গকি যাাআট গদপরয় ওয়াডডপরেপরয একগট কভন পাাংন র current_user_can() একগট উদাযন ডদাআ-

38

ltphp

Capability

if ( current_user_can(install_plugins) )

wp_die( Insufficient permissions )

Role

if( current_user_can(editor) )

wp_die( You cannot edit this setting )

gt

খফ তাড়াতাগড় াঅগন এাআ current_user_can() পাাংন ডচক কযপরফন না কাযন এটা গনবডয কযপরফ get_currentuserinfo() এাআ পাাংপরনয উপরয াঅয এয ফযফাপরয ীভাফিতা াঅপরি এটা একগট পলাপরগফর পাাংন(pluggable function) াঅয এয ডরাপরকন পরচছ wp-

includespluggablephp মা পলাগগন এগকটব ফায য ডরাড য়

Nonces

ডকউ এগটপরক াঅফায Nonsense( গনপরফডাধ) বাফপরফন নাএগট ওয়াডডপরেপরয বালায় Nonces কগমপউটাপরযয বালায় nonce ফা cryptographic nonce পরচছ ldquonumber used once rdquo এটা ডিাট এফাং সপষট গকি য যানডভ গসটরাং ডমভন- াওয়াডড মা গকি গনপরদড কপরয Nonce গপরডন গপলড পভডপরক Retrieve ফা display কপরয-

একজন ওয়াডডপরে াআউজায ডমপরকান একগট এযাকন (delete update save and such) একগট াফপরজকট(একগট ডাসট পলাগগন ডগটাং াআতযাগদ) ২৪ ঘনটায একগট ভয় ডিভ

ডমভন ডাসট 50 গডগরট কযপরফন াঅনায ওয়াডডপরে বলগ ডথপরক তাপরর াঅনায গরঙকগট পরফ এযকভ- httpexamplecomwp-admin

postphppost=43ampaction=trashamp_wpnonce=83a08fcbc2

এখাপরন 83a08fcbc2 এগট র nonce মা ২৪ ঘনটা সথায়ী থাপরক রধভাতর এগট মগদ াঅনায িাযা ফযফরত য় এফাং গডগরট য় ডাসট 50 মখন াঅগন গরপরঙক গিক কপরযন ফপরচপরয় গযতবনড র ডম Nonce ডকান malicious াআউজায ফেপরত াপরযনা এফাং গঠক গরঙক িাড়া nonce এযয ডপরজ চপরর মায় ডমখাপরন াযগভন থাপরক না াঅপরযা গফসতাগযত ডদখন httpcodexwordpressorgWordPress_Nonces

39

Nonce URL ততগয এফায চরন াঅপরগয উদাযন ডথপরক Nonce URL ততগয কগয একগট ডাসট গডগরট কযায জনয wp_nonce_url() পাাংন ফযফায কযা য় ltphp

$url = wp_nonce_url( $url $action )

gt

েথভ যাযাগভটায $url পরচছ গসটরাং URL এপরডর এয মাপরক াঅগন কপরয়যী গসটরাং এয Nonce কযপরত চান াফযফহরত পলাগগপরনয গডগরট গরঙক এযকভ থাপরক- httpexamplecomwp-admineditphppage= liton

_utagsampliton_action=deleteampid=6

এখাপরন ডদখন যাযাগভটায liton_action এফাং এয টযাগ াঅাআগড গিতীয় যাযাগভটায পরচছ $action একগট গসটরাং মা াঅগন একগট াফপরজকট এয জনয একগট action ততগয কযপরফন উপরয ডদখরাভ delete এযাকন এয টযাগ াঅাআগড 6 সতযাাং $action যাযাগভটায পরত াপরয bdquoliton_utags-delete_tag6‟ গনপরচ ফাসতফ উদাযন ডদগখ- ltphp

$delete_url = add_query_arg(array( liton _action=gtdeleteid=gt$id) )

$nonced_url = wp_nonce_url( $delete_url bdquoliton _utags-delete_tag$id )

gt

lta href=ltphp echo $nonced_url gtgtdeleteltagt

এাআ টযাগগট পরফ গডগরট গরঙক এখাপরন add_query_arg() পাাংন ফযফায কযা পরয়পরি মা কাপরযনট URL ডক এযাপরয যাযাগভটায এয ভপরধয যাপরখ ানযবাপরফ ফরপরর এগট ডমাগ কপরয এযকভাঃ liton_action=deleteampid=6 amp liton_action=deleteampid=6

Nonce Form ততগয Nonce পভডপরকও ডোপরটকট কপরয wp_nonce_field() পাাংপরনয ভাধযপরভ ltphp

wp_nonce_field( $action $name $referer $echo ) gt

$action ( string) (optional) - action নাভ াআউগনক identifier optional

গকনত recommended $name (string) (optional) ndash গপরডন গপলড পভড ডবগযপরয়ফর নাভ $referer (boolean) (optional) ndash গডপলট গপরপরফ true থাপরক ডমখাপরন গপলড

ডবগরপরডন এয দযকায য়

40

$echo (boolean) (optional) - গডপলট গপরপরফ true থাপরক ডমখাপরন াঅউটট ডদখাপরনায ফা গপরডন পভড গপলড গযটানড কযায জনয দযকায য়

পপরভড াঅনায action এয নাভ গদন ltform method=postgt

lt-- some inputs here --gt

ltphp wp_nonce_field(name_of_my_actionname_of_nonce_field) gt

ltformgt

াঅভযা একগট পলাগগন ফানাপরফা ডমখাপরন াফযফরত টযাগগপররাপরক াঅভযা ভযানয়াগর গডগরট ফা গযপরনভ কযপরত াযফ এগট একট ফড় গকনত াপরনক গফলয়াআ াঅপরগাআ াঅপররাচনা কযা পরয়পরি ডদখপররাআ ফেপরত াযপরফন একগট ফাসতফধভডী উদাযন গনপরচ গদরাভ- ltphp

Plugin Name Liton Unused Tags

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add an entry for our option page to the Posts menu

add_action(admin_menu liton_utags_add_page)

function liton_utags_add_page()

add_posts_page( Unused Tags Unused Tagsmanage_optionsliton_utags

liton_utags_option_page )

Catch any liton_action parameter in query string

add_action( admin_init liton_utags_do_action )

Proceed to requested liton_action if applicable

function liton_utags_do_action()

if( isset( $_REQUEST[liton_action] ) )

return

if( current_user_can( manage_options ) )

wp_die( Insufficient privileges )

41

$id = $_REQUEST[id]

$action = $_REQUEST[liton_action]

if( $action == done )

add_action( admin_notices liton_utags_message )

return

check_admin_referer( liton_utags-$action_tag$id )

switch( $action )

case rename

$newtag = array( name =gt $_POST[name] slug =gt

$_POST[name] )

wp_update_term( $id post_tag $newtag )

break

case delete

wp_delete_term( $id post_tag )

break

wp_redirect( add_query_arg( array( liton_action =gt done )

) )

Admin notice

function liton_utags_message()

echo ltdiv class=updatedgtltpgtAction

completedltpgtltdivgt

Draw the tag management page

function liton_utags_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtUnused Tagslth2gt

ltphp

if( $tags = liton_utags_find_orphans() )

echo ltpgtYou currently have count( $tags ) unused

tagsltpgt

echo ltolgt

foreach( $tags as $tag )

42

$id = $tag-gtterm_id

$name = esc_attr( $tag-gtname )

$delete_url= add_query_arg(

array(liton_action=gtdeleteid=gt$id) )

$nonced_url= wp_nonce_url( $delete_url

liton_utags-delete_tag$id )

gt

ltligt

ltform action= method=postgt

ltphp wp_nonce_field( liton_utags-rename_tag$id )

gt

ltinput type=hidden name=liton_action

value=rename gt

ltinput type=hidden name=id value=ltphp echo

$id gt gt

ltinput type=text name=name value=ltphp echo

$name gt gt

ltinput type=submit value=Rename gt or

lta href=ltphp echo $nonced_url gtgtdeleteltagt

this tag

ltformgt

ltligt

ltphp

else gt

ltpgtYou have no unused tagsltpgt

ltphp endif gt

ltolgt

ltdivgt

ltphp

Find unused tags return them in an array

function liton_utags_find_orphans()

global $wpdb

$sql = SELECT termsterm_id termsname FROM

$wpdb-gtterms terms

INNER JOIN $wpdb-gtterm_taxonomy taxo

ON termsterm_id=taxoterm_id

WHERE taxotaxonomy = post_tag

43

AND taxocount=0

return $wpdb-gtget_results( $sql )

gt

ডযাপরফাপরডড এাআ পলাগগপরনয ডভন াওয়া মাপরফ ডাসট এয াফপরভন গপরপরফ গনপরচ ডদখন-

এফায পলাগগন ডভনপরত গিক কপরয ডদগখ পলাগগপরনয ডবতপরযয কাজ-

উপরয ডদখন াঅগভ একগট টযাগ ততগয কপরযগিরাভ l i নাপরভ এগট এখাপরন ডদখাপরচছ াঅগভ চাাআপরর এগট এগডট ফা গডগরট কযপরত াগয এফায গডগরট গরঙক এ ভাউপরয কাডয ডযপরখ গনপরচ গরঙক ডদখন ফা গডগরট করন একগট টযাগ াঅভায এখাপরন URL গট এযকভ httplocalhostdev-litonwp-

admineditphppage=liton_utagsampliton_action=doneampid=4amp_wpnonce=30a44b7

986

এখাপরন াঅগভ liton_action=done ফযফায কপরযগি Nonces এয পাাংনগপররায নাভ গনপরচ গদরাভ াঅনাযা ডদপরখ গনপরফন াআনটাযপরনট ডথপরক wp_nonce_field()

wp_nonce_url()

wp_verify_nonce()

wp_create_nonce()

44

check_admin_referer()

check_ajax_referer()

ডাটাপরফ াঅনাযা ডমপরত গএাআচগ গনপরয় কাজ কপরযন এগকউএর ডাটাপরফ এয াপরথ ফাাআ কভপরফী গযগচত এয গনটযাকস গপররা ডভাটাভগট ফায জানা একাআ বাপরফ াপরনপরকাআ ওয়াডডপরেপরও ডাটাপরফ ডকাড গরপরখন এটা ডকাগডাং এয জনয খাযা গদক াঅগভ নযভার গএাআচগ- এগকউএর ডকাড এয উদাযন গদগচছ- ltphp

$sql=rdquoINSERT INTO $wpdb-gtposts(post_title) VALUES(bdquo$title‟)rdquo

$wpdb-gtquery($sql) gt

এফায ওয়াডডপরেপরয সটযানডাডড ডকাগডাং গপরসটভ ডদখন- ltphp

$wpdb-gtinsert($wpdb-gtposts

array(bdquopost_title‟ =gt $title)

array(bdquos‟)

)

gt

ডাটাপরফ গগকউয কযায জনয াঅপরডট াাপরযন ডদখাফ- গনপরচয ডকাডগট খাযা েযাকগট ltphp

$wpdb-gtquery(ldquoUPDATE $wpdb-gtposts SET post_title=‟$newTitle‟ WHERE

ID=$my_idrdquo )

gt

উপরযয ভত কপরয না গরপরখ গনপরচয ভত কপরয গরখন- ltphp

$wpdb-gtupdate($wpdb-gtposts

Array(bdquopost_title‟ =gt‟$newTitle‟)

Array(bdquoID‟ =gt$my_id

)

gt

ানর বাপরফ ানযানয াাপরযন গপররা গরখপরফন

45

াধযায়- াঅটাঃ ডরাকারাাআপরজন এফাং Set t i ngs API

ডরাকারাাআপরজন ডরাকারাাআপরজন একগট গরতবনড গফলয় এয পাাংনগপররা র- load_theme_textdomain()

load_plugin_textdomain()

উদাযন- ltphp $var=__(bdquoHello‟‟domain‟) gt

ltphp _e(bdquoHello‟‟domain‟) gt

গফসতাগযত গনপরচয গরপরঙক ডদখন- httpcodexwordpressorgI18n_for_WordPress_Developers

ডগটাং API

ডগটাং API পরচছ াঅগন গকি ান ততগয কযপরফন মা াআনটাযনার বাপরফ াঅনায পলাগগপরন এপলাাআ পরফ মখন াঅগন াআউজায- গডপাাআন ান ততগয কযপরফন াঅনায পলাগগপরনয জনয তখন Settings

API ndashএ াঅনায ডকাড মতটা ারন জ করন Settings API াঅনায ডম কাজগপররা handle কপরয-

ওয়াডডপরেপরক জাগনপরয় ডদয় ডম াঅগন গনজসব ান ফযফায কযপরফন াঅনায াআনটপরক পাাংপরনয ভপরধয উপরেখ কযপরফ ডফগয বাগ ান ডজ গনপরজাআ ততগয কযপরফ $_POST ডাটা গপররাপরক ভগনটয কপরয ান ততগয এফাং াঅপরডট কপরয(মগদ েপরয়াজন য়)

Settings API পাাংন Settings API পাাংপরন গতনগট ডসট থাপরক- ১ েথপরভ ওয়াডডপরেপরক ফপরর ডম াঅগন নতন ডগটাং ফযফায কযপরফন াঅনায পলাগগপরনয জনয ২ এয পরয ডগটাং গডপাাআন করন (text areas input boxes and any

HTML form element) এফাং এপরদযপরক একাপরথ রে কপরয যাপরখ ৩ ওয়াডডপরেপরক াঅনায ডগটাং actual form এ ডদখাপরনায জনয ফপরর

46

এফায াঅভযা একগট পলাগগন ফানাপরফা Administration Page ndashএ ডযপাপরযনস গপরপরফ ডদখপরত াপরযন- httpcodexwordpressorgAdding_Administration_Menus

httpcodexwordpressorgFunction_Referenceadd_options_page

httpcodexwordpressorgAction_ReferenceActions_Run_During_an_Admin_P

age_Request

পলাগগপরনয এডগভন ডজ পরফ এযকভ- httpexamplecomwp-adminoptions-generalphppage=liton_myplugin

েথপরভ াঅভযা ডভন ততগয কযফ াঅপরগয ভত কপরয- Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

এফায ান ডজ এ পভড গনপরয় গকি ডগটাং ডদফ function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

উপরযয ডকাপরড াঅভযা একগট পপরভডয ভপরধয রধ াফগভট ফাটন এফাং My Plugin নাপরভ ডজ ততগয কপরযগি ডযাপরফাপরডড ডদখন-

47

ডগটাং এয াফ ডভন গপরপরফ My Plugin াঅপরি এফাং My Plugin ডত গিক কযপরর াঅভযা উপরযয ডজ ততগয কপরযগি ডমখাপরন াফগভট ফাটনগট ডদখাপরচছ এফায গতনগট যাযাগভটায ডযগজসটায কযফ- ltphp

register_setting( liton _myplugin_options liton _myplugin_options liton

_myplugin_validate_options)

gt

েথভগট ডগটাং রেপরয নাভ গিতীয়গট ান নাভ মা াঅভযা get_option() পাাংন গদপরয়ও ডপরত াগয ততীয়গট করফযাক পাাংন এগট একগট গসটরাং ডযপাপরযনস পাাংন এখাপরন াঅভযা নাভ

48

গদপরয়গি liton _myplugin_validate_options মা া কযপরফ পপরভডয কর ডব ডগটাং াঅভযা এটা পরয গডপাাআন কযফ

ডগটাং গডপাাআন ডকন add_settings_field() এফাং add_settings_section() পাাংন গদপরয় াঅভযা াঅভাপরদয কর ডগটাং গডপাাআন কযফ ltphp

add_settings_section( liton_myplugin_main My Plugin Settings

liton_myplugin_section_text liton _myplugin)

add_settings_field( liton _myplugin_text_string Enter text here

liton _myplugin_setting_input liton _myplugin liton _myplugin_main)

gt

add_settings_section() পাাংন গদপরয় াঅভযা ডদখাফ াঅপরর ডজ এ ডকন ডকভন ডদখাপরফ এয চাযগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ ডকন টাাআপরটর ltH3gt টযাপরগয ভপরধয করফযাক পাাংন এয নাভ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ (page= liton _myplugin এগট

URL এয াাং গপরপরফ থাকপরফ) গিতীয় যাযাগভটায add_settings_field() পপরভডয াআনট গপরপরফ ডদখাপরনা পরয়পরি এখাপরন াাচগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ পরযয গপপরলড গক গেনট কযা পরফ তা ডটকসট গপরপরফ ডদখাপরনা পরয়পরি(Enter text

here)

করফযাক পাাংন পপরভড গেনট কযপরফ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ ডগটাং ডপরজয ডকন গপলড মা add_settings_section() পাাংপরন গডপাাআন

কযা পরয়পরি ltphp

Explanations about this section

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

49

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton _myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name= liton _myplugin_options[text_string]

type=text value=$options[text_string] gt

gt

গিতীয় পাাংন ান বযার text_string ডক এযাপরযপরত ডসটায কপরয ডযপরখপরি এফায াআউজায াআনট বযাগরপরডট কযফ- ltphp

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace([^a-zA-Z]$input[text_string] )

return $valid

gt

পভডপরক ডযনডায কযফ- ltphp

Draw the options page

function liton_myplugin_options_page()

gt

ltdiv class=wrapgt

ltphp

screen_icon()

gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp

settings_fields( liton_myplugin_options)

do_settings_sections(liton_myplugin)

50

gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

settings_fields() পাাংনগট ডযপাপরযনস গপরপরফ ফযফায কযা পরয়পরি মা াঅভযা register_setting() পাাংপরন গডপরিয়ায কপরযগি do_settings_sections() পাাংনগট কর কযপরফ কর াঅউটট ডকন এফাং পভড গপলডপরক মা াঅভযা পরফড গডপাাআন কপরযগি াঅভাপরদয কাজ ডল এফায পরযা পলাগগনগট ডদখফ- ltphp

Plugin Name Settings API example

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

Draw the option page

function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save

Changes gt

ltformgtltdivgt

ltphp

51

Register and define the settings

add_action(admin_init liton_myplugin_admin_init)

function liton_myplugin_admin_init()

register_setting( liton_myplugin_options

liton_myplugin_options

liton_myplugin_validate_options )

add_settings_section( liton_myplugin_main My Plugin

Settings

liton_myplugin_section_text liton_myplugin )

add_settings_field( liton_myplugin_text_string Enter text

here

liton_myplugin_setting_input liton_myplugin

liton_myplugin_main )

Draw the section header

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton_myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name=liton_myplugin_options[text_string]

type=text value=$text_string gt

Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

return $valid

gt

52

ডদখন ডযাপরফাপরডড ডকভন ডদখায়-

পরয় ডগর াঅভাপরদয েথভ নডাাংগ পলাগগন ান ডজ াঅপরযকগট গজগন ডমটায জনয এতগকি পলাগগন URL এপরডর- httplocalhostdev-litonwp-adminoptions-

generalphppage=liton_mypluginampsettings-updated=true

াঅভায এখাপরন এযকভ ডদখাপরচছ ডটকসট ফপরকস ডকান গকি গরপরখ ডব কযায য এফাপরয াঅপরযকগট গজগন ডদখফ াঅভযা াপরনক ভয়াআ াপরনক পলাগগপরনয াআনট গপপরলড বর ডাটা াআনট কযপরর এযয ডভপরজ ডদখায় এাআ কাজগট কযফ এফায াঅভযা এখাপরন esc_attr() ফা esc_html() ফযফায কগযগন সতযাাং াঅভাপরদয গরগভপরটন থাকপরি ডবগরপরডট পাাংনগট একট এগডট কগয গনপরচয ভত কপরয Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

if( $valid[text_string] = $input[text_string] )

add_settings_error(liton_myplugin_text_stringliton_myplugin_texterror

53

Incorrect value enterederror)

return $valid

উপরয ডদখন add_settings_error() পাাংন ফযফায কপরযগি মা এযয ডচক কযপরফ পপরভডয াঅগভ একগট বর ডাটা(পরসপার কযাপরযকটায) াআনট কপরয ডদখরাভ এযয ডদখাপরচছ-

তায ভাপরন াঅভযা পর পরয়গি াঅনায পলাগগনগট এগডট কপরয ডনপরফন ডকায ডকন এফাং গপপরলডয গরসট গদরাভ াঅনাপরদয সগফধায জনয

54

CSSJS পাাআর মি কযা

াঅনায পলাগগপরন গএএ ফা জাবাগিে ডমাগ কযপরত পরত াপরয াঅগন চাাআপরর ফাগপরযয ডকান ফা াঅনায ততগয ডকান গএএ ফা জাবাগিে পাাআর ডমাগ কযপরত াপরযন তপরফ এপরকষপরতর াঅভযা ডমবাপরফ HTML এ পাাআর ডমাগ কগয ডযকভ না function liton_scripts()

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtojqueryjsrdquogtltscriptgt‟

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtoscriptjsrdquogtltscriptgt‟

add_action(bdquowp_head‟‟liton_scripts‟)

এগট মপনডরপর বর িগত গনপরচ ডদখন ওয়াডডপরেপর গকবাপরফ পাাআর মি কযপরত য়- function liton_scripts()

wp_enqueue_script(bdquojquery‟)

wp_enqueue_script(bdquotheme-scripts‟‟pathtoscriptsjs‟)

add_action(bdquowp_enqueue_script‟‟liton_scripts‟)

ানর বাপরফ াঅগন সটাাআরীট ডমাগ কযপরত াপরযন- function liton_styles()

wp_enqueue_ style (bdquocss‟)

wp_enqueue_ style (bdquotheme- styles‟pathto stylescss‟)

ডযপাপরযনস ডদখন- httpcodexwordpressorgFunction_Referencewp_enqueue_script

httpcodexwordpressorgFunction_Referencewp_enqueue_style

টডপরকাড টডপরকাড পরচছ ওয়াডডপরেপরয ডসপগগপক ডসপার টযাগ মা াঅগন ডাসট ফা ডপরজয ভপরধয াআনাটড কপরয ানয ডকান কনপরটনটপরক ওপরয়ফাাআপরটয ভপরধয গযপরপল কযপরত াযপরফন মগদ াঅগন গযারাগয টাাআপরয ডকান পলাগগন ফযফায কপরয থাপরকন তাপরর াঅনায ধাযনা থাকায কথা মাাআ ডাক াঅগভ কপরয়কগট উদাযি ডদখাফ

55

েথপরভ একগট পলাগগন ততগয কযফ ডমখাপরন add_shortcode() নাপরভয একগট পাাংন থাকপরফ এগট রগট যাযাগভটায েন কপরয েথভগট টডপরকাপরডয নাভ গিতীয়গট ডম পাাংনপরক কর কযপরফন ডগট াঅভযা একগট উদাযন ডদগখ- ltphp

Plugin Name Liton Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(litonhi)

function hi()

echo Hello World

gt

উপরয ডদখন খফ ডিাট গকনত াঅগন চাাআপরর এয ফযফায াপরনক গফসতত কযপরত াপরযন এখাপরন টডপরকাড নাভ পরচছ liton াঅয এগটপরক ডরখা য় এবাপরফ [liton] াঅভযা ডাপরসটয ভপরধয াআনাটড কপরয ডদগখ াঅউটট ডকভন ডদখায়-

এফায াঅউটট ডদগখ-

56

াঅভাপরদয ততগয কযা টডপরকাড পরবাপরফাআ কাজ কযপরি াঅপরযকগট উদাযন ডদখফ াঅনাযা াপরনপরকাআ গগর এডপরনস গনপরয় কাজ কপরযন াঅনাযা াপরনপরকাআ এডপরনস এয জনয পলাগগন ফযফায কপরযন গকনত চাাআপররাআ এাআ কাজগট াঅনাযা গনপরজয ভত কপরয াগজপরয় গনপরত াপরযন গগপররয কাপরি ফ ডাসট বযার ায়না াঅনাযা মাযা একসাটড াঅপরিন তাযা এটা বার কপরয জাপরনন তাাআ াপরনপরকাআ গগপররয ডকাড ফ ডপরজ ডদখাপরত চান না এজনয পলাগগন ফযফায কপরয রাব য়না কাযন পলাগগপরন জায়গা গপকসড থাপরক এপরত কপরয াঅগনডাং ও কভ য় াঅনাযা টডপরকাড ফযফায কপরয ডমপরকান জায়গায় এড ডদখাপরত াপরযন গনপরচ াঅগভ রগট টডপরকাড ততগয কপরযগি র‟ধযপরনয এড ডদখাপরনায জনয ltphp

Plugin Name Liton Adsense Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(adsense_468adsense_468_60)

add_shortcode(adsense_250adsense_250_250)

function adsense_468_60($atts)

return ltscript type=textjavascriptgtlt--

57

google_ad_client = ca-pub-0956247412222369

468x60 created 101510

google_ad_slot = 4372705450

google_ad_width = 468

google_ad_height = 60

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

function adsense_250_250($atts)

return ltscript type=textjavascriptgtlt--

google_ad_client = ca-pub-0956247412222369

250x250 created 81809

google_ad_slot = 9368091893

google_ad_width = 250

google_ad_height = 250

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

gt

একগট টডপরকাড ফযানায টাাআপরয জনয এফাং াঅপরযকগট ২৫০২৫০ াাআপরজয এফায ডাপরসট ডমপরকান একগট টডপরকাড াআনাটড করন ডমখাপরন াঅনায ডদখাপরনায েপরয়াজন ভপরন কপরযন াঅগভ রগট ডকাড ডটসট কপরয ডদখরাভ-

58

এফায াাআপরটয াঅউটট ডদগখ-

রগট এডাআ ডদখাপরচছ াঅপরযা াপরনক কাপরজ াঅগন টডপরকাড ফযফায কযপরত াপরযন ডযপাপরযনসাঃ httpcodexwordpressorgShortcode_API

59

াধযায়- নয়াঃ পলাগগন উদাযন

ওয়াডডপরেপরয ডডটটাাআভকপরভনট নামবায ফাাংরা কযায পলাগগন াঅভাপরক কপরয়কজন ফপররগিপররন ওয়াডডপরেপরয গডপলট ডডটটাাআভকপরভনট নামবায ফাাংরা য়না রযাাংগপরয়জ ফাাংরা কযায যও ডডটটাাআভকপরভনট নামবায গপররা াআাংপরযগজ ডথপরক মায় গনপরচয পলাগগনগট ফযফায কপরয ডদখপরত াপরযন- ltphp

Plugin Name Liton Bangla datetimecomment number

Plugin URI httpliton-onlinecomplugins

Description Bangla datetimecomment number

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

This function converts all english numbers to bangla number

function make_bangla_number($str)

$engNumber = array(1234567890)

$bangNumber = array( ১ ২ ৩ ৪ ৫ ৬ ৭ ৮ ৯ ০ ) $converted = str_replace($engNumber $bangNumber $str)

return $converted

add_filter( get_the_time make_bangla_number )

add_filter( the_date make_bangla_number )

add_filter( get_the_date make_bangla_number )

add_filter( comments_number make_bangla_number )

add_filter( get_comment_date make_bangla_number )

add_filter( get_comment_time make_bangla_number )

gt

60

সলাাআডায পলাগগন াঅভযা এাআ ফাআপরয়য কর গটউপরটাগযয়াপরর মা মা গখরাভ তা এফায একগট নডাাংগ পলাগগপরনয এপলাাআ কযফ সলাাআডায পলাগগন মপপরকড াঅভযা ফাাআ জাগন একগট ওপরয়ফাাআপরটয ডচাযা ারপরট ডদয় একগট সলাাআডায াপরনক ডাাআনাগভক ভপরন য় ডদখপরতও াপরনক বার রাপরগ এাআ পলাগগপরন াঅভযা এডগভন যাপরনর ডথপরক াআপরভজ ডমাগ কযফ এফাং তা াঅভাপরদয াাআপরট ডদখাফ চরন কাজ রর কগয- েথপরভ গনপরবা সলাাআডায এয ওপরয়ফাাআপরট মান এফাং jQuery Plugin ডাউনপররাড করন

ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom Version 10

gt

াঅভযা পলাগগপরনয ডডায ততগয কযরাভ

পলাগগন গরপরসট ডদখাপরচছ bdquoLitons Nivo Plugin‟ াঅভাপরদয েথভ কাজ পরচছ custom post

type ওয়াডডপরে পাাংনাগরগট একগট নতন কাসটভ ডজ ততগয কযপরত custom post type

ফযফহরত পরফ ডমখাপরন একগট াআপরভজ থাকপরফ াঅভযা রধ টাাআপরটর ডনভ এফাং াআপরভজ াঅপররাডায গপরপরফ গপচায াআপরভজ পাাংনাগরগট ফযফায কযফ function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_function 600 280 true)

61

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

add_action(init np_init)

উপরযয ডকাপরড np_init() পাাংনগট রক কপরযগি মা ডডায যান কযায াঅপরগ যান পরফ াঅয এজনয register_post_type() পাাংনপরক এয যাযাগভটায গদপরয় np_init() পাাংপরনয ডবতপরয মি কপরযগি এটা মগদ না কযতাভ তাপরর ldquoHeaders already sentrdquo ডভপরজ ডদখাত এাআ ডভপরজগটয াপরথ াপরনপরকাআ গযগচত াঅা কগয register_post_type() পাাংন গদপরয় াঅভযা াআপরভজ মি এফাং ভযাপরনজ কযফ ভরত াঅভযা একগট নতন custom post type ডমাগ কপরযগি np_images নাভ গদপরয় নতন custom post type ডক ডগটাং বযার গপরপরফ াঅযগপরভনট া কপরযগি $args ডবগযপরয়ফরগট ট ডরপরবর ডভন ততগয কপরয াঅপরগাআ ডদপরখগি পলাগগনগট এগকটপরবট কযপরর াঅভযা গনপরচয ভত ডদখপরত াফ-

এফায গিে এফাং সটাাআরীট ডক মি কযফ- add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

এফায রক কযা পাাংনগপররা গডপরিয়ায কগয- function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__) array( jquery ))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

62

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

উপরযয ডকাডগপররা নতন কপরয ফিডনা কযায গকি ডনাআ াঅপরগাআ wp_enqueue_style() এফাং wp_enqueue_script() মপপরকড ফরা পরয়পরি নতন াঅপরযকগট পাাআর ততগয করন একাআ গডপরযকটগযপরত scriptjs এফাং গনপরচয ডকাডটক গদন- jQuery(document)ready(function($)

$(slider)nivoSlider()

)

াআপরভজপরক গযাাআজ করন- add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

াঅভযা এাআ পলাগগনগটপরক উাআপরজট গপরপরফও ফযফায কযফ ডগট পরয ডদখফ াঅপরযকগট গজগন মগদ গথপরভ না ডদয়া থাপরক ডজনয থামবপরনাআর াপরাটড গদপরয় গদন- add_theme_support( post-thumbnails )

এফায ওয়াডডপরেপরয কাপরযনট ডাসট কপরয়যী কযায ডকাড াঅয $result ডবগযপরয়ফপরর ডমফ ltdivgt টযাগ ফযফায কযা পরয়পরি তা jQuery Plugin গট একসিাকট কপরয indexhtml ডজগটয ডভাআন সলাাআডায ডকাডগট ডদখন একাআ াঅপরি রধ ডখানকায ltdivgt টযাগ গপররাপরক কগ কপরয এাআ পলাগগপরন ফযফায কযা পরয়পরি এফায টডপরকাড গদন- add_shortcode(np-shortcode np_function)

এাআ টডপরকাড গএাআচগ পাাংনপরক রক কযপরফ এফাং এয ভধয ডথপরক সলাাআডপরায কনপরটনট ডক গযটানড কযপরফ াঅভাপরদয টডপরকাড পরচছ [np-shortcode] াঅভযা পলাগগপরন মাাআ এফাং একগট িগফ মি কগয গপচাযড াআপরভজ গপরপরফ গনপরচ ডদখন-

63

াঅগভ াঅপরযকগট ডজ ততগয কপরযগি ডমখাপরন টডপরকাড গদপরয়গি

াঅউটট ডজ ডদগখ এফায-

64

পরয় ডগর াঅভাপরদয সলাাআডায পলাগগন পরযা ডকাডগট গনপরচ গদরাভ- ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

65

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

66

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

এফায াঅগন মগদ উাআপরজট গপরপরফ ফযফায কযপরত চান তাপরর গনপরচয ডকাডটক গদন- class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

67

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

echo $after_widget

াঅপরযা রগট কাজ কযপরত পরফ াঅনাপরক এক াআপরভজ াাআজ উাআপরজট এয জনয গঠক কপরয গদপরত পরফ- add_image_size(np_widget 180 100 true)

াঅপরযকগট র উাআপরজট এযাকন রক ডমাগ কযা add_action(widgets_init np_widgets_init)

উাআপরজট পরযা ডকাড াঅফায গদরাভ- ltphp

Plugin Name Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Ciprian Turcu

Version 10

68

class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

69

echo $after_widget

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

70

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(widgets_init np_widgets_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

71

পলাগগন গনপরয় এত ডিাট গযপরয ডরখা মভফ নয় এজনযাআ ভপরন য় পলাগগন গনপরয় ডকউ ডরপরখন না কাযন এখাপরন এত গফলয় াঅপরি মা াঅপররাচনা কযপরত ডগপরর ৫০০ ডজ ায পরয় মাপরফ ডফাোয সগফধাপরথড াঅগভ মথামভফ উদাযন গদপরয় ডফাোপরনায ডচষটা কপরযগি াঅগভ এখাপরন টাপরগডট কপরযগি মাযা টকটাক জাপরন পলাগগন মপপরকড এডবানস ডরপরবপররয নয় কাযন তাযা জাপরনন াঅভায উপরেশয গির মাযা জানপরত চায় তাপরদযপরক জানাপরনা এখাপরন ডমফ গফলয় াঅপররাচনা কযা পরয়পরি তা ডভাটাভগট ভাপরনয একগট পলাগগন ফানাপরনায জনয মপরথষট তপরফ ভাপরনাননয়পরনয জনয াঅনাপরক গনপরজাআ খাপরজ গনপরত পরফ াঅনায জনয ডকানটা বার পরফ াঅগভ রধ গদক গনপরদডনা গদরাভ ভাতর এাআ ফাআগট রধভাতর ওয়াডডপরে রেপরয জনয ডরখা াপরনক বর ভরাগনত থাকপরত াপরয াঅনাযা কষভাসনদয দগষটপরত ডদখপরফন াঅগভ ডচষটা কপরযগি মতটা জ কপরয ডরখা মায় াপরনক ভয় ডদখা মায় ডম খফ ডিাট খাপরটা গফলয় গনপরয় াপরনপরকাআ নক কপরযন এটা গতয রাঃখজনক াঅনাযা গগপরর একট খাজপররাআ ভাধান াপরফন াঅপরগ গনপরজ ডচষটা করন তায পরয ানযপরক ভাধাপরনয জনয গজজঞাা করন াঅভায জনয ডদায়া কযপরফন বাপররা রাগপরর জানাপরফন খাযা রাগপররও জানাপরফন তাপররাআ াঅভায গযশরভ সবাথডক পরফ ভতাভত জাগনপরয় াঅভাপরক ডভাআর কযপরত াপরযন litonice09gmailcom |

72

Page 22: Wordpress Plugin Development

23

াধযায়- াাচাঃ ওয়াডডপরেপরয াপরথ াআগনটপরেন

ডভন এফাং াফ ডভন ততগয করন াঅভযা াপরনক পলাগগপরনাআ ডদগখ ডম একগট ডভন াঅাআপরটভ গপরপরফ াঅভাপরদয ডযাপরফাপরডড ডদখপরত াাআ এফাং ডাআ ডভনপরত গিক কযপরর ডগটাং ডজ াঅপর ডখাপরন পলাগগপরনয মাফতীয় ডগটাং গদপরয় াঅভযা পলাগগন কনগপগায কগয এফায এাআ চভৎকায কাজগট কযফ াঅভযা

ট ডরপরবর ডভন েথভ িগত পরচছ একগট ট ডরপরবর ডভন ততগয কযা ডমগট াঅভযা ডযাপরফাপরডড ডভন গরপরসট একগট নতন াঅাআপরটভ গপরপরফ ডমাগ কযফ ডভন ততগয কযায জনয াঅনাপরক add_menu_page( ) পাাংন ফযফায কযপরত পরফ ltphp

add_menu_page( page_title menu_title capability menu_slug functionicon_url

position )

gt

add_menu_page() পাাংন গনপরচয যাযাগভটাযগপররা াপরাটড কপরয page_title- াঅনায ডপরজয টাাআপরটর গক পরফ lttitlegt tag এয ভপরধয menu_title- ডযাপরফাপরডড াঅনায ডভনয নাভ capability- ফডগনমন capability রাগপরফ একগট ডভন গবউ পরত menu_slug- সলাগ নাভ মা ডভনপরক ডযপায কপরয- তপরফ এগট াআউগনক পরত পরফ function- একগট ডপরজয কনপরটনট ডদখপরত ডম পাাংন কর কযা য় icon_url- একগট কাসটভ াআপরভজ গরঙক ডভন াঅাআকন ডদখাপরনায জনয position- ডভনয গজন াডডায ডমখাপরন এটা ডদখাপরনা পরফ

এফায াঅভযা একগট ফাসতফ উদাযন ডদখফ- ltphp

Plugin Name Liton Menu

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action( admin_menu liton_menu)

function liton_menu()

24

create custom top-level menu

add_menu_page( Liton Menu Page Liton Menu Page manage_options

__FILE__ liton_menu_settings_page plugins_url( imageswp-logopng

__FILE__ ) )

gt

াঅভযা একগট ট ডরপরবর ডভন ততগয কযরাভ ডদখন ডযাপরফাপরডড ডকভন ডদখায়-

Liton Menu Page নাপরভ একগট ডভন ততগয পরয় ডগপরি এফাপরয াঅভযা াফপরভন কযফ ভাপরন Liton Menu Page এয গনপরচ গকি ডগটাং ডভন(মগদ েপরয়াজন য়) াফ ডভন ডযগজসটায কযায জনয add_submenu_page( ) পাাংন ফযফায কযা য় ltphp

add_submenu_page( parent_slug page_title menu_title capabilitymenu_slug

function )

gt

parent_slug- ডভন সলাগ মা াঅভযা াঅপরগ গডপাাআন কপরযগি menu_slug- মা ডভনপরক াফপরভনপরত ডযপায কযপরফ ফাগক পাাংনগপররা াঅপরগয ভতাআ

এফায াফপরভনয জনয গকি াগতগযি ডকাড ডমাগ কগয create submenu items

add_submenu_page( __FILE__ About My Plugin About manage_options

__FILE___about liton_menu_about_page )

add_submenu_page( __FILE__ Help with My Plugin Help

manage_options

__FILE___help liton_menu_help_page )

add_submenu_page( __FILE__ Uninstall My Plugin Uninstall

manage_options

__FILE___uninstall liton_menu_uninstall_page )

25

পরযা ডকাডগট পরফ এযকভ- ltphp

Plugin Name Liton Menu

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action( admin_menu liton_menu

)

function liton_menu()

create custom top-level menu

add_menu_page( Liton Menu Settings Page Liton Menu Page

manage_options __FILE__

liton_menu_settings_page

plugins_url( imageswp-logopng __FILE__ ) )

create submenu items

add_submenu_page( __FILE__ About My Plugin About manage_options

__FILE___about liton_menu_about_page )

add_submenu_page( __FILE__ Help with My Plugin Help

manage_options

__FILE___help liton_menu_help_page )

add_submenu_page( __FILE__ Uninstall My Plugin Uninstall

manage_options

__FILE___uninstall liton_menu_uninstall_page )

gt

গনপরচ ডদখন াফপরভনগপররা ততগয পরয় ডগপরি-

26

ডভনপরক াঅপরগয ডভনয াপরথ মি কযা এফায াঅগ গিতীয় িগতপরত মগদ াঅনায পলাগগপরনয একগট ভাতর ডজ থাপরক একগট ভাতর ডপরজাআ াঅনায কর ডগটাং পরয় মায় তাপরর এাআ িগত েন করন ডমভন ডয়াগযাং াাআটগপররায জনয রধ াঅনায াঅাআগডপযানপরপরজয াঅাআগড দযকায য় এযকভ পলাগগন এধযপরনয পলাগগপরনয জনয াঅনায াগতগযি ডভন ততগয কযায দযকায ডনাআ ফযাং এপরত কপরয াআউজায গফযি ডফাধ কযপরত াপরযন এ ধযপরনয পলাগগনগপররা ডগটাং এয াফপরভন গপরপরফ থাপরক add_options_page() এাআ পাাংন গদপরয় এফ ডভন ডযগজসটায কযা য় ltphp

add_options_page( page_title menu_title capability

menu_slug function)

gt

এফায চরন এযকভ একগট ডভন ততগয কগয- ltphp

Plugin Name Liton Sub Menu

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action( admin_menu liton_submenu)

function liton_submenu()

create a submenu under Settings

add_options_page( Liton Menu Settings Page Liton Menu Page

manage_options __FILE__

liton_menu_settings_page)

27

gt

াফপরভন ততগয পরয় ডগপরি চরন ডদগখ ডযাপরফাপরডড ডকভন ডদখায়-

এপরকফাপরয গনপরচয গদপরক ডদখন Liton Menu Page নাপরভ একগট ডভন ততগয পরয়পরি

উাআপরজট ততগয কযা উাআপরজট ততগয কযায জনয ওয়াডডপরে WP-Widget িা গদপরয় ততগয কযা য় উাআপরজট এয একগট পযভযাট ডদখন গনপরচ ltphp

class My_Widget extends WP_Widget

function My_Widget()

processes the widget

function form($instance)

displays the widget form in the admin dashboard

function update($new_instance $old_instance)

process widget options to save

function widget($args $instance)

displays the widget

gt

28

উাআপরজট ডযগজসটায কযায জনয widget_init() পাাংনপরক রক কযা য় চরন একগট উাআপরজট ততগয কগয- ltphp

Plugin Name Liton Widget

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

class Messager extends WP_Widget

function __construct()

$params=array(

description =gtDisplay message to readers

name =gt Message

)

parent__construct(Messager $params)

public function form()

public function widget()

add_action(widgets_initliton_register_message)

function liton_register_message()

register_widget(Messager)

gt

29

খফ াধাযন একগট উাআপরজট পলাগগন এগট াঅভযা াআউজাযপরদযপরক একগট ডভপরজ ডদখাপরফা াাআডফাপরয ডটাাআ কযায ডচষটা কযগি এখন পলাগগনগট এগকটপরবট কপরয ডদগখ-

াঅভাপরদয উাআপরজটগট ডদখাপরচছ এফায াঅপরযা গকি পাাংনার কাজ কগয এগট মগদ াাআডফাপরয ডরাগ কপরয ডদন তাপরর ডকান কাজ কযপরফ না কাযন াঅভযা এখপরনা গকিাআ কগযগন পভড পাাংপরন গকি কাজ কগয মা উাআপরজট টাাআপরটর গপরপরফ ডদখাপরফ- public function form($instance)

extract($instance)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title)gtgtTitle ltlabelgt

ltinput

class=widefat

id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt

value=ltphp if(isset($title)) echo esc_attr($title) gt gt

ltpgt

ltphp

াঅভযা উপরয class=widefat ফযফায কপরযগি এাআ িা ফযফায কযায কাযপরন পভড এয াআনট গপলডগট াপরনক সনদয পরয়পরি

30

মগদ এাআ িা ফযফায না কগয তাপরর ডকভন ডদখাপরফ গনপরচ ডদখন-

াঅভাপরদয উাআপরজট পলাগগনগটয ডকাড গনপরচ ডদওয়া র ltphp

Plugin Name Liton Widget

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

class Messager extends WP_Widget

function __construct()

$params=array(

description =gtDisplay message to readers

name =gt Message

)

parent__construct(Messager$params)

31

public function form($instance)

extract($instance)

print_r($instance)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title)gtgtTitle ltlabelgt

ltinput

class=widefat

id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt

value=ltphp if(isset($title)) echo esc_attr($title) gt gt

ltpgt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(description)gtgtDescription

ltlabelgt

lttextarea

class=widefat

rows=10

id=ltphp echo $this-gtget_field_id(description) gt

name=ltphp echo $this-gtget_field_name(description) gtgtltphp

if(isset($description)) echo esc_attr($description) gtlttextareagt

ltpgt

ltphp

public function widget($args$instance)

extract($args)

extract($instance)

echo $before_widget

echo $before_title$title$after_title

echo ltpgt$descriptionltpgt

echo $after_widget

add_action(widgets_initliton_register_message)

function liton_register_message()

32

register_widget(Messager)

gt

এফায াঅভযা ডযাপরফাডড ডথপরক একগট ডভপরজ ডদফ গবগজটযপরদযপরক-

াঅভযা এাআ উাআপরজটগট ডাাআনাগভক বাপরফ কপরযগি কাযন এখাপরন lth2gt lth3gt lth4gt এ ধযপরনয ডকান টযাগ াঅভযা ফযফায কগযগন াঅভযা গথভ ডডপরবর কযগিনা সতযাাং এ কাজগট াঅভাপরদয ানযবাপরফ কযা দযকায গির এগট গথভ ডডপরবরায ডদগখপরয় ডদপরফন ডম ডকভন টযাগ পরফ াাআডফাপরয াাআপরটয াাআডফাপরয ডকভন ডদখায় তা ডদখন- াঅভযা রগট গথপরভ এগট ডটসট কপরয ডদখফ েথভগট টপরয়গনট াআপররপরবন

33

এফায াঅপরযকগট গথপরভ ডদগখ-

34

াধযায়- িয়াঃ পলাগগন পাাংন

গকি ডফগক পাাংন __() পাাংন

__() পাাংনগট গএাআচগপরত াঅনায ডটকসটপরক ডযগড কপরয িানসপররন এফাং গযটানড কপরয উদাযন গপরপরফ াঅগন একগট বযারপরক __() পাাংপরনয ভপরধয ডবগযপরয়ফর গদপরয় assign করন ভপরন যাখপরফন এাআ পাাংনগট রগট াঅনডাযপরিায(_) গদপরয় গগঠত একগট নয় ltphp

$text=__(bdquoWordpress is a wonderful publishing platform‟‟liton_plugin‟)

gt

_e() পাাংন _e() পাাংনগট াঅনায ডটকসবপরট ডরাকারাাআজ কপরয এটা গএাআচগপরত echo এয ভত কাজ কপরয ডকান ডটকসটপরক গিপরন ডদখাপরনায জনয এফায একট ভজা কগয মা রপরক ডদপরখগি াঅপরগাআ- _e() পাাংনগট গদপরয় াঅপরগয পলাগগনগট এগডট কযফ ltphp

Plugin Name Liton Action

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(wp_footer liton_footer_action)

function liton_footer_action()

Output the translated text

_e( This site runs off the coolest platform ever ampmdash

WordPress

liton-plugin )

gt

35

এফায াঅউটট ডদগখ

esc_attr__() পাাংন এাআ পাাংনগট esc_attr() এয ভত এগট এাআচগটএভএর এগিগফউটপরক escape কপরয াঅভযা এফায esc_attr__() এফাং __() এাআ রগট পাাংনপরক একগট কপরয পলাগগন ততগয কযফ ltphp

Plugin Name Liton Esc Attr

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

A function that returns a link to the sites terms of service

page

function liton_terms_of_service_link()

return lta href=httpliton-onlinecomtos title=

esc_attr__( Visit the Terms of Service page boj-plugin ) gt __( Terms of

Service liton-plugin ) ltagt

Display the output of the liton_terms_of_service_link()

function

echo liton_terms_of_service_link()

gt

পলাগগনগটয াঅউটট ডদখন-

36

এযকভ াঅপরযা গকি পাাংন াঅপরি ডমগপররা াঅনাযা ডদপরখ ডনপরফন াআনটাযপরনট ডঘপরট

esc_html__() Function

esc_attr() Function

esc_url() Function

esc_js() Function

esc_html() Function

esc_attr_e() Function

esc_html_e() Function

_x() Function

_ex() Function

esc_attr_x() Function

esc_html_x() Function

_n() Function

_nx() Function

_n_noop() Function

_nx_noop() Function

Translation

bull Poedit httppoeditnet

bull GlotPress httpglotpressorg

bull Launchpad httpstranslationslaunchpadnet

bull Pootle httppootlelocamotionorg

bull KBabel httpi18nkdeorg

bull GNU Gettext httpgnuorgsoftwaregettext

GlotPress এখন ওপরয়ফ ডফড টর গপরপরফ ফযফায কযা পরচছ ওয়াডডে েপরজপরকটয ডিপরন একজন াথফা গটপরভয জনয িানসপররগটাং পটওয়যায গপরপরফ

37

াধযায়- াতাঃ পলাগগন গগকউগযগট

গগকউগযগট কগমপউটাপরযয বালায় ldquoগগকউগযগটrdquo ভাপরন বীগতকয একগট বদ ডমভন Cross Site

Scripting(XSS) Cross Site Request Forgery(CSRF) SQL Injection Privilege

Escalation Vulnerabilities এফাং Holes রফডর ডকাড একগট াবডাপরযয সযকষায জনয রভকীয কাযন পরত াপরয

পলাগগপরনয গগকউগযগট গক াঅনায পলাগগনগট ডমন গগকউয য় vulnerabilities data integrity এফাং reliability ডথপরক

াঅনায পলাগগনপরক গক গগকউগযগট ডদপরফন ওয়াডডপরে এনবায়যনপরভপরনট াঅনায পলাগগনপরক গগকউগযগট ডদয়া খফ কগঠন কাজ নয় এফাং খফ ভয় াপরকষ গফলয়ও নয় ওয়াডডপরেপরয গনজসব গকি পাাংন এপরকষপরতর াঅনাপরক খফাআ াাময কযপরফ

াআউজায াযগভন াঅভযা াপরনক পলাগগন াআনসটর কযায পরযাআ ডদপরখগি ডম মখনাআ এডগভন যাপরনর এ েপরফ কযপরত মাাআ তখন একগট এযয ডভপরজ াঅপর ডভপরজগট গনপরচয ভত-

ডরখা াঅপরি- You do not have sufficient permissionshellip এটা গনশচয়তা ডদয় ডম ডমপরকান এযাকন ীভাফি থাপরক গনগদডষট গকি যাাআট গদপরয় ওয়াডডপরেপরয একগট কভন পাাংন র current_user_can() একগট উদাযন ডদাআ-

38

ltphp

Capability

if ( current_user_can(install_plugins) )

wp_die( Insufficient permissions )

Role

if( current_user_can(editor) )

wp_die( You cannot edit this setting )

gt

খফ তাড়াতাগড় াঅগন এাআ current_user_can() পাাংন ডচক কযপরফন না কাযন এটা গনবডয কযপরফ get_currentuserinfo() এাআ পাাংপরনয উপরয াঅয এয ফযফাপরয ীভাফিতা াঅপরি এটা একগট পলাপরগফর পাাংন(pluggable function) াঅয এয ডরাপরকন পরচছ wp-

includespluggablephp মা পলাগগন এগকটব ফায য ডরাড য়

Nonces

ডকউ এগটপরক াঅফায Nonsense( গনপরফডাধ) বাফপরফন নাএগট ওয়াডডপরেপরয বালায় Nonces কগমপউটাপরযয বালায় nonce ফা cryptographic nonce পরচছ ldquonumber used once rdquo এটা ডিাট এফাং সপষট গকি য যানডভ গসটরাং ডমভন- াওয়াডড মা গকি গনপরদড কপরয Nonce গপরডন গপলড পভডপরক Retrieve ফা display কপরয-

একজন ওয়াডডপরে াআউজায ডমপরকান একগট এযাকন (delete update save and such) একগট াফপরজকট(একগট ডাসট পলাগগন ডগটাং াআতযাগদ) ২৪ ঘনটায একগট ভয় ডিভ

ডমভন ডাসট 50 গডগরট কযপরফন াঅনায ওয়াডডপরে বলগ ডথপরক তাপরর াঅনায গরঙকগট পরফ এযকভ- httpexamplecomwp-admin

postphppost=43ampaction=trashamp_wpnonce=83a08fcbc2

এখাপরন 83a08fcbc2 এগট র nonce মা ২৪ ঘনটা সথায়ী থাপরক রধভাতর এগট মগদ াঅনায িাযা ফযফরত য় এফাং গডগরট য় ডাসট 50 মখন াঅগন গরপরঙক গিক কপরযন ফপরচপরয় গযতবনড র ডম Nonce ডকান malicious াআউজায ফেপরত াপরযনা এফাং গঠক গরঙক িাড়া nonce এযয ডপরজ চপরর মায় ডমখাপরন াযগভন থাপরক না াঅপরযা গফসতাগযত ডদখন httpcodexwordpressorgWordPress_Nonces

39

Nonce URL ততগয এফায চরন াঅপরগয উদাযন ডথপরক Nonce URL ততগয কগয একগট ডাসট গডগরট কযায জনয wp_nonce_url() পাাংন ফযফায কযা য় ltphp

$url = wp_nonce_url( $url $action )

gt

েথভ যাযাগভটায $url পরচছ গসটরাং URL এপরডর এয মাপরক াঅগন কপরয়যী গসটরাং এয Nonce কযপরত চান াফযফহরত পলাগগপরনয গডগরট গরঙক এযকভ থাপরক- httpexamplecomwp-admineditphppage= liton

_utagsampliton_action=deleteampid=6

এখাপরন ডদখন যাযাগভটায liton_action এফাং এয টযাগ াঅাআগড গিতীয় যাযাগভটায পরচছ $action একগট গসটরাং মা াঅগন একগট াফপরজকট এয জনয একগট action ততগয কযপরফন উপরয ডদখরাভ delete এযাকন এয টযাগ াঅাআগড 6 সতযাাং $action যাযাগভটায পরত াপরয bdquoliton_utags-delete_tag6‟ গনপরচ ফাসতফ উদাযন ডদগখ- ltphp

$delete_url = add_query_arg(array( liton _action=gtdeleteid=gt$id) )

$nonced_url = wp_nonce_url( $delete_url bdquoliton _utags-delete_tag$id )

gt

lta href=ltphp echo $nonced_url gtgtdeleteltagt

এাআ টযাগগট পরফ গডগরট গরঙক এখাপরন add_query_arg() পাাংন ফযফায কযা পরয়পরি মা কাপরযনট URL ডক এযাপরয যাযাগভটায এয ভপরধয যাপরখ ানযবাপরফ ফরপরর এগট ডমাগ কপরয এযকভাঃ liton_action=deleteampid=6 amp liton_action=deleteampid=6

Nonce Form ততগয Nonce পভডপরকও ডোপরটকট কপরয wp_nonce_field() পাাংপরনয ভাধযপরভ ltphp

wp_nonce_field( $action $name $referer $echo ) gt

$action ( string) (optional) - action নাভ াআউগনক identifier optional

গকনত recommended $name (string) (optional) ndash গপরডন গপলড পভড ডবগযপরয়ফর নাভ $referer (boolean) (optional) ndash গডপলট গপরপরফ true থাপরক ডমখাপরন গপলড

ডবগরপরডন এয দযকায য়

40

$echo (boolean) (optional) - গডপলট গপরপরফ true থাপরক ডমখাপরন াঅউটট ডদখাপরনায ফা গপরডন পভড গপলড গযটানড কযায জনয দযকায য়

পপরভড াঅনায action এয নাভ গদন ltform method=postgt

lt-- some inputs here --gt

ltphp wp_nonce_field(name_of_my_actionname_of_nonce_field) gt

ltformgt

াঅভযা একগট পলাগগন ফানাপরফা ডমখাপরন াফযফরত টযাগগপররাপরক াঅভযা ভযানয়াগর গডগরট ফা গযপরনভ কযপরত াযফ এগট একট ফড় গকনত াপরনক গফলয়াআ াঅপরগাআ াঅপররাচনা কযা পরয়পরি ডদখপররাআ ফেপরত াযপরফন একগট ফাসতফধভডী উদাযন গনপরচ গদরাভ- ltphp

Plugin Name Liton Unused Tags

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add an entry for our option page to the Posts menu

add_action(admin_menu liton_utags_add_page)

function liton_utags_add_page()

add_posts_page( Unused Tags Unused Tagsmanage_optionsliton_utags

liton_utags_option_page )

Catch any liton_action parameter in query string

add_action( admin_init liton_utags_do_action )

Proceed to requested liton_action if applicable

function liton_utags_do_action()

if( isset( $_REQUEST[liton_action] ) )

return

if( current_user_can( manage_options ) )

wp_die( Insufficient privileges )

41

$id = $_REQUEST[id]

$action = $_REQUEST[liton_action]

if( $action == done )

add_action( admin_notices liton_utags_message )

return

check_admin_referer( liton_utags-$action_tag$id )

switch( $action )

case rename

$newtag = array( name =gt $_POST[name] slug =gt

$_POST[name] )

wp_update_term( $id post_tag $newtag )

break

case delete

wp_delete_term( $id post_tag )

break

wp_redirect( add_query_arg( array( liton_action =gt done )

) )

Admin notice

function liton_utags_message()

echo ltdiv class=updatedgtltpgtAction

completedltpgtltdivgt

Draw the tag management page

function liton_utags_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtUnused Tagslth2gt

ltphp

if( $tags = liton_utags_find_orphans() )

echo ltpgtYou currently have count( $tags ) unused

tagsltpgt

echo ltolgt

foreach( $tags as $tag )

42

$id = $tag-gtterm_id

$name = esc_attr( $tag-gtname )

$delete_url= add_query_arg(

array(liton_action=gtdeleteid=gt$id) )

$nonced_url= wp_nonce_url( $delete_url

liton_utags-delete_tag$id )

gt

ltligt

ltform action= method=postgt

ltphp wp_nonce_field( liton_utags-rename_tag$id )

gt

ltinput type=hidden name=liton_action

value=rename gt

ltinput type=hidden name=id value=ltphp echo

$id gt gt

ltinput type=text name=name value=ltphp echo

$name gt gt

ltinput type=submit value=Rename gt or

lta href=ltphp echo $nonced_url gtgtdeleteltagt

this tag

ltformgt

ltligt

ltphp

else gt

ltpgtYou have no unused tagsltpgt

ltphp endif gt

ltolgt

ltdivgt

ltphp

Find unused tags return them in an array

function liton_utags_find_orphans()

global $wpdb

$sql = SELECT termsterm_id termsname FROM

$wpdb-gtterms terms

INNER JOIN $wpdb-gtterm_taxonomy taxo

ON termsterm_id=taxoterm_id

WHERE taxotaxonomy = post_tag

43

AND taxocount=0

return $wpdb-gtget_results( $sql )

gt

ডযাপরফাপরডড এাআ পলাগগপরনয ডভন াওয়া মাপরফ ডাসট এয াফপরভন গপরপরফ গনপরচ ডদখন-

এফায পলাগগন ডভনপরত গিক কপরয ডদগখ পলাগগপরনয ডবতপরযয কাজ-

উপরয ডদখন াঅগভ একগট টযাগ ততগয কপরযগিরাভ l i নাপরভ এগট এখাপরন ডদখাপরচছ াঅগভ চাাআপরর এগট এগডট ফা গডগরট কযপরত াগয এফায গডগরট গরঙক এ ভাউপরয কাডয ডযপরখ গনপরচ গরঙক ডদখন ফা গডগরট করন একগট টযাগ াঅভায এখাপরন URL গট এযকভ httplocalhostdev-litonwp-

admineditphppage=liton_utagsampliton_action=doneampid=4amp_wpnonce=30a44b7

986

এখাপরন াঅগভ liton_action=done ফযফায কপরযগি Nonces এয পাাংনগপররায নাভ গনপরচ গদরাভ াঅনাযা ডদপরখ গনপরফন াআনটাযপরনট ডথপরক wp_nonce_field()

wp_nonce_url()

wp_verify_nonce()

wp_create_nonce()

44

check_admin_referer()

check_ajax_referer()

ডাটাপরফ াঅনাযা ডমপরত গএাআচগ গনপরয় কাজ কপরযন এগকউএর ডাটাপরফ এয াপরথ ফাাআ কভপরফী গযগচত এয গনটযাকস গপররা ডভাটাভগট ফায জানা একাআ বাপরফ াপরনপরকাআ ওয়াডডপরেপরও ডাটাপরফ ডকাড গরপরখন এটা ডকাগডাং এয জনয খাযা গদক াঅগভ নযভার গএাআচগ- এগকউএর ডকাড এয উদাযন গদগচছ- ltphp

$sql=rdquoINSERT INTO $wpdb-gtposts(post_title) VALUES(bdquo$title‟)rdquo

$wpdb-gtquery($sql) gt

এফায ওয়াডডপরেপরয সটযানডাডড ডকাগডাং গপরসটভ ডদখন- ltphp

$wpdb-gtinsert($wpdb-gtposts

array(bdquopost_title‟ =gt $title)

array(bdquos‟)

)

gt

ডাটাপরফ গগকউয কযায জনয াঅপরডট াাপরযন ডদখাফ- গনপরচয ডকাডগট খাযা েযাকগট ltphp

$wpdb-gtquery(ldquoUPDATE $wpdb-gtposts SET post_title=‟$newTitle‟ WHERE

ID=$my_idrdquo )

gt

উপরযয ভত কপরয না গরপরখ গনপরচয ভত কপরয গরখন- ltphp

$wpdb-gtupdate($wpdb-gtposts

Array(bdquopost_title‟ =gt‟$newTitle‟)

Array(bdquoID‟ =gt$my_id

)

gt

ানর বাপরফ ানযানয াাপরযন গপররা গরখপরফন

45

াধযায়- াঅটাঃ ডরাকারাাআপরজন এফাং Set t i ngs API

ডরাকারাাআপরজন ডরাকারাাআপরজন একগট গরতবনড গফলয় এয পাাংনগপররা র- load_theme_textdomain()

load_plugin_textdomain()

উদাযন- ltphp $var=__(bdquoHello‟‟domain‟) gt

ltphp _e(bdquoHello‟‟domain‟) gt

গফসতাগযত গনপরচয গরপরঙক ডদখন- httpcodexwordpressorgI18n_for_WordPress_Developers

ডগটাং API

ডগটাং API পরচছ াঅগন গকি ান ততগয কযপরফন মা াআনটাযনার বাপরফ াঅনায পলাগগপরন এপলাাআ পরফ মখন াঅগন াআউজায- গডপাাআন ান ততগয কযপরফন াঅনায পলাগগপরনয জনয তখন Settings

API ndashএ াঅনায ডকাড মতটা ারন জ করন Settings API াঅনায ডম কাজগপররা handle কপরয-

ওয়াডডপরেপরক জাগনপরয় ডদয় ডম াঅগন গনজসব ান ফযফায কযপরফন াঅনায াআনটপরক পাাংপরনয ভপরধয উপরেখ কযপরফ ডফগয বাগ ান ডজ গনপরজাআ ততগয কযপরফ $_POST ডাটা গপররাপরক ভগনটয কপরয ান ততগয এফাং াঅপরডট কপরয(মগদ েপরয়াজন য়)

Settings API পাাংন Settings API পাাংপরন গতনগট ডসট থাপরক- ১ েথপরভ ওয়াডডপরেপরক ফপরর ডম াঅগন নতন ডগটাং ফযফায কযপরফন াঅনায পলাগগপরনয জনয ২ এয পরয ডগটাং গডপাাআন করন (text areas input boxes and any

HTML form element) এফাং এপরদযপরক একাপরথ রে কপরয যাপরখ ৩ ওয়াডডপরেপরক াঅনায ডগটাং actual form এ ডদখাপরনায জনয ফপরর

46

এফায াঅভযা একগট পলাগগন ফানাপরফা Administration Page ndashএ ডযপাপরযনস গপরপরফ ডদখপরত াপরযন- httpcodexwordpressorgAdding_Administration_Menus

httpcodexwordpressorgFunction_Referenceadd_options_page

httpcodexwordpressorgAction_ReferenceActions_Run_During_an_Admin_P

age_Request

পলাগগপরনয এডগভন ডজ পরফ এযকভ- httpexamplecomwp-adminoptions-generalphppage=liton_myplugin

েথপরভ াঅভযা ডভন ততগয কযফ াঅপরগয ভত কপরয- Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

এফায ান ডজ এ পভড গনপরয় গকি ডগটাং ডদফ function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

উপরযয ডকাপরড াঅভযা একগট পপরভডয ভপরধয রধ াফগভট ফাটন এফাং My Plugin নাপরভ ডজ ততগয কপরযগি ডযাপরফাপরডড ডদখন-

47

ডগটাং এয াফ ডভন গপরপরফ My Plugin াঅপরি এফাং My Plugin ডত গিক কযপরর াঅভযা উপরযয ডজ ততগয কপরযগি ডমখাপরন াফগভট ফাটনগট ডদখাপরচছ এফায গতনগট যাযাগভটায ডযগজসটায কযফ- ltphp

register_setting( liton _myplugin_options liton _myplugin_options liton

_myplugin_validate_options)

gt

েথভগট ডগটাং রেপরয নাভ গিতীয়গট ান নাভ মা াঅভযা get_option() পাাংন গদপরয়ও ডপরত াগয ততীয়গট করফযাক পাাংন এগট একগট গসটরাং ডযপাপরযনস পাাংন এখাপরন াঅভযা নাভ

48

গদপরয়গি liton _myplugin_validate_options মা া কযপরফ পপরভডয কর ডব ডগটাং াঅভযা এটা পরয গডপাাআন কযফ

ডগটাং গডপাাআন ডকন add_settings_field() এফাং add_settings_section() পাাংন গদপরয় াঅভযা াঅভাপরদয কর ডগটাং গডপাাআন কযফ ltphp

add_settings_section( liton_myplugin_main My Plugin Settings

liton_myplugin_section_text liton _myplugin)

add_settings_field( liton _myplugin_text_string Enter text here

liton _myplugin_setting_input liton _myplugin liton _myplugin_main)

gt

add_settings_section() পাাংন গদপরয় াঅভযা ডদখাফ াঅপরর ডজ এ ডকন ডকভন ডদখাপরফ এয চাযগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ ডকন টাাআপরটর ltH3gt টযাপরগয ভপরধয করফযাক পাাংন এয নাভ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ (page= liton _myplugin এগট

URL এয াাং গপরপরফ থাকপরফ) গিতীয় যাযাগভটায add_settings_field() পপরভডয াআনট গপরপরফ ডদখাপরনা পরয়পরি এখাপরন াাচগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ পরযয গপপরলড গক গেনট কযা পরফ তা ডটকসট গপরপরফ ডদখাপরনা পরয়পরি(Enter text

here)

করফযাক পাাংন পপরভড গেনট কযপরফ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ ডগটাং ডপরজয ডকন গপলড মা add_settings_section() পাাংপরন গডপাাআন

কযা পরয়পরি ltphp

Explanations about this section

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

49

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton _myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name= liton _myplugin_options[text_string]

type=text value=$options[text_string] gt

gt

গিতীয় পাাংন ান বযার text_string ডক এযাপরযপরত ডসটায কপরয ডযপরখপরি এফায াআউজায াআনট বযাগরপরডট কযফ- ltphp

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace([^a-zA-Z]$input[text_string] )

return $valid

gt

পভডপরক ডযনডায কযফ- ltphp

Draw the options page

function liton_myplugin_options_page()

gt

ltdiv class=wrapgt

ltphp

screen_icon()

gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp

settings_fields( liton_myplugin_options)

do_settings_sections(liton_myplugin)

50

gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

settings_fields() পাাংনগট ডযপাপরযনস গপরপরফ ফযফায কযা পরয়পরি মা াঅভযা register_setting() পাাংপরন গডপরিয়ায কপরযগি do_settings_sections() পাাংনগট কর কযপরফ কর াঅউটট ডকন এফাং পভড গপলডপরক মা াঅভযা পরফড গডপাাআন কপরযগি াঅভাপরদয কাজ ডল এফায পরযা পলাগগনগট ডদখফ- ltphp

Plugin Name Settings API example

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

Draw the option page

function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save

Changes gt

ltformgtltdivgt

ltphp

51

Register and define the settings

add_action(admin_init liton_myplugin_admin_init)

function liton_myplugin_admin_init()

register_setting( liton_myplugin_options

liton_myplugin_options

liton_myplugin_validate_options )

add_settings_section( liton_myplugin_main My Plugin

Settings

liton_myplugin_section_text liton_myplugin )

add_settings_field( liton_myplugin_text_string Enter text

here

liton_myplugin_setting_input liton_myplugin

liton_myplugin_main )

Draw the section header

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton_myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name=liton_myplugin_options[text_string]

type=text value=$text_string gt

Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

return $valid

gt

52

ডদখন ডযাপরফাপরডড ডকভন ডদখায়-

পরয় ডগর াঅভাপরদয েথভ নডাাংগ পলাগগন ান ডজ াঅপরযকগট গজগন ডমটায জনয এতগকি পলাগগন URL এপরডর- httplocalhostdev-litonwp-adminoptions-

generalphppage=liton_mypluginampsettings-updated=true

াঅভায এখাপরন এযকভ ডদখাপরচছ ডটকসট ফপরকস ডকান গকি গরপরখ ডব কযায য এফাপরয াঅপরযকগট গজগন ডদখফ াঅভযা াপরনক ভয়াআ াপরনক পলাগগপরনয াআনট গপপরলড বর ডাটা াআনট কযপরর এযয ডভপরজ ডদখায় এাআ কাজগট কযফ এফায াঅভযা এখাপরন esc_attr() ফা esc_html() ফযফায কগযগন সতযাাং াঅভাপরদয গরগভপরটন থাকপরি ডবগরপরডট পাাংনগট একট এগডট কগয গনপরচয ভত কপরয Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

if( $valid[text_string] = $input[text_string] )

add_settings_error(liton_myplugin_text_stringliton_myplugin_texterror

53

Incorrect value enterederror)

return $valid

উপরয ডদখন add_settings_error() পাাংন ফযফায কপরযগি মা এযয ডচক কযপরফ পপরভডয াঅগভ একগট বর ডাটা(পরসপার কযাপরযকটায) াআনট কপরয ডদখরাভ এযয ডদখাপরচছ-

তায ভাপরন াঅভযা পর পরয়গি াঅনায পলাগগনগট এগডট কপরয ডনপরফন ডকায ডকন এফাং গপপরলডয গরসট গদরাভ াঅনাপরদয সগফধায জনয

54

CSSJS পাাআর মি কযা

াঅনায পলাগগপরন গএএ ফা জাবাগিে ডমাগ কযপরত পরত াপরয াঅগন চাাআপরর ফাগপরযয ডকান ফা াঅনায ততগয ডকান গএএ ফা জাবাগিে পাাআর ডমাগ কযপরত াপরযন তপরফ এপরকষপরতর াঅভযা ডমবাপরফ HTML এ পাাআর ডমাগ কগয ডযকভ না function liton_scripts()

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtojqueryjsrdquogtltscriptgt‟

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtoscriptjsrdquogtltscriptgt‟

add_action(bdquowp_head‟‟liton_scripts‟)

এগট মপনডরপর বর িগত গনপরচ ডদখন ওয়াডডপরেপর গকবাপরফ পাাআর মি কযপরত য়- function liton_scripts()

wp_enqueue_script(bdquojquery‟)

wp_enqueue_script(bdquotheme-scripts‟‟pathtoscriptsjs‟)

add_action(bdquowp_enqueue_script‟‟liton_scripts‟)

ানর বাপরফ াঅগন সটাাআরীট ডমাগ কযপরত াপরযন- function liton_styles()

wp_enqueue_ style (bdquocss‟)

wp_enqueue_ style (bdquotheme- styles‟pathto stylescss‟)

ডযপাপরযনস ডদখন- httpcodexwordpressorgFunction_Referencewp_enqueue_script

httpcodexwordpressorgFunction_Referencewp_enqueue_style

টডপরকাড টডপরকাড পরচছ ওয়াডডপরেপরয ডসপগগপক ডসপার টযাগ মা াঅগন ডাসট ফা ডপরজয ভপরধয াআনাটড কপরয ানয ডকান কনপরটনটপরক ওপরয়ফাাআপরটয ভপরধয গযপরপল কযপরত াযপরফন মগদ াঅগন গযারাগয টাাআপরয ডকান পলাগগন ফযফায কপরয থাপরকন তাপরর াঅনায ধাযনা থাকায কথা মাাআ ডাক াঅগভ কপরয়কগট উদাযি ডদখাফ

55

েথপরভ একগট পলাগগন ততগয কযফ ডমখাপরন add_shortcode() নাপরভয একগট পাাংন থাকপরফ এগট রগট যাযাগভটায েন কপরয েথভগট টডপরকাপরডয নাভ গিতীয়গট ডম পাাংনপরক কর কযপরফন ডগট াঅভযা একগট উদাযন ডদগখ- ltphp

Plugin Name Liton Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(litonhi)

function hi()

echo Hello World

gt

উপরয ডদখন খফ ডিাট গকনত াঅগন চাাআপরর এয ফযফায াপরনক গফসতত কযপরত াপরযন এখাপরন টডপরকাড নাভ পরচছ liton াঅয এগটপরক ডরখা য় এবাপরফ [liton] াঅভযা ডাপরসটয ভপরধয াআনাটড কপরয ডদগখ াঅউটট ডকভন ডদখায়-

এফায াঅউটট ডদগখ-

56

াঅভাপরদয ততগয কযা টডপরকাড পরবাপরফাআ কাজ কযপরি াঅপরযকগট উদাযন ডদখফ াঅনাযা াপরনপরকাআ গগর এডপরনস গনপরয় কাজ কপরযন াঅনাযা াপরনপরকাআ এডপরনস এয জনয পলাগগন ফযফায কপরযন গকনত চাাআপররাআ এাআ কাজগট াঅনাযা গনপরজয ভত কপরয াগজপরয় গনপরত াপরযন গগপররয কাপরি ফ ডাসট বযার ায়না াঅনাযা মাযা একসাটড াঅপরিন তাযা এটা বার কপরয জাপরনন তাাআ াপরনপরকাআ গগপররয ডকাড ফ ডপরজ ডদখাপরত চান না এজনয পলাগগন ফযফায কপরয রাব য়না কাযন পলাগগপরন জায়গা গপকসড থাপরক এপরত কপরয াঅগনডাং ও কভ য় াঅনাযা টডপরকাড ফযফায কপরয ডমপরকান জায়গায় এড ডদখাপরত াপরযন গনপরচ াঅগভ রগট টডপরকাড ততগয কপরযগি র‟ধযপরনয এড ডদখাপরনায জনয ltphp

Plugin Name Liton Adsense Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(adsense_468adsense_468_60)

add_shortcode(adsense_250adsense_250_250)

function adsense_468_60($atts)

return ltscript type=textjavascriptgtlt--

57

google_ad_client = ca-pub-0956247412222369

468x60 created 101510

google_ad_slot = 4372705450

google_ad_width = 468

google_ad_height = 60

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

function adsense_250_250($atts)

return ltscript type=textjavascriptgtlt--

google_ad_client = ca-pub-0956247412222369

250x250 created 81809

google_ad_slot = 9368091893

google_ad_width = 250

google_ad_height = 250

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

gt

একগট টডপরকাড ফযানায টাাআপরয জনয এফাং াঅপরযকগট ২৫০২৫০ াাআপরজয এফায ডাপরসট ডমপরকান একগট টডপরকাড াআনাটড করন ডমখাপরন াঅনায ডদখাপরনায েপরয়াজন ভপরন কপরযন াঅগভ রগট ডকাড ডটসট কপরয ডদখরাভ-

58

এফায াাআপরটয াঅউটট ডদগখ-

রগট এডাআ ডদখাপরচছ াঅপরযা াপরনক কাপরজ াঅগন টডপরকাড ফযফায কযপরত াপরযন ডযপাপরযনসাঃ httpcodexwordpressorgShortcode_API

59

াধযায়- নয়াঃ পলাগগন উদাযন

ওয়াডডপরেপরয ডডটটাাআভকপরভনট নামবায ফাাংরা কযায পলাগগন াঅভাপরক কপরয়কজন ফপররগিপররন ওয়াডডপরেপরয গডপলট ডডটটাাআভকপরভনট নামবায ফাাংরা য়না রযাাংগপরয়জ ফাাংরা কযায যও ডডটটাাআভকপরভনট নামবায গপররা াআাংপরযগজ ডথপরক মায় গনপরচয পলাগগনগট ফযফায কপরয ডদখপরত াপরযন- ltphp

Plugin Name Liton Bangla datetimecomment number

Plugin URI httpliton-onlinecomplugins

Description Bangla datetimecomment number

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

This function converts all english numbers to bangla number

function make_bangla_number($str)

$engNumber = array(1234567890)

$bangNumber = array( ১ ২ ৩ ৪ ৫ ৬ ৭ ৮ ৯ ০ ) $converted = str_replace($engNumber $bangNumber $str)

return $converted

add_filter( get_the_time make_bangla_number )

add_filter( the_date make_bangla_number )

add_filter( get_the_date make_bangla_number )

add_filter( comments_number make_bangla_number )

add_filter( get_comment_date make_bangla_number )

add_filter( get_comment_time make_bangla_number )

gt

60

সলাাআডায পলাগগন াঅভযা এাআ ফাআপরয়য কর গটউপরটাগযয়াপরর মা মা গখরাভ তা এফায একগট নডাাংগ পলাগগপরনয এপলাাআ কযফ সলাাআডায পলাগগন মপপরকড াঅভযা ফাাআ জাগন একগট ওপরয়ফাাআপরটয ডচাযা ারপরট ডদয় একগট সলাাআডায াপরনক ডাাআনাগভক ভপরন য় ডদখপরতও াপরনক বার রাপরগ এাআ পলাগগপরন াঅভযা এডগভন যাপরনর ডথপরক াআপরভজ ডমাগ কযফ এফাং তা াঅভাপরদয াাআপরট ডদখাফ চরন কাজ রর কগয- েথপরভ গনপরবা সলাাআডায এয ওপরয়ফাাআপরট মান এফাং jQuery Plugin ডাউনপররাড করন

ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom Version 10

gt

াঅভযা পলাগগপরনয ডডায ততগয কযরাভ

পলাগগন গরপরসট ডদখাপরচছ bdquoLitons Nivo Plugin‟ াঅভাপরদয েথভ কাজ পরচছ custom post

type ওয়াডডপরে পাাংনাগরগট একগট নতন কাসটভ ডজ ততগয কযপরত custom post type

ফযফহরত পরফ ডমখাপরন একগট াআপরভজ থাকপরফ াঅভযা রধ টাাআপরটর ডনভ এফাং াআপরভজ াঅপররাডায গপরপরফ গপচায াআপরভজ পাাংনাগরগট ফযফায কযফ function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_function 600 280 true)

61

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

add_action(init np_init)

উপরযয ডকাপরড np_init() পাাংনগট রক কপরযগি মা ডডায যান কযায াঅপরগ যান পরফ াঅয এজনয register_post_type() পাাংনপরক এয যাযাগভটায গদপরয় np_init() পাাংপরনয ডবতপরয মি কপরযগি এটা মগদ না কযতাভ তাপরর ldquoHeaders already sentrdquo ডভপরজ ডদখাত এাআ ডভপরজগটয াপরথ াপরনপরকাআ গযগচত াঅা কগয register_post_type() পাাংন গদপরয় াঅভযা াআপরভজ মি এফাং ভযাপরনজ কযফ ভরত াঅভযা একগট নতন custom post type ডমাগ কপরযগি np_images নাভ গদপরয় নতন custom post type ডক ডগটাং বযার গপরপরফ াঅযগপরভনট া কপরযগি $args ডবগযপরয়ফরগট ট ডরপরবর ডভন ততগয কপরয াঅপরগাআ ডদপরখগি পলাগগনগট এগকটপরবট কযপরর াঅভযা গনপরচয ভত ডদখপরত াফ-

এফায গিে এফাং সটাাআরীট ডক মি কযফ- add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

এফায রক কযা পাাংনগপররা গডপরিয়ায কগয- function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__) array( jquery ))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

62

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

উপরযয ডকাডগপররা নতন কপরয ফিডনা কযায গকি ডনাআ াঅপরগাআ wp_enqueue_style() এফাং wp_enqueue_script() মপপরকড ফরা পরয়পরি নতন াঅপরযকগট পাাআর ততগয করন একাআ গডপরযকটগযপরত scriptjs এফাং গনপরচয ডকাডটক গদন- jQuery(document)ready(function($)

$(slider)nivoSlider()

)

াআপরভজপরক গযাাআজ করন- add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

াঅভযা এাআ পলাগগনগটপরক উাআপরজট গপরপরফও ফযফায কযফ ডগট পরয ডদখফ াঅপরযকগট গজগন মগদ গথপরভ না ডদয়া থাপরক ডজনয থামবপরনাআর াপরাটড গদপরয় গদন- add_theme_support( post-thumbnails )

এফায ওয়াডডপরেপরয কাপরযনট ডাসট কপরয়যী কযায ডকাড াঅয $result ডবগযপরয়ফপরর ডমফ ltdivgt টযাগ ফযফায কযা পরয়পরি তা jQuery Plugin গট একসিাকট কপরয indexhtml ডজগটয ডভাআন সলাাআডায ডকাডগট ডদখন একাআ াঅপরি রধ ডখানকায ltdivgt টযাগ গপররাপরক কগ কপরয এাআ পলাগগপরন ফযফায কযা পরয়পরি এফায টডপরকাড গদন- add_shortcode(np-shortcode np_function)

এাআ টডপরকাড গএাআচগ পাাংনপরক রক কযপরফ এফাং এয ভধয ডথপরক সলাাআডপরায কনপরটনট ডক গযটানড কযপরফ াঅভাপরদয টডপরকাড পরচছ [np-shortcode] াঅভযা পলাগগপরন মাাআ এফাং একগট িগফ মি কগয গপচাযড াআপরভজ গপরপরফ গনপরচ ডদখন-

63

াঅগভ াঅপরযকগট ডজ ততগয কপরযগি ডমখাপরন টডপরকাড গদপরয়গি

াঅউটট ডজ ডদগখ এফায-

64

পরয় ডগর াঅভাপরদয সলাাআডায পলাগগন পরযা ডকাডগট গনপরচ গদরাভ- ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

65

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

66

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

এফায াঅগন মগদ উাআপরজট গপরপরফ ফযফায কযপরত চান তাপরর গনপরচয ডকাডটক গদন- class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

67

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

echo $after_widget

াঅপরযা রগট কাজ কযপরত পরফ াঅনাপরক এক াআপরভজ াাআজ উাআপরজট এয জনয গঠক কপরয গদপরত পরফ- add_image_size(np_widget 180 100 true)

াঅপরযকগট র উাআপরজট এযাকন রক ডমাগ কযা add_action(widgets_init np_widgets_init)

উাআপরজট পরযা ডকাড াঅফায গদরাভ- ltphp

Plugin Name Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Ciprian Turcu

Version 10

68

class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

69

echo $after_widget

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

70

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(widgets_init np_widgets_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

71

পলাগগন গনপরয় এত ডিাট গযপরয ডরখা মভফ নয় এজনযাআ ভপরন য় পলাগগন গনপরয় ডকউ ডরপরখন না কাযন এখাপরন এত গফলয় াঅপরি মা াঅপররাচনা কযপরত ডগপরর ৫০০ ডজ ায পরয় মাপরফ ডফাোয সগফধাপরথড াঅগভ মথামভফ উদাযন গদপরয় ডফাোপরনায ডচষটা কপরযগি াঅগভ এখাপরন টাপরগডট কপরযগি মাযা টকটাক জাপরন পলাগগন মপপরকড এডবানস ডরপরবপররয নয় কাযন তাযা জাপরনন াঅভায উপরেশয গির মাযা জানপরত চায় তাপরদযপরক জানাপরনা এখাপরন ডমফ গফলয় াঅপররাচনা কযা পরয়পরি তা ডভাটাভগট ভাপরনয একগট পলাগগন ফানাপরনায জনয মপরথষট তপরফ ভাপরনাননয়পরনয জনয াঅনাপরক গনপরজাআ খাপরজ গনপরত পরফ াঅনায জনয ডকানটা বার পরফ াঅগভ রধ গদক গনপরদডনা গদরাভ ভাতর এাআ ফাআগট রধভাতর ওয়াডডপরে রেপরয জনয ডরখা াপরনক বর ভরাগনত থাকপরত াপরয াঅনাযা কষভাসনদয দগষটপরত ডদখপরফন াঅগভ ডচষটা কপরযগি মতটা জ কপরয ডরখা মায় াপরনক ভয় ডদখা মায় ডম খফ ডিাট খাপরটা গফলয় গনপরয় াপরনপরকাআ নক কপরযন এটা গতয রাঃখজনক াঅনাযা গগপরর একট খাজপররাআ ভাধান াপরফন াঅপরগ গনপরজ ডচষটা করন তায পরয ানযপরক ভাধাপরনয জনয গজজঞাা করন াঅভায জনয ডদায়া কযপরফন বাপররা রাগপরর জানাপরফন খাযা রাগপররও জানাপরফন তাপররাআ াঅভায গযশরভ সবাথডক পরফ ভতাভত জাগনপরয় াঅভাপরক ডভাআর কযপরত াপরযন litonice09gmailcom |

72

Page 23: Wordpress Plugin Development

24

create custom top-level menu

add_menu_page( Liton Menu Page Liton Menu Page manage_options

__FILE__ liton_menu_settings_page plugins_url( imageswp-logopng

__FILE__ ) )

gt

াঅভযা একগট ট ডরপরবর ডভন ততগয কযরাভ ডদখন ডযাপরফাপরডড ডকভন ডদখায়-

Liton Menu Page নাপরভ একগট ডভন ততগয পরয় ডগপরি এফাপরয াঅভযা াফপরভন কযফ ভাপরন Liton Menu Page এয গনপরচ গকি ডগটাং ডভন(মগদ েপরয়াজন য়) াফ ডভন ডযগজসটায কযায জনয add_submenu_page( ) পাাংন ফযফায কযা য় ltphp

add_submenu_page( parent_slug page_title menu_title capabilitymenu_slug

function )

gt

parent_slug- ডভন সলাগ মা াঅভযা াঅপরগ গডপাাআন কপরযগি menu_slug- মা ডভনপরক াফপরভনপরত ডযপায কযপরফ ফাগক পাাংনগপররা াঅপরগয ভতাআ

এফায াফপরভনয জনয গকি াগতগযি ডকাড ডমাগ কগয create submenu items

add_submenu_page( __FILE__ About My Plugin About manage_options

__FILE___about liton_menu_about_page )

add_submenu_page( __FILE__ Help with My Plugin Help

manage_options

__FILE___help liton_menu_help_page )

add_submenu_page( __FILE__ Uninstall My Plugin Uninstall

manage_options

__FILE___uninstall liton_menu_uninstall_page )

25

পরযা ডকাডগট পরফ এযকভ- ltphp

Plugin Name Liton Menu

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action( admin_menu liton_menu

)

function liton_menu()

create custom top-level menu

add_menu_page( Liton Menu Settings Page Liton Menu Page

manage_options __FILE__

liton_menu_settings_page

plugins_url( imageswp-logopng __FILE__ ) )

create submenu items

add_submenu_page( __FILE__ About My Plugin About manage_options

__FILE___about liton_menu_about_page )

add_submenu_page( __FILE__ Help with My Plugin Help

manage_options

__FILE___help liton_menu_help_page )

add_submenu_page( __FILE__ Uninstall My Plugin Uninstall

manage_options

__FILE___uninstall liton_menu_uninstall_page )

gt

গনপরচ ডদখন াফপরভনগপররা ততগয পরয় ডগপরি-

26

ডভনপরক াঅপরগয ডভনয াপরথ মি কযা এফায াঅগ গিতীয় িগতপরত মগদ াঅনায পলাগগপরনয একগট ভাতর ডজ থাপরক একগট ভাতর ডপরজাআ াঅনায কর ডগটাং পরয় মায় তাপরর এাআ িগত েন করন ডমভন ডয়াগযাং াাআটগপররায জনয রধ াঅনায াঅাআগডপযানপরপরজয াঅাআগড দযকায য় এযকভ পলাগগন এধযপরনয পলাগগপরনয জনয াঅনায াগতগযি ডভন ততগয কযায দযকায ডনাআ ফযাং এপরত কপরয াআউজায গফযি ডফাধ কযপরত াপরযন এ ধযপরনয পলাগগনগপররা ডগটাং এয াফপরভন গপরপরফ থাপরক add_options_page() এাআ পাাংন গদপরয় এফ ডভন ডযগজসটায কযা য় ltphp

add_options_page( page_title menu_title capability

menu_slug function)

gt

এফায চরন এযকভ একগট ডভন ততগয কগয- ltphp

Plugin Name Liton Sub Menu

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action( admin_menu liton_submenu)

function liton_submenu()

create a submenu under Settings

add_options_page( Liton Menu Settings Page Liton Menu Page

manage_options __FILE__

liton_menu_settings_page)

27

gt

াফপরভন ততগয পরয় ডগপরি চরন ডদগখ ডযাপরফাপরডড ডকভন ডদখায়-

এপরকফাপরয গনপরচয গদপরক ডদখন Liton Menu Page নাপরভ একগট ডভন ততগয পরয়পরি

উাআপরজট ততগয কযা উাআপরজট ততগয কযায জনয ওয়াডডপরে WP-Widget িা গদপরয় ততগয কযা য় উাআপরজট এয একগট পযভযাট ডদখন গনপরচ ltphp

class My_Widget extends WP_Widget

function My_Widget()

processes the widget

function form($instance)

displays the widget form in the admin dashboard

function update($new_instance $old_instance)

process widget options to save

function widget($args $instance)

displays the widget

gt

28

উাআপরজট ডযগজসটায কযায জনয widget_init() পাাংনপরক রক কযা য় চরন একগট উাআপরজট ততগয কগয- ltphp

Plugin Name Liton Widget

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

class Messager extends WP_Widget

function __construct()

$params=array(

description =gtDisplay message to readers

name =gt Message

)

parent__construct(Messager $params)

public function form()

public function widget()

add_action(widgets_initliton_register_message)

function liton_register_message()

register_widget(Messager)

gt

29

খফ াধাযন একগট উাআপরজট পলাগগন এগট াঅভযা াআউজাযপরদযপরক একগট ডভপরজ ডদখাপরফা াাআডফাপরয ডটাাআ কযায ডচষটা কযগি এখন পলাগগনগট এগকটপরবট কপরয ডদগখ-

াঅভাপরদয উাআপরজটগট ডদখাপরচছ এফায াঅপরযা গকি পাাংনার কাজ কগয এগট মগদ াাআডফাপরয ডরাগ কপরয ডদন তাপরর ডকান কাজ কযপরফ না কাযন াঅভযা এখপরনা গকিাআ কগযগন পভড পাাংপরন গকি কাজ কগয মা উাআপরজট টাাআপরটর গপরপরফ ডদখাপরফ- public function form($instance)

extract($instance)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title)gtgtTitle ltlabelgt

ltinput

class=widefat

id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt

value=ltphp if(isset($title)) echo esc_attr($title) gt gt

ltpgt

ltphp

াঅভযা উপরয class=widefat ফযফায কপরযগি এাআ িা ফযফায কযায কাযপরন পভড এয াআনট গপলডগট াপরনক সনদয পরয়পরি

30

মগদ এাআ িা ফযফায না কগয তাপরর ডকভন ডদখাপরফ গনপরচ ডদখন-

াঅভাপরদয উাআপরজট পলাগগনগটয ডকাড গনপরচ ডদওয়া র ltphp

Plugin Name Liton Widget

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

class Messager extends WP_Widget

function __construct()

$params=array(

description =gtDisplay message to readers

name =gt Message

)

parent__construct(Messager$params)

31

public function form($instance)

extract($instance)

print_r($instance)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title)gtgtTitle ltlabelgt

ltinput

class=widefat

id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt

value=ltphp if(isset($title)) echo esc_attr($title) gt gt

ltpgt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(description)gtgtDescription

ltlabelgt

lttextarea

class=widefat

rows=10

id=ltphp echo $this-gtget_field_id(description) gt

name=ltphp echo $this-gtget_field_name(description) gtgtltphp

if(isset($description)) echo esc_attr($description) gtlttextareagt

ltpgt

ltphp

public function widget($args$instance)

extract($args)

extract($instance)

echo $before_widget

echo $before_title$title$after_title

echo ltpgt$descriptionltpgt

echo $after_widget

add_action(widgets_initliton_register_message)

function liton_register_message()

32

register_widget(Messager)

gt

এফায াঅভযা ডযাপরফাডড ডথপরক একগট ডভপরজ ডদফ গবগজটযপরদযপরক-

াঅভযা এাআ উাআপরজটগট ডাাআনাগভক বাপরফ কপরযগি কাযন এখাপরন lth2gt lth3gt lth4gt এ ধযপরনয ডকান টযাগ াঅভযা ফযফায কগযগন াঅভযা গথভ ডডপরবর কযগিনা সতযাাং এ কাজগট াঅভাপরদয ানযবাপরফ কযা দযকায গির এগট গথভ ডডপরবরায ডদগখপরয় ডদপরফন ডম ডকভন টযাগ পরফ াাআডফাপরয াাআপরটয াাআডফাপরয ডকভন ডদখায় তা ডদখন- াঅভযা রগট গথপরভ এগট ডটসট কপরয ডদখফ েথভগট টপরয়গনট াআপররপরবন

33

এফায াঅপরযকগট গথপরভ ডদগখ-

34

াধযায়- িয়াঃ পলাগগন পাাংন

গকি ডফগক পাাংন __() পাাংন

__() পাাংনগট গএাআচগপরত াঅনায ডটকসটপরক ডযগড কপরয িানসপররন এফাং গযটানড কপরয উদাযন গপরপরফ াঅগন একগট বযারপরক __() পাাংপরনয ভপরধয ডবগযপরয়ফর গদপরয় assign করন ভপরন যাখপরফন এাআ পাাংনগট রগট াঅনডাযপরিায(_) গদপরয় গগঠত একগট নয় ltphp

$text=__(bdquoWordpress is a wonderful publishing platform‟‟liton_plugin‟)

gt

_e() পাাংন _e() পাাংনগট াঅনায ডটকসবপরট ডরাকারাাআজ কপরয এটা গএাআচগপরত echo এয ভত কাজ কপরয ডকান ডটকসটপরক গিপরন ডদখাপরনায জনয এফায একট ভজা কগয মা রপরক ডদপরখগি াঅপরগাআ- _e() পাাংনগট গদপরয় াঅপরগয পলাগগনগট এগডট কযফ ltphp

Plugin Name Liton Action

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(wp_footer liton_footer_action)

function liton_footer_action()

Output the translated text

_e( This site runs off the coolest platform ever ampmdash

WordPress

liton-plugin )

gt

35

এফায াঅউটট ডদগখ

esc_attr__() পাাংন এাআ পাাংনগট esc_attr() এয ভত এগট এাআচগটএভএর এগিগফউটপরক escape কপরয াঅভযা এফায esc_attr__() এফাং __() এাআ রগট পাাংনপরক একগট কপরয পলাগগন ততগয কযফ ltphp

Plugin Name Liton Esc Attr

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

A function that returns a link to the sites terms of service

page

function liton_terms_of_service_link()

return lta href=httpliton-onlinecomtos title=

esc_attr__( Visit the Terms of Service page boj-plugin ) gt __( Terms of

Service liton-plugin ) ltagt

Display the output of the liton_terms_of_service_link()

function

echo liton_terms_of_service_link()

gt

পলাগগনগটয াঅউটট ডদখন-

36

এযকভ াঅপরযা গকি পাাংন াঅপরি ডমগপররা াঅনাযা ডদপরখ ডনপরফন াআনটাযপরনট ডঘপরট

esc_html__() Function

esc_attr() Function

esc_url() Function

esc_js() Function

esc_html() Function

esc_attr_e() Function

esc_html_e() Function

_x() Function

_ex() Function

esc_attr_x() Function

esc_html_x() Function

_n() Function

_nx() Function

_n_noop() Function

_nx_noop() Function

Translation

bull Poedit httppoeditnet

bull GlotPress httpglotpressorg

bull Launchpad httpstranslationslaunchpadnet

bull Pootle httppootlelocamotionorg

bull KBabel httpi18nkdeorg

bull GNU Gettext httpgnuorgsoftwaregettext

GlotPress এখন ওপরয়ফ ডফড টর গপরপরফ ফযফায কযা পরচছ ওয়াডডে েপরজপরকটয ডিপরন একজন াথফা গটপরভয জনয িানসপররগটাং পটওয়যায গপরপরফ

37

াধযায়- াতাঃ পলাগগন গগকউগযগট

গগকউগযগট কগমপউটাপরযয বালায় ldquoগগকউগযগটrdquo ভাপরন বীগতকয একগট বদ ডমভন Cross Site

Scripting(XSS) Cross Site Request Forgery(CSRF) SQL Injection Privilege

Escalation Vulnerabilities এফাং Holes রফডর ডকাড একগট াবডাপরযয সযকষায জনয রভকীয কাযন পরত াপরয

পলাগগপরনয গগকউগযগট গক াঅনায পলাগগনগট ডমন গগকউয য় vulnerabilities data integrity এফাং reliability ডথপরক

াঅনায পলাগগনপরক গক গগকউগযগট ডদপরফন ওয়াডডপরে এনবায়যনপরভপরনট াঅনায পলাগগনপরক গগকউগযগট ডদয়া খফ কগঠন কাজ নয় এফাং খফ ভয় াপরকষ গফলয়ও নয় ওয়াডডপরেপরয গনজসব গকি পাাংন এপরকষপরতর াঅনাপরক খফাআ াাময কযপরফ

াআউজায াযগভন াঅভযা াপরনক পলাগগন াআনসটর কযায পরযাআ ডদপরখগি ডম মখনাআ এডগভন যাপরনর এ েপরফ কযপরত মাাআ তখন একগট এযয ডভপরজ াঅপর ডভপরজগট গনপরচয ভত-

ডরখা াঅপরি- You do not have sufficient permissionshellip এটা গনশচয়তা ডদয় ডম ডমপরকান এযাকন ীভাফি থাপরক গনগদডষট গকি যাাআট গদপরয় ওয়াডডপরেপরয একগট কভন পাাংন র current_user_can() একগট উদাযন ডদাআ-

38

ltphp

Capability

if ( current_user_can(install_plugins) )

wp_die( Insufficient permissions )

Role

if( current_user_can(editor) )

wp_die( You cannot edit this setting )

gt

খফ তাড়াতাগড় াঅগন এাআ current_user_can() পাাংন ডচক কযপরফন না কাযন এটা গনবডয কযপরফ get_currentuserinfo() এাআ পাাংপরনয উপরয াঅয এয ফযফাপরয ীভাফিতা াঅপরি এটা একগট পলাপরগফর পাাংন(pluggable function) াঅয এয ডরাপরকন পরচছ wp-

includespluggablephp মা পলাগগন এগকটব ফায য ডরাড য়

Nonces

ডকউ এগটপরক াঅফায Nonsense( গনপরফডাধ) বাফপরফন নাএগট ওয়াডডপরেপরয বালায় Nonces কগমপউটাপরযয বালায় nonce ফা cryptographic nonce পরচছ ldquonumber used once rdquo এটা ডিাট এফাং সপষট গকি য যানডভ গসটরাং ডমভন- াওয়াডড মা গকি গনপরদড কপরয Nonce গপরডন গপলড পভডপরক Retrieve ফা display কপরয-

একজন ওয়াডডপরে াআউজায ডমপরকান একগট এযাকন (delete update save and such) একগট াফপরজকট(একগট ডাসট পলাগগন ডগটাং াআতযাগদ) ২৪ ঘনটায একগট ভয় ডিভ

ডমভন ডাসট 50 গডগরট কযপরফন াঅনায ওয়াডডপরে বলগ ডথপরক তাপরর াঅনায গরঙকগট পরফ এযকভ- httpexamplecomwp-admin

postphppost=43ampaction=trashamp_wpnonce=83a08fcbc2

এখাপরন 83a08fcbc2 এগট র nonce মা ২৪ ঘনটা সথায়ী থাপরক রধভাতর এগট মগদ াঅনায িাযা ফযফরত য় এফাং গডগরট য় ডাসট 50 মখন াঅগন গরপরঙক গিক কপরযন ফপরচপরয় গযতবনড র ডম Nonce ডকান malicious াআউজায ফেপরত াপরযনা এফাং গঠক গরঙক িাড়া nonce এযয ডপরজ চপরর মায় ডমখাপরন াযগভন থাপরক না াঅপরযা গফসতাগযত ডদখন httpcodexwordpressorgWordPress_Nonces

39

Nonce URL ততগয এফায চরন াঅপরগয উদাযন ডথপরক Nonce URL ততগয কগয একগট ডাসট গডগরট কযায জনয wp_nonce_url() পাাংন ফযফায কযা য় ltphp

$url = wp_nonce_url( $url $action )

gt

েথভ যাযাগভটায $url পরচছ গসটরাং URL এপরডর এয মাপরক াঅগন কপরয়যী গসটরাং এয Nonce কযপরত চান াফযফহরত পলাগগপরনয গডগরট গরঙক এযকভ থাপরক- httpexamplecomwp-admineditphppage= liton

_utagsampliton_action=deleteampid=6

এখাপরন ডদখন যাযাগভটায liton_action এফাং এয টযাগ াঅাআগড গিতীয় যাযাগভটায পরচছ $action একগট গসটরাং মা াঅগন একগট াফপরজকট এয জনয একগট action ততগয কযপরফন উপরয ডদখরাভ delete এযাকন এয টযাগ াঅাআগড 6 সতযাাং $action যাযাগভটায পরত াপরয bdquoliton_utags-delete_tag6‟ গনপরচ ফাসতফ উদাযন ডদগখ- ltphp

$delete_url = add_query_arg(array( liton _action=gtdeleteid=gt$id) )

$nonced_url = wp_nonce_url( $delete_url bdquoliton _utags-delete_tag$id )

gt

lta href=ltphp echo $nonced_url gtgtdeleteltagt

এাআ টযাগগট পরফ গডগরট গরঙক এখাপরন add_query_arg() পাাংন ফযফায কযা পরয়পরি মা কাপরযনট URL ডক এযাপরয যাযাগভটায এয ভপরধয যাপরখ ানযবাপরফ ফরপরর এগট ডমাগ কপরয এযকভাঃ liton_action=deleteampid=6 amp liton_action=deleteampid=6

Nonce Form ততগয Nonce পভডপরকও ডোপরটকট কপরয wp_nonce_field() পাাংপরনয ভাধযপরভ ltphp

wp_nonce_field( $action $name $referer $echo ) gt

$action ( string) (optional) - action নাভ াআউগনক identifier optional

গকনত recommended $name (string) (optional) ndash গপরডন গপলড পভড ডবগযপরয়ফর নাভ $referer (boolean) (optional) ndash গডপলট গপরপরফ true থাপরক ডমখাপরন গপলড

ডবগরপরডন এয দযকায য়

40

$echo (boolean) (optional) - গডপলট গপরপরফ true থাপরক ডমখাপরন াঅউটট ডদখাপরনায ফা গপরডন পভড গপলড গযটানড কযায জনয দযকায য়

পপরভড াঅনায action এয নাভ গদন ltform method=postgt

lt-- some inputs here --gt

ltphp wp_nonce_field(name_of_my_actionname_of_nonce_field) gt

ltformgt

াঅভযা একগট পলাগগন ফানাপরফা ডমখাপরন াফযফরত টযাগগপররাপরক াঅভযা ভযানয়াগর গডগরট ফা গযপরনভ কযপরত াযফ এগট একট ফড় গকনত াপরনক গফলয়াআ াঅপরগাআ াঅপররাচনা কযা পরয়পরি ডদখপররাআ ফেপরত াযপরফন একগট ফাসতফধভডী উদাযন গনপরচ গদরাভ- ltphp

Plugin Name Liton Unused Tags

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add an entry for our option page to the Posts menu

add_action(admin_menu liton_utags_add_page)

function liton_utags_add_page()

add_posts_page( Unused Tags Unused Tagsmanage_optionsliton_utags

liton_utags_option_page )

Catch any liton_action parameter in query string

add_action( admin_init liton_utags_do_action )

Proceed to requested liton_action if applicable

function liton_utags_do_action()

if( isset( $_REQUEST[liton_action] ) )

return

if( current_user_can( manage_options ) )

wp_die( Insufficient privileges )

41

$id = $_REQUEST[id]

$action = $_REQUEST[liton_action]

if( $action == done )

add_action( admin_notices liton_utags_message )

return

check_admin_referer( liton_utags-$action_tag$id )

switch( $action )

case rename

$newtag = array( name =gt $_POST[name] slug =gt

$_POST[name] )

wp_update_term( $id post_tag $newtag )

break

case delete

wp_delete_term( $id post_tag )

break

wp_redirect( add_query_arg( array( liton_action =gt done )

) )

Admin notice

function liton_utags_message()

echo ltdiv class=updatedgtltpgtAction

completedltpgtltdivgt

Draw the tag management page

function liton_utags_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtUnused Tagslth2gt

ltphp

if( $tags = liton_utags_find_orphans() )

echo ltpgtYou currently have count( $tags ) unused

tagsltpgt

echo ltolgt

foreach( $tags as $tag )

42

$id = $tag-gtterm_id

$name = esc_attr( $tag-gtname )

$delete_url= add_query_arg(

array(liton_action=gtdeleteid=gt$id) )

$nonced_url= wp_nonce_url( $delete_url

liton_utags-delete_tag$id )

gt

ltligt

ltform action= method=postgt

ltphp wp_nonce_field( liton_utags-rename_tag$id )

gt

ltinput type=hidden name=liton_action

value=rename gt

ltinput type=hidden name=id value=ltphp echo

$id gt gt

ltinput type=text name=name value=ltphp echo

$name gt gt

ltinput type=submit value=Rename gt or

lta href=ltphp echo $nonced_url gtgtdeleteltagt

this tag

ltformgt

ltligt

ltphp

else gt

ltpgtYou have no unused tagsltpgt

ltphp endif gt

ltolgt

ltdivgt

ltphp

Find unused tags return them in an array

function liton_utags_find_orphans()

global $wpdb

$sql = SELECT termsterm_id termsname FROM

$wpdb-gtterms terms

INNER JOIN $wpdb-gtterm_taxonomy taxo

ON termsterm_id=taxoterm_id

WHERE taxotaxonomy = post_tag

43

AND taxocount=0

return $wpdb-gtget_results( $sql )

gt

ডযাপরফাপরডড এাআ পলাগগপরনয ডভন াওয়া মাপরফ ডাসট এয াফপরভন গপরপরফ গনপরচ ডদখন-

এফায পলাগগন ডভনপরত গিক কপরয ডদগখ পলাগগপরনয ডবতপরযয কাজ-

উপরয ডদখন াঅগভ একগট টযাগ ততগয কপরযগিরাভ l i নাপরভ এগট এখাপরন ডদখাপরচছ াঅগভ চাাআপরর এগট এগডট ফা গডগরট কযপরত াগয এফায গডগরট গরঙক এ ভাউপরয কাডয ডযপরখ গনপরচ গরঙক ডদখন ফা গডগরট করন একগট টযাগ াঅভায এখাপরন URL গট এযকভ httplocalhostdev-litonwp-

admineditphppage=liton_utagsampliton_action=doneampid=4amp_wpnonce=30a44b7

986

এখাপরন াঅগভ liton_action=done ফযফায কপরযগি Nonces এয পাাংনগপররায নাভ গনপরচ গদরাভ াঅনাযা ডদপরখ গনপরফন াআনটাযপরনট ডথপরক wp_nonce_field()

wp_nonce_url()

wp_verify_nonce()

wp_create_nonce()

44

check_admin_referer()

check_ajax_referer()

ডাটাপরফ াঅনাযা ডমপরত গএাআচগ গনপরয় কাজ কপরযন এগকউএর ডাটাপরফ এয াপরথ ফাাআ কভপরফী গযগচত এয গনটযাকস গপররা ডভাটাভগট ফায জানা একাআ বাপরফ াপরনপরকাআ ওয়াডডপরেপরও ডাটাপরফ ডকাড গরপরখন এটা ডকাগডাং এয জনয খাযা গদক াঅগভ নযভার গএাআচগ- এগকউএর ডকাড এয উদাযন গদগচছ- ltphp

$sql=rdquoINSERT INTO $wpdb-gtposts(post_title) VALUES(bdquo$title‟)rdquo

$wpdb-gtquery($sql) gt

এফায ওয়াডডপরেপরয সটযানডাডড ডকাগডাং গপরসটভ ডদখন- ltphp

$wpdb-gtinsert($wpdb-gtposts

array(bdquopost_title‟ =gt $title)

array(bdquos‟)

)

gt

ডাটাপরফ গগকউয কযায জনয াঅপরডট াাপরযন ডদখাফ- গনপরচয ডকাডগট খাযা েযাকগট ltphp

$wpdb-gtquery(ldquoUPDATE $wpdb-gtposts SET post_title=‟$newTitle‟ WHERE

ID=$my_idrdquo )

gt

উপরযয ভত কপরয না গরপরখ গনপরচয ভত কপরয গরখন- ltphp

$wpdb-gtupdate($wpdb-gtposts

Array(bdquopost_title‟ =gt‟$newTitle‟)

Array(bdquoID‟ =gt$my_id

)

gt

ানর বাপরফ ানযানয াাপরযন গপররা গরখপরফন

45

াধযায়- াঅটাঃ ডরাকারাাআপরজন এফাং Set t i ngs API

ডরাকারাাআপরজন ডরাকারাাআপরজন একগট গরতবনড গফলয় এয পাাংনগপররা র- load_theme_textdomain()

load_plugin_textdomain()

উদাযন- ltphp $var=__(bdquoHello‟‟domain‟) gt

ltphp _e(bdquoHello‟‟domain‟) gt

গফসতাগযত গনপরচয গরপরঙক ডদখন- httpcodexwordpressorgI18n_for_WordPress_Developers

ডগটাং API

ডগটাং API পরচছ াঅগন গকি ান ততগয কযপরফন মা াআনটাযনার বাপরফ াঅনায পলাগগপরন এপলাাআ পরফ মখন াঅগন াআউজায- গডপাাআন ান ততগয কযপরফন াঅনায পলাগগপরনয জনয তখন Settings

API ndashএ াঅনায ডকাড মতটা ারন জ করন Settings API াঅনায ডম কাজগপররা handle কপরয-

ওয়াডডপরেপরক জাগনপরয় ডদয় ডম াঅগন গনজসব ান ফযফায কযপরফন াঅনায াআনটপরক পাাংপরনয ভপরধয উপরেখ কযপরফ ডফগয বাগ ান ডজ গনপরজাআ ততগয কযপরফ $_POST ডাটা গপররাপরক ভগনটয কপরয ান ততগয এফাং াঅপরডট কপরয(মগদ েপরয়াজন য়)

Settings API পাাংন Settings API পাাংপরন গতনগট ডসট থাপরক- ১ েথপরভ ওয়াডডপরেপরক ফপরর ডম াঅগন নতন ডগটাং ফযফায কযপরফন াঅনায পলাগগপরনয জনয ২ এয পরয ডগটাং গডপাাআন করন (text areas input boxes and any

HTML form element) এফাং এপরদযপরক একাপরথ রে কপরয যাপরখ ৩ ওয়াডডপরেপরক াঅনায ডগটাং actual form এ ডদখাপরনায জনয ফপরর

46

এফায াঅভযা একগট পলাগগন ফানাপরফা Administration Page ndashএ ডযপাপরযনস গপরপরফ ডদখপরত াপরযন- httpcodexwordpressorgAdding_Administration_Menus

httpcodexwordpressorgFunction_Referenceadd_options_page

httpcodexwordpressorgAction_ReferenceActions_Run_During_an_Admin_P

age_Request

পলাগগপরনয এডগভন ডজ পরফ এযকভ- httpexamplecomwp-adminoptions-generalphppage=liton_myplugin

েথপরভ াঅভযা ডভন ততগয কযফ াঅপরগয ভত কপরয- Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

এফায ান ডজ এ পভড গনপরয় গকি ডগটাং ডদফ function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

উপরযয ডকাপরড াঅভযা একগট পপরভডয ভপরধয রধ াফগভট ফাটন এফাং My Plugin নাপরভ ডজ ততগয কপরযগি ডযাপরফাপরডড ডদখন-

47

ডগটাং এয াফ ডভন গপরপরফ My Plugin াঅপরি এফাং My Plugin ডত গিক কযপরর াঅভযা উপরযয ডজ ততগয কপরযগি ডমখাপরন াফগভট ফাটনগট ডদখাপরচছ এফায গতনগট যাযাগভটায ডযগজসটায কযফ- ltphp

register_setting( liton _myplugin_options liton _myplugin_options liton

_myplugin_validate_options)

gt

েথভগট ডগটাং রেপরয নাভ গিতীয়গট ান নাভ মা াঅভযা get_option() পাাংন গদপরয়ও ডপরত াগয ততীয়গট করফযাক পাাংন এগট একগট গসটরাং ডযপাপরযনস পাাংন এখাপরন াঅভযা নাভ

48

গদপরয়গি liton _myplugin_validate_options মা া কযপরফ পপরভডয কর ডব ডগটাং াঅভযা এটা পরয গডপাাআন কযফ

ডগটাং গডপাাআন ডকন add_settings_field() এফাং add_settings_section() পাাংন গদপরয় াঅভযা াঅভাপরদয কর ডগটাং গডপাাআন কযফ ltphp

add_settings_section( liton_myplugin_main My Plugin Settings

liton_myplugin_section_text liton _myplugin)

add_settings_field( liton _myplugin_text_string Enter text here

liton _myplugin_setting_input liton _myplugin liton _myplugin_main)

gt

add_settings_section() পাাংন গদপরয় াঅভযা ডদখাফ াঅপরর ডজ এ ডকন ডকভন ডদখাপরফ এয চাযগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ ডকন টাাআপরটর ltH3gt টযাপরগয ভপরধয করফযাক পাাংন এয নাভ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ (page= liton _myplugin এগট

URL এয াাং গপরপরফ থাকপরফ) গিতীয় যাযাগভটায add_settings_field() পপরভডয াআনট গপরপরফ ডদখাপরনা পরয়পরি এখাপরন াাচগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ পরযয গপপরলড গক গেনট কযা পরফ তা ডটকসট গপরপরফ ডদখাপরনা পরয়পরি(Enter text

here)

করফযাক পাাংন পপরভড গেনট কযপরফ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ ডগটাং ডপরজয ডকন গপলড মা add_settings_section() পাাংপরন গডপাাআন

কযা পরয়পরি ltphp

Explanations about this section

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

49

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton _myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name= liton _myplugin_options[text_string]

type=text value=$options[text_string] gt

gt

গিতীয় পাাংন ান বযার text_string ডক এযাপরযপরত ডসটায কপরয ডযপরখপরি এফায াআউজায াআনট বযাগরপরডট কযফ- ltphp

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace([^a-zA-Z]$input[text_string] )

return $valid

gt

পভডপরক ডযনডায কযফ- ltphp

Draw the options page

function liton_myplugin_options_page()

gt

ltdiv class=wrapgt

ltphp

screen_icon()

gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp

settings_fields( liton_myplugin_options)

do_settings_sections(liton_myplugin)

50

gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

settings_fields() পাাংনগট ডযপাপরযনস গপরপরফ ফযফায কযা পরয়পরি মা াঅভযা register_setting() পাাংপরন গডপরিয়ায কপরযগি do_settings_sections() পাাংনগট কর কযপরফ কর াঅউটট ডকন এফাং পভড গপলডপরক মা াঅভযা পরফড গডপাাআন কপরযগি াঅভাপরদয কাজ ডল এফায পরযা পলাগগনগট ডদখফ- ltphp

Plugin Name Settings API example

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

Draw the option page

function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save

Changes gt

ltformgtltdivgt

ltphp

51

Register and define the settings

add_action(admin_init liton_myplugin_admin_init)

function liton_myplugin_admin_init()

register_setting( liton_myplugin_options

liton_myplugin_options

liton_myplugin_validate_options )

add_settings_section( liton_myplugin_main My Plugin

Settings

liton_myplugin_section_text liton_myplugin )

add_settings_field( liton_myplugin_text_string Enter text

here

liton_myplugin_setting_input liton_myplugin

liton_myplugin_main )

Draw the section header

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton_myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name=liton_myplugin_options[text_string]

type=text value=$text_string gt

Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

return $valid

gt

52

ডদখন ডযাপরফাপরডড ডকভন ডদখায়-

পরয় ডগর াঅভাপরদয েথভ নডাাংগ পলাগগন ান ডজ াঅপরযকগট গজগন ডমটায জনয এতগকি পলাগগন URL এপরডর- httplocalhostdev-litonwp-adminoptions-

generalphppage=liton_mypluginampsettings-updated=true

াঅভায এখাপরন এযকভ ডদখাপরচছ ডটকসট ফপরকস ডকান গকি গরপরখ ডব কযায য এফাপরয াঅপরযকগট গজগন ডদখফ াঅভযা াপরনক ভয়াআ াপরনক পলাগগপরনয াআনট গপপরলড বর ডাটা াআনট কযপরর এযয ডভপরজ ডদখায় এাআ কাজগট কযফ এফায াঅভযা এখাপরন esc_attr() ফা esc_html() ফযফায কগযগন সতযাাং াঅভাপরদয গরগভপরটন থাকপরি ডবগরপরডট পাাংনগট একট এগডট কগয গনপরচয ভত কপরয Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

if( $valid[text_string] = $input[text_string] )

add_settings_error(liton_myplugin_text_stringliton_myplugin_texterror

53

Incorrect value enterederror)

return $valid

উপরয ডদখন add_settings_error() পাাংন ফযফায কপরযগি মা এযয ডচক কযপরফ পপরভডয াঅগভ একগট বর ডাটা(পরসপার কযাপরযকটায) াআনট কপরয ডদখরাভ এযয ডদখাপরচছ-

তায ভাপরন াঅভযা পর পরয়গি াঅনায পলাগগনগট এগডট কপরয ডনপরফন ডকায ডকন এফাং গপপরলডয গরসট গদরাভ াঅনাপরদয সগফধায জনয

54

CSSJS পাাআর মি কযা

াঅনায পলাগগপরন গএএ ফা জাবাগিে ডমাগ কযপরত পরত াপরয াঅগন চাাআপরর ফাগপরযয ডকান ফা াঅনায ততগয ডকান গএএ ফা জাবাগিে পাাআর ডমাগ কযপরত াপরযন তপরফ এপরকষপরতর াঅভযা ডমবাপরফ HTML এ পাাআর ডমাগ কগয ডযকভ না function liton_scripts()

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtojqueryjsrdquogtltscriptgt‟

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtoscriptjsrdquogtltscriptgt‟

add_action(bdquowp_head‟‟liton_scripts‟)

এগট মপনডরপর বর িগত গনপরচ ডদখন ওয়াডডপরেপর গকবাপরফ পাাআর মি কযপরত য়- function liton_scripts()

wp_enqueue_script(bdquojquery‟)

wp_enqueue_script(bdquotheme-scripts‟‟pathtoscriptsjs‟)

add_action(bdquowp_enqueue_script‟‟liton_scripts‟)

ানর বাপরফ াঅগন সটাাআরীট ডমাগ কযপরত াপরযন- function liton_styles()

wp_enqueue_ style (bdquocss‟)

wp_enqueue_ style (bdquotheme- styles‟pathto stylescss‟)

ডযপাপরযনস ডদখন- httpcodexwordpressorgFunction_Referencewp_enqueue_script

httpcodexwordpressorgFunction_Referencewp_enqueue_style

টডপরকাড টডপরকাড পরচছ ওয়াডডপরেপরয ডসপগগপক ডসপার টযাগ মা াঅগন ডাসট ফা ডপরজয ভপরধয াআনাটড কপরয ানয ডকান কনপরটনটপরক ওপরয়ফাাআপরটয ভপরধয গযপরপল কযপরত াযপরফন মগদ াঅগন গযারাগয টাাআপরয ডকান পলাগগন ফযফায কপরয থাপরকন তাপরর াঅনায ধাযনা থাকায কথা মাাআ ডাক াঅগভ কপরয়কগট উদাযি ডদখাফ

55

েথপরভ একগট পলাগগন ততগয কযফ ডমখাপরন add_shortcode() নাপরভয একগট পাাংন থাকপরফ এগট রগট যাযাগভটায েন কপরয েথভগট টডপরকাপরডয নাভ গিতীয়গট ডম পাাংনপরক কর কযপরফন ডগট াঅভযা একগট উদাযন ডদগখ- ltphp

Plugin Name Liton Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(litonhi)

function hi()

echo Hello World

gt

উপরয ডদখন খফ ডিাট গকনত াঅগন চাাআপরর এয ফযফায াপরনক গফসতত কযপরত াপরযন এখাপরন টডপরকাড নাভ পরচছ liton াঅয এগটপরক ডরখা য় এবাপরফ [liton] াঅভযা ডাপরসটয ভপরধয াআনাটড কপরয ডদগখ াঅউটট ডকভন ডদখায়-

এফায াঅউটট ডদগখ-

56

াঅভাপরদয ততগয কযা টডপরকাড পরবাপরফাআ কাজ কযপরি াঅপরযকগট উদাযন ডদখফ াঅনাযা াপরনপরকাআ গগর এডপরনস গনপরয় কাজ কপরযন াঅনাযা াপরনপরকাআ এডপরনস এয জনয পলাগগন ফযফায কপরযন গকনত চাাআপররাআ এাআ কাজগট াঅনাযা গনপরজয ভত কপরয াগজপরয় গনপরত াপরযন গগপররয কাপরি ফ ডাসট বযার ায়না াঅনাযা মাযা একসাটড াঅপরিন তাযা এটা বার কপরয জাপরনন তাাআ াপরনপরকাআ গগপররয ডকাড ফ ডপরজ ডদখাপরত চান না এজনয পলাগগন ফযফায কপরয রাব য়না কাযন পলাগগপরন জায়গা গপকসড থাপরক এপরত কপরয াঅগনডাং ও কভ য় াঅনাযা টডপরকাড ফযফায কপরয ডমপরকান জায়গায় এড ডদখাপরত াপরযন গনপরচ াঅগভ রগট টডপরকাড ততগয কপরযগি র‟ধযপরনয এড ডদখাপরনায জনয ltphp

Plugin Name Liton Adsense Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(adsense_468adsense_468_60)

add_shortcode(adsense_250adsense_250_250)

function adsense_468_60($atts)

return ltscript type=textjavascriptgtlt--

57

google_ad_client = ca-pub-0956247412222369

468x60 created 101510

google_ad_slot = 4372705450

google_ad_width = 468

google_ad_height = 60

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

function adsense_250_250($atts)

return ltscript type=textjavascriptgtlt--

google_ad_client = ca-pub-0956247412222369

250x250 created 81809

google_ad_slot = 9368091893

google_ad_width = 250

google_ad_height = 250

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

gt

একগট টডপরকাড ফযানায টাাআপরয জনয এফাং াঅপরযকগট ২৫০২৫০ াাআপরজয এফায ডাপরসট ডমপরকান একগট টডপরকাড াআনাটড করন ডমখাপরন াঅনায ডদখাপরনায েপরয়াজন ভপরন কপরযন াঅগভ রগট ডকাড ডটসট কপরয ডদখরাভ-

58

এফায াাআপরটয াঅউটট ডদগখ-

রগট এডাআ ডদখাপরচছ াঅপরযা াপরনক কাপরজ াঅগন টডপরকাড ফযফায কযপরত াপরযন ডযপাপরযনসাঃ httpcodexwordpressorgShortcode_API

59

াধযায়- নয়াঃ পলাগগন উদাযন

ওয়াডডপরেপরয ডডটটাাআভকপরভনট নামবায ফাাংরা কযায পলাগগন াঅভাপরক কপরয়কজন ফপররগিপররন ওয়াডডপরেপরয গডপলট ডডটটাাআভকপরভনট নামবায ফাাংরা য়না রযাাংগপরয়জ ফাাংরা কযায যও ডডটটাাআভকপরভনট নামবায গপররা াআাংপরযগজ ডথপরক মায় গনপরচয পলাগগনগট ফযফায কপরয ডদখপরত াপরযন- ltphp

Plugin Name Liton Bangla datetimecomment number

Plugin URI httpliton-onlinecomplugins

Description Bangla datetimecomment number

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

This function converts all english numbers to bangla number

function make_bangla_number($str)

$engNumber = array(1234567890)

$bangNumber = array( ১ ২ ৩ ৪ ৫ ৬ ৭ ৮ ৯ ০ ) $converted = str_replace($engNumber $bangNumber $str)

return $converted

add_filter( get_the_time make_bangla_number )

add_filter( the_date make_bangla_number )

add_filter( get_the_date make_bangla_number )

add_filter( comments_number make_bangla_number )

add_filter( get_comment_date make_bangla_number )

add_filter( get_comment_time make_bangla_number )

gt

60

সলাাআডায পলাগগন াঅভযা এাআ ফাআপরয়য কর গটউপরটাগযয়াপরর মা মা গখরাভ তা এফায একগট নডাাংগ পলাগগপরনয এপলাাআ কযফ সলাাআডায পলাগগন মপপরকড াঅভযা ফাাআ জাগন একগট ওপরয়ফাাআপরটয ডচাযা ারপরট ডদয় একগট সলাাআডায াপরনক ডাাআনাগভক ভপরন য় ডদখপরতও াপরনক বার রাপরগ এাআ পলাগগপরন াঅভযা এডগভন যাপরনর ডথপরক াআপরভজ ডমাগ কযফ এফাং তা াঅভাপরদয াাআপরট ডদখাফ চরন কাজ রর কগয- েথপরভ গনপরবা সলাাআডায এয ওপরয়ফাাআপরট মান এফাং jQuery Plugin ডাউনপররাড করন

ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom Version 10

gt

াঅভযা পলাগগপরনয ডডায ততগয কযরাভ

পলাগগন গরপরসট ডদখাপরচছ bdquoLitons Nivo Plugin‟ াঅভাপরদয েথভ কাজ পরচছ custom post

type ওয়াডডপরে পাাংনাগরগট একগট নতন কাসটভ ডজ ততগয কযপরত custom post type

ফযফহরত পরফ ডমখাপরন একগট াআপরভজ থাকপরফ াঅভযা রধ টাাআপরটর ডনভ এফাং াআপরভজ াঅপররাডায গপরপরফ গপচায াআপরভজ পাাংনাগরগট ফযফায কযফ function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_function 600 280 true)

61

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

add_action(init np_init)

উপরযয ডকাপরড np_init() পাাংনগট রক কপরযগি মা ডডায যান কযায াঅপরগ যান পরফ াঅয এজনয register_post_type() পাাংনপরক এয যাযাগভটায গদপরয় np_init() পাাংপরনয ডবতপরয মি কপরযগি এটা মগদ না কযতাভ তাপরর ldquoHeaders already sentrdquo ডভপরজ ডদখাত এাআ ডভপরজগটয াপরথ াপরনপরকাআ গযগচত াঅা কগয register_post_type() পাাংন গদপরয় াঅভযা াআপরভজ মি এফাং ভযাপরনজ কযফ ভরত াঅভযা একগট নতন custom post type ডমাগ কপরযগি np_images নাভ গদপরয় নতন custom post type ডক ডগটাং বযার গপরপরফ াঅযগপরভনট া কপরযগি $args ডবগযপরয়ফরগট ট ডরপরবর ডভন ততগয কপরয াঅপরগাআ ডদপরখগি পলাগগনগট এগকটপরবট কযপরর াঅভযা গনপরচয ভত ডদখপরত াফ-

এফায গিে এফাং সটাাআরীট ডক মি কযফ- add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

এফায রক কযা পাাংনগপররা গডপরিয়ায কগয- function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__) array( jquery ))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

62

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

উপরযয ডকাডগপররা নতন কপরয ফিডনা কযায গকি ডনাআ াঅপরগাআ wp_enqueue_style() এফাং wp_enqueue_script() মপপরকড ফরা পরয়পরি নতন াঅপরযকগট পাাআর ততগয করন একাআ গডপরযকটগযপরত scriptjs এফাং গনপরচয ডকাডটক গদন- jQuery(document)ready(function($)

$(slider)nivoSlider()

)

াআপরভজপরক গযাাআজ করন- add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

াঅভযা এাআ পলাগগনগটপরক উাআপরজট গপরপরফও ফযফায কযফ ডগট পরয ডদখফ াঅপরযকগট গজগন মগদ গথপরভ না ডদয়া থাপরক ডজনয থামবপরনাআর াপরাটড গদপরয় গদন- add_theme_support( post-thumbnails )

এফায ওয়াডডপরেপরয কাপরযনট ডাসট কপরয়যী কযায ডকাড াঅয $result ডবগযপরয়ফপরর ডমফ ltdivgt টযাগ ফযফায কযা পরয়পরি তা jQuery Plugin গট একসিাকট কপরয indexhtml ডজগটয ডভাআন সলাাআডায ডকাডগট ডদখন একাআ াঅপরি রধ ডখানকায ltdivgt টযাগ গপররাপরক কগ কপরয এাআ পলাগগপরন ফযফায কযা পরয়পরি এফায টডপরকাড গদন- add_shortcode(np-shortcode np_function)

এাআ টডপরকাড গএাআচগ পাাংনপরক রক কযপরফ এফাং এয ভধয ডথপরক সলাাআডপরায কনপরটনট ডক গযটানড কযপরফ াঅভাপরদয টডপরকাড পরচছ [np-shortcode] াঅভযা পলাগগপরন মাাআ এফাং একগট িগফ মি কগয গপচাযড াআপরভজ গপরপরফ গনপরচ ডদখন-

63

াঅগভ াঅপরযকগট ডজ ততগয কপরযগি ডমখাপরন টডপরকাড গদপরয়গি

াঅউটট ডজ ডদগখ এফায-

64

পরয় ডগর াঅভাপরদয সলাাআডায পলাগগন পরযা ডকাডগট গনপরচ গদরাভ- ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

65

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

66

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

এফায াঅগন মগদ উাআপরজট গপরপরফ ফযফায কযপরত চান তাপরর গনপরচয ডকাডটক গদন- class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

67

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

echo $after_widget

াঅপরযা রগট কাজ কযপরত পরফ াঅনাপরক এক াআপরভজ াাআজ উাআপরজট এয জনয গঠক কপরয গদপরত পরফ- add_image_size(np_widget 180 100 true)

াঅপরযকগট র উাআপরজট এযাকন রক ডমাগ কযা add_action(widgets_init np_widgets_init)

উাআপরজট পরযা ডকাড াঅফায গদরাভ- ltphp

Plugin Name Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Ciprian Turcu

Version 10

68

class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

69

echo $after_widget

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

70

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(widgets_init np_widgets_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

71

পলাগগন গনপরয় এত ডিাট গযপরয ডরখা মভফ নয় এজনযাআ ভপরন য় পলাগগন গনপরয় ডকউ ডরপরখন না কাযন এখাপরন এত গফলয় াঅপরি মা াঅপররাচনা কযপরত ডগপরর ৫০০ ডজ ায পরয় মাপরফ ডফাোয সগফধাপরথড াঅগভ মথামভফ উদাযন গদপরয় ডফাোপরনায ডচষটা কপরযগি াঅগভ এখাপরন টাপরগডট কপরযগি মাযা টকটাক জাপরন পলাগগন মপপরকড এডবানস ডরপরবপররয নয় কাযন তাযা জাপরনন াঅভায উপরেশয গির মাযা জানপরত চায় তাপরদযপরক জানাপরনা এখাপরন ডমফ গফলয় াঅপররাচনা কযা পরয়পরি তা ডভাটাভগট ভাপরনয একগট পলাগগন ফানাপরনায জনয মপরথষট তপরফ ভাপরনাননয়পরনয জনয াঅনাপরক গনপরজাআ খাপরজ গনপরত পরফ াঅনায জনয ডকানটা বার পরফ াঅগভ রধ গদক গনপরদডনা গদরাভ ভাতর এাআ ফাআগট রধভাতর ওয়াডডপরে রেপরয জনয ডরখা াপরনক বর ভরাগনত থাকপরত াপরয াঅনাযা কষভাসনদয দগষটপরত ডদখপরফন াঅগভ ডচষটা কপরযগি মতটা জ কপরয ডরখা মায় াপরনক ভয় ডদখা মায় ডম খফ ডিাট খাপরটা গফলয় গনপরয় াপরনপরকাআ নক কপরযন এটা গতয রাঃখজনক াঅনাযা গগপরর একট খাজপররাআ ভাধান াপরফন াঅপরগ গনপরজ ডচষটা করন তায পরয ানযপরক ভাধাপরনয জনয গজজঞাা করন াঅভায জনয ডদায়া কযপরফন বাপররা রাগপরর জানাপরফন খাযা রাগপররও জানাপরফন তাপররাআ াঅভায গযশরভ সবাথডক পরফ ভতাভত জাগনপরয় াঅভাপরক ডভাআর কযপরত াপরযন litonice09gmailcom |

72

Page 24: Wordpress Plugin Development

25

পরযা ডকাডগট পরফ এযকভ- ltphp

Plugin Name Liton Menu

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action( admin_menu liton_menu

)

function liton_menu()

create custom top-level menu

add_menu_page( Liton Menu Settings Page Liton Menu Page

manage_options __FILE__

liton_menu_settings_page

plugins_url( imageswp-logopng __FILE__ ) )

create submenu items

add_submenu_page( __FILE__ About My Plugin About manage_options

__FILE___about liton_menu_about_page )

add_submenu_page( __FILE__ Help with My Plugin Help

manage_options

__FILE___help liton_menu_help_page )

add_submenu_page( __FILE__ Uninstall My Plugin Uninstall

manage_options

__FILE___uninstall liton_menu_uninstall_page )

gt

গনপরচ ডদখন াফপরভনগপররা ততগয পরয় ডগপরি-

26

ডভনপরক াঅপরগয ডভনয াপরথ মি কযা এফায াঅগ গিতীয় িগতপরত মগদ াঅনায পলাগগপরনয একগট ভাতর ডজ থাপরক একগট ভাতর ডপরজাআ াঅনায কর ডগটাং পরয় মায় তাপরর এাআ িগত েন করন ডমভন ডয়াগযাং াাআটগপররায জনয রধ াঅনায াঅাআগডপযানপরপরজয াঅাআগড দযকায য় এযকভ পলাগগন এধযপরনয পলাগগপরনয জনয াঅনায াগতগযি ডভন ততগয কযায দযকায ডনাআ ফযাং এপরত কপরয াআউজায গফযি ডফাধ কযপরত াপরযন এ ধযপরনয পলাগগনগপররা ডগটাং এয াফপরভন গপরপরফ থাপরক add_options_page() এাআ পাাংন গদপরয় এফ ডভন ডযগজসটায কযা য় ltphp

add_options_page( page_title menu_title capability

menu_slug function)

gt

এফায চরন এযকভ একগট ডভন ততগয কগয- ltphp

Plugin Name Liton Sub Menu

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action( admin_menu liton_submenu)

function liton_submenu()

create a submenu under Settings

add_options_page( Liton Menu Settings Page Liton Menu Page

manage_options __FILE__

liton_menu_settings_page)

27

gt

াফপরভন ততগয পরয় ডগপরি চরন ডদগখ ডযাপরফাপরডড ডকভন ডদখায়-

এপরকফাপরয গনপরচয গদপরক ডদখন Liton Menu Page নাপরভ একগট ডভন ততগয পরয়পরি

উাআপরজট ততগয কযা উাআপরজট ততগয কযায জনয ওয়াডডপরে WP-Widget িা গদপরয় ততগয কযা য় উাআপরজট এয একগট পযভযাট ডদখন গনপরচ ltphp

class My_Widget extends WP_Widget

function My_Widget()

processes the widget

function form($instance)

displays the widget form in the admin dashboard

function update($new_instance $old_instance)

process widget options to save

function widget($args $instance)

displays the widget

gt

28

উাআপরজট ডযগজসটায কযায জনয widget_init() পাাংনপরক রক কযা য় চরন একগট উাআপরজট ততগয কগয- ltphp

Plugin Name Liton Widget

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

class Messager extends WP_Widget

function __construct()

$params=array(

description =gtDisplay message to readers

name =gt Message

)

parent__construct(Messager $params)

public function form()

public function widget()

add_action(widgets_initliton_register_message)

function liton_register_message()

register_widget(Messager)

gt

29

খফ াধাযন একগট উাআপরজট পলাগগন এগট াঅভযা াআউজাযপরদযপরক একগট ডভপরজ ডদখাপরফা াাআডফাপরয ডটাাআ কযায ডচষটা কযগি এখন পলাগগনগট এগকটপরবট কপরয ডদগখ-

াঅভাপরদয উাআপরজটগট ডদখাপরচছ এফায াঅপরযা গকি পাাংনার কাজ কগয এগট মগদ াাআডফাপরয ডরাগ কপরয ডদন তাপরর ডকান কাজ কযপরফ না কাযন াঅভযা এখপরনা গকিাআ কগযগন পভড পাাংপরন গকি কাজ কগয মা উাআপরজট টাাআপরটর গপরপরফ ডদখাপরফ- public function form($instance)

extract($instance)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title)gtgtTitle ltlabelgt

ltinput

class=widefat

id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt

value=ltphp if(isset($title)) echo esc_attr($title) gt gt

ltpgt

ltphp

াঅভযা উপরয class=widefat ফযফায কপরযগি এাআ িা ফযফায কযায কাযপরন পভড এয াআনট গপলডগট াপরনক সনদয পরয়পরি

30

মগদ এাআ িা ফযফায না কগয তাপরর ডকভন ডদখাপরফ গনপরচ ডদখন-

াঅভাপরদয উাআপরজট পলাগগনগটয ডকাড গনপরচ ডদওয়া র ltphp

Plugin Name Liton Widget

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

class Messager extends WP_Widget

function __construct()

$params=array(

description =gtDisplay message to readers

name =gt Message

)

parent__construct(Messager$params)

31

public function form($instance)

extract($instance)

print_r($instance)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title)gtgtTitle ltlabelgt

ltinput

class=widefat

id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt

value=ltphp if(isset($title)) echo esc_attr($title) gt gt

ltpgt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(description)gtgtDescription

ltlabelgt

lttextarea

class=widefat

rows=10

id=ltphp echo $this-gtget_field_id(description) gt

name=ltphp echo $this-gtget_field_name(description) gtgtltphp

if(isset($description)) echo esc_attr($description) gtlttextareagt

ltpgt

ltphp

public function widget($args$instance)

extract($args)

extract($instance)

echo $before_widget

echo $before_title$title$after_title

echo ltpgt$descriptionltpgt

echo $after_widget

add_action(widgets_initliton_register_message)

function liton_register_message()

32

register_widget(Messager)

gt

এফায াঅভযা ডযাপরফাডড ডথপরক একগট ডভপরজ ডদফ গবগজটযপরদযপরক-

াঅভযা এাআ উাআপরজটগট ডাাআনাগভক বাপরফ কপরযগি কাযন এখাপরন lth2gt lth3gt lth4gt এ ধযপরনয ডকান টযাগ াঅভযা ফযফায কগযগন াঅভযা গথভ ডডপরবর কযগিনা সতযাাং এ কাজগট াঅভাপরদয ানযবাপরফ কযা দযকায গির এগট গথভ ডডপরবরায ডদগখপরয় ডদপরফন ডম ডকভন টযাগ পরফ াাআডফাপরয াাআপরটয াাআডফাপরয ডকভন ডদখায় তা ডদখন- াঅভযা রগট গথপরভ এগট ডটসট কপরয ডদখফ েথভগট টপরয়গনট াআপররপরবন

33

এফায াঅপরযকগট গথপরভ ডদগখ-

34

াধযায়- িয়াঃ পলাগগন পাাংন

গকি ডফগক পাাংন __() পাাংন

__() পাাংনগট গএাআচগপরত াঅনায ডটকসটপরক ডযগড কপরয িানসপররন এফাং গযটানড কপরয উদাযন গপরপরফ াঅগন একগট বযারপরক __() পাাংপরনয ভপরধয ডবগযপরয়ফর গদপরয় assign করন ভপরন যাখপরফন এাআ পাাংনগট রগট াঅনডাযপরিায(_) গদপরয় গগঠত একগট নয় ltphp

$text=__(bdquoWordpress is a wonderful publishing platform‟‟liton_plugin‟)

gt

_e() পাাংন _e() পাাংনগট াঅনায ডটকসবপরট ডরাকারাাআজ কপরয এটা গএাআচগপরত echo এয ভত কাজ কপরয ডকান ডটকসটপরক গিপরন ডদখাপরনায জনয এফায একট ভজা কগয মা রপরক ডদপরখগি াঅপরগাআ- _e() পাাংনগট গদপরয় াঅপরগয পলাগগনগট এগডট কযফ ltphp

Plugin Name Liton Action

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(wp_footer liton_footer_action)

function liton_footer_action()

Output the translated text

_e( This site runs off the coolest platform ever ampmdash

WordPress

liton-plugin )

gt

35

এফায াঅউটট ডদগখ

esc_attr__() পাাংন এাআ পাাংনগট esc_attr() এয ভত এগট এাআচগটএভএর এগিগফউটপরক escape কপরয াঅভযা এফায esc_attr__() এফাং __() এাআ রগট পাাংনপরক একগট কপরয পলাগগন ততগয কযফ ltphp

Plugin Name Liton Esc Attr

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

A function that returns a link to the sites terms of service

page

function liton_terms_of_service_link()

return lta href=httpliton-onlinecomtos title=

esc_attr__( Visit the Terms of Service page boj-plugin ) gt __( Terms of

Service liton-plugin ) ltagt

Display the output of the liton_terms_of_service_link()

function

echo liton_terms_of_service_link()

gt

পলাগগনগটয াঅউটট ডদখন-

36

এযকভ াঅপরযা গকি পাাংন াঅপরি ডমগপররা াঅনাযা ডদপরখ ডনপরফন াআনটাযপরনট ডঘপরট

esc_html__() Function

esc_attr() Function

esc_url() Function

esc_js() Function

esc_html() Function

esc_attr_e() Function

esc_html_e() Function

_x() Function

_ex() Function

esc_attr_x() Function

esc_html_x() Function

_n() Function

_nx() Function

_n_noop() Function

_nx_noop() Function

Translation

bull Poedit httppoeditnet

bull GlotPress httpglotpressorg

bull Launchpad httpstranslationslaunchpadnet

bull Pootle httppootlelocamotionorg

bull KBabel httpi18nkdeorg

bull GNU Gettext httpgnuorgsoftwaregettext

GlotPress এখন ওপরয়ফ ডফড টর গপরপরফ ফযফায কযা পরচছ ওয়াডডে েপরজপরকটয ডিপরন একজন াথফা গটপরভয জনয িানসপররগটাং পটওয়যায গপরপরফ

37

াধযায়- াতাঃ পলাগগন গগকউগযগট

গগকউগযগট কগমপউটাপরযয বালায় ldquoগগকউগযগটrdquo ভাপরন বীগতকয একগট বদ ডমভন Cross Site

Scripting(XSS) Cross Site Request Forgery(CSRF) SQL Injection Privilege

Escalation Vulnerabilities এফাং Holes রফডর ডকাড একগট াবডাপরযয সযকষায জনয রভকীয কাযন পরত াপরয

পলাগগপরনয গগকউগযগট গক াঅনায পলাগগনগট ডমন গগকউয য় vulnerabilities data integrity এফাং reliability ডথপরক

াঅনায পলাগগনপরক গক গগকউগযগট ডদপরফন ওয়াডডপরে এনবায়যনপরভপরনট াঅনায পলাগগনপরক গগকউগযগট ডদয়া খফ কগঠন কাজ নয় এফাং খফ ভয় াপরকষ গফলয়ও নয় ওয়াডডপরেপরয গনজসব গকি পাাংন এপরকষপরতর াঅনাপরক খফাআ াাময কযপরফ

াআউজায াযগভন াঅভযা াপরনক পলাগগন াআনসটর কযায পরযাআ ডদপরখগি ডম মখনাআ এডগভন যাপরনর এ েপরফ কযপরত মাাআ তখন একগট এযয ডভপরজ াঅপর ডভপরজগট গনপরচয ভত-

ডরখা াঅপরি- You do not have sufficient permissionshellip এটা গনশচয়তা ডদয় ডম ডমপরকান এযাকন ীভাফি থাপরক গনগদডষট গকি যাাআট গদপরয় ওয়াডডপরেপরয একগট কভন পাাংন র current_user_can() একগট উদাযন ডদাআ-

38

ltphp

Capability

if ( current_user_can(install_plugins) )

wp_die( Insufficient permissions )

Role

if( current_user_can(editor) )

wp_die( You cannot edit this setting )

gt

খফ তাড়াতাগড় াঅগন এাআ current_user_can() পাাংন ডচক কযপরফন না কাযন এটা গনবডয কযপরফ get_currentuserinfo() এাআ পাাংপরনয উপরয াঅয এয ফযফাপরয ীভাফিতা াঅপরি এটা একগট পলাপরগফর পাাংন(pluggable function) াঅয এয ডরাপরকন পরচছ wp-

includespluggablephp মা পলাগগন এগকটব ফায য ডরাড য়

Nonces

ডকউ এগটপরক াঅফায Nonsense( গনপরফডাধ) বাফপরফন নাএগট ওয়াডডপরেপরয বালায় Nonces কগমপউটাপরযয বালায় nonce ফা cryptographic nonce পরচছ ldquonumber used once rdquo এটা ডিাট এফাং সপষট গকি য যানডভ গসটরাং ডমভন- াওয়াডড মা গকি গনপরদড কপরয Nonce গপরডন গপলড পভডপরক Retrieve ফা display কপরয-

একজন ওয়াডডপরে াআউজায ডমপরকান একগট এযাকন (delete update save and such) একগট াফপরজকট(একগট ডাসট পলাগগন ডগটাং াআতযাগদ) ২৪ ঘনটায একগট ভয় ডিভ

ডমভন ডাসট 50 গডগরট কযপরফন াঅনায ওয়াডডপরে বলগ ডথপরক তাপরর াঅনায গরঙকগট পরফ এযকভ- httpexamplecomwp-admin

postphppost=43ampaction=trashamp_wpnonce=83a08fcbc2

এখাপরন 83a08fcbc2 এগট র nonce মা ২৪ ঘনটা সথায়ী থাপরক রধভাতর এগট মগদ াঅনায িাযা ফযফরত য় এফাং গডগরট য় ডাসট 50 মখন াঅগন গরপরঙক গিক কপরযন ফপরচপরয় গযতবনড র ডম Nonce ডকান malicious াআউজায ফেপরত াপরযনা এফাং গঠক গরঙক িাড়া nonce এযয ডপরজ চপরর মায় ডমখাপরন াযগভন থাপরক না াঅপরযা গফসতাগযত ডদখন httpcodexwordpressorgWordPress_Nonces

39

Nonce URL ততগয এফায চরন াঅপরগয উদাযন ডথপরক Nonce URL ততগয কগয একগট ডাসট গডগরট কযায জনয wp_nonce_url() পাাংন ফযফায কযা য় ltphp

$url = wp_nonce_url( $url $action )

gt

েথভ যাযাগভটায $url পরচছ গসটরাং URL এপরডর এয মাপরক াঅগন কপরয়যী গসটরাং এয Nonce কযপরত চান াফযফহরত পলাগগপরনয গডগরট গরঙক এযকভ থাপরক- httpexamplecomwp-admineditphppage= liton

_utagsampliton_action=deleteampid=6

এখাপরন ডদখন যাযাগভটায liton_action এফাং এয টযাগ াঅাআগড গিতীয় যাযাগভটায পরচছ $action একগট গসটরাং মা াঅগন একগট াফপরজকট এয জনয একগট action ততগয কযপরফন উপরয ডদখরাভ delete এযাকন এয টযাগ াঅাআগড 6 সতযাাং $action যাযাগভটায পরত াপরয bdquoliton_utags-delete_tag6‟ গনপরচ ফাসতফ উদাযন ডদগখ- ltphp

$delete_url = add_query_arg(array( liton _action=gtdeleteid=gt$id) )

$nonced_url = wp_nonce_url( $delete_url bdquoliton _utags-delete_tag$id )

gt

lta href=ltphp echo $nonced_url gtgtdeleteltagt

এাআ টযাগগট পরফ গডগরট গরঙক এখাপরন add_query_arg() পাাংন ফযফায কযা পরয়পরি মা কাপরযনট URL ডক এযাপরয যাযাগভটায এয ভপরধয যাপরখ ানযবাপরফ ফরপরর এগট ডমাগ কপরয এযকভাঃ liton_action=deleteampid=6 amp liton_action=deleteampid=6

Nonce Form ততগয Nonce পভডপরকও ডোপরটকট কপরয wp_nonce_field() পাাংপরনয ভাধযপরভ ltphp

wp_nonce_field( $action $name $referer $echo ) gt

$action ( string) (optional) - action নাভ াআউগনক identifier optional

গকনত recommended $name (string) (optional) ndash গপরডন গপলড পভড ডবগযপরয়ফর নাভ $referer (boolean) (optional) ndash গডপলট গপরপরফ true থাপরক ডমখাপরন গপলড

ডবগরপরডন এয দযকায য়

40

$echo (boolean) (optional) - গডপলট গপরপরফ true থাপরক ডমখাপরন াঅউটট ডদখাপরনায ফা গপরডন পভড গপলড গযটানড কযায জনয দযকায য়

পপরভড াঅনায action এয নাভ গদন ltform method=postgt

lt-- some inputs here --gt

ltphp wp_nonce_field(name_of_my_actionname_of_nonce_field) gt

ltformgt

াঅভযা একগট পলাগগন ফানাপরফা ডমখাপরন াফযফরত টযাগগপররাপরক াঅভযা ভযানয়াগর গডগরট ফা গযপরনভ কযপরত াযফ এগট একট ফড় গকনত াপরনক গফলয়াআ াঅপরগাআ াঅপররাচনা কযা পরয়পরি ডদখপররাআ ফেপরত াযপরফন একগট ফাসতফধভডী উদাযন গনপরচ গদরাভ- ltphp

Plugin Name Liton Unused Tags

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add an entry for our option page to the Posts menu

add_action(admin_menu liton_utags_add_page)

function liton_utags_add_page()

add_posts_page( Unused Tags Unused Tagsmanage_optionsliton_utags

liton_utags_option_page )

Catch any liton_action parameter in query string

add_action( admin_init liton_utags_do_action )

Proceed to requested liton_action if applicable

function liton_utags_do_action()

if( isset( $_REQUEST[liton_action] ) )

return

if( current_user_can( manage_options ) )

wp_die( Insufficient privileges )

41

$id = $_REQUEST[id]

$action = $_REQUEST[liton_action]

if( $action == done )

add_action( admin_notices liton_utags_message )

return

check_admin_referer( liton_utags-$action_tag$id )

switch( $action )

case rename

$newtag = array( name =gt $_POST[name] slug =gt

$_POST[name] )

wp_update_term( $id post_tag $newtag )

break

case delete

wp_delete_term( $id post_tag )

break

wp_redirect( add_query_arg( array( liton_action =gt done )

) )

Admin notice

function liton_utags_message()

echo ltdiv class=updatedgtltpgtAction

completedltpgtltdivgt

Draw the tag management page

function liton_utags_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtUnused Tagslth2gt

ltphp

if( $tags = liton_utags_find_orphans() )

echo ltpgtYou currently have count( $tags ) unused

tagsltpgt

echo ltolgt

foreach( $tags as $tag )

42

$id = $tag-gtterm_id

$name = esc_attr( $tag-gtname )

$delete_url= add_query_arg(

array(liton_action=gtdeleteid=gt$id) )

$nonced_url= wp_nonce_url( $delete_url

liton_utags-delete_tag$id )

gt

ltligt

ltform action= method=postgt

ltphp wp_nonce_field( liton_utags-rename_tag$id )

gt

ltinput type=hidden name=liton_action

value=rename gt

ltinput type=hidden name=id value=ltphp echo

$id gt gt

ltinput type=text name=name value=ltphp echo

$name gt gt

ltinput type=submit value=Rename gt or

lta href=ltphp echo $nonced_url gtgtdeleteltagt

this tag

ltformgt

ltligt

ltphp

else gt

ltpgtYou have no unused tagsltpgt

ltphp endif gt

ltolgt

ltdivgt

ltphp

Find unused tags return them in an array

function liton_utags_find_orphans()

global $wpdb

$sql = SELECT termsterm_id termsname FROM

$wpdb-gtterms terms

INNER JOIN $wpdb-gtterm_taxonomy taxo

ON termsterm_id=taxoterm_id

WHERE taxotaxonomy = post_tag

43

AND taxocount=0

return $wpdb-gtget_results( $sql )

gt

ডযাপরফাপরডড এাআ পলাগগপরনয ডভন াওয়া মাপরফ ডাসট এয াফপরভন গপরপরফ গনপরচ ডদখন-

এফায পলাগগন ডভনপরত গিক কপরয ডদগখ পলাগগপরনয ডবতপরযয কাজ-

উপরয ডদখন াঅগভ একগট টযাগ ততগয কপরযগিরাভ l i নাপরভ এগট এখাপরন ডদখাপরচছ াঅগভ চাাআপরর এগট এগডট ফা গডগরট কযপরত াগয এফায গডগরট গরঙক এ ভাউপরয কাডয ডযপরখ গনপরচ গরঙক ডদখন ফা গডগরট করন একগট টযাগ াঅভায এখাপরন URL গট এযকভ httplocalhostdev-litonwp-

admineditphppage=liton_utagsampliton_action=doneampid=4amp_wpnonce=30a44b7

986

এখাপরন াঅগভ liton_action=done ফযফায কপরযগি Nonces এয পাাংনগপররায নাভ গনপরচ গদরাভ াঅনাযা ডদপরখ গনপরফন াআনটাযপরনট ডথপরক wp_nonce_field()

wp_nonce_url()

wp_verify_nonce()

wp_create_nonce()

44

check_admin_referer()

check_ajax_referer()

ডাটাপরফ াঅনাযা ডমপরত গএাআচগ গনপরয় কাজ কপরযন এগকউএর ডাটাপরফ এয াপরথ ফাাআ কভপরফী গযগচত এয গনটযাকস গপররা ডভাটাভগট ফায জানা একাআ বাপরফ াপরনপরকাআ ওয়াডডপরেপরও ডাটাপরফ ডকাড গরপরখন এটা ডকাগডাং এয জনয খাযা গদক াঅগভ নযভার গএাআচগ- এগকউএর ডকাড এয উদাযন গদগচছ- ltphp

$sql=rdquoINSERT INTO $wpdb-gtposts(post_title) VALUES(bdquo$title‟)rdquo

$wpdb-gtquery($sql) gt

এফায ওয়াডডপরেপরয সটযানডাডড ডকাগডাং গপরসটভ ডদখন- ltphp

$wpdb-gtinsert($wpdb-gtposts

array(bdquopost_title‟ =gt $title)

array(bdquos‟)

)

gt

ডাটাপরফ গগকউয কযায জনয াঅপরডট াাপরযন ডদখাফ- গনপরচয ডকাডগট খাযা েযাকগট ltphp

$wpdb-gtquery(ldquoUPDATE $wpdb-gtposts SET post_title=‟$newTitle‟ WHERE

ID=$my_idrdquo )

gt

উপরযয ভত কপরয না গরপরখ গনপরচয ভত কপরয গরখন- ltphp

$wpdb-gtupdate($wpdb-gtposts

Array(bdquopost_title‟ =gt‟$newTitle‟)

Array(bdquoID‟ =gt$my_id

)

gt

ানর বাপরফ ানযানয াাপরযন গপররা গরখপরফন

45

াধযায়- াঅটাঃ ডরাকারাাআপরজন এফাং Set t i ngs API

ডরাকারাাআপরজন ডরাকারাাআপরজন একগট গরতবনড গফলয় এয পাাংনগপররা র- load_theme_textdomain()

load_plugin_textdomain()

উদাযন- ltphp $var=__(bdquoHello‟‟domain‟) gt

ltphp _e(bdquoHello‟‟domain‟) gt

গফসতাগযত গনপরচয গরপরঙক ডদখন- httpcodexwordpressorgI18n_for_WordPress_Developers

ডগটাং API

ডগটাং API পরচছ াঅগন গকি ান ততগয কযপরফন মা াআনটাযনার বাপরফ াঅনায পলাগগপরন এপলাাআ পরফ মখন াঅগন াআউজায- গডপাাআন ান ততগয কযপরফন াঅনায পলাগগপরনয জনয তখন Settings

API ndashএ াঅনায ডকাড মতটা ারন জ করন Settings API াঅনায ডম কাজগপররা handle কপরয-

ওয়াডডপরেপরক জাগনপরয় ডদয় ডম াঅগন গনজসব ান ফযফায কযপরফন াঅনায াআনটপরক পাাংপরনয ভপরধয উপরেখ কযপরফ ডফগয বাগ ান ডজ গনপরজাআ ততগয কযপরফ $_POST ডাটা গপররাপরক ভগনটয কপরয ান ততগয এফাং াঅপরডট কপরয(মগদ েপরয়াজন য়)

Settings API পাাংন Settings API পাাংপরন গতনগট ডসট থাপরক- ১ েথপরভ ওয়াডডপরেপরক ফপরর ডম াঅগন নতন ডগটাং ফযফায কযপরফন াঅনায পলাগগপরনয জনয ২ এয পরয ডগটাং গডপাাআন করন (text areas input boxes and any

HTML form element) এফাং এপরদযপরক একাপরথ রে কপরয যাপরখ ৩ ওয়াডডপরেপরক াঅনায ডগটাং actual form এ ডদখাপরনায জনয ফপরর

46

এফায াঅভযা একগট পলাগগন ফানাপরফা Administration Page ndashএ ডযপাপরযনস গপরপরফ ডদখপরত াপরযন- httpcodexwordpressorgAdding_Administration_Menus

httpcodexwordpressorgFunction_Referenceadd_options_page

httpcodexwordpressorgAction_ReferenceActions_Run_During_an_Admin_P

age_Request

পলাগগপরনয এডগভন ডজ পরফ এযকভ- httpexamplecomwp-adminoptions-generalphppage=liton_myplugin

েথপরভ াঅভযা ডভন ততগয কযফ াঅপরগয ভত কপরয- Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

এফায ান ডজ এ পভড গনপরয় গকি ডগটাং ডদফ function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

উপরযয ডকাপরড াঅভযা একগট পপরভডয ভপরধয রধ াফগভট ফাটন এফাং My Plugin নাপরভ ডজ ততগয কপরযগি ডযাপরফাপরডড ডদখন-

47

ডগটাং এয াফ ডভন গপরপরফ My Plugin াঅপরি এফাং My Plugin ডত গিক কযপরর াঅভযা উপরযয ডজ ততগয কপরযগি ডমখাপরন াফগভট ফাটনগট ডদখাপরচছ এফায গতনগট যাযাগভটায ডযগজসটায কযফ- ltphp

register_setting( liton _myplugin_options liton _myplugin_options liton

_myplugin_validate_options)

gt

েথভগট ডগটাং রেপরয নাভ গিতীয়গট ান নাভ মা াঅভযা get_option() পাাংন গদপরয়ও ডপরত াগয ততীয়গট করফযাক পাাংন এগট একগট গসটরাং ডযপাপরযনস পাাংন এখাপরন াঅভযা নাভ

48

গদপরয়গি liton _myplugin_validate_options মা া কযপরফ পপরভডয কর ডব ডগটাং াঅভযা এটা পরয গডপাাআন কযফ

ডগটাং গডপাাআন ডকন add_settings_field() এফাং add_settings_section() পাাংন গদপরয় াঅভযা াঅভাপরদয কর ডগটাং গডপাাআন কযফ ltphp

add_settings_section( liton_myplugin_main My Plugin Settings

liton_myplugin_section_text liton _myplugin)

add_settings_field( liton _myplugin_text_string Enter text here

liton _myplugin_setting_input liton _myplugin liton _myplugin_main)

gt

add_settings_section() পাাংন গদপরয় াঅভযা ডদখাফ াঅপরর ডজ এ ডকন ডকভন ডদখাপরফ এয চাযগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ ডকন টাাআপরটর ltH3gt টযাপরগয ভপরধয করফযাক পাাংন এয নাভ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ (page= liton _myplugin এগট

URL এয াাং গপরপরফ থাকপরফ) গিতীয় যাযাগভটায add_settings_field() পপরভডয াআনট গপরপরফ ডদখাপরনা পরয়পরি এখাপরন াাচগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ পরযয গপপরলড গক গেনট কযা পরফ তা ডটকসট গপরপরফ ডদখাপরনা পরয়পরি(Enter text

here)

করফযাক পাাংন পপরভড গেনট কযপরফ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ ডগটাং ডপরজয ডকন গপলড মা add_settings_section() পাাংপরন গডপাাআন

কযা পরয়পরি ltphp

Explanations about this section

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

49

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton _myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name= liton _myplugin_options[text_string]

type=text value=$options[text_string] gt

gt

গিতীয় পাাংন ান বযার text_string ডক এযাপরযপরত ডসটায কপরয ডযপরখপরি এফায াআউজায াআনট বযাগরপরডট কযফ- ltphp

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace([^a-zA-Z]$input[text_string] )

return $valid

gt

পভডপরক ডযনডায কযফ- ltphp

Draw the options page

function liton_myplugin_options_page()

gt

ltdiv class=wrapgt

ltphp

screen_icon()

gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp

settings_fields( liton_myplugin_options)

do_settings_sections(liton_myplugin)

50

gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

settings_fields() পাাংনগট ডযপাপরযনস গপরপরফ ফযফায কযা পরয়পরি মা াঅভযা register_setting() পাাংপরন গডপরিয়ায কপরযগি do_settings_sections() পাাংনগট কর কযপরফ কর াঅউটট ডকন এফাং পভড গপলডপরক মা াঅভযা পরফড গডপাাআন কপরযগি াঅভাপরদয কাজ ডল এফায পরযা পলাগগনগট ডদখফ- ltphp

Plugin Name Settings API example

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

Draw the option page

function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save

Changes gt

ltformgtltdivgt

ltphp

51

Register and define the settings

add_action(admin_init liton_myplugin_admin_init)

function liton_myplugin_admin_init()

register_setting( liton_myplugin_options

liton_myplugin_options

liton_myplugin_validate_options )

add_settings_section( liton_myplugin_main My Plugin

Settings

liton_myplugin_section_text liton_myplugin )

add_settings_field( liton_myplugin_text_string Enter text

here

liton_myplugin_setting_input liton_myplugin

liton_myplugin_main )

Draw the section header

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton_myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name=liton_myplugin_options[text_string]

type=text value=$text_string gt

Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

return $valid

gt

52

ডদখন ডযাপরফাপরডড ডকভন ডদখায়-

পরয় ডগর াঅভাপরদয েথভ নডাাংগ পলাগগন ান ডজ াঅপরযকগট গজগন ডমটায জনয এতগকি পলাগগন URL এপরডর- httplocalhostdev-litonwp-adminoptions-

generalphppage=liton_mypluginampsettings-updated=true

াঅভায এখাপরন এযকভ ডদখাপরচছ ডটকসট ফপরকস ডকান গকি গরপরখ ডব কযায য এফাপরয াঅপরযকগট গজগন ডদখফ াঅভযা াপরনক ভয়াআ াপরনক পলাগগপরনয াআনট গপপরলড বর ডাটা াআনট কযপরর এযয ডভপরজ ডদখায় এাআ কাজগট কযফ এফায াঅভযা এখাপরন esc_attr() ফা esc_html() ফযফায কগযগন সতযাাং াঅভাপরদয গরগভপরটন থাকপরি ডবগরপরডট পাাংনগট একট এগডট কগয গনপরচয ভত কপরয Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

if( $valid[text_string] = $input[text_string] )

add_settings_error(liton_myplugin_text_stringliton_myplugin_texterror

53

Incorrect value enterederror)

return $valid

উপরয ডদখন add_settings_error() পাাংন ফযফায কপরযগি মা এযয ডচক কযপরফ পপরভডয াঅগভ একগট বর ডাটা(পরসপার কযাপরযকটায) াআনট কপরয ডদখরাভ এযয ডদখাপরচছ-

তায ভাপরন াঅভযা পর পরয়গি াঅনায পলাগগনগট এগডট কপরয ডনপরফন ডকায ডকন এফাং গপপরলডয গরসট গদরাভ াঅনাপরদয সগফধায জনয

54

CSSJS পাাআর মি কযা

াঅনায পলাগগপরন গএএ ফা জাবাগিে ডমাগ কযপরত পরত াপরয াঅগন চাাআপরর ফাগপরযয ডকান ফা াঅনায ততগয ডকান গএএ ফা জাবাগিে পাাআর ডমাগ কযপরত াপরযন তপরফ এপরকষপরতর াঅভযা ডমবাপরফ HTML এ পাাআর ডমাগ কগয ডযকভ না function liton_scripts()

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtojqueryjsrdquogtltscriptgt‟

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtoscriptjsrdquogtltscriptgt‟

add_action(bdquowp_head‟‟liton_scripts‟)

এগট মপনডরপর বর িগত গনপরচ ডদখন ওয়াডডপরেপর গকবাপরফ পাাআর মি কযপরত য়- function liton_scripts()

wp_enqueue_script(bdquojquery‟)

wp_enqueue_script(bdquotheme-scripts‟‟pathtoscriptsjs‟)

add_action(bdquowp_enqueue_script‟‟liton_scripts‟)

ানর বাপরফ াঅগন সটাাআরীট ডমাগ কযপরত াপরযন- function liton_styles()

wp_enqueue_ style (bdquocss‟)

wp_enqueue_ style (bdquotheme- styles‟pathto stylescss‟)

ডযপাপরযনস ডদখন- httpcodexwordpressorgFunction_Referencewp_enqueue_script

httpcodexwordpressorgFunction_Referencewp_enqueue_style

টডপরকাড টডপরকাড পরচছ ওয়াডডপরেপরয ডসপগগপক ডসপার টযাগ মা াঅগন ডাসট ফা ডপরজয ভপরধয াআনাটড কপরয ানয ডকান কনপরটনটপরক ওপরয়ফাাআপরটয ভপরধয গযপরপল কযপরত াযপরফন মগদ াঅগন গযারাগয টাাআপরয ডকান পলাগগন ফযফায কপরয থাপরকন তাপরর াঅনায ধাযনা থাকায কথা মাাআ ডাক াঅগভ কপরয়কগট উদাযি ডদখাফ

55

েথপরভ একগট পলাগগন ততগয কযফ ডমখাপরন add_shortcode() নাপরভয একগট পাাংন থাকপরফ এগট রগট যাযাগভটায েন কপরয েথভগট টডপরকাপরডয নাভ গিতীয়গট ডম পাাংনপরক কর কযপরফন ডগট াঅভযা একগট উদাযন ডদগখ- ltphp

Plugin Name Liton Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(litonhi)

function hi()

echo Hello World

gt

উপরয ডদখন খফ ডিাট গকনত াঅগন চাাআপরর এয ফযফায াপরনক গফসতত কযপরত াপরযন এখাপরন টডপরকাড নাভ পরচছ liton াঅয এগটপরক ডরখা য় এবাপরফ [liton] াঅভযা ডাপরসটয ভপরধয াআনাটড কপরয ডদগখ াঅউটট ডকভন ডদখায়-

এফায াঅউটট ডদগখ-

56

াঅভাপরদয ততগয কযা টডপরকাড পরবাপরফাআ কাজ কযপরি াঅপরযকগট উদাযন ডদখফ াঅনাযা াপরনপরকাআ গগর এডপরনস গনপরয় কাজ কপরযন াঅনাযা াপরনপরকাআ এডপরনস এয জনয পলাগগন ফযফায কপরযন গকনত চাাআপররাআ এাআ কাজগট াঅনাযা গনপরজয ভত কপরয াগজপরয় গনপরত াপরযন গগপররয কাপরি ফ ডাসট বযার ায়না াঅনাযা মাযা একসাটড াঅপরিন তাযা এটা বার কপরয জাপরনন তাাআ াপরনপরকাআ গগপররয ডকাড ফ ডপরজ ডদখাপরত চান না এজনয পলাগগন ফযফায কপরয রাব য়না কাযন পলাগগপরন জায়গা গপকসড থাপরক এপরত কপরয াঅগনডাং ও কভ য় াঅনাযা টডপরকাড ফযফায কপরয ডমপরকান জায়গায় এড ডদখাপরত াপরযন গনপরচ াঅগভ রগট টডপরকাড ততগয কপরযগি র‟ধযপরনয এড ডদখাপরনায জনয ltphp

Plugin Name Liton Adsense Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(adsense_468adsense_468_60)

add_shortcode(adsense_250adsense_250_250)

function adsense_468_60($atts)

return ltscript type=textjavascriptgtlt--

57

google_ad_client = ca-pub-0956247412222369

468x60 created 101510

google_ad_slot = 4372705450

google_ad_width = 468

google_ad_height = 60

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

function adsense_250_250($atts)

return ltscript type=textjavascriptgtlt--

google_ad_client = ca-pub-0956247412222369

250x250 created 81809

google_ad_slot = 9368091893

google_ad_width = 250

google_ad_height = 250

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

gt

একগট টডপরকাড ফযানায টাাআপরয জনয এফাং াঅপরযকগট ২৫০২৫০ াাআপরজয এফায ডাপরসট ডমপরকান একগট টডপরকাড াআনাটড করন ডমখাপরন াঅনায ডদখাপরনায েপরয়াজন ভপরন কপরযন াঅগভ রগট ডকাড ডটসট কপরয ডদখরাভ-

58

এফায াাআপরটয াঅউটট ডদগখ-

রগট এডাআ ডদখাপরচছ াঅপরযা াপরনক কাপরজ াঅগন টডপরকাড ফযফায কযপরত াপরযন ডযপাপরযনসাঃ httpcodexwordpressorgShortcode_API

59

াধযায়- নয়াঃ পলাগগন উদাযন

ওয়াডডপরেপরয ডডটটাাআভকপরভনট নামবায ফাাংরা কযায পলাগগন াঅভাপরক কপরয়কজন ফপররগিপররন ওয়াডডপরেপরয গডপলট ডডটটাাআভকপরভনট নামবায ফাাংরা য়না রযাাংগপরয়জ ফাাংরা কযায যও ডডটটাাআভকপরভনট নামবায গপররা াআাংপরযগজ ডথপরক মায় গনপরচয পলাগগনগট ফযফায কপরয ডদখপরত াপরযন- ltphp

Plugin Name Liton Bangla datetimecomment number

Plugin URI httpliton-onlinecomplugins

Description Bangla datetimecomment number

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

This function converts all english numbers to bangla number

function make_bangla_number($str)

$engNumber = array(1234567890)

$bangNumber = array( ১ ২ ৩ ৪ ৫ ৬ ৭ ৮ ৯ ০ ) $converted = str_replace($engNumber $bangNumber $str)

return $converted

add_filter( get_the_time make_bangla_number )

add_filter( the_date make_bangla_number )

add_filter( get_the_date make_bangla_number )

add_filter( comments_number make_bangla_number )

add_filter( get_comment_date make_bangla_number )

add_filter( get_comment_time make_bangla_number )

gt

60

সলাাআডায পলাগগন াঅভযা এাআ ফাআপরয়য কর গটউপরটাগযয়াপরর মা মা গখরাভ তা এফায একগট নডাাংগ পলাগগপরনয এপলাাআ কযফ সলাাআডায পলাগগন মপপরকড াঅভযা ফাাআ জাগন একগট ওপরয়ফাাআপরটয ডচাযা ারপরট ডদয় একগট সলাাআডায াপরনক ডাাআনাগভক ভপরন য় ডদখপরতও াপরনক বার রাপরগ এাআ পলাগগপরন াঅভযা এডগভন যাপরনর ডথপরক াআপরভজ ডমাগ কযফ এফাং তা াঅভাপরদয াাআপরট ডদখাফ চরন কাজ রর কগয- েথপরভ গনপরবা সলাাআডায এয ওপরয়ফাাআপরট মান এফাং jQuery Plugin ডাউনপররাড করন

ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom Version 10

gt

াঅভযা পলাগগপরনয ডডায ততগয কযরাভ

পলাগগন গরপরসট ডদখাপরচছ bdquoLitons Nivo Plugin‟ াঅভাপরদয েথভ কাজ পরচছ custom post

type ওয়াডডপরে পাাংনাগরগট একগট নতন কাসটভ ডজ ততগয কযপরত custom post type

ফযফহরত পরফ ডমখাপরন একগট াআপরভজ থাকপরফ াঅভযা রধ টাাআপরটর ডনভ এফাং াআপরভজ াঅপররাডায গপরপরফ গপচায াআপরভজ পাাংনাগরগট ফযফায কযফ function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_function 600 280 true)

61

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

add_action(init np_init)

উপরযয ডকাপরড np_init() পাাংনগট রক কপরযগি মা ডডায যান কযায াঅপরগ যান পরফ াঅয এজনয register_post_type() পাাংনপরক এয যাযাগভটায গদপরয় np_init() পাাংপরনয ডবতপরয মি কপরযগি এটা মগদ না কযতাভ তাপরর ldquoHeaders already sentrdquo ডভপরজ ডদখাত এাআ ডভপরজগটয াপরথ াপরনপরকাআ গযগচত াঅা কগয register_post_type() পাাংন গদপরয় াঅভযা াআপরভজ মি এফাং ভযাপরনজ কযফ ভরত াঅভযা একগট নতন custom post type ডমাগ কপরযগি np_images নাভ গদপরয় নতন custom post type ডক ডগটাং বযার গপরপরফ াঅযগপরভনট া কপরযগি $args ডবগযপরয়ফরগট ট ডরপরবর ডভন ততগয কপরয াঅপরগাআ ডদপরখগি পলাগগনগট এগকটপরবট কযপরর াঅভযা গনপরচয ভত ডদখপরত াফ-

এফায গিে এফাং সটাাআরীট ডক মি কযফ- add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

এফায রক কযা পাাংনগপররা গডপরিয়ায কগয- function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__) array( jquery ))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

62

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

উপরযয ডকাডগপররা নতন কপরয ফিডনা কযায গকি ডনাআ াঅপরগাআ wp_enqueue_style() এফাং wp_enqueue_script() মপপরকড ফরা পরয়পরি নতন াঅপরযকগট পাাআর ততগয করন একাআ গডপরযকটগযপরত scriptjs এফাং গনপরচয ডকাডটক গদন- jQuery(document)ready(function($)

$(slider)nivoSlider()

)

াআপরভজপরক গযাাআজ করন- add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

াঅভযা এাআ পলাগগনগটপরক উাআপরজট গপরপরফও ফযফায কযফ ডগট পরয ডদখফ াঅপরযকগট গজগন মগদ গথপরভ না ডদয়া থাপরক ডজনয থামবপরনাআর াপরাটড গদপরয় গদন- add_theme_support( post-thumbnails )

এফায ওয়াডডপরেপরয কাপরযনট ডাসট কপরয়যী কযায ডকাড াঅয $result ডবগযপরয়ফপরর ডমফ ltdivgt টযাগ ফযফায কযা পরয়পরি তা jQuery Plugin গট একসিাকট কপরয indexhtml ডজগটয ডভাআন সলাাআডায ডকাডগট ডদখন একাআ াঅপরি রধ ডখানকায ltdivgt টযাগ গপররাপরক কগ কপরয এাআ পলাগগপরন ফযফায কযা পরয়পরি এফায টডপরকাড গদন- add_shortcode(np-shortcode np_function)

এাআ টডপরকাড গএাআচগ পাাংনপরক রক কযপরফ এফাং এয ভধয ডথপরক সলাাআডপরায কনপরটনট ডক গযটানড কযপরফ াঅভাপরদয টডপরকাড পরচছ [np-shortcode] াঅভযা পলাগগপরন মাাআ এফাং একগট িগফ মি কগয গপচাযড াআপরভজ গপরপরফ গনপরচ ডদখন-

63

াঅগভ াঅপরযকগট ডজ ততগয কপরযগি ডমখাপরন টডপরকাড গদপরয়গি

াঅউটট ডজ ডদগখ এফায-

64

পরয় ডগর াঅভাপরদয সলাাআডায পলাগগন পরযা ডকাডগট গনপরচ গদরাভ- ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

65

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

66

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

এফায াঅগন মগদ উাআপরজট গপরপরফ ফযফায কযপরত চান তাপরর গনপরচয ডকাডটক গদন- class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

67

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

echo $after_widget

াঅপরযা রগট কাজ কযপরত পরফ াঅনাপরক এক াআপরভজ াাআজ উাআপরজট এয জনয গঠক কপরয গদপরত পরফ- add_image_size(np_widget 180 100 true)

াঅপরযকগট র উাআপরজট এযাকন রক ডমাগ কযা add_action(widgets_init np_widgets_init)

উাআপরজট পরযা ডকাড াঅফায গদরাভ- ltphp

Plugin Name Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Ciprian Turcu

Version 10

68

class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

69

echo $after_widget

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

70

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(widgets_init np_widgets_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

71

পলাগগন গনপরয় এত ডিাট গযপরয ডরখা মভফ নয় এজনযাআ ভপরন য় পলাগগন গনপরয় ডকউ ডরপরখন না কাযন এখাপরন এত গফলয় াঅপরি মা াঅপররাচনা কযপরত ডগপরর ৫০০ ডজ ায পরয় মাপরফ ডফাোয সগফধাপরথড াঅগভ মথামভফ উদাযন গদপরয় ডফাোপরনায ডচষটা কপরযগি াঅগভ এখাপরন টাপরগডট কপরযগি মাযা টকটাক জাপরন পলাগগন মপপরকড এডবানস ডরপরবপররয নয় কাযন তাযা জাপরনন াঅভায উপরেশয গির মাযা জানপরত চায় তাপরদযপরক জানাপরনা এখাপরন ডমফ গফলয় াঅপররাচনা কযা পরয়পরি তা ডভাটাভগট ভাপরনয একগট পলাগগন ফানাপরনায জনয মপরথষট তপরফ ভাপরনাননয়পরনয জনয াঅনাপরক গনপরজাআ খাপরজ গনপরত পরফ াঅনায জনয ডকানটা বার পরফ াঅগভ রধ গদক গনপরদডনা গদরাভ ভাতর এাআ ফাআগট রধভাতর ওয়াডডপরে রেপরয জনয ডরখা াপরনক বর ভরাগনত থাকপরত াপরয াঅনাযা কষভাসনদয দগষটপরত ডদখপরফন াঅগভ ডচষটা কপরযগি মতটা জ কপরয ডরখা মায় াপরনক ভয় ডদখা মায় ডম খফ ডিাট খাপরটা গফলয় গনপরয় াপরনপরকাআ নক কপরযন এটা গতয রাঃখজনক াঅনাযা গগপরর একট খাজপররাআ ভাধান াপরফন াঅপরগ গনপরজ ডচষটা করন তায পরয ানযপরক ভাধাপরনয জনয গজজঞাা করন াঅভায জনয ডদায়া কযপরফন বাপররা রাগপরর জানাপরফন খাযা রাগপররও জানাপরফন তাপররাআ াঅভায গযশরভ সবাথডক পরফ ভতাভত জাগনপরয় াঅভাপরক ডভাআর কযপরত াপরযন litonice09gmailcom |

72

Page 25: Wordpress Plugin Development

26

ডভনপরক াঅপরগয ডভনয াপরথ মি কযা এফায াঅগ গিতীয় িগতপরত মগদ াঅনায পলাগগপরনয একগট ভাতর ডজ থাপরক একগট ভাতর ডপরজাআ াঅনায কর ডগটাং পরয় মায় তাপরর এাআ িগত েন করন ডমভন ডয়াগযাং াাআটগপররায জনয রধ াঅনায াঅাআগডপযানপরপরজয াঅাআগড দযকায য় এযকভ পলাগগন এধযপরনয পলাগগপরনয জনয াঅনায াগতগযি ডভন ততগয কযায দযকায ডনাআ ফযাং এপরত কপরয াআউজায গফযি ডফাধ কযপরত াপরযন এ ধযপরনয পলাগগনগপররা ডগটাং এয াফপরভন গপরপরফ থাপরক add_options_page() এাআ পাাংন গদপরয় এফ ডভন ডযগজসটায কযা য় ltphp

add_options_page( page_title menu_title capability

menu_slug function)

gt

এফায চরন এযকভ একগট ডভন ততগয কগয- ltphp

Plugin Name Liton Sub Menu

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action( admin_menu liton_submenu)

function liton_submenu()

create a submenu under Settings

add_options_page( Liton Menu Settings Page Liton Menu Page

manage_options __FILE__

liton_menu_settings_page)

27

gt

াফপরভন ততগয পরয় ডগপরি চরন ডদগখ ডযাপরফাপরডড ডকভন ডদখায়-

এপরকফাপরয গনপরচয গদপরক ডদখন Liton Menu Page নাপরভ একগট ডভন ততগয পরয়পরি

উাআপরজট ততগয কযা উাআপরজট ততগয কযায জনয ওয়াডডপরে WP-Widget িা গদপরয় ততগয কযা য় উাআপরজট এয একগট পযভযাট ডদখন গনপরচ ltphp

class My_Widget extends WP_Widget

function My_Widget()

processes the widget

function form($instance)

displays the widget form in the admin dashboard

function update($new_instance $old_instance)

process widget options to save

function widget($args $instance)

displays the widget

gt

28

উাআপরজট ডযগজসটায কযায জনয widget_init() পাাংনপরক রক কযা য় চরন একগট উাআপরজট ততগয কগয- ltphp

Plugin Name Liton Widget

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

class Messager extends WP_Widget

function __construct()

$params=array(

description =gtDisplay message to readers

name =gt Message

)

parent__construct(Messager $params)

public function form()

public function widget()

add_action(widgets_initliton_register_message)

function liton_register_message()

register_widget(Messager)

gt

29

খফ াধাযন একগট উাআপরজট পলাগগন এগট াঅভযা াআউজাযপরদযপরক একগট ডভপরজ ডদখাপরফা াাআডফাপরয ডটাাআ কযায ডচষটা কযগি এখন পলাগগনগট এগকটপরবট কপরয ডদগখ-

াঅভাপরদয উাআপরজটগট ডদখাপরচছ এফায াঅপরযা গকি পাাংনার কাজ কগয এগট মগদ াাআডফাপরয ডরাগ কপরয ডদন তাপরর ডকান কাজ কযপরফ না কাযন াঅভযা এখপরনা গকিাআ কগযগন পভড পাাংপরন গকি কাজ কগয মা উাআপরজট টাাআপরটর গপরপরফ ডদখাপরফ- public function form($instance)

extract($instance)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title)gtgtTitle ltlabelgt

ltinput

class=widefat

id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt

value=ltphp if(isset($title)) echo esc_attr($title) gt gt

ltpgt

ltphp

াঅভযা উপরয class=widefat ফযফায কপরযগি এাআ িা ফযফায কযায কাযপরন পভড এয াআনট গপলডগট াপরনক সনদয পরয়পরি

30

মগদ এাআ িা ফযফায না কগয তাপরর ডকভন ডদখাপরফ গনপরচ ডদখন-

াঅভাপরদয উাআপরজট পলাগগনগটয ডকাড গনপরচ ডদওয়া র ltphp

Plugin Name Liton Widget

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

class Messager extends WP_Widget

function __construct()

$params=array(

description =gtDisplay message to readers

name =gt Message

)

parent__construct(Messager$params)

31

public function form($instance)

extract($instance)

print_r($instance)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title)gtgtTitle ltlabelgt

ltinput

class=widefat

id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt

value=ltphp if(isset($title)) echo esc_attr($title) gt gt

ltpgt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(description)gtgtDescription

ltlabelgt

lttextarea

class=widefat

rows=10

id=ltphp echo $this-gtget_field_id(description) gt

name=ltphp echo $this-gtget_field_name(description) gtgtltphp

if(isset($description)) echo esc_attr($description) gtlttextareagt

ltpgt

ltphp

public function widget($args$instance)

extract($args)

extract($instance)

echo $before_widget

echo $before_title$title$after_title

echo ltpgt$descriptionltpgt

echo $after_widget

add_action(widgets_initliton_register_message)

function liton_register_message()

32

register_widget(Messager)

gt

এফায াঅভযা ডযাপরফাডড ডথপরক একগট ডভপরজ ডদফ গবগজটযপরদযপরক-

াঅভযা এাআ উাআপরজটগট ডাাআনাগভক বাপরফ কপরযগি কাযন এখাপরন lth2gt lth3gt lth4gt এ ধযপরনয ডকান টযাগ াঅভযা ফযফায কগযগন াঅভযা গথভ ডডপরবর কযগিনা সতযাাং এ কাজগট াঅভাপরদয ানযবাপরফ কযা দযকায গির এগট গথভ ডডপরবরায ডদগখপরয় ডদপরফন ডম ডকভন টযাগ পরফ াাআডফাপরয াাআপরটয াাআডফাপরয ডকভন ডদখায় তা ডদখন- াঅভযা রগট গথপরভ এগট ডটসট কপরয ডদখফ েথভগট টপরয়গনট াআপররপরবন

33

এফায াঅপরযকগট গথপরভ ডদগখ-

34

াধযায়- িয়াঃ পলাগগন পাাংন

গকি ডফগক পাাংন __() পাাংন

__() পাাংনগট গএাআচগপরত াঅনায ডটকসটপরক ডযগড কপরয িানসপররন এফাং গযটানড কপরয উদাযন গপরপরফ াঅগন একগট বযারপরক __() পাাংপরনয ভপরধয ডবগযপরয়ফর গদপরয় assign করন ভপরন যাখপরফন এাআ পাাংনগট রগট াঅনডাযপরিায(_) গদপরয় গগঠত একগট নয় ltphp

$text=__(bdquoWordpress is a wonderful publishing platform‟‟liton_plugin‟)

gt

_e() পাাংন _e() পাাংনগট াঅনায ডটকসবপরট ডরাকারাাআজ কপরয এটা গএাআচগপরত echo এয ভত কাজ কপরয ডকান ডটকসটপরক গিপরন ডদখাপরনায জনয এফায একট ভজা কগয মা রপরক ডদপরখগি াঅপরগাআ- _e() পাাংনগট গদপরয় াঅপরগয পলাগগনগট এগডট কযফ ltphp

Plugin Name Liton Action

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(wp_footer liton_footer_action)

function liton_footer_action()

Output the translated text

_e( This site runs off the coolest platform ever ampmdash

WordPress

liton-plugin )

gt

35

এফায াঅউটট ডদগখ

esc_attr__() পাাংন এাআ পাাংনগট esc_attr() এয ভত এগট এাআচগটএভএর এগিগফউটপরক escape কপরয াঅভযা এফায esc_attr__() এফাং __() এাআ রগট পাাংনপরক একগট কপরয পলাগগন ততগয কযফ ltphp

Plugin Name Liton Esc Attr

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

A function that returns a link to the sites terms of service

page

function liton_terms_of_service_link()

return lta href=httpliton-onlinecomtos title=

esc_attr__( Visit the Terms of Service page boj-plugin ) gt __( Terms of

Service liton-plugin ) ltagt

Display the output of the liton_terms_of_service_link()

function

echo liton_terms_of_service_link()

gt

পলাগগনগটয াঅউটট ডদখন-

36

এযকভ াঅপরযা গকি পাাংন াঅপরি ডমগপররা াঅনাযা ডদপরখ ডনপরফন াআনটাযপরনট ডঘপরট

esc_html__() Function

esc_attr() Function

esc_url() Function

esc_js() Function

esc_html() Function

esc_attr_e() Function

esc_html_e() Function

_x() Function

_ex() Function

esc_attr_x() Function

esc_html_x() Function

_n() Function

_nx() Function

_n_noop() Function

_nx_noop() Function

Translation

bull Poedit httppoeditnet

bull GlotPress httpglotpressorg

bull Launchpad httpstranslationslaunchpadnet

bull Pootle httppootlelocamotionorg

bull KBabel httpi18nkdeorg

bull GNU Gettext httpgnuorgsoftwaregettext

GlotPress এখন ওপরয়ফ ডফড টর গপরপরফ ফযফায কযা পরচছ ওয়াডডে েপরজপরকটয ডিপরন একজন াথফা গটপরভয জনয িানসপররগটাং পটওয়যায গপরপরফ

37

াধযায়- াতাঃ পলাগগন গগকউগযগট

গগকউগযগট কগমপউটাপরযয বালায় ldquoগগকউগযগটrdquo ভাপরন বীগতকয একগট বদ ডমভন Cross Site

Scripting(XSS) Cross Site Request Forgery(CSRF) SQL Injection Privilege

Escalation Vulnerabilities এফাং Holes রফডর ডকাড একগট াবডাপরযয সযকষায জনয রভকীয কাযন পরত াপরয

পলাগগপরনয গগকউগযগট গক াঅনায পলাগগনগট ডমন গগকউয য় vulnerabilities data integrity এফাং reliability ডথপরক

াঅনায পলাগগনপরক গক গগকউগযগট ডদপরফন ওয়াডডপরে এনবায়যনপরভপরনট াঅনায পলাগগনপরক গগকউগযগট ডদয়া খফ কগঠন কাজ নয় এফাং খফ ভয় াপরকষ গফলয়ও নয় ওয়াডডপরেপরয গনজসব গকি পাাংন এপরকষপরতর াঅনাপরক খফাআ াাময কযপরফ

াআউজায াযগভন াঅভযা াপরনক পলাগগন াআনসটর কযায পরযাআ ডদপরখগি ডম মখনাআ এডগভন যাপরনর এ েপরফ কযপরত মাাআ তখন একগট এযয ডভপরজ াঅপর ডভপরজগট গনপরচয ভত-

ডরখা াঅপরি- You do not have sufficient permissionshellip এটা গনশচয়তা ডদয় ডম ডমপরকান এযাকন ীভাফি থাপরক গনগদডষট গকি যাাআট গদপরয় ওয়াডডপরেপরয একগট কভন পাাংন র current_user_can() একগট উদাযন ডদাআ-

38

ltphp

Capability

if ( current_user_can(install_plugins) )

wp_die( Insufficient permissions )

Role

if( current_user_can(editor) )

wp_die( You cannot edit this setting )

gt

খফ তাড়াতাগড় াঅগন এাআ current_user_can() পাাংন ডচক কযপরফন না কাযন এটা গনবডয কযপরফ get_currentuserinfo() এাআ পাাংপরনয উপরয াঅয এয ফযফাপরয ীভাফিতা াঅপরি এটা একগট পলাপরগফর পাাংন(pluggable function) াঅয এয ডরাপরকন পরচছ wp-

includespluggablephp মা পলাগগন এগকটব ফায য ডরাড য়

Nonces

ডকউ এগটপরক াঅফায Nonsense( গনপরফডাধ) বাফপরফন নাএগট ওয়াডডপরেপরয বালায় Nonces কগমপউটাপরযয বালায় nonce ফা cryptographic nonce পরচছ ldquonumber used once rdquo এটা ডিাট এফাং সপষট গকি য যানডভ গসটরাং ডমভন- াওয়াডড মা গকি গনপরদড কপরয Nonce গপরডন গপলড পভডপরক Retrieve ফা display কপরয-

একজন ওয়াডডপরে াআউজায ডমপরকান একগট এযাকন (delete update save and such) একগট াফপরজকট(একগট ডাসট পলাগগন ডগটাং াআতযাগদ) ২৪ ঘনটায একগট ভয় ডিভ

ডমভন ডাসট 50 গডগরট কযপরফন াঅনায ওয়াডডপরে বলগ ডথপরক তাপরর াঅনায গরঙকগট পরফ এযকভ- httpexamplecomwp-admin

postphppost=43ampaction=trashamp_wpnonce=83a08fcbc2

এখাপরন 83a08fcbc2 এগট র nonce মা ২৪ ঘনটা সথায়ী থাপরক রধভাতর এগট মগদ াঅনায িাযা ফযফরত য় এফাং গডগরট য় ডাসট 50 মখন াঅগন গরপরঙক গিক কপরযন ফপরচপরয় গযতবনড র ডম Nonce ডকান malicious াআউজায ফেপরত াপরযনা এফাং গঠক গরঙক িাড়া nonce এযয ডপরজ চপরর মায় ডমখাপরন াযগভন থাপরক না াঅপরযা গফসতাগযত ডদখন httpcodexwordpressorgWordPress_Nonces

39

Nonce URL ততগয এফায চরন াঅপরগয উদাযন ডথপরক Nonce URL ততগয কগয একগট ডাসট গডগরট কযায জনয wp_nonce_url() পাাংন ফযফায কযা য় ltphp

$url = wp_nonce_url( $url $action )

gt

েথভ যাযাগভটায $url পরচছ গসটরাং URL এপরডর এয মাপরক াঅগন কপরয়যী গসটরাং এয Nonce কযপরত চান াফযফহরত পলাগগপরনয গডগরট গরঙক এযকভ থাপরক- httpexamplecomwp-admineditphppage= liton

_utagsampliton_action=deleteampid=6

এখাপরন ডদখন যাযাগভটায liton_action এফাং এয টযাগ াঅাআগড গিতীয় যাযাগভটায পরচছ $action একগট গসটরাং মা াঅগন একগট াফপরজকট এয জনয একগট action ততগয কযপরফন উপরয ডদখরাভ delete এযাকন এয টযাগ াঅাআগড 6 সতযাাং $action যাযাগভটায পরত াপরয bdquoliton_utags-delete_tag6‟ গনপরচ ফাসতফ উদাযন ডদগখ- ltphp

$delete_url = add_query_arg(array( liton _action=gtdeleteid=gt$id) )

$nonced_url = wp_nonce_url( $delete_url bdquoliton _utags-delete_tag$id )

gt

lta href=ltphp echo $nonced_url gtgtdeleteltagt

এাআ টযাগগট পরফ গডগরট গরঙক এখাপরন add_query_arg() পাাংন ফযফায কযা পরয়পরি মা কাপরযনট URL ডক এযাপরয যাযাগভটায এয ভপরধয যাপরখ ানযবাপরফ ফরপরর এগট ডমাগ কপরয এযকভাঃ liton_action=deleteampid=6 amp liton_action=deleteampid=6

Nonce Form ততগয Nonce পভডপরকও ডোপরটকট কপরয wp_nonce_field() পাাংপরনয ভাধযপরভ ltphp

wp_nonce_field( $action $name $referer $echo ) gt

$action ( string) (optional) - action নাভ াআউগনক identifier optional

গকনত recommended $name (string) (optional) ndash গপরডন গপলড পভড ডবগযপরয়ফর নাভ $referer (boolean) (optional) ndash গডপলট গপরপরফ true থাপরক ডমখাপরন গপলড

ডবগরপরডন এয দযকায য়

40

$echo (boolean) (optional) - গডপলট গপরপরফ true থাপরক ডমখাপরন াঅউটট ডদখাপরনায ফা গপরডন পভড গপলড গযটানড কযায জনয দযকায য়

পপরভড াঅনায action এয নাভ গদন ltform method=postgt

lt-- some inputs here --gt

ltphp wp_nonce_field(name_of_my_actionname_of_nonce_field) gt

ltformgt

াঅভযা একগট পলাগগন ফানাপরফা ডমখাপরন াফযফরত টযাগগপররাপরক াঅভযা ভযানয়াগর গডগরট ফা গযপরনভ কযপরত াযফ এগট একট ফড় গকনত াপরনক গফলয়াআ াঅপরগাআ াঅপররাচনা কযা পরয়পরি ডদখপররাআ ফেপরত াযপরফন একগট ফাসতফধভডী উদাযন গনপরচ গদরাভ- ltphp

Plugin Name Liton Unused Tags

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add an entry for our option page to the Posts menu

add_action(admin_menu liton_utags_add_page)

function liton_utags_add_page()

add_posts_page( Unused Tags Unused Tagsmanage_optionsliton_utags

liton_utags_option_page )

Catch any liton_action parameter in query string

add_action( admin_init liton_utags_do_action )

Proceed to requested liton_action if applicable

function liton_utags_do_action()

if( isset( $_REQUEST[liton_action] ) )

return

if( current_user_can( manage_options ) )

wp_die( Insufficient privileges )

41

$id = $_REQUEST[id]

$action = $_REQUEST[liton_action]

if( $action == done )

add_action( admin_notices liton_utags_message )

return

check_admin_referer( liton_utags-$action_tag$id )

switch( $action )

case rename

$newtag = array( name =gt $_POST[name] slug =gt

$_POST[name] )

wp_update_term( $id post_tag $newtag )

break

case delete

wp_delete_term( $id post_tag )

break

wp_redirect( add_query_arg( array( liton_action =gt done )

) )

Admin notice

function liton_utags_message()

echo ltdiv class=updatedgtltpgtAction

completedltpgtltdivgt

Draw the tag management page

function liton_utags_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtUnused Tagslth2gt

ltphp

if( $tags = liton_utags_find_orphans() )

echo ltpgtYou currently have count( $tags ) unused

tagsltpgt

echo ltolgt

foreach( $tags as $tag )

42

$id = $tag-gtterm_id

$name = esc_attr( $tag-gtname )

$delete_url= add_query_arg(

array(liton_action=gtdeleteid=gt$id) )

$nonced_url= wp_nonce_url( $delete_url

liton_utags-delete_tag$id )

gt

ltligt

ltform action= method=postgt

ltphp wp_nonce_field( liton_utags-rename_tag$id )

gt

ltinput type=hidden name=liton_action

value=rename gt

ltinput type=hidden name=id value=ltphp echo

$id gt gt

ltinput type=text name=name value=ltphp echo

$name gt gt

ltinput type=submit value=Rename gt or

lta href=ltphp echo $nonced_url gtgtdeleteltagt

this tag

ltformgt

ltligt

ltphp

else gt

ltpgtYou have no unused tagsltpgt

ltphp endif gt

ltolgt

ltdivgt

ltphp

Find unused tags return them in an array

function liton_utags_find_orphans()

global $wpdb

$sql = SELECT termsterm_id termsname FROM

$wpdb-gtterms terms

INNER JOIN $wpdb-gtterm_taxonomy taxo

ON termsterm_id=taxoterm_id

WHERE taxotaxonomy = post_tag

43

AND taxocount=0

return $wpdb-gtget_results( $sql )

gt

ডযাপরফাপরডড এাআ পলাগগপরনয ডভন াওয়া মাপরফ ডাসট এয াফপরভন গপরপরফ গনপরচ ডদখন-

এফায পলাগগন ডভনপরত গিক কপরয ডদগখ পলাগগপরনয ডবতপরযয কাজ-

উপরয ডদখন াঅগভ একগট টযাগ ততগয কপরযগিরাভ l i নাপরভ এগট এখাপরন ডদখাপরচছ াঅগভ চাাআপরর এগট এগডট ফা গডগরট কযপরত াগয এফায গডগরট গরঙক এ ভাউপরয কাডয ডযপরখ গনপরচ গরঙক ডদখন ফা গডগরট করন একগট টযাগ াঅভায এখাপরন URL গট এযকভ httplocalhostdev-litonwp-

admineditphppage=liton_utagsampliton_action=doneampid=4amp_wpnonce=30a44b7

986

এখাপরন াঅগভ liton_action=done ফযফায কপরযগি Nonces এয পাাংনগপররায নাভ গনপরচ গদরাভ াঅনাযা ডদপরখ গনপরফন াআনটাযপরনট ডথপরক wp_nonce_field()

wp_nonce_url()

wp_verify_nonce()

wp_create_nonce()

44

check_admin_referer()

check_ajax_referer()

ডাটাপরফ াঅনাযা ডমপরত গএাআচগ গনপরয় কাজ কপরযন এগকউএর ডাটাপরফ এয াপরথ ফাাআ কভপরফী গযগচত এয গনটযাকস গপররা ডভাটাভগট ফায জানা একাআ বাপরফ াপরনপরকাআ ওয়াডডপরেপরও ডাটাপরফ ডকাড গরপরখন এটা ডকাগডাং এয জনয খাযা গদক াঅগভ নযভার গএাআচগ- এগকউএর ডকাড এয উদাযন গদগচছ- ltphp

$sql=rdquoINSERT INTO $wpdb-gtposts(post_title) VALUES(bdquo$title‟)rdquo

$wpdb-gtquery($sql) gt

এফায ওয়াডডপরেপরয সটযানডাডড ডকাগডাং গপরসটভ ডদখন- ltphp

$wpdb-gtinsert($wpdb-gtposts

array(bdquopost_title‟ =gt $title)

array(bdquos‟)

)

gt

ডাটাপরফ গগকউয কযায জনয াঅপরডট াাপরযন ডদখাফ- গনপরচয ডকাডগট খাযা েযাকগট ltphp

$wpdb-gtquery(ldquoUPDATE $wpdb-gtposts SET post_title=‟$newTitle‟ WHERE

ID=$my_idrdquo )

gt

উপরযয ভত কপরয না গরপরখ গনপরচয ভত কপরয গরখন- ltphp

$wpdb-gtupdate($wpdb-gtposts

Array(bdquopost_title‟ =gt‟$newTitle‟)

Array(bdquoID‟ =gt$my_id

)

gt

ানর বাপরফ ানযানয াাপরযন গপররা গরখপরফন

45

াধযায়- াঅটাঃ ডরাকারাাআপরজন এফাং Set t i ngs API

ডরাকারাাআপরজন ডরাকারাাআপরজন একগট গরতবনড গফলয় এয পাাংনগপররা র- load_theme_textdomain()

load_plugin_textdomain()

উদাযন- ltphp $var=__(bdquoHello‟‟domain‟) gt

ltphp _e(bdquoHello‟‟domain‟) gt

গফসতাগযত গনপরচয গরপরঙক ডদখন- httpcodexwordpressorgI18n_for_WordPress_Developers

ডগটাং API

ডগটাং API পরচছ াঅগন গকি ান ততগয কযপরফন মা াআনটাযনার বাপরফ াঅনায পলাগগপরন এপলাাআ পরফ মখন াঅগন াআউজায- গডপাাআন ান ততগয কযপরফন াঅনায পলাগগপরনয জনয তখন Settings

API ndashএ াঅনায ডকাড মতটা ারন জ করন Settings API াঅনায ডম কাজগপররা handle কপরয-

ওয়াডডপরেপরক জাগনপরয় ডদয় ডম াঅগন গনজসব ান ফযফায কযপরফন াঅনায াআনটপরক পাাংপরনয ভপরধয উপরেখ কযপরফ ডফগয বাগ ান ডজ গনপরজাআ ততগয কযপরফ $_POST ডাটা গপররাপরক ভগনটয কপরয ান ততগয এফাং াঅপরডট কপরয(মগদ েপরয়াজন য়)

Settings API পাাংন Settings API পাাংপরন গতনগট ডসট থাপরক- ১ েথপরভ ওয়াডডপরেপরক ফপরর ডম াঅগন নতন ডগটাং ফযফায কযপরফন াঅনায পলাগগপরনয জনয ২ এয পরয ডগটাং গডপাাআন করন (text areas input boxes and any

HTML form element) এফাং এপরদযপরক একাপরথ রে কপরয যাপরখ ৩ ওয়াডডপরেপরক াঅনায ডগটাং actual form এ ডদখাপরনায জনয ফপরর

46

এফায াঅভযা একগট পলাগগন ফানাপরফা Administration Page ndashএ ডযপাপরযনস গপরপরফ ডদখপরত াপরযন- httpcodexwordpressorgAdding_Administration_Menus

httpcodexwordpressorgFunction_Referenceadd_options_page

httpcodexwordpressorgAction_ReferenceActions_Run_During_an_Admin_P

age_Request

পলাগগপরনয এডগভন ডজ পরফ এযকভ- httpexamplecomwp-adminoptions-generalphppage=liton_myplugin

েথপরভ াঅভযা ডভন ততগয কযফ াঅপরগয ভত কপরয- Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

এফায ান ডজ এ পভড গনপরয় গকি ডগটাং ডদফ function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

উপরযয ডকাপরড াঅভযা একগট পপরভডয ভপরধয রধ াফগভট ফাটন এফাং My Plugin নাপরভ ডজ ততগয কপরযগি ডযাপরফাপরডড ডদখন-

47

ডগটাং এয াফ ডভন গপরপরফ My Plugin াঅপরি এফাং My Plugin ডত গিক কযপরর াঅভযা উপরযয ডজ ততগয কপরযগি ডমখাপরন াফগভট ফাটনগট ডদখাপরচছ এফায গতনগট যাযাগভটায ডযগজসটায কযফ- ltphp

register_setting( liton _myplugin_options liton _myplugin_options liton

_myplugin_validate_options)

gt

েথভগট ডগটাং রেপরয নাভ গিতীয়গট ান নাভ মা াঅভযা get_option() পাাংন গদপরয়ও ডপরত াগয ততীয়গট করফযাক পাাংন এগট একগট গসটরাং ডযপাপরযনস পাাংন এখাপরন াঅভযা নাভ

48

গদপরয়গি liton _myplugin_validate_options মা া কযপরফ পপরভডয কর ডব ডগটাং াঅভযা এটা পরয গডপাাআন কযফ

ডগটাং গডপাাআন ডকন add_settings_field() এফাং add_settings_section() পাাংন গদপরয় াঅভযা াঅভাপরদয কর ডগটাং গডপাাআন কযফ ltphp

add_settings_section( liton_myplugin_main My Plugin Settings

liton_myplugin_section_text liton _myplugin)

add_settings_field( liton _myplugin_text_string Enter text here

liton _myplugin_setting_input liton _myplugin liton _myplugin_main)

gt

add_settings_section() পাাংন গদপরয় াঅভযা ডদখাফ াঅপরর ডজ এ ডকন ডকভন ডদখাপরফ এয চাযগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ ডকন টাাআপরটর ltH3gt টযাপরগয ভপরধয করফযাক পাাংন এয নাভ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ (page= liton _myplugin এগট

URL এয াাং গপরপরফ থাকপরফ) গিতীয় যাযাগভটায add_settings_field() পপরভডয াআনট গপরপরফ ডদখাপরনা পরয়পরি এখাপরন াাচগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ পরযয গপপরলড গক গেনট কযা পরফ তা ডটকসট গপরপরফ ডদখাপরনা পরয়পরি(Enter text

here)

করফযাক পাাংন পপরভড গেনট কযপরফ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ ডগটাং ডপরজয ডকন গপলড মা add_settings_section() পাাংপরন গডপাাআন

কযা পরয়পরি ltphp

Explanations about this section

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

49

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton _myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name= liton _myplugin_options[text_string]

type=text value=$options[text_string] gt

gt

গিতীয় পাাংন ান বযার text_string ডক এযাপরযপরত ডসটায কপরয ডযপরখপরি এফায াআউজায াআনট বযাগরপরডট কযফ- ltphp

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace([^a-zA-Z]$input[text_string] )

return $valid

gt

পভডপরক ডযনডায কযফ- ltphp

Draw the options page

function liton_myplugin_options_page()

gt

ltdiv class=wrapgt

ltphp

screen_icon()

gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp

settings_fields( liton_myplugin_options)

do_settings_sections(liton_myplugin)

50

gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

settings_fields() পাাংনগট ডযপাপরযনস গপরপরফ ফযফায কযা পরয়পরি মা াঅভযা register_setting() পাাংপরন গডপরিয়ায কপরযগি do_settings_sections() পাাংনগট কর কযপরফ কর াঅউটট ডকন এফাং পভড গপলডপরক মা াঅভযা পরফড গডপাাআন কপরযগি াঅভাপরদয কাজ ডল এফায পরযা পলাগগনগট ডদখফ- ltphp

Plugin Name Settings API example

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

Draw the option page

function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save

Changes gt

ltformgtltdivgt

ltphp

51

Register and define the settings

add_action(admin_init liton_myplugin_admin_init)

function liton_myplugin_admin_init()

register_setting( liton_myplugin_options

liton_myplugin_options

liton_myplugin_validate_options )

add_settings_section( liton_myplugin_main My Plugin

Settings

liton_myplugin_section_text liton_myplugin )

add_settings_field( liton_myplugin_text_string Enter text

here

liton_myplugin_setting_input liton_myplugin

liton_myplugin_main )

Draw the section header

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton_myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name=liton_myplugin_options[text_string]

type=text value=$text_string gt

Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

return $valid

gt

52

ডদখন ডযাপরফাপরডড ডকভন ডদখায়-

পরয় ডগর াঅভাপরদয েথভ নডাাংগ পলাগগন ান ডজ াঅপরযকগট গজগন ডমটায জনয এতগকি পলাগগন URL এপরডর- httplocalhostdev-litonwp-adminoptions-

generalphppage=liton_mypluginampsettings-updated=true

াঅভায এখাপরন এযকভ ডদখাপরচছ ডটকসট ফপরকস ডকান গকি গরপরখ ডব কযায য এফাপরয াঅপরযকগট গজগন ডদখফ াঅভযা াপরনক ভয়াআ াপরনক পলাগগপরনয াআনট গপপরলড বর ডাটা াআনট কযপরর এযয ডভপরজ ডদখায় এাআ কাজগট কযফ এফায াঅভযা এখাপরন esc_attr() ফা esc_html() ফযফায কগযগন সতযাাং াঅভাপরদয গরগভপরটন থাকপরি ডবগরপরডট পাাংনগট একট এগডট কগয গনপরচয ভত কপরয Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

if( $valid[text_string] = $input[text_string] )

add_settings_error(liton_myplugin_text_stringliton_myplugin_texterror

53

Incorrect value enterederror)

return $valid

উপরয ডদখন add_settings_error() পাাংন ফযফায কপরযগি মা এযয ডচক কযপরফ পপরভডয াঅগভ একগট বর ডাটা(পরসপার কযাপরযকটায) াআনট কপরয ডদখরাভ এযয ডদখাপরচছ-

তায ভাপরন াঅভযা পর পরয়গি াঅনায পলাগগনগট এগডট কপরয ডনপরফন ডকায ডকন এফাং গপপরলডয গরসট গদরাভ াঅনাপরদয সগফধায জনয

54

CSSJS পাাআর মি কযা

াঅনায পলাগগপরন গএএ ফা জাবাগিে ডমাগ কযপরত পরত াপরয াঅগন চাাআপরর ফাগপরযয ডকান ফা াঅনায ততগয ডকান গএএ ফা জাবাগিে পাাআর ডমাগ কযপরত াপরযন তপরফ এপরকষপরতর াঅভযা ডমবাপরফ HTML এ পাাআর ডমাগ কগয ডযকভ না function liton_scripts()

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtojqueryjsrdquogtltscriptgt‟

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtoscriptjsrdquogtltscriptgt‟

add_action(bdquowp_head‟‟liton_scripts‟)

এগট মপনডরপর বর িগত গনপরচ ডদখন ওয়াডডপরেপর গকবাপরফ পাাআর মি কযপরত য়- function liton_scripts()

wp_enqueue_script(bdquojquery‟)

wp_enqueue_script(bdquotheme-scripts‟‟pathtoscriptsjs‟)

add_action(bdquowp_enqueue_script‟‟liton_scripts‟)

ানর বাপরফ াঅগন সটাাআরীট ডমাগ কযপরত াপরযন- function liton_styles()

wp_enqueue_ style (bdquocss‟)

wp_enqueue_ style (bdquotheme- styles‟pathto stylescss‟)

ডযপাপরযনস ডদখন- httpcodexwordpressorgFunction_Referencewp_enqueue_script

httpcodexwordpressorgFunction_Referencewp_enqueue_style

টডপরকাড টডপরকাড পরচছ ওয়াডডপরেপরয ডসপগগপক ডসপার টযাগ মা াঅগন ডাসট ফা ডপরজয ভপরধয াআনাটড কপরয ানয ডকান কনপরটনটপরক ওপরয়ফাাআপরটয ভপরধয গযপরপল কযপরত াযপরফন মগদ াঅগন গযারাগয টাাআপরয ডকান পলাগগন ফযফায কপরয থাপরকন তাপরর াঅনায ধাযনা থাকায কথা মাাআ ডাক াঅগভ কপরয়কগট উদাযি ডদখাফ

55

েথপরভ একগট পলাগগন ততগয কযফ ডমখাপরন add_shortcode() নাপরভয একগট পাাংন থাকপরফ এগট রগট যাযাগভটায েন কপরয েথভগট টডপরকাপরডয নাভ গিতীয়গট ডম পাাংনপরক কর কযপরফন ডগট াঅভযা একগট উদাযন ডদগখ- ltphp

Plugin Name Liton Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(litonhi)

function hi()

echo Hello World

gt

উপরয ডদখন খফ ডিাট গকনত াঅগন চাাআপরর এয ফযফায াপরনক গফসতত কযপরত াপরযন এখাপরন টডপরকাড নাভ পরচছ liton াঅয এগটপরক ডরখা য় এবাপরফ [liton] াঅভযা ডাপরসটয ভপরধয াআনাটড কপরয ডদগখ াঅউটট ডকভন ডদখায়-

এফায াঅউটট ডদগখ-

56

াঅভাপরদয ততগয কযা টডপরকাড পরবাপরফাআ কাজ কযপরি াঅপরযকগট উদাযন ডদখফ াঅনাযা াপরনপরকাআ গগর এডপরনস গনপরয় কাজ কপরযন াঅনাযা াপরনপরকাআ এডপরনস এয জনয পলাগগন ফযফায কপরযন গকনত চাাআপররাআ এাআ কাজগট াঅনাযা গনপরজয ভত কপরয াগজপরয় গনপরত াপরযন গগপররয কাপরি ফ ডাসট বযার ায়না াঅনাযা মাযা একসাটড াঅপরিন তাযা এটা বার কপরয জাপরনন তাাআ াপরনপরকাআ গগপররয ডকাড ফ ডপরজ ডদখাপরত চান না এজনয পলাগগন ফযফায কপরয রাব য়না কাযন পলাগগপরন জায়গা গপকসড থাপরক এপরত কপরয াঅগনডাং ও কভ য় াঅনাযা টডপরকাড ফযফায কপরয ডমপরকান জায়গায় এড ডদখাপরত াপরযন গনপরচ াঅগভ রগট টডপরকাড ততগয কপরযগি র‟ধযপরনয এড ডদখাপরনায জনয ltphp

Plugin Name Liton Adsense Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(adsense_468adsense_468_60)

add_shortcode(adsense_250adsense_250_250)

function adsense_468_60($atts)

return ltscript type=textjavascriptgtlt--

57

google_ad_client = ca-pub-0956247412222369

468x60 created 101510

google_ad_slot = 4372705450

google_ad_width = 468

google_ad_height = 60

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

function adsense_250_250($atts)

return ltscript type=textjavascriptgtlt--

google_ad_client = ca-pub-0956247412222369

250x250 created 81809

google_ad_slot = 9368091893

google_ad_width = 250

google_ad_height = 250

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

gt

একগট টডপরকাড ফযানায টাাআপরয জনয এফাং াঅপরযকগট ২৫০২৫০ াাআপরজয এফায ডাপরসট ডমপরকান একগট টডপরকাড াআনাটড করন ডমখাপরন াঅনায ডদখাপরনায েপরয়াজন ভপরন কপরযন াঅগভ রগট ডকাড ডটসট কপরয ডদখরাভ-

58

এফায াাআপরটয াঅউটট ডদগখ-

রগট এডাআ ডদখাপরচছ াঅপরযা াপরনক কাপরজ াঅগন টডপরকাড ফযফায কযপরত াপরযন ডযপাপরযনসাঃ httpcodexwordpressorgShortcode_API

59

াধযায়- নয়াঃ পলাগগন উদাযন

ওয়াডডপরেপরয ডডটটাাআভকপরভনট নামবায ফাাংরা কযায পলাগগন াঅভাপরক কপরয়কজন ফপররগিপররন ওয়াডডপরেপরয গডপলট ডডটটাাআভকপরভনট নামবায ফাাংরা য়না রযাাংগপরয়জ ফাাংরা কযায যও ডডটটাাআভকপরভনট নামবায গপররা াআাংপরযগজ ডথপরক মায় গনপরচয পলাগগনগট ফযফায কপরয ডদখপরত াপরযন- ltphp

Plugin Name Liton Bangla datetimecomment number

Plugin URI httpliton-onlinecomplugins

Description Bangla datetimecomment number

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

This function converts all english numbers to bangla number

function make_bangla_number($str)

$engNumber = array(1234567890)

$bangNumber = array( ১ ২ ৩ ৪ ৫ ৬ ৭ ৮ ৯ ০ ) $converted = str_replace($engNumber $bangNumber $str)

return $converted

add_filter( get_the_time make_bangla_number )

add_filter( the_date make_bangla_number )

add_filter( get_the_date make_bangla_number )

add_filter( comments_number make_bangla_number )

add_filter( get_comment_date make_bangla_number )

add_filter( get_comment_time make_bangla_number )

gt

60

সলাাআডায পলাগগন াঅভযা এাআ ফাআপরয়য কর গটউপরটাগযয়াপরর মা মা গখরাভ তা এফায একগট নডাাংগ পলাগগপরনয এপলাাআ কযফ সলাাআডায পলাগগন মপপরকড াঅভযা ফাাআ জাগন একগট ওপরয়ফাাআপরটয ডচাযা ারপরট ডদয় একগট সলাাআডায াপরনক ডাাআনাগভক ভপরন য় ডদখপরতও াপরনক বার রাপরগ এাআ পলাগগপরন াঅভযা এডগভন যাপরনর ডথপরক াআপরভজ ডমাগ কযফ এফাং তা াঅভাপরদয াাআপরট ডদখাফ চরন কাজ রর কগয- েথপরভ গনপরবা সলাাআডায এয ওপরয়ফাাআপরট মান এফাং jQuery Plugin ডাউনপররাড করন

ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom Version 10

gt

াঅভযা পলাগগপরনয ডডায ততগয কযরাভ

পলাগগন গরপরসট ডদখাপরচছ bdquoLitons Nivo Plugin‟ াঅভাপরদয েথভ কাজ পরচছ custom post

type ওয়াডডপরে পাাংনাগরগট একগট নতন কাসটভ ডজ ততগয কযপরত custom post type

ফযফহরত পরফ ডমখাপরন একগট াআপরভজ থাকপরফ াঅভযা রধ টাাআপরটর ডনভ এফাং াআপরভজ াঅপররাডায গপরপরফ গপচায াআপরভজ পাাংনাগরগট ফযফায কযফ function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_function 600 280 true)

61

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

add_action(init np_init)

উপরযয ডকাপরড np_init() পাাংনগট রক কপরযগি মা ডডায যান কযায াঅপরগ যান পরফ াঅয এজনয register_post_type() পাাংনপরক এয যাযাগভটায গদপরয় np_init() পাাংপরনয ডবতপরয মি কপরযগি এটা মগদ না কযতাভ তাপরর ldquoHeaders already sentrdquo ডভপরজ ডদখাত এাআ ডভপরজগটয াপরথ াপরনপরকাআ গযগচত াঅা কগয register_post_type() পাাংন গদপরয় াঅভযা াআপরভজ মি এফাং ভযাপরনজ কযফ ভরত াঅভযা একগট নতন custom post type ডমাগ কপরযগি np_images নাভ গদপরয় নতন custom post type ডক ডগটাং বযার গপরপরফ াঅযগপরভনট া কপরযগি $args ডবগযপরয়ফরগট ট ডরপরবর ডভন ততগয কপরয াঅপরগাআ ডদপরখগি পলাগগনগট এগকটপরবট কযপরর াঅভযা গনপরচয ভত ডদখপরত াফ-

এফায গিে এফাং সটাাআরীট ডক মি কযফ- add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

এফায রক কযা পাাংনগপররা গডপরিয়ায কগয- function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__) array( jquery ))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

62

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

উপরযয ডকাডগপররা নতন কপরয ফিডনা কযায গকি ডনাআ াঅপরগাআ wp_enqueue_style() এফাং wp_enqueue_script() মপপরকড ফরা পরয়পরি নতন াঅপরযকগট পাাআর ততগয করন একাআ গডপরযকটগযপরত scriptjs এফাং গনপরচয ডকাডটক গদন- jQuery(document)ready(function($)

$(slider)nivoSlider()

)

াআপরভজপরক গযাাআজ করন- add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

াঅভযা এাআ পলাগগনগটপরক উাআপরজট গপরপরফও ফযফায কযফ ডগট পরয ডদখফ াঅপরযকগট গজগন মগদ গথপরভ না ডদয়া থাপরক ডজনয থামবপরনাআর াপরাটড গদপরয় গদন- add_theme_support( post-thumbnails )

এফায ওয়াডডপরেপরয কাপরযনট ডাসট কপরয়যী কযায ডকাড াঅয $result ডবগযপরয়ফপরর ডমফ ltdivgt টযাগ ফযফায কযা পরয়পরি তা jQuery Plugin গট একসিাকট কপরয indexhtml ডজগটয ডভাআন সলাাআডায ডকাডগট ডদখন একাআ াঅপরি রধ ডখানকায ltdivgt টযাগ গপররাপরক কগ কপরয এাআ পলাগগপরন ফযফায কযা পরয়পরি এফায টডপরকাড গদন- add_shortcode(np-shortcode np_function)

এাআ টডপরকাড গএাআচগ পাাংনপরক রক কযপরফ এফাং এয ভধয ডথপরক সলাাআডপরায কনপরটনট ডক গযটানড কযপরফ াঅভাপরদয টডপরকাড পরচছ [np-shortcode] াঅভযা পলাগগপরন মাাআ এফাং একগট িগফ মি কগয গপচাযড াআপরভজ গপরপরফ গনপরচ ডদখন-

63

াঅগভ াঅপরযকগট ডজ ততগয কপরযগি ডমখাপরন টডপরকাড গদপরয়গি

াঅউটট ডজ ডদগখ এফায-

64

পরয় ডগর াঅভাপরদয সলাাআডায পলাগগন পরযা ডকাডগট গনপরচ গদরাভ- ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

65

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

66

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

এফায াঅগন মগদ উাআপরজট গপরপরফ ফযফায কযপরত চান তাপরর গনপরচয ডকাডটক গদন- class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

67

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

echo $after_widget

াঅপরযা রগট কাজ কযপরত পরফ াঅনাপরক এক াআপরভজ াাআজ উাআপরজট এয জনয গঠক কপরয গদপরত পরফ- add_image_size(np_widget 180 100 true)

াঅপরযকগট র উাআপরজট এযাকন রক ডমাগ কযা add_action(widgets_init np_widgets_init)

উাআপরজট পরযা ডকাড াঅফায গদরাভ- ltphp

Plugin Name Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Ciprian Turcu

Version 10

68

class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

69

echo $after_widget

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

70

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(widgets_init np_widgets_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

71

পলাগগন গনপরয় এত ডিাট গযপরয ডরখা মভফ নয় এজনযাআ ভপরন য় পলাগগন গনপরয় ডকউ ডরপরখন না কাযন এখাপরন এত গফলয় াঅপরি মা াঅপররাচনা কযপরত ডগপরর ৫০০ ডজ ায পরয় মাপরফ ডফাোয সগফধাপরথড াঅগভ মথামভফ উদাযন গদপরয় ডফাোপরনায ডচষটা কপরযগি াঅগভ এখাপরন টাপরগডট কপরযগি মাযা টকটাক জাপরন পলাগগন মপপরকড এডবানস ডরপরবপররয নয় কাযন তাযা জাপরনন াঅভায উপরেশয গির মাযা জানপরত চায় তাপরদযপরক জানাপরনা এখাপরন ডমফ গফলয় াঅপররাচনা কযা পরয়পরি তা ডভাটাভগট ভাপরনয একগট পলাগগন ফানাপরনায জনয মপরথষট তপরফ ভাপরনাননয়পরনয জনয াঅনাপরক গনপরজাআ খাপরজ গনপরত পরফ াঅনায জনয ডকানটা বার পরফ াঅগভ রধ গদক গনপরদডনা গদরাভ ভাতর এাআ ফাআগট রধভাতর ওয়াডডপরে রেপরয জনয ডরখা াপরনক বর ভরাগনত থাকপরত াপরয াঅনাযা কষভাসনদয দগষটপরত ডদখপরফন াঅগভ ডচষটা কপরযগি মতটা জ কপরয ডরখা মায় াপরনক ভয় ডদখা মায় ডম খফ ডিাট খাপরটা গফলয় গনপরয় াপরনপরকাআ নক কপরযন এটা গতয রাঃখজনক াঅনাযা গগপরর একট খাজপররাআ ভাধান াপরফন াঅপরগ গনপরজ ডচষটা করন তায পরয ানযপরক ভাধাপরনয জনয গজজঞাা করন াঅভায জনয ডদায়া কযপরফন বাপররা রাগপরর জানাপরফন খাযা রাগপররও জানাপরফন তাপররাআ াঅভায গযশরভ সবাথডক পরফ ভতাভত জাগনপরয় াঅভাপরক ডভাআর কযপরত াপরযন litonice09gmailcom |

72

Page 26: Wordpress Plugin Development

27

gt

াফপরভন ততগয পরয় ডগপরি চরন ডদগখ ডযাপরফাপরডড ডকভন ডদখায়-

এপরকফাপরয গনপরচয গদপরক ডদখন Liton Menu Page নাপরভ একগট ডভন ততগয পরয়পরি

উাআপরজট ততগয কযা উাআপরজট ততগয কযায জনয ওয়াডডপরে WP-Widget িা গদপরয় ততগয কযা য় উাআপরজট এয একগট পযভযাট ডদখন গনপরচ ltphp

class My_Widget extends WP_Widget

function My_Widget()

processes the widget

function form($instance)

displays the widget form in the admin dashboard

function update($new_instance $old_instance)

process widget options to save

function widget($args $instance)

displays the widget

gt

28

উাআপরজট ডযগজসটায কযায জনয widget_init() পাাংনপরক রক কযা য় চরন একগট উাআপরজট ততগয কগয- ltphp

Plugin Name Liton Widget

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

class Messager extends WP_Widget

function __construct()

$params=array(

description =gtDisplay message to readers

name =gt Message

)

parent__construct(Messager $params)

public function form()

public function widget()

add_action(widgets_initliton_register_message)

function liton_register_message()

register_widget(Messager)

gt

29

খফ াধাযন একগট উাআপরজট পলাগগন এগট াঅভযা াআউজাযপরদযপরক একগট ডভপরজ ডদখাপরফা াাআডফাপরয ডটাাআ কযায ডচষটা কযগি এখন পলাগগনগট এগকটপরবট কপরয ডদগখ-

াঅভাপরদয উাআপরজটগট ডদখাপরচছ এফায াঅপরযা গকি পাাংনার কাজ কগয এগট মগদ াাআডফাপরয ডরাগ কপরয ডদন তাপরর ডকান কাজ কযপরফ না কাযন াঅভযা এখপরনা গকিাআ কগযগন পভড পাাংপরন গকি কাজ কগয মা উাআপরজট টাাআপরটর গপরপরফ ডদখাপরফ- public function form($instance)

extract($instance)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title)gtgtTitle ltlabelgt

ltinput

class=widefat

id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt

value=ltphp if(isset($title)) echo esc_attr($title) gt gt

ltpgt

ltphp

াঅভযা উপরয class=widefat ফযফায কপরযগি এাআ িা ফযফায কযায কাযপরন পভড এয াআনট গপলডগট াপরনক সনদয পরয়পরি

30

মগদ এাআ িা ফযফায না কগয তাপরর ডকভন ডদখাপরফ গনপরচ ডদখন-

াঅভাপরদয উাআপরজট পলাগগনগটয ডকাড গনপরচ ডদওয়া র ltphp

Plugin Name Liton Widget

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

class Messager extends WP_Widget

function __construct()

$params=array(

description =gtDisplay message to readers

name =gt Message

)

parent__construct(Messager$params)

31

public function form($instance)

extract($instance)

print_r($instance)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title)gtgtTitle ltlabelgt

ltinput

class=widefat

id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt

value=ltphp if(isset($title)) echo esc_attr($title) gt gt

ltpgt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(description)gtgtDescription

ltlabelgt

lttextarea

class=widefat

rows=10

id=ltphp echo $this-gtget_field_id(description) gt

name=ltphp echo $this-gtget_field_name(description) gtgtltphp

if(isset($description)) echo esc_attr($description) gtlttextareagt

ltpgt

ltphp

public function widget($args$instance)

extract($args)

extract($instance)

echo $before_widget

echo $before_title$title$after_title

echo ltpgt$descriptionltpgt

echo $after_widget

add_action(widgets_initliton_register_message)

function liton_register_message()

32

register_widget(Messager)

gt

এফায াঅভযা ডযাপরফাডড ডথপরক একগট ডভপরজ ডদফ গবগজটযপরদযপরক-

াঅভযা এাআ উাআপরজটগট ডাাআনাগভক বাপরফ কপরযগি কাযন এখাপরন lth2gt lth3gt lth4gt এ ধযপরনয ডকান টযাগ াঅভযা ফযফায কগযগন াঅভযা গথভ ডডপরবর কযগিনা সতযাাং এ কাজগট াঅভাপরদয ানযবাপরফ কযা দযকায গির এগট গথভ ডডপরবরায ডদগখপরয় ডদপরফন ডম ডকভন টযাগ পরফ াাআডফাপরয াাআপরটয াাআডফাপরয ডকভন ডদখায় তা ডদখন- াঅভযা রগট গথপরভ এগট ডটসট কপরয ডদখফ েথভগট টপরয়গনট াআপররপরবন

33

এফায াঅপরযকগট গথপরভ ডদগখ-

34

াধযায়- িয়াঃ পলাগগন পাাংন

গকি ডফগক পাাংন __() পাাংন

__() পাাংনগট গএাআচগপরত াঅনায ডটকসটপরক ডযগড কপরয িানসপররন এফাং গযটানড কপরয উদাযন গপরপরফ াঅগন একগট বযারপরক __() পাাংপরনয ভপরধয ডবগযপরয়ফর গদপরয় assign করন ভপরন যাখপরফন এাআ পাাংনগট রগট াঅনডাযপরিায(_) গদপরয় গগঠত একগট নয় ltphp

$text=__(bdquoWordpress is a wonderful publishing platform‟‟liton_plugin‟)

gt

_e() পাাংন _e() পাাংনগট াঅনায ডটকসবপরট ডরাকারাাআজ কপরয এটা গএাআচগপরত echo এয ভত কাজ কপরয ডকান ডটকসটপরক গিপরন ডদখাপরনায জনয এফায একট ভজা কগয মা রপরক ডদপরখগি াঅপরগাআ- _e() পাাংনগট গদপরয় াঅপরগয পলাগগনগট এগডট কযফ ltphp

Plugin Name Liton Action

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(wp_footer liton_footer_action)

function liton_footer_action()

Output the translated text

_e( This site runs off the coolest platform ever ampmdash

WordPress

liton-plugin )

gt

35

এফায াঅউটট ডদগখ

esc_attr__() পাাংন এাআ পাাংনগট esc_attr() এয ভত এগট এাআচগটএভএর এগিগফউটপরক escape কপরয াঅভযা এফায esc_attr__() এফাং __() এাআ রগট পাাংনপরক একগট কপরয পলাগগন ততগয কযফ ltphp

Plugin Name Liton Esc Attr

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

A function that returns a link to the sites terms of service

page

function liton_terms_of_service_link()

return lta href=httpliton-onlinecomtos title=

esc_attr__( Visit the Terms of Service page boj-plugin ) gt __( Terms of

Service liton-plugin ) ltagt

Display the output of the liton_terms_of_service_link()

function

echo liton_terms_of_service_link()

gt

পলাগগনগটয াঅউটট ডদখন-

36

এযকভ াঅপরযা গকি পাাংন াঅপরি ডমগপররা াঅনাযা ডদপরখ ডনপরফন াআনটাযপরনট ডঘপরট

esc_html__() Function

esc_attr() Function

esc_url() Function

esc_js() Function

esc_html() Function

esc_attr_e() Function

esc_html_e() Function

_x() Function

_ex() Function

esc_attr_x() Function

esc_html_x() Function

_n() Function

_nx() Function

_n_noop() Function

_nx_noop() Function

Translation

bull Poedit httppoeditnet

bull GlotPress httpglotpressorg

bull Launchpad httpstranslationslaunchpadnet

bull Pootle httppootlelocamotionorg

bull KBabel httpi18nkdeorg

bull GNU Gettext httpgnuorgsoftwaregettext

GlotPress এখন ওপরয়ফ ডফড টর গপরপরফ ফযফায কযা পরচছ ওয়াডডে েপরজপরকটয ডিপরন একজন াথফা গটপরভয জনয িানসপররগটাং পটওয়যায গপরপরফ

37

াধযায়- াতাঃ পলাগগন গগকউগযগট

গগকউগযগট কগমপউটাপরযয বালায় ldquoগগকউগযগটrdquo ভাপরন বীগতকয একগট বদ ডমভন Cross Site

Scripting(XSS) Cross Site Request Forgery(CSRF) SQL Injection Privilege

Escalation Vulnerabilities এফাং Holes রফডর ডকাড একগট াবডাপরযয সযকষায জনয রভকীয কাযন পরত াপরয

পলাগগপরনয গগকউগযগট গক াঅনায পলাগগনগট ডমন গগকউয য় vulnerabilities data integrity এফাং reliability ডথপরক

াঅনায পলাগগনপরক গক গগকউগযগট ডদপরফন ওয়াডডপরে এনবায়যনপরভপরনট াঅনায পলাগগনপরক গগকউগযগট ডদয়া খফ কগঠন কাজ নয় এফাং খফ ভয় াপরকষ গফলয়ও নয় ওয়াডডপরেপরয গনজসব গকি পাাংন এপরকষপরতর াঅনাপরক খফাআ াাময কযপরফ

াআউজায াযগভন াঅভযা াপরনক পলাগগন াআনসটর কযায পরযাআ ডদপরখগি ডম মখনাআ এডগভন যাপরনর এ েপরফ কযপরত মাাআ তখন একগট এযয ডভপরজ াঅপর ডভপরজগট গনপরচয ভত-

ডরখা াঅপরি- You do not have sufficient permissionshellip এটা গনশচয়তা ডদয় ডম ডমপরকান এযাকন ীভাফি থাপরক গনগদডষট গকি যাাআট গদপরয় ওয়াডডপরেপরয একগট কভন পাাংন র current_user_can() একগট উদাযন ডদাআ-

38

ltphp

Capability

if ( current_user_can(install_plugins) )

wp_die( Insufficient permissions )

Role

if( current_user_can(editor) )

wp_die( You cannot edit this setting )

gt

খফ তাড়াতাগড় াঅগন এাআ current_user_can() পাাংন ডচক কযপরফন না কাযন এটা গনবডয কযপরফ get_currentuserinfo() এাআ পাাংপরনয উপরয াঅয এয ফযফাপরয ীভাফিতা াঅপরি এটা একগট পলাপরগফর পাাংন(pluggable function) াঅয এয ডরাপরকন পরচছ wp-

includespluggablephp মা পলাগগন এগকটব ফায য ডরাড য়

Nonces

ডকউ এগটপরক াঅফায Nonsense( গনপরফডাধ) বাফপরফন নাএগট ওয়াডডপরেপরয বালায় Nonces কগমপউটাপরযয বালায় nonce ফা cryptographic nonce পরচছ ldquonumber used once rdquo এটা ডিাট এফাং সপষট গকি য যানডভ গসটরাং ডমভন- াওয়াডড মা গকি গনপরদড কপরয Nonce গপরডন গপলড পভডপরক Retrieve ফা display কপরয-

একজন ওয়াডডপরে াআউজায ডমপরকান একগট এযাকন (delete update save and such) একগট াফপরজকট(একগট ডাসট পলাগগন ডগটাং াআতযাগদ) ২৪ ঘনটায একগট ভয় ডিভ

ডমভন ডাসট 50 গডগরট কযপরফন াঅনায ওয়াডডপরে বলগ ডথপরক তাপরর াঅনায গরঙকগট পরফ এযকভ- httpexamplecomwp-admin

postphppost=43ampaction=trashamp_wpnonce=83a08fcbc2

এখাপরন 83a08fcbc2 এগট র nonce মা ২৪ ঘনটা সথায়ী থাপরক রধভাতর এগট মগদ াঅনায িাযা ফযফরত য় এফাং গডগরট য় ডাসট 50 মখন াঅগন গরপরঙক গিক কপরযন ফপরচপরয় গযতবনড র ডম Nonce ডকান malicious াআউজায ফেপরত াপরযনা এফাং গঠক গরঙক িাড়া nonce এযয ডপরজ চপরর মায় ডমখাপরন াযগভন থাপরক না াঅপরযা গফসতাগযত ডদখন httpcodexwordpressorgWordPress_Nonces

39

Nonce URL ততগয এফায চরন াঅপরগয উদাযন ডথপরক Nonce URL ততগয কগয একগট ডাসট গডগরট কযায জনয wp_nonce_url() পাাংন ফযফায কযা য় ltphp

$url = wp_nonce_url( $url $action )

gt

েথভ যাযাগভটায $url পরচছ গসটরাং URL এপরডর এয মাপরক াঅগন কপরয়যী গসটরাং এয Nonce কযপরত চান াফযফহরত পলাগগপরনয গডগরট গরঙক এযকভ থাপরক- httpexamplecomwp-admineditphppage= liton

_utagsampliton_action=deleteampid=6

এখাপরন ডদখন যাযাগভটায liton_action এফাং এয টযাগ াঅাআগড গিতীয় যাযাগভটায পরচছ $action একগট গসটরাং মা াঅগন একগট াফপরজকট এয জনয একগট action ততগয কযপরফন উপরয ডদখরাভ delete এযাকন এয টযাগ াঅাআগড 6 সতযাাং $action যাযাগভটায পরত াপরয bdquoliton_utags-delete_tag6‟ গনপরচ ফাসতফ উদাযন ডদগখ- ltphp

$delete_url = add_query_arg(array( liton _action=gtdeleteid=gt$id) )

$nonced_url = wp_nonce_url( $delete_url bdquoliton _utags-delete_tag$id )

gt

lta href=ltphp echo $nonced_url gtgtdeleteltagt

এাআ টযাগগট পরফ গডগরট গরঙক এখাপরন add_query_arg() পাাংন ফযফায কযা পরয়পরি মা কাপরযনট URL ডক এযাপরয যাযাগভটায এয ভপরধয যাপরখ ানযবাপরফ ফরপরর এগট ডমাগ কপরয এযকভাঃ liton_action=deleteampid=6 amp liton_action=deleteampid=6

Nonce Form ততগয Nonce পভডপরকও ডোপরটকট কপরয wp_nonce_field() পাাংপরনয ভাধযপরভ ltphp

wp_nonce_field( $action $name $referer $echo ) gt

$action ( string) (optional) - action নাভ াআউগনক identifier optional

গকনত recommended $name (string) (optional) ndash গপরডন গপলড পভড ডবগযপরয়ফর নাভ $referer (boolean) (optional) ndash গডপলট গপরপরফ true থাপরক ডমখাপরন গপলড

ডবগরপরডন এয দযকায য়

40

$echo (boolean) (optional) - গডপলট গপরপরফ true থাপরক ডমখাপরন াঅউটট ডদখাপরনায ফা গপরডন পভড গপলড গযটানড কযায জনয দযকায য়

পপরভড াঅনায action এয নাভ গদন ltform method=postgt

lt-- some inputs here --gt

ltphp wp_nonce_field(name_of_my_actionname_of_nonce_field) gt

ltformgt

াঅভযা একগট পলাগগন ফানাপরফা ডমখাপরন াফযফরত টযাগগপররাপরক াঅভযা ভযানয়াগর গডগরট ফা গযপরনভ কযপরত াযফ এগট একট ফড় গকনত াপরনক গফলয়াআ াঅপরগাআ াঅপররাচনা কযা পরয়পরি ডদখপররাআ ফেপরত াযপরফন একগট ফাসতফধভডী উদাযন গনপরচ গদরাভ- ltphp

Plugin Name Liton Unused Tags

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add an entry for our option page to the Posts menu

add_action(admin_menu liton_utags_add_page)

function liton_utags_add_page()

add_posts_page( Unused Tags Unused Tagsmanage_optionsliton_utags

liton_utags_option_page )

Catch any liton_action parameter in query string

add_action( admin_init liton_utags_do_action )

Proceed to requested liton_action if applicable

function liton_utags_do_action()

if( isset( $_REQUEST[liton_action] ) )

return

if( current_user_can( manage_options ) )

wp_die( Insufficient privileges )

41

$id = $_REQUEST[id]

$action = $_REQUEST[liton_action]

if( $action == done )

add_action( admin_notices liton_utags_message )

return

check_admin_referer( liton_utags-$action_tag$id )

switch( $action )

case rename

$newtag = array( name =gt $_POST[name] slug =gt

$_POST[name] )

wp_update_term( $id post_tag $newtag )

break

case delete

wp_delete_term( $id post_tag )

break

wp_redirect( add_query_arg( array( liton_action =gt done )

) )

Admin notice

function liton_utags_message()

echo ltdiv class=updatedgtltpgtAction

completedltpgtltdivgt

Draw the tag management page

function liton_utags_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtUnused Tagslth2gt

ltphp

if( $tags = liton_utags_find_orphans() )

echo ltpgtYou currently have count( $tags ) unused

tagsltpgt

echo ltolgt

foreach( $tags as $tag )

42

$id = $tag-gtterm_id

$name = esc_attr( $tag-gtname )

$delete_url= add_query_arg(

array(liton_action=gtdeleteid=gt$id) )

$nonced_url= wp_nonce_url( $delete_url

liton_utags-delete_tag$id )

gt

ltligt

ltform action= method=postgt

ltphp wp_nonce_field( liton_utags-rename_tag$id )

gt

ltinput type=hidden name=liton_action

value=rename gt

ltinput type=hidden name=id value=ltphp echo

$id gt gt

ltinput type=text name=name value=ltphp echo

$name gt gt

ltinput type=submit value=Rename gt or

lta href=ltphp echo $nonced_url gtgtdeleteltagt

this tag

ltformgt

ltligt

ltphp

else gt

ltpgtYou have no unused tagsltpgt

ltphp endif gt

ltolgt

ltdivgt

ltphp

Find unused tags return them in an array

function liton_utags_find_orphans()

global $wpdb

$sql = SELECT termsterm_id termsname FROM

$wpdb-gtterms terms

INNER JOIN $wpdb-gtterm_taxonomy taxo

ON termsterm_id=taxoterm_id

WHERE taxotaxonomy = post_tag

43

AND taxocount=0

return $wpdb-gtget_results( $sql )

gt

ডযাপরফাপরডড এাআ পলাগগপরনয ডভন াওয়া মাপরফ ডাসট এয াফপরভন গপরপরফ গনপরচ ডদখন-

এফায পলাগগন ডভনপরত গিক কপরয ডদগখ পলাগগপরনয ডবতপরযয কাজ-

উপরয ডদখন াঅগভ একগট টযাগ ততগয কপরযগিরাভ l i নাপরভ এগট এখাপরন ডদখাপরচছ াঅগভ চাাআপরর এগট এগডট ফা গডগরট কযপরত াগয এফায গডগরট গরঙক এ ভাউপরয কাডয ডযপরখ গনপরচ গরঙক ডদখন ফা গডগরট করন একগট টযাগ াঅভায এখাপরন URL গট এযকভ httplocalhostdev-litonwp-

admineditphppage=liton_utagsampliton_action=doneampid=4amp_wpnonce=30a44b7

986

এখাপরন াঅগভ liton_action=done ফযফায কপরযগি Nonces এয পাাংনগপররায নাভ গনপরচ গদরাভ াঅনাযা ডদপরখ গনপরফন াআনটাযপরনট ডথপরক wp_nonce_field()

wp_nonce_url()

wp_verify_nonce()

wp_create_nonce()

44

check_admin_referer()

check_ajax_referer()

ডাটাপরফ াঅনাযা ডমপরত গএাআচগ গনপরয় কাজ কপরযন এগকউএর ডাটাপরফ এয াপরথ ফাাআ কভপরফী গযগচত এয গনটযাকস গপররা ডভাটাভগট ফায জানা একাআ বাপরফ াপরনপরকাআ ওয়াডডপরেপরও ডাটাপরফ ডকাড গরপরখন এটা ডকাগডাং এয জনয খাযা গদক াঅগভ নযভার গএাআচগ- এগকউএর ডকাড এয উদাযন গদগচছ- ltphp

$sql=rdquoINSERT INTO $wpdb-gtposts(post_title) VALUES(bdquo$title‟)rdquo

$wpdb-gtquery($sql) gt

এফায ওয়াডডপরেপরয সটযানডাডড ডকাগডাং গপরসটভ ডদখন- ltphp

$wpdb-gtinsert($wpdb-gtposts

array(bdquopost_title‟ =gt $title)

array(bdquos‟)

)

gt

ডাটাপরফ গগকউয কযায জনয াঅপরডট াাপরযন ডদখাফ- গনপরচয ডকাডগট খাযা েযাকগট ltphp

$wpdb-gtquery(ldquoUPDATE $wpdb-gtposts SET post_title=‟$newTitle‟ WHERE

ID=$my_idrdquo )

gt

উপরযয ভত কপরয না গরপরখ গনপরচয ভত কপরয গরখন- ltphp

$wpdb-gtupdate($wpdb-gtposts

Array(bdquopost_title‟ =gt‟$newTitle‟)

Array(bdquoID‟ =gt$my_id

)

gt

ানর বাপরফ ানযানয াাপরযন গপররা গরখপরফন

45

াধযায়- াঅটাঃ ডরাকারাাআপরজন এফাং Set t i ngs API

ডরাকারাাআপরজন ডরাকারাাআপরজন একগট গরতবনড গফলয় এয পাাংনগপররা র- load_theme_textdomain()

load_plugin_textdomain()

উদাযন- ltphp $var=__(bdquoHello‟‟domain‟) gt

ltphp _e(bdquoHello‟‟domain‟) gt

গফসতাগযত গনপরচয গরপরঙক ডদখন- httpcodexwordpressorgI18n_for_WordPress_Developers

ডগটাং API

ডগটাং API পরচছ াঅগন গকি ান ততগয কযপরফন মা াআনটাযনার বাপরফ াঅনায পলাগগপরন এপলাাআ পরফ মখন াঅগন াআউজায- গডপাাআন ান ততগয কযপরফন াঅনায পলাগগপরনয জনয তখন Settings

API ndashএ াঅনায ডকাড মতটা ারন জ করন Settings API াঅনায ডম কাজগপররা handle কপরয-

ওয়াডডপরেপরক জাগনপরয় ডদয় ডম াঅগন গনজসব ান ফযফায কযপরফন াঅনায াআনটপরক পাাংপরনয ভপরধয উপরেখ কযপরফ ডফগয বাগ ান ডজ গনপরজাআ ততগয কযপরফ $_POST ডাটা গপররাপরক ভগনটয কপরয ান ততগয এফাং াঅপরডট কপরয(মগদ েপরয়াজন য়)

Settings API পাাংন Settings API পাাংপরন গতনগট ডসট থাপরক- ১ েথপরভ ওয়াডডপরেপরক ফপরর ডম াঅগন নতন ডগটাং ফযফায কযপরফন াঅনায পলাগগপরনয জনয ২ এয পরয ডগটাং গডপাাআন করন (text areas input boxes and any

HTML form element) এফাং এপরদযপরক একাপরথ রে কপরয যাপরখ ৩ ওয়াডডপরেপরক াঅনায ডগটাং actual form এ ডদখাপরনায জনয ফপরর

46

এফায াঅভযা একগট পলাগগন ফানাপরফা Administration Page ndashএ ডযপাপরযনস গপরপরফ ডদখপরত াপরযন- httpcodexwordpressorgAdding_Administration_Menus

httpcodexwordpressorgFunction_Referenceadd_options_page

httpcodexwordpressorgAction_ReferenceActions_Run_During_an_Admin_P

age_Request

পলাগগপরনয এডগভন ডজ পরফ এযকভ- httpexamplecomwp-adminoptions-generalphppage=liton_myplugin

েথপরভ াঅভযা ডভন ততগয কযফ াঅপরগয ভত কপরয- Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

এফায ান ডজ এ পভড গনপরয় গকি ডগটাং ডদফ function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

উপরযয ডকাপরড াঅভযা একগট পপরভডয ভপরধয রধ াফগভট ফাটন এফাং My Plugin নাপরভ ডজ ততগয কপরযগি ডযাপরফাপরডড ডদখন-

47

ডগটাং এয াফ ডভন গপরপরফ My Plugin াঅপরি এফাং My Plugin ডত গিক কযপরর াঅভযা উপরযয ডজ ততগয কপরযগি ডমখাপরন াফগভট ফাটনগট ডদখাপরচছ এফায গতনগট যাযাগভটায ডযগজসটায কযফ- ltphp

register_setting( liton _myplugin_options liton _myplugin_options liton

_myplugin_validate_options)

gt

েথভগট ডগটাং রেপরয নাভ গিতীয়গট ান নাভ মা াঅভযা get_option() পাাংন গদপরয়ও ডপরত াগয ততীয়গট করফযাক পাাংন এগট একগট গসটরাং ডযপাপরযনস পাাংন এখাপরন াঅভযা নাভ

48

গদপরয়গি liton _myplugin_validate_options মা া কযপরফ পপরভডয কর ডব ডগটাং াঅভযা এটা পরয গডপাাআন কযফ

ডগটাং গডপাাআন ডকন add_settings_field() এফাং add_settings_section() পাাংন গদপরয় াঅভযা াঅভাপরদয কর ডগটাং গডপাাআন কযফ ltphp

add_settings_section( liton_myplugin_main My Plugin Settings

liton_myplugin_section_text liton _myplugin)

add_settings_field( liton _myplugin_text_string Enter text here

liton _myplugin_setting_input liton _myplugin liton _myplugin_main)

gt

add_settings_section() পাাংন গদপরয় াঅভযা ডদখাফ াঅপরর ডজ এ ডকন ডকভন ডদখাপরফ এয চাযগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ ডকন টাাআপরটর ltH3gt টযাপরগয ভপরধয করফযাক পাাংন এয নাভ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ (page= liton _myplugin এগট

URL এয াাং গপরপরফ থাকপরফ) গিতীয় যাযাগভটায add_settings_field() পপরভডয াআনট গপরপরফ ডদখাপরনা পরয়পরি এখাপরন াাচগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ পরযয গপপরলড গক গেনট কযা পরফ তা ডটকসট গপরপরফ ডদখাপরনা পরয়পরি(Enter text

here)

করফযাক পাাংন পপরভড গেনট কযপরফ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ ডগটাং ডপরজয ডকন গপলড মা add_settings_section() পাাংপরন গডপাাআন

কযা পরয়পরি ltphp

Explanations about this section

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

49

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton _myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name= liton _myplugin_options[text_string]

type=text value=$options[text_string] gt

gt

গিতীয় পাাংন ান বযার text_string ডক এযাপরযপরত ডসটায কপরয ডযপরখপরি এফায াআউজায াআনট বযাগরপরডট কযফ- ltphp

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace([^a-zA-Z]$input[text_string] )

return $valid

gt

পভডপরক ডযনডায কযফ- ltphp

Draw the options page

function liton_myplugin_options_page()

gt

ltdiv class=wrapgt

ltphp

screen_icon()

gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp

settings_fields( liton_myplugin_options)

do_settings_sections(liton_myplugin)

50

gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

settings_fields() পাাংনগট ডযপাপরযনস গপরপরফ ফযফায কযা পরয়পরি মা াঅভযা register_setting() পাাংপরন গডপরিয়ায কপরযগি do_settings_sections() পাাংনগট কর কযপরফ কর াঅউটট ডকন এফাং পভড গপলডপরক মা াঅভযা পরফড গডপাাআন কপরযগি াঅভাপরদয কাজ ডল এফায পরযা পলাগগনগট ডদখফ- ltphp

Plugin Name Settings API example

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

Draw the option page

function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save

Changes gt

ltformgtltdivgt

ltphp

51

Register and define the settings

add_action(admin_init liton_myplugin_admin_init)

function liton_myplugin_admin_init()

register_setting( liton_myplugin_options

liton_myplugin_options

liton_myplugin_validate_options )

add_settings_section( liton_myplugin_main My Plugin

Settings

liton_myplugin_section_text liton_myplugin )

add_settings_field( liton_myplugin_text_string Enter text

here

liton_myplugin_setting_input liton_myplugin

liton_myplugin_main )

Draw the section header

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton_myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name=liton_myplugin_options[text_string]

type=text value=$text_string gt

Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

return $valid

gt

52

ডদখন ডযাপরফাপরডড ডকভন ডদখায়-

পরয় ডগর াঅভাপরদয েথভ নডাাংগ পলাগগন ান ডজ াঅপরযকগট গজগন ডমটায জনয এতগকি পলাগগন URL এপরডর- httplocalhostdev-litonwp-adminoptions-

generalphppage=liton_mypluginampsettings-updated=true

াঅভায এখাপরন এযকভ ডদখাপরচছ ডটকসট ফপরকস ডকান গকি গরপরখ ডব কযায য এফাপরয াঅপরযকগট গজগন ডদখফ াঅভযা াপরনক ভয়াআ াপরনক পলাগগপরনয াআনট গপপরলড বর ডাটা াআনট কযপরর এযয ডভপরজ ডদখায় এাআ কাজগট কযফ এফায াঅভযা এখাপরন esc_attr() ফা esc_html() ফযফায কগযগন সতযাাং াঅভাপরদয গরগভপরটন থাকপরি ডবগরপরডট পাাংনগট একট এগডট কগয গনপরচয ভত কপরয Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

if( $valid[text_string] = $input[text_string] )

add_settings_error(liton_myplugin_text_stringliton_myplugin_texterror

53

Incorrect value enterederror)

return $valid

উপরয ডদখন add_settings_error() পাাংন ফযফায কপরযগি মা এযয ডচক কযপরফ পপরভডয াঅগভ একগট বর ডাটা(পরসপার কযাপরযকটায) াআনট কপরয ডদখরাভ এযয ডদখাপরচছ-

তায ভাপরন াঅভযা পর পরয়গি াঅনায পলাগগনগট এগডট কপরয ডনপরফন ডকায ডকন এফাং গপপরলডয গরসট গদরাভ াঅনাপরদয সগফধায জনয

54

CSSJS পাাআর মি কযা

াঅনায পলাগগপরন গএএ ফা জাবাগিে ডমাগ কযপরত পরত াপরয াঅগন চাাআপরর ফাগপরযয ডকান ফা াঅনায ততগয ডকান গএএ ফা জাবাগিে পাাআর ডমাগ কযপরত াপরযন তপরফ এপরকষপরতর াঅভযা ডমবাপরফ HTML এ পাাআর ডমাগ কগয ডযকভ না function liton_scripts()

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtojqueryjsrdquogtltscriptgt‟

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtoscriptjsrdquogtltscriptgt‟

add_action(bdquowp_head‟‟liton_scripts‟)

এগট মপনডরপর বর িগত গনপরচ ডদখন ওয়াডডপরেপর গকবাপরফ পাাআর মি কযপরত য়- function liton_scripts()

wp_enqueue_script(bdquojquery‟)

wp_enqueue_script(bdquotheme-scripts‟‟pathtoscriptsjs‟)

add_action(bdquowp_enqueue_script‟‟liton_scripts‟)

ানর বাপরফ াঅগন সটাাআরীট ডমাগ কযপরত াপরযন- function liton_styles()

wp_enqueue_ style (bdquocss‟)

wp_enqueue_ style (bdquotheme- styles‟pathto stylescss‟)

ডযপাপরযনস ডদখন- httpcodexwordpressorgFunction_Referencewp_enqueue_script

httpcodexwordpressorgFunction_Referencewp_enqueue_style

টডপরকাড টডপরকাড পরচছ ওয়াডডপরেপরয ডসপগগপক ডসপার টযাগ মা াঅগন ডাসট ফা ডপরজয ভপরধয াআনাটড কপরয ানয ডকান কনপরটনটপরক ওপরয়ফাাআপরটয ভপরধয গযপরপল কযপরত াযপরফন মগদ াঅগন গযারাগয টাাআপরয ডকান পলাগগন ফযফায কপরয থাপরকন তাপরর াঅনায ধাযনা থাকায কথা মাাআ ডাক াঅগভ কপরয়কগট উদাযি ডদখাফ

55

েথপরভ একগট পলাগগন ততগয কযফ ডমখাপরন add_shortcode() নাপরভয একগট পাাংন থাকপরফ এগট রগট যাযাগভটায েন কপরয েথভগট টডপরকাপরডয নাভ গিতীয়গট ডম পাাংনপরক কর কযপরফন ডগট াঅভযা একগট উদাযন ডদগখ- ltphp

Plugin Name Liton Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(litonhi)

function hi()

echo Hello World

gt

উপরয ডদখন খফ ডিাট গকনত াঅগন চাাআপরর এয ফযফায াপরনক গফসতত কযপরত াপরযন এখাপরন টডপরকাড নাভ পরচছ liton াঅয এগটপরক ডরখা য় এবাপরফ [liton] াঅভযা ডাপরসটয ভপরধয াআনাটড কপরয ডদগখ াঅউটট ডকভন ডদখায়-

এফায াঅউটট ডদগখ-

56

াঅভাপরদয ততগয কযা টডপরকাড পরবাপরফাআ কাজ কযপরি াঅপরযকগট উদাযন ডদখফ াঅনাযা াপরনপরকাআ গগর এডপরনস গনপরয় কাজ কপরযন াঅনাযা াপরনপরকাআ এডপরনস এয জনয পলাগগন ফযফায কপরযন গকনত চাাআপররাআ এাআ কাজগট াঅনাযা গনপরজয ভত কপরয াগজপরয় গনপরত াপরযন গগপররয কাপরি ফ ডাসট বযার ায়না াঅনাযা মাযা একসাটড াঅপরিন তাযা এটা বার কপরয জাপরনন তাাআ াপরনপরকাআ গগপররয ডকাড ফ ডপরজ ডদখাপরত চান না এজনয পলাগগন ফযফায কপরয রাব য়না কাযন পলাগগপরন জায়গা গপকসড থাপরক এপরত কপরয াঅগনডাং ও কভ য় াঅনাযা টডপরকাড ফযফায কপরয ডমপরকান জায়গায় এড ডদখাপরত াপরযন গনপরচ াঅগভ রগট টডপরকাড ততগয কপরযগি র‟ধযপরনয এড ডদখাপরনায জনয ltphp

Plugin Name Liton Adsense Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(adsense_468adsense_468_60)

add_shortcode(adsense_250adsense_250_250)

function adsense_468_60($atts)

return ltscript type=textjavascriptgtlt--

57

google_ad_client = ca-pub-0956247412222369

468x60 created 101510

google_ad_slot = 4372705450

google_ad_width = 468

google_ad_height = 60

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

function adsense_250_250($atts)

return ltscript type=textjavascriptgtlt--

google_ad_client = ca-pub-0956247412222369

250x250 created 81809

google_ad_slot = 9368091893

google_ad_width = 250

google_ad_height = 250

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

gt

একগট টডপরকাড ফযানায টাাআপরয জনয এফাং াঅপরযকগট ২৫০২৫০ াাআপরজয এফায ডাপরসট ডমপরকান একগট টডপরকাড াআনাটড করন ডমখাপরন াঅনায ডদখাপরনায েপরয়াজন ভপরন কপরযন াঅগভ রগট ডকাড ডটসট কপরয ডদখরাভ-

58

এফায াাআপরটয াঅউটট ডদগখ-

রগট এডাআ ডদখাপরচছ াঅপরযা াপরনক কাপরজ াঅগন টডপরকাড ফযফায কযপরত াপরযন ডযপাপরযনসাঃ httpcodexwordpressorgShortcode_API

59

াধযায়- নয়াঃ পলাগগন উদাযন

ওয়াডডপরেপরয ডডটটাাআভকপরভনট নামবায ফাাংরা কযায পলাগগন াঅভাপরক কপরয়কজন ফপররগিপররন ওয়াডডপরেপরয গডপলট ডডটটাাআভকপরভনট নামবায ফাাংরা য়না রযাাংগপরয়জ ফাাংরা কযায যও ডডটটাাআভকপরভনট নামবায গপররা াআাংপরযগজ ডথপরক মায় গনপরচয পলাগগনগট ফযফায কপরয ডদখপরত াপরযন- ltphp

Plugin Name Liton Bangla datetimecomment number

Plugin URI httpliton-onlinecomplugins

Description Bangla datetimecomment number

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

This function converts all english numbers to bangla number

function make_bangla_number($str)

$engNumber = array(1234567890)

$bangNumber = array( ১ ২ ৩ ৪ ৫ ৬ ৭ ৮ ৯ ০ ) $converted = str_replace($engNumber $bangNumber $str)

return $converted

add_filter( get_the_time make_bangla_number )

add_filter( the_date make_bangla_number )

add_filter( get_the_date make_bangla_number )

add_filter( comments_number make_bangla_number )

add_filter( get_comment_date make_bangla_number )

add_filter( get_comment_time make_bangla_number )

gt

60

সলাাআডায পলাগগন াঅভযা এাআ ফাআপরয়য কর গটউপরটাগযয়াপরর মা মা গখরাভ তা এফায একগট নডাাংগ পলাগগপরনয এপলাাআ কযফ সলাাআডায পলাগগন মপপরকড াঅভযা ফাাআ জাগন একগট ওপরয়ফাাআপরটয ডচাযা ারপরট ডদয় একগট সলাাআডায াপরনক ডাাআনাগভক ভপরন য় ডদখপরতও াপরনক বার রাপরগ এাআ পলাগগপরন াঅভযা এডগভন যাপরনর ডথপরক াআপরভজ ডমাগ কযফ এফাং তা াঅভাপরদয াাআপরট ডদখাফ চরন কাজ রর কগয- েথপরভ গনপরবা সলাাআডায এয ওপরয়ফাাআপরট মান এফাং jQuery Plugin ডাউনপররাড করন

ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom Version 10

gt

াঅভযা পলাগগপরনয ডডায ততগয কযরাভ

পলাগগন গরপরসট ডদখাপরচছ bdquoLitons Nivo Plugin‟ াঅভাপরদয েথভ কাজ পরচছ custom post

type ওয়াডডপরে পাাংনাগরগট একগট নতন কাসটভ ডজ ততগয কযপরত custom post type

ফযফহরত পরফ ডমখাপরন একগট াআপরভজ থাকপরফ াঅভযা রধ টাাআপরটর ডনভ এফাং াআপরভজ াঅপররাডায গপরপরফ গপচায াআপরভজ পাাংনাগরগট ফযফায কযফ function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_function 600 280 true)

61

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

add_action(init np_init)

উপরযয ডকাপরড np_init() পাাংনগট রক কপরযগি মা ডডায যান কযায াঅপরগ যান পরফ াঅয এজনয register_post_type() পাাংনপরক এয যাযাগভটায গদপরয় np_init() পাাংপরনয ডবতপরয মি কপরযগি এটা মগদ না কযতাভ তাপরর ldquoHeaders already sentrdquo ডভপরজ ডদখাত এাআ ডভপরজগটয াপরথ াপরনপরকাআ গযগচত াঅা কগয register_post_type() পাাংন গদপরয় াঅভযা াআপরভজ মি এফাং ভযাপরনজ কযফ ভরত াঅভযা একগট নতন custom post type ডমাগ কপরযগি np_images নাভ গদপরয় নতন custom post type ডক ডগটাং বযার গপরপরফ াঅযগপরভনট া কপরযগি $args ডবগযপরয়ফরগট ট ডরপরবর ডভন ততগয কপরয াঅপরগাআ ডদপরখগি পলাগগনগট এগকটপরবট কযপরর াঅভযা গনপরচয ভত ডদখপরত াফ-

এফায গিে এফাং সটাাআরীট ডক মি কযফ- add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

এফায রক কযা পাাংনগপররা গডপরিয়ায কগয- function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__) array( jquery ))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

62

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

উপরযয ডকাডগপররা নতন কপরয ফিডনা কযায গকি ডনাআ াঅপরগাআ wp_enqueue_style() এফাং wp_enqueue_script() মপপরকড ফরা পরয়পরি নতন াঅপরযকগট পাাআর ততগয করন একাআ গডপরযকটগযপরত scriptjs এফাং গনপরচয ডকাডটক গদন- jQuery(document)ready(function($)

$(slider)nivoSlider()

)

াআপরভজপরক গযাাআজ করন- add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

াঅভযা এাআ পলাগগনগটপরক উাআপরজট গপরপরফও ফযফায কযফ ডগট পরয ডদখফ াঅপরযকগট গজগন মগদ গথপরভ না ডদয়া থাপরক ডজনয থামবপরনাআর াপরাটড গদপরয় গদন- add_theme_support( post-thumbnails )

এফায ওয়াডডপরেপরয কাপরযনট ডাসট কপরয়যী কযায ডকাড াঅয $result ডবগযপরয়ফপরর ডমফ ltdivgt টযাগ ফযফায কযা পরয়পরি তা jQuery Plugin গট একসিাকট কপরয indexhtml ডজগটয ডভাআন সলাাআডায ডকাডগট ডদখন একাআ াঅপরি রধ ডখানকায ltdivgt টযাগ গপররাপরক কগ কপরয এাআ পলাগগপরন ফযফায কযা পরয়পরি এফায টডপরকাড গদন- add_shortcode(np-shortcode np_function)

এাআ টডপরকাড গএাআচগ পাাংনপরক রক কযপরফ এফাং এয ভধয ডথপরক সলাাআডপরায কনপরটনট ডক গযটানড কযপরফ াঅভাপরদয টডপরকাড পরচছ [np-shortcode] াঅভযা পলাগগপরন মাাআ এফাং একগট িগফ মি কগয গপচাযড াআপরভজ গপরপরফ গনপরচ ডদখন-

63

াঅগভ াঅপরযকগট ডজ ততগয কপরযগি ডমখাপরন টডপরকাড গদপরয়গি

াঅউটট ডজ ডদগখ এফায-

64

পরয় ডগর াঅভাপরদয সলাাআডায পলাগগন পরযা ডকাডগট গনপরচ গদরাভ- ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

65

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

66

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

এফায াঅগন মগদ উাআপরজট গপরপরফ ফযফায কযপরত চান তাপরর গনপরচয ডকাডটক গদন- class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

67

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

echo $after_widget

াঅপরযা রগট কাজ কযপরত পরফ াঅনাপরক এক াআপরভজ াাআজ উাআপরজট এয জনয গঠক কপরয গদপরত পরফ- add_image_size(np_widget 180 100 true)

াঅপরযকগট র উাআপরজট এযাকন রক ডমাগ কযা add_action(widgets_init np_widgets_init)

উাআপরজট পরযা ডকাড াঅফায গদরাভ- ltphp

Plugin Name Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Ciprian Turcu

Version 10

68

class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

69

echo $after_widget

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

70

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(widgets_init np_widgets_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

71

পলাগগন গনপরয় এত ডিাট গযপরয ডরখা মভফ নয় এজনযাআ ভপরন য় পলাগগন গনপরয় ডকউ ডরপরখন না কাযন এখাপরন এত গফলয় াঅপরি মা াঅপররাচনা কযপরত ডগপরর ৫০০ ডজ ায পরয় মাপরফ ডফাোয সগফধাপরথড াঅগভ মথামভফ উদাযন গদপরয় ডফাোপরনায ডচষটা কপরযগি াঅগভ এখাপরন টাপরগডট কপরযগি মাযা টকটাক জাপরন পলাগগন মপপরকড এডবানস ডরপরবপররয নয় কাযন তাযা জাপরনন াঅভায উপরেশয গির মাযা জানপরত চায় তাপরদযপরক জানাপরনা এখাপরন ডমফ গফলয় াঅপররাচনা কযা পরয়পরি তা ডভাটাভগট ভাপরনয একগট পলাগগন ফানাপরনায জনয মপরথষট তপরফ ভাপরনাননয়পরনয জনয াঅনাপরক গনপরজাআ খাপরজ গনপরত পরফ াঅনায জনয ডকানটা বার পরফ াঅগভ রধ গদক গনপরদডনা গদরাভ ভাতর এাআ ফাআগট রধভাতর ওয়াডডপরে রেপরয জনয ডরখা াপরনক বর ভরাগনত থাকপরত াপরয াঅনাযা কষভাসনদয দগষটপরত ডদখপরফন াঅগভ ডচষটা কপরযগি মতটা জ কপরয ডরখা মায় াপরনক ভয় ডদখা মায় ডম খফ ডিাট খাপরটা গফলয় গনপরয় াপরনপরকাআ নক কপরযন এটা গতয রাঃখজনক াঅনাযা গগপরর একট খাজপররাআ ভাধান াপরফন াঅপরগ গনপরজ ডচষটা করন তায পরয ানযপরক ভাধাপরনয জনয গজজঞাা করন াঅভায জনয ডদায়া কযপরফন বাপররা রাগপরর জানাপরফন খাযা রাগপররও জানাপরফন তাপররাআ াঅভায গযশরভ সবাথডক পরফ ভতাভত জাগনপরয় াঅভাপরক ডভাআর কযপরত াপরযন litonice09gmailcom |

72

Page 27: Wordpress Plugin Development

28

উাআপরজট ডযগজসটায কযায জনয widget_init() পাাংনপরক রক কযা য় চরন একগট উাআপরজট ততগয কগয- ltphp

Plugin Name Liton Widget

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

class Messager extends WP_Widget

function __construct()

$params=array(

description =gtDisplay message to readers

name =gt Message

)

parent__construct(Messager $params)

public function form()

public function widget()

add_action(widgets_initliton_register_message)

function liton_register_message()

register_widget(Messager)

gt

29

খফ াধাযন একগট উাআপরজট পলাগগন এগট াঅভযা াআউজাযপরদযপরক একগট ডভপরজ ডদখাপরফা াাআডফাপরয ডটাাআ কযায ডচষটা কযগি এখন পলাগগনগট এগকটপরবট কপরয ডদগখ-

াঅভাপরদয উাআপরজটগট ডদখাপরচছ এফায াঅপরযা গকি পাাংনার কাজ কগয এগট মগদ াাআডফাপরয ডরাগ কপরয ডদন তাপরর ডকান কাজ কযপরফ না কাযন াঅভযা এখপরনা গকিাআ কগযগন পভড পাাংপরন গকি কাজ কগয মা উাআপরজট টাাআপরটর গপরপরফ ডদখাপরফ- public function form($instance)

extract($instance)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title)gtgtTitle ltlabelgt

ltinput

class=widefat

id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt

value=ltphp if(isset($title)) echo esc_attr($title) gt gt

ltpgt

ltphp

াঅভযা উপরয class=widefat ফযফায কপরযগি এাআ িা ফযফায কযায কাযপরন পভড এয াআনট গপলডগট াপরনক সনদয পরয়পরি

30

মগদ এাআ িা ফযফায না কগয তাপরর ডকভন ডদখাপরফ গনপরচ ডদখন-

াঅভাপরদয উাআপরজট পলাগগনগটয ডকাড গনপরচ ডদওয়া র ltphp

Plugin Name Liton Widget

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

class Messager extends WP_Widget

function __construct()

$params=array(

description =gtDisplay message to readers

name =gt Message

)

parent__construct(Messager$params)

31

public function form($instance)

extract($instance)

print_r($instance)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title)gtgtTitle ltlabelgt

ltinput

class=widefat

id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt

value=ltphp if(isset($title)) echo esc_attr($title) gt gt

ltpgt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(description)gtgtDescription

ltlabelgt

lttextarea

class=widefat

rows=10

id=ltphp echo $this-gtget_field_id(description) gt

name=ltphp echo $this-gtget_field_name(description) gtgtltphp

if(isset($description)) echo esc_attr($description) gtlttextareagt

ltpgt

ltphp

public function widget($args$instance)

extract($args)

extract($instance)

echo $before_widget

echo $before_title$title$after_title

echo ltpgt$descriptionltpgt

echo $after_widget

add_action(widgets_initliton_register_message)

function liton_register_message()

32

register_widget(Messager)

gt

এফায াঅভযা ডযাপরফাডড ডথপরক একগট ডভপরজ ডদফ গবগজটযপরদযপরক-

াঅভযা এাআ উাআপরজটগট ডাাআনাগভক বাপরফ কপরযগি কাযন এখাপরন lth2gt lth3gt lth4gt এ ধযপরনয ডকান টযাগ াঅভযা ফযফায কগযগন াঅভযা গথভ ডডপরবর কযগিনা সতযাাং এ কাজগট াঅভাপরদয ানযবাপরফ কযা দযকায গির এগট গথভ ডডপরবরায ডদগখপরয় ডদপরফন ডম ডকভন টযাগ পরফ াাআডফাপরয াাআপরটয াাআডফাপরয ডকভন ডদখায় তা ডদখন- াঅভযা রগট গথপরভ এগট ডটসট কপরয ডদখফ েথভগট টপরয়গনট াআপররপরবন

33

এফায াঅপরযকগট গথপরভ ডদগখ-

34

াধযায়- িয়াঃ পলাগগন পাাংন

গকি ডফগক পাাংন __() পাাংন

__() পাাংনগট গএাআচগপরত াঅনায ডটকসটপরক ডযগড কপরয িানসপররন এফাং গযটানড কপরয উদাযন গপরপরফ াঅগন একগট বযারপরক __() পাাংপরনয ভপরধয ডবগযপরয়ফর গদপরয় assign করন ভপরন যাখপরফন এাআ পাাংনগট রগট াঅনডাযপরিায(_) গদপরয় গগঠত একগট নয় ltphp

$text=__(bdquoWordpress is a wonderful publishing platform‟‟liton_plugin‟)

gt

_e() পাাংন _e() পাাংনগট াঅনায ডটকসবপরট ডরাকারাাআজ কপরয এটা গএাআচগপরত echo এয ভত কাজ কপরয ডকান ডটকসটপরক গিপরন ডদখাপরনায জনয এফায একট ভজা কগয মা রপরক ডদপরখগি াঅপরগাআ- _e() পাাংনগট গদপরয় াঅপরগয পলাগগনগট এগডট কযফ ltphp

Plugin Name Liton Action

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(wp_footer liton_footer_action)

function liton_footer_action()

Output the translated text

_e( This site runs off the coolest platform ever ampmdash

WordPress

liton-plugin )

gt

35

এফায াঅউটট ডদগখ

esc_attr__() পাাংন এাআ পাাংনগট esc_attr() এয ভত এগট এাআচগটএভএর এগিগফউটপরক escape কপরয াঅভযা এফায esc_attr__() এফাং __() এাআ রগট পাাংনপরক একগট কপরয পলাগগন ততগয কযফ ltphp

Plugin Name Liton Esc Attr

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

A function that returns a link to the sites terms of service

page

function liton_terms_of_service_link()

return lta href=httpliton-onlinecomtos title=

esc_attr__( Visit the Terms of Service page boj-plugin ) gt __( Terms of

Service liton-plugin ) ltagt

Display the output of the liton_terms_of_service_link()

function

echo liton_terms_of_service_link()

gt

পলাগগনগটয াঅউটট ডদখন-

36

এযকভ াঅপরযা গকি পাাংন াঅপরি ডমগপররা াঅনাযা ডদপরখ ডনপরফন াআনটাযপরনট ডঘপরট

esc_html__() Function

esc_attr() Function

esc_url() Function

esc_js() Function

esc_html() Function

esc_attr_e() Function

esc_html_e() Function

_x() Function

_ex() Function

esc_attr_x() Function

esc_html_x() Function

_n() Function

_nx() Function

_n_noop() Function

_nx_noop() Function

Translation

bull Poedit httppoeditnet

bull GlotPress httpglotpressorg

bull Launchpad httpstranslationslaunchpadnet

bull Pootle httppootlelocamotionorg

bull KBabel httpi18nkdeorg

bull GNU Gettext httpgnuorgsoftwaregettext

GlotPress এখন ওপরয়ফ ডফড টর গপরপরফ ফযফায কযা পরচছ ওয়াডডে েপরজপরকটয ডিপরন একজন াথফা গটপরভয জনয িানসপররগটাং পটওয়যায গপরপরফ

37

াধযায়- াতাঃ পলাগগন গগকউগযগট

গগকউগযগট কগমপউটাপরযয বালায় ldquoগগকউগযগটrdquo ভাপরন বীগতকয একগট বদ ডমভন Cross Site

Scripting(XSS) Cross Site Request Forgery(CSRF) SQL Injection Privilege

Escalation Vulnerabilities এফাং Holes রফডর ডকাড একগট াবডাপরযয সযকষায জনয রভকীয কাযন পরত াপরয

পলাগগপরনয গগকউগযগট গক াঅনায পলাগগনগট ডমন গগকউয য় vulnerabilities data integrity এফাং reliability ডথপরক

াঅনায পলাগগনপরক গক গগকউগযগট ডদপরফন ওয়াডডপরে এনবায়যনপরভপরনট াঅনায পলাগগনপরক গগকউগযগট ডদয়া খফ কগঠন কাজ নয় এফাং খফ ভয় াপরকষ গফলয়ও নয় ওয়াডডপরেপরয গনজসব গকি পাাংন এপরকষপরতর াঅনাপরক খফাআ াাময কযপরফ

াআউজায াযগভন াঅভযা াপরনক পলাগগন াআনসটর কযায পরযাআ ডদপরখগি ডম মখনাআ এডগভন যাপরনর এ েপরফ কযপরত মাাআ তখন একগট এযয ডভপরজ াঅপর ডভপরজগট গনপরচয ভত-

ডরখা াঅপরি- You do not have sufficient permissionshellip এটা গনশচয়তা ডদয় ডম ডমপরকান এযাকন ীভাফি থাপরক গনগদডষট গকি যাাআট গদপরয় ওয়াডডপরেপরয একগট কভন পাাংন র current_user_can() একগট উদাযন ডদাআ-

38

ltphp

Capability

if ( current_user_can(install_plugins) )

wp_die( Insufficient permissions )

Role

if( current_user_can(editor) )

wp_die( You cannot edit this setting )

gt

খফ তাড়াতাগড় াঅগন এাআ current_user_can() পাাংন ডচক কযপরফন না কাযন এটা গনবডয কযপরফ get_currentuserinfo() এাআ পাাংপরনয উপরয াঅয এয ফযফাপরয ীভাফিতা াঅপরি এটা একগট পলাপরগফর পাাংন(pluggable function) াঅয এয ডরাপরকন পরচছ wp-

includespluggablephp মা পলাগগন এগকটব ফায য ডরাড য়

Nonces

ডকউ এগটপরক াঅফায Nonsense( গনপরফডাধ) বাফপরফন নাএগট ওয়াডডপরেপরয বালায় Nonces কগমপউটাপরযয বালায় nonce ফা cryptographic nonce পরচছ ldquonumber used once rdquo এটা ডিাট এফাং সপষট গকি য যানডভ গসটরাং ডমভন- াওয়াডড মা গকি গনপরদড কপরয Nonce গপরডন গপলড পভডপরক Retrieve ফা display কপরয-

একজন ওয়াডডপরে াআউজায ডমপরকান একগট এযাকন (delete update save and such) একগট াফপরজকট(একগট ডাসট পলাগগন ডগটাং াআতযাগদ) ২৪ ঘনটায একগট ভয় ডিভ

ডমভন ডাসট 50 গডগরট কযপরফন াঅনায ওয়াডডপরে বলগ ডথপরক তাপরর াঅনায গরঙকগট পরফ এযকভ- httpexamplecomwp-admin

postphppost=43ampaction=trashamp_wpnonce=83a08fcbc2

এখাপরন 83a08fcbc2 এগট র nonce মা ২৪ ঘনটা সথায়ী থাপরক রধভাতর এগট মগদ াঅনায িাযা ফযফরত য় এফাং গডগরট য় ডাসট 50 মখন াঅগন গরপরঙক গিক কপরযন ফপরচপরয় গযতবনড র ডম Nonce ডকান malicious াআউজায ফেপরত াপরযনা এফাং গঠক গরঙক িাড়া nonce এযয ডপরজ চপরর মায় ডমখাপরন াযগভন থাপরক না াঅপরযা গফসতাগযত ডদখন httpcodexwordpressorgWordPress_Nonces

39

Nonce URL ততগয এফায চরন াঅপরগয উদাযন ডথপরক Nonce URL ততগয কগয একগট ডাসট গডগরট কযায জনয wp_nonce_url() পাাংন ফযফায কযা য় ltphp

$url = wp_nonce_url( $url $action )

gt

েথভ যাযাগভটায $url পরচছ গসটরাং URL এপরডর এয মাপরক াঅগন কপরয়যী গসটরাং এয Nonce কযপরত চান াফযফহরত পলাগগপরনয গডগরট গরঙক এযকভ থাপরক- httpexamplecomwp-admineditphppage= liton

_utagsampliton_action=deleteampid=6

এখাপরন ডদখন যাযাগভটায liton_action এফাং এয টযাগ াঅাআগড গিতীয় যাযাগভটায পরচছ $action একগট গসটরাং মা াঅগন একগট াফপরজকট এয জনয একগট action ততগয কযপরফন উপরয ডদখরাভ delete এযাকন এয টযাগ াঅাআগড 6 সতযাাং $action যাযাগভটায পরত াপরয bdquoliton_utags-delete_tag6‟ গনপরচ ফাসতফ উদাযন ডদগখ- ltphp

$delete_url = add_query_arg(array( liton _action=gtdeleteid=gt$id) )

$nonced_url = wp_nonce_url( $delete_url bdquoliton _utags-delete_tag$id )

gt

lta href=ltphp echo $nonced_url gtgtdeleteltagt

এাআ টযাগগট পরফ গডগরট গরঙক এখাপরন add_query_arg() পাাংন ফযফায কযা পরয়পরি মা কাপরযনট URL ডক এযাপরয যাযাগভটায এয ভপরধয যাপরখ ানযবাপরফ ফরপরর এগট ডমাগ কপরয এযকভাঃ liton_action=deleteampid=6 amp liton_action=deleteampid=6

Nonce Form ততগয Nonce পভডপরকও ডোপরটকট কপরয wp_nonce_field() পাাংপরনয ভাধযপরভ ltphp

wp_nonce_field( $action $name $referer $echo ) gt

$action ( string) (optional) - action নাভ াআউগনক identifier optional

গকনত recommended $name (string) (optional) ndash গপরডন গপলড পভড ডবগযপরয়ফর নাভ $referer (boolean) (optional) ndash গডপলট গপরপরফ true থাপরক ডমখাপরন গপলড

ডবগরপরডন এয দযকায য়

40

$echo (boolean) (optional) - গডপলট গপরপরফ true থাপরক ডমখাপরন াঅউটট ডদখাপরনায ফা গপরডন পভড গপলড গযটানড কযায জনয দযকায য়

পপরভড াঅনায action এয নাভ গদন ltform method=postgt

lt-- some inputs here --gt

ltphp wp_nonce_field(name_of_my_actionname_of_nonce_field) gt

ltformgt

াঅভযা একগট পলাগগন ফানাপরফা ডমখাপরন াফযফরত টযাগগপররাপরক াঅভযা ভযানয়াগর গডগরট ফা গযপরনভ কযপরত াযফ এগট একট ফড় গকনত াপরনক গফলয়াআ াঅপরগাআ াঅপররাচনা কযা পরয়পরি ডদখপররাআ ফেপরত াযপরফন একগট ফাসতফধভডী উদাযন গনপরচ গদরাভ- ltphp

Plugin Name Liton Unused Tags

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add an entry for our option page to the Posts menu

add_action(admin_menu liton_utags_add_page)

function liton_utags_add_page()

add_posts_page( Unused Tags Unused Tagsmanage_optionsliton_utags

liton_utags_option_page )

Catch any liton_action parameter in query string

add_action( admin_init liton_utags_do_action )

Proceed to requested liton_action if applicable

function liton_utags_do_action()

if( isset( $_REQUEST[liton_action] ) )

return

if( current_user_can( manage_options ) )

wp_die( Insufficient privileges )

41

$id = $_REQUEST[id]

$action = $_REQUEST[liton_action]

if( $action == done )

add_action( admin_notices liton_utags_message )

return

check_admin_referer( liton_utags-$action_tag$id )

switch( $action )

case rename

$newtag = array( name =gt $_POST[name] slug =gt

$_POST[name] )

wp_update_term( $id post_tag $newtag )

break

case delete

wp_delete_term( $id post_tag )

break

wp_redirect( add_query_arg( array( liton_action =gt done )

) )

Admin notice

function liton_utags_message()

echo ltdiv class=updatedgtltpgtAction

completedltpgtltdivgt

Draw the tag management page

function liton_utags_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtUnused Tagslth2gt

ltphp

if( $tags = liton_utags_find_orphans() )

echo ltpgtYou currently have count( $tags ) unused

tagsltpgt

echo ltolgt

foreach( $tags as $tag )

42

$id = $tag-gtterm_id

$name = esc_attr( $tag-gtname )

$delete_url= add_query_arg(

array(liton_action=gtdeleteid=gt$id) )

$nonced_url= wp_nonce_url( $delete_url

liton_utags-delete_tag$id )

gt

ltligt

ltform action= method=postgt

ltphp wp_nonce_field( liton_utags-rename_tag$id )

gt

ltinput type=hidden name=liton_action

value=rename gt

ltinput type=hidden name=id value=ltphp echo

$id gt gt

ltinput type=text name=name value=ltphp echo

$name gt gt

ltinput type=submit value=Rename gt or

lta href=ltphp echo $nonced_url gtgtdeleteltagt

this tag

ltformgt

ltligt

ltphp

else gt

ltpgtYou have no unused tagsltpgt

ltphp endif gt

ltolgt

ltdivgt

ltphp

Find unused tags return them in an array

function liton_utags_find_orphans()

global $wpdb

$sql = SELECT termsterm_id termsname FROM

$wpdb-gtterms terms

INNER JOIN $wpdb-gtterm_taxonomy taxo

ON termsterm_id=taxoterm_id

WHERE taxotaxonomy = post_tag

43

AND taxocount=0

return $wpdb-gtget_results( $sql )

gt

ডযাপরফাপরডড এাআ পলাগগপরনয ডভন াওয়া মাপরফ ডাসট এয াফপরভন গপরপরফ গনপরচ ডদখন-

এফায পলাগগন ডভনপরত গিক কপরয ডদগখ পলাগগপরনয ডবতপরযয কাজ-

উপরয ডদখন াঅগভ একগট টযাগ ততগয কপরযগিরাভ l i নাপরভ এগট এখাপরন ডদখাপরচছ াঅগভ চাাআপরর এগট এগডট ফা গডগরট কযপরত াগয এফায গডগরট গরঙক এ ভাউপরয কাডয ডযপরখ গনপরচ গরঙক ডদখন ফা গডগরট করন একগট টযাগ াঅভায এখাপরন URL গট এযকভ httplocalhostdev-litonwp-

admineditphppage=liton_utagsampliton_action=doneampid=4amp_wpnonce=30a44b7

986

এখাপরন াঅগভ liton_action=done ফযফায কপরযগি Nonces এয পাাংনগপররায নাভ গনপরচ গদরাভ াঅনাযা ডদপরখ গনপরফন াআনটাযপরনট ডথপরক wp_nonce_field()

wp_nonce_url()

wp_verify_nonce()

wp_create_nonce()

44

check_admin_referer()

check_ajax_referer()

ডাটাপরফ াঅনাযা ডমপরত গএাআচগ গনপরয় কাজ কপরযন এগকউএর ডাটাপরফ এয াপরথ ফাাআ কভপরফী গযগচত এয গনটযাকস গপররা ডভাটাভগট ফায জানা একাআ বাপরফ াপরনপরকাআ ওয়াডডপরেপরও ডাটাপরফ ডকাড গরপরখন এটা ডকাগডাং এয জনয খাযা গদক াঅগভ নযভার গএাআচগ- এগকউএর ডকাড এয উদাযন গদগচছ- ltphp

$sql=rdquoINSERT INTO $wpdb-gtposts(post_title) VALUES(bdquo$title‟)rdquo

$wpdb-gtquery($sql) gt

এফায ওয়াডডপরেপরয সটযানডাডড ডকাগডাং গপরসটভ ডদখন- ltphp

$wpdb-gtinsert($wpdb-gtposts

array(bdquopost_title‟ =gt $title)

array(bdquos‟)

)

gt

ডাটাপরফ গগকউয কযায জনয াঅপরডট াাপরযন ডদখাফ- গনপরচয ডকাডগট খাযা েযাকগট ltphp

$wpdb-gtquery(ldquoUPDATE $wpdb-gtposts SET post_title=‟$newTitle‟ WHERE

ID=$my_idrdquo )

gt

উপরযয ভত কপরয না গরপরখ গনপরচয ভত কপরয গরখন- ltphp

$wpdb-gtupdate($wpdb-gtposts

Array(bdquopost_title‟ =gt‟$newTitle‟)

Array(bdquoID‟ =gt$my_id

)

gt

ানর বাপরফ ানযানয াাপরযন গপররা গরখপরফন

45

াধযায়- াঅটাঃ ডরাকারাাআপরজন এফাং Set t i ngs API

ডরাকারাাআপরজন ডরাকারাাআপরজন একগট গরতবনড গফলয় এয পাাংনগপররা র- load_theme_textdomain()

load_plugin_textdomain()

উদাযন- ltphp $var=__(bdquoHello‟‟domain‟) gt

ltphp _e(bdquoHello‟‟domain‟) gt

গফসতাগযত গনপরচয গরপরঙক ডদখন- httpcodexwordpressorgI18n_for_WordPress_Developers

ডগটাং API

ডগটাং API পরচছ াঅগন গকি ান ততগয কযপরফন মা াআনটাযনার বাপরফ াঅনায পলাগগপরন এপলাাআ পরফ মখন াঅগন াআউজায- গডপাাআন ান ততগয কযপরফন াঅনায পলাগগপরনয জনয তখন Settings

API ndashএ াঅনায ডকাড মতটা ারন জ করন Settings API াঅনায ডম কাজগপররা handle কপরয-

ওয়াডডপরেপরক জাগনপরয় ডদয় ডম াঅগন গনজসব ান ফযফায কযপরফন াঅনায াআনটপরক পাাংপরনয ভপরধয উপরেখ কযপরফ ডফগয বাগ ান ডজ গনপরজাআ ততগয কযপরফ $_POST ডাটা গপররাপরক ভগনটয কপরয ান ততগয এফাং াঅপরডট কপরয(মগদ েপরয়াজন য়)

Settings API পাাংন Settings API পাাংপরন গতনগট ডসট থাপরক- ১ েথপরভ ওয়াডডপরেপরক ফপরর ডম াঅগন নতন ডগটাং ফযফায কযপরফন াঅনায পলাগগপরনয জনয ২ এয পরয ডগটাং গডপাাআন করন (text areas input boxes and any

HTML form element) এফাং এপরদযপরক একাপরথ রে কপরয যাপরখ ৩ ওয়াডডপরেপরক াঅনায ডগটাং actual form এ ডদখাপরনায জনয ফপরর

46

এফায াঅভযা একগট পলাগগন ফানাপরফা Administration Page ndashএ ডযপাপরযনস গপরপরফ ডদখপরত াপরযন- httpcodexwordpressorgAdding_Administration_Menus

httpcodexwordpressorgFunction_Referenceadd_options_page

httpcodexwordpressorgAction_ReferenceActions_Run_During_an_Admin_P

age_Request

পলাগগপরনয এডগভন ডজ পরফ এযকভ- httpexamplecomwp-adminoptions-generalphppage=liton_myplugin

েথপরভ াঅভযা ডভন ততগয কযফ াঅপরগয ভত কপরয- Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

এফায ান ডজ এ পভড গনপরয় গকি ডগটাং ডদফ function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

উপরযয ডকাপরড াঅভযা একগট পপরভডয ভপরধয রধ াফগভট ফাটন এফাং My Plugin নাপরভ ডজ ততগয কপরযগি ডযাপরফাপরডড ডদখন-

47

ডগটাং এয াফ ডভন গপরপরফ My Plugin াঅপরি এফাং My Plugin ডত গিক কযপরর াঅভযা উপরযয ডজ ততগয কপরযগি ডমখাপরন াফগভট ফাটনগট ডদখাপরচছ এফায গতনগট যাযাগভটায ডযগজসটায কযফ- ltphp

register_setting( liton _myplugin_options liton _myplugin_options liton

_myplugin_validate_options)

gt

েথভগট ডগটাং রেপরয নাভ গিতীয়গট ান নাভ মা াঅভযা get_option() পাাংন গদপরয়ও ডপরত াগয ততীয়গট করফযাক পাাংন এগট একগট গসটরাং ডযপাপরযনস পাাংন এখাপরন াঅভযা নাভ

48

গদপরয়গি liton _myplugin_validate_options মা া কযপরফ পপরভডয কর ডব ডগটাং াঅভযা এটা পরয গডপাাআন কযফ

ডগটাং গডপাাআন ডকন add_settings_field() এফাং add_settings_section() পাাংন গদপরয় াঅভযা াঅভাপরদয কর ডগটাং গডপাাআন কযফ ltphp

add_settings_section( liton_myplugin_main My Plugin Settings

liton_myplugin_section_text liton _myplugin)

add_settings_field( liton _myplugin_text_string Enter text here

liton _myplugin_setting_input liton _myplugin liton _myplugin_main)

gt

add_settings_section() পাাংন গদপরয় াঅভযা ডদখাফ াঅপরর ডজ এ ডকন ডকভন ডদখাপরফ এয চাযগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ ডকন টাাআপরটর ltH3gt টযাপরগয ভপরধয করফযাক পাাংন এয নাভ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ (page= liton _myplugin এগট

URL এয াাং গপরপরফ থাকপরফ) গিতীয় যাযাগভটায add_settings_field() পপরভডয াআনট গপরপরফ ডদখাপরনা পরয়পরি এখাপরন াাচগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ পরযয গপপরলড গক গেনট কযা পরফ তা ডটকসট গপরপরফ ডদখাপরনা পরয়পরি(Enter text

here)

করফযাক পাাংন পপরভড গেনট কযপরফ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ ডগটাং ডপরজয ডকন গপলড মা add_settings_section() পাাংপরন গডপাাআন

কযা পরয়পরি ltphp

Explanations about this section

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

49

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton _myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name= liton _myplugin_options[text_string]

type=text value=$options[text_string] gt

gt

গিতীয় পাাংন ান বযার text_string ডক এযাপরযপরত ডসটায কপরয ডযপরখপরি এফায াআউজায াআনট বযাগরপরডট কযফ- ltphp

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace([^a-zA-Z]$input[text_string] )

return $valid

gt

পভডপরক ডযনডায কযফ- ltphp

Draw the options page

function liton_myplugin_options_page()

gt

ltdiv class=wrapgt

ltphp

screen_icon()

gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp

settings_fields( liton_myplugin_options)

do_settings_sections(liton_myplugin)

50

gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

settings_fields() পাাংনগট ডযপাপরযনস গপরপরফ ফযফায কযা পরয়পরি মা াঅভযা register_setting() পাাংপরন গডপরিয়ায কপরযগি do_settings_sections() পাাংনগট কর কযপরফ কর াঅউটট ডকন এফাং পভড গপলডপরক মা াঅভযা পরফড গডপাাআন কপরযগি াঅভাপরদয কাজ ডল এফায পরযা পলাগগনগট ডদখফ- ltphp

Plugin Name Settings API example

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

Draw the option page

function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save

Changes gt

ltformgtltdivgt

ltphp

51

Register and define the settings

add_action(admin_init liton_myplugin_admin_init)

function liton_myplugin_admin_init()

register_setting( liton_myplugin_options

liton_myplugin_options

liton_myplugin_validate_options )

add_settings_section( liton_myplugin_main My Plugin

Settings

liton_myplugin_section_text liton_myplugin )

add_settings_field( liton_myplugin_text_string Enter text

here

liton_myplugin_setting_input liton_myplugin

liton_myplugin_main )

Draw the section header

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton_myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name=liton_myplugin_options[text_string]

type=text value=$text_string gt

Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

return $valid

gt

52

ডদখন ডযাপরফাপরডড ডকভন ডদখায়-

পরয় ডগর াঅভাপরদয েথভ নডাাংগ পলাগগন ান ডজ াঅপরযকগট গজগন ডমটায জনয এতগকি পলাগগন URL এপরডর- httplocalhostdev-litonwp-adminoptions-

generalphppage=liton_mypluginampsettings-updated=true

াঅভায এখাপরন এযকভ ডদখাপরচছ ডটকসট ফপরকস ডকান গকি গরপরখ ডব কযায য এফাপরয াঅপরযকগট গজগন ডদখফ াঅভযা াপরনক ভয়াআ াপরনক পলাগগপরনয াআনট গপপরলড বর ডাটা াআনট কযপরর এযয ডভপরজ ডদখায় এাআ কাজগট কযফ এফায াঅভযা এখাপরন esc_attr() ফা esc_html() ফযফায কগযগন সতযাাং াঅভাপরদয গরগভপরটন থাকপরি ডবগরপরডট পাাংনগট একট এগডট কগয গনপরচয ভত কপরয Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

if( $valid[text_string] = $input[text_string] )

add_settings_error(liton_myplugin_text_stringliton_myplugin_texterror

53

Incorrect value enterederror)

return $valid

উপরয ডদখন add_settings_error() পাাংন ফযফায কপরযগি মা এযয ডচক কযপরফ পপরভডয াঅগভ একগট বর ডাটা(পরসপার কযাপরযকটায) াআনট কপরয ডদখরাভ এযয ডদখাপরচছ-

তায ভাপরন াঅভযা পর পরয়গি াঅনায পলাগগনগট এগডট কপরয ডনপরফন ডকায ডকন এফাং গপপরলডয গরসট গদরাভ াঅনাপরদয সগফধায জনয

54

CSSJS পাাআর মি কযা

াঅনায পলাগগপরন গএএ ফা জাবাগিে ডমাগ কযপরত পরত াপরয াঅগন চাাআপরর ফাগপরযয ডকান ফা াঅনায ততগয ডকান গএএ ফা জাবাগিে পাাআর ডমাগ কযপরত াপরযন তপরফ এপরকষপরতর াঅভযা ডমবাপরফ HTML এ পাাআর ডমাগ কগয ডযকভ না function liton_scripts()

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtojqueryjsrdquogtltscriptgt‟

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtoscriptjsrdquogtltscriptgt‟

add_action(bdquowp_head‟‟liton_scripts‟)

এগট মপনডরপর বর িগত গনপরচ ডদখন ওয়াডডপরেপর গকবাপরফ পাাআর মি কযপরত য়- function liton_scripts()

wp_enqueue_script(bdquojquery‟)

wp_enqueue_script(bdquotheme-scripts‟‟pathtoscriptsjs‟)

add_action(bdquowp_enqueue_script‟‟liton_scripts‟)

ানর বাপরফ াঅগন সটাাআরীট ডমাগ কযপরত াপরযন- function liton_styles()

wp_enqueue_ style (bdquocss‟)

wp_enqueue_ style (bdquotheme- styles‟pathto stylescss‟)

ডযপাপরযনস ডদখন- httpcodexwordpressorgFunction_Referencewp_enqueue_script

httpcodexwordpressorgFunction_Referencewp_enqueue_style

টডপরকাড টডপরকাড পরচছ ওয়াডডপরেপরয ডসপগগপক ডসপার টযাগ মা াঅগন ডাসট ফা ডপরজয ভপরধয াআনাটড কপরয ানয ডকান কনপরটনটপরক ওপরয়ফাাআপরটয ভপরধয গযপরপল কযপরত াযপরফন মগদ াঅগন গযারাগয টাাআপরয ডকান পলাগগন ফযফায কপরয থাপরকন তাপরর াঅনায ধাযনা থাকায কথা মাাআ ডাক াঅগভ কপরয়কগট উদাযি ডদখাফ

55

েথপরভ একগট পলাগগন ততগয কযফ ডমখাপরন add_shortcode() নাপরভয একগট পাাংন থাকপরফ এগট রগট যাযাগভটায েন কপরয েথভগট টডপরকাপরডয নাভ গিতীয়গট ডম পাাংনপরক কর কযপরফন ডগট াঅভযা একগট উদাযন ডদগখ- ltphp

Plugin Name Liton Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(litonhi)

function hi()

echo Hello World

gt

উপরয ডদখন খফ ডিাট গকনত াঅগন চাাআপরর এয ফযফায াপরনক গফসতত কযপরত াপরযন এখাপরন টডপরকাড নাভ পরচছ liton াঅয এগটপরক ডরখা য় এবাপরফ [liton] াঅভযা ডাপরসটয ভপরধয াআনাটড কপরয ডদগখ াঅউটট ডকভন ডদখায়-

এফায াঅউটট ডদগখ-

56

াঅভাপরদয ততগয কযা টডপরকাড পরবাপরফাআ কাজ কযপরি াঅপরযকগট উদাযন ডদখফ াঅনাযা াপরনপরকাআ গগর এডপরনস গনপরয় কাজ কপরযন াঅনাযা াপরনপরকাআ এডপরনস এয জনয পলাগগন ফযফায কপরযন গকনত চাাআপররাআ এাআ কাজগট াঅনাযা গনপরজয ভত কপরয াগজপরয় গনপরত াপরযন গগপররয কাপরি ফ ডাসট বযার ায়না াঅনাযা মাযা একসাটড াঅপরিন তাযা এটা বার কপরয জাপরনন তাাআ াপরনপরকাআ গগপররয ডকাড ফ ডপরজ ডদখাপরত চান না এজনয পলাগগন ফযফায কপরয রাব য়না কাযন পলাগগপরন জায়গা গপকসড থাপরক এপরত কপরয াঅগনডাং ও কভ য় াঅনাযা টডপরকাড ফযফায কপরয ডমপরকান জায়গায় এড ডদখাপরত াপরযন গনপরচ াঅগভ রগট টডপরকাড ততগয কপরযগি র‟ধযপরনয এড ডদখাপরনায জনয ltphp

Plugin Name Liton Adsense Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(adsense_468adsense_468_60)

add_shortcode(adsense_250adsense_250_250)

function adsense_468_60($atts)

return ltscript type=textjavascriptgtlt--

57

google_ad_client = ca-pub-0956247412222369

468x60 created 101510

google_ad_slot = 4372705450

google_ad_width = 468

google_ad_height = 60

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

function adsense_250_250($atts)

return ltscript type=textjavascriptgtlt--

google_ad_client = ca-pub-0956247412222369

250x250 created 81809

google_ad_slot = 9368091893

google_ad_width = 250

google_ad_height = 250

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

gt

একগট টডপরকাড ফযানায টাাআপরয জনয এফাং াঅপরযকগট ২৫০২৫০ াাআপরজয এফায ডাপরসট ডমপরকান একগট টডপরকাড াআনাটড করন ডমখাপরন াঅনায ডদখাপরনায েপরয়াজন ভপরন কপরযন াঅগভ রগট ডকাড ডটসট কপরয ডদখরাভ-

58

এফায াাআপরটয াঅউটট ডদগখ-

রগট এডাআ ডদখাপরচছ াঅপরযা াপরনক কাপরজ াঅগন টডপরকাড ফযফায কযপরত াপরযন ডযপাপরযনসাঃ httpcodexwordpressorgShortcode_API

59

াধযায়- নয়াঃ পলাগগন উদাযন

ওয়াডডপরেপরয ডডটটাাআভকপরভনট নামবায ফাাংরা কযায পলাগগন াঅভাপরক কপরয়কজন ফপররগিপররন ওয়াডডপরেপরয গডপলট ডডটটাাআভকপরভনট নামবায ফাাংরা য়না রযাাংগপরয়জ ফাাংরা কযায যও ডডটটাাআভকপরভনট নামবায গপররা াআাংপরযগজ ডথপরক মায় গনপরচয পলাগগনগট ফযফায কপরয ডদখপরত াপরযন- ltphp

Plugin Name Liton Bangla datetimecomment number

Plugin URI httpliton-onlinecomplugins

Description Bangla datetimecomment number

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

This function converts all english numbers to bangla number

function make_bangla_number($str)

$engNumber = array(1234567890)

$bangNumber = array( ১ ২ ৩ ৪ ৫ ৬ ৭ ৮ ৯ ০ ) $converted = str_replace($engNumber $bangNumber $str)

return $converted

add_filter( get_the_time make_bangla_number )

add_filter( the_date make_bangla_number )

add_filter( get_the_date make_bangla_number )

add_filter( comments_number make_bangla_number )

add_filter( get_comment_date make_bangla_number )

add_filter( get_comment_time make_bangla_number )

gt

60

সলাাআডায পলাগগন াঅভযা এাআ ফাআপরয়য কর গটউপরটাগযয়াপরর মা মা গখরাভ তা এফায একগট নডাাংগ পলাগগপরনয এপলাাআ কযফ সলাাআডায পলাগগন মপপরকড াঅভযা ফাাআ জাগন একগট ওপরয়ফাাআপরটয ডচাযা ারপরট ডদয় একগট সলাাআডায াপরনক ডাাআনাগভক ভপরন য় ডদখপরতও াপরনক বার রাপরগ এাআ পলাগগপরন াঅভযা এডগভন যাপরনর ডথপরক াআপরভজ ডমাগ কযফ এফাং তা াঅভাপরদয াাআপরট ডদখাফ চরন কাজ রর কগয- েথপরভ গনপরবা সলাাআডায এয ওপরয়ফাাআপরট মান এফাং jQuery Plugin ডাউনপররাড করন

ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom Version 10

gt

াঅভযা পলাগগপরনয ডডায ততগয কযরাভ

পলাগগন গরপরসট ডদখাপরচছ bdquoLitons Nivo Plugin‟ াঅভাপরদয েথভ কাজ পরচছ custom post

type ওয়াডডপরে পাাংনাগরগট একগট নতন কাসটভ ডজ ততগয কযপরত custom post type

ফযফহরত পরফ ডমখাপরন একগট াআপরভজ থাকপরফ াঅভযা রধ টাাআপরটর ডনভ এফাং াআপরভজ াঅপররাডায গপরপরফ গপচায াআপরভজ পাাংনাগরগট ফযফায কযফ function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_function 600 280 true)

61

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

add_action(init np_init)

উপরযয ডকাপরড np_init() পাাংনগট রক কপরযগি মা ডডায যান কযায াঅপরগ যান পরফ াঅয এজনয register_post_type() পাাংনপরক এয যাযাগভটায গদপরয় np_init() পাাংপরনয ডবতপরয মি কপরযগি এটা মগদ না কযতাভ তাপরর ldquoHeaders already sentrdquo ডভপরজ ডদখাত এাআ ডভপরজগটয াপরথ াপরনপরকাআ গযগচত াঅা কগয register_post_type() পাাংন গদপরয় াঅভযা াআপরভজ মি এফাং ভযাপরনজ কযফ ভরত াঅভযা একগট নতন custom post type ডমাগ কপরযগি np_images নাভ গদপরয় নতন custom post type ডক ডগটাং বযার গপরপরফ াঅযগপরভনট া কপরযগি $args ডবগযপরয়ফরগট ট ডরপরবর ডভন ততগয কপরয াঅপরগাআ ডদপরখগি পলাগগনগট এগকটপরবট কযপরর াঅভযা গনপরচয ভত ডদখপরত াফ-

এফায গিে এফাং সটাাআরীট ডক মি কযফ- add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

এফায রক কযা পাাংনগপররা গডপরিয়ায কগয- function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__) array( jquery ))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

62

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

উপরযয ডকাডগপররা নতন কপরয ফিডনা কযায গকি ডনাআ াঅপরগাআ wp_enqueue_style() এফাং wp_enqueue_script() মপপরকড ফরা পরয়পরি নতন াঅপরযকগট পাাআর ততগয করন একাআ গডপরযকটগযপরত scriptjs এফাং গনপরচয ডকাডটক গদন- jQuery(document)ready(function($)

$(slider)nivoSlider()

)

াআপরভজপরক গযাাআজ করন- add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

াঅভযা এাআ পলাগগনগটপরক উাআপরজট গপরপরফও ফযফায কযফ ডগট পরয ডদখফ াঅপরযকগট গজগন মগদ গথপরভ না ডদয়া থাপরক ডজনয থামবপরনাআর াপরাটড গদপরয় গদন- add_theme_support( post-thumbnails )

এফায ওয়াডডপরেপরয কাপরযনট ডাসট কপরয়যী কযায ডকাড াঅয $result ডবগযপরয়ফপরর ডমফ ltdivgt টযাগ ফযফায কযা পরয়পরি তা jQuery Plugin গট একসিাকট কপরয indexhtml ডজগটয ডভাআন সলাাআডায ডকাডগট ডদখন একাআ াঅপরি রধ ডখানকায ltdivgt টযাগ গপররাপরক কগ কপরয এাআ পলাগগপরন ফযফায কযা পরয়পরি এফায টডপরকাড গদন- add_shortcode(np-shortcode np_function)

এাআ টডপরকাড গএাআচগ পাাংনপরক রক কযপরফ এফাং এয ভধয ডথপরক সলাাআডপরায কনপরটনট ডক গযটানড কযপরফ াঅভাপরদয টডপরকাড পরচছ [np-shortcode] াঅভযা পলাগগপরন মাাআ এফাং একগট িগফ মি কগয গপচাযড াআপরভজ গপরপরফ গনপরচ ডদখন-

63

াঅগভ াঅপরযকগট ডজ ততগয কপরযগি ডমখাপরন টডপরকাড গদপরয়গি

াঅউটট ডজ ডদগখ এফায-

64

পরয় ডগর াঅভাপরদয সলাাআডায পলাগগন পরযা ডকাডগট গনপরচ গদরাভ- ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

65

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

66

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

এফায াঅগন মগদ উাআপরজট গপরপরফ ফযফায কযপরত চান তাপরর গনপরচয ডকাডটক গদন- class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

67

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

echo $after_widget

াঅপরযা রগট কাজ কযপরত পরফ াঅনাপরক এক াআপরভজ াাআজ উাআপরজট এয জনয গঠক কপরয গদপরত পরফ- add_image_size(np_widget 180 100 true)

াঅপরযকগট র উাআপরজট এযাকন রক ডমাগ কযা add_action(widgets_init np_widgets_init)

উাআপরজট পরযা ডকাড াঅফায গদরাভ- ltphp

Plugin Name Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Ciprian Turcu

Version 10

68

class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

69

echo $after_widget

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

70

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(widgets_init np_widgets_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

71

পলাগগন গনপরয় এত ডিাট গযপরয ডরখা মভফ নয় এজনযাআ ভপরন য় পলাগগন গনপরয় ডকউ ডরপরখন না কাযন এখাপরন এত গফলয় াঅপরি মা াঅপররাচনা কযপরত ডগপরর ৫০০ ডজ ায পরয় মাপরফ ডফাোয সগফধাপরথড াঅগভ মথামভফ উদাযন গদপরয় ডফাোপরনায ডচষটা কপরযগি াঅগভ এখাপরন টাপরগডট কপরযগি মাযা টকটাক জাপরন পলাগগন মপপরকড এডবানস ডরপরবপররয নয় কাযন তাযা জাপরনন াঅভায উপরেশয গির মাযা জানপরত চায় তাপরদযপরক জানাপরনা এখাপরন ডমফ গফলয় াঅপররাচনা কযা পরয়পরি তা ডভাটাভগট ভাপরনয একগট পলাগগন ফানাপরনায জনয মপরথষট তপরফ ভাপরনাননয়পরনয জনয াঅনাপরক গনপরজাআ খাপরজ গনপরত পরফ াঅনায জনয ডকানটা বার পরফ াঅগভ রধ গদক গনপরদডনা গদরাভ ভাতর এাআ ফাআগট রধভাতর ওয়াডডপরে রেপরয জনয ডরখা াপরনক বর ভরাগনত থাকপরত াপরয াঅনাযা কষভাসনদয দগষটপরত ডদখপরফন াঅগভ ডচষটা কপরযগি মতটা জ কপরয ডরখা মায় াপরনক ভয় ডদখা মায় ডম খফ ডিাট খাপরটা গফলয় গনপরয় াপরনপরকাআ নক কপরযন এটা গতয রাঃখজনক াঅনাযা গগপরর একট খাজপররাআ ভাধান াপরফন াঅপরগ গনপরজ ডচষটা করন তায পরয ানযপরক ভাধাপরনয জনয গজজঞাা করন াঅভায জনয ডদায়া কযপরফন বাপররা রাগপরর জানাপরফন খাযা রাগপররও জানাপরফন তাপররাআ াঅভায গযশরভ সবাথডক পরফ ভতাভত জাগনপরয় াঅভাপরক ডভাআর কযপরত াপরযন litonice09gmailcom |

72

Page 28: Wordpress Plugin Development

29

খফ াধাযন একগট উাআপরজট পলাগগন এগট াঅভযা াআউজাযপরদযপরক একগট ডভপরজ ডদখাপরফা াাআডফাপরয ডটাাআ কযায ডচষটা কযগি এখন পলাগগনগট এগকটপরবট কপরয ডদগখ-

াঅভাপরদয উাআপরজটগট ডদখাপরচছ এফায াঅপরযা গকি পাাংনার কাজ কগয এগট মগদ াাআডফাপরয ডরাগ কপরয ডদন তাপরর ডকান কাজ কযপরফ না কাযন াঅভযা এখপরনা গকিাআ কগযগন পভড পাাংপরন গকি কাজ কগয মা উাআপরজট টাাআপরটর গপরপরফ ডদখাপরফ- public function form($instance)

extract($instance)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title)gtgtTitle ltlabelgt

ltinput

class=widefat

id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt

value=ltphp if(isset($title)) echo esc_attr($title) gt gt

ltpgt

ltphp

াঅভযা উপরয class=widefat ফযফায কপরযগি এাআ িা ফযফায কযায কাযপরন পভড এয াআনট গপলডগট াপরনক সনদয পরয়পরি

30

মগদ এাআ িা ফযফায না কগয তাপরর ডকভন ডদখাপরফ গনপরচ ডদখন-

াঅভাপরদয উাআপরজট পলাগগনগটয ডকাড গনপরচ ডদওয়া র ltphp

Plugin Name Liton Widget

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

class Messager extends WP_Widget

function __construct()

$params=array(

description =gtDisplay message to readers

name =gt Message

)

parent__construct(Messager$params)

31

public function form($instance)

extract($instance)

print_r($instance)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title)gtgtTitle ltlabelgt

ltinput

class=widefat

id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt

value=ltphp if(isset($title)) echo esc_attr($title) gt gt

ltpgt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(description)gtgtDescription

ltlabelgt

lttextarea

class=widefat

rows=10

id=ltphp echo $this-gtget_field_id(description) gt

name=ltphp echo $this-gtget_field_name(description) gtgtltphp

if(isset($description)) echo esc_attr($description) gtlttextareagt

ltpgt

ltphp

public function widget($args$instance)

extract($args)

extract($instance)

echo $before_widget

echo $before_title$title$after_title

echo ltpgt$descriptionltpgt

echo $after_widget

add_action(widgets_initliton_register_message)

function liton_register_message()

32

register_widget(Messager)

gt

এফায াঅভযা ডযাপরফাডড ডথপরক একগট ডভপরজ ডদফ গবগজটযপরদযপরক-

াঅভযা এাআ উাআপরজটগট ডাাআনাগভক বাপরফ কপরযগি কাযন এখাপরন lth2gt lth3gt lth4gt এ ধযপরনয ডকান টযাগ াঅভযা ফযফায কগযগন াঅভযা গথভ ডডপরবর কযগিনা সতযাাং এ কাজগট াঅভাপরদয ানযবাপরফ কযা দযকায গির এগট গথভ ডডপরবরায ডদগখপরয় ডদপরফন ডম ডকভন টযাগ পরফ াাআডফাপরয াাআপরটয াাআডফাপরয ডকভন ডদখায় তা ডদখন- াঅভযা রগট গথপরভ এগট ডটসট কপরয ডদখফ েথভগট টপরয়গনট াআপররপরবন

33

এফায াঅপরযকগট গথপরভ ডদগখ-

34

াধযায়- িয়াঃ পলাগগন পাাংন

গকি ডফগক পাাংন __() পাাংন

__() পাাংনগট গএাআচগপরত াঅনায ডটকসটপরক ডযগড কপরয িানসপররন এফাং গযটানড কপরয উদাযন গপরপরফ াঅগন একগট বযারপরক __() পাাংপরনয ভপরধয ডবগযপরয়ফর গদপরয় assign করন ভপরন যাখপরফন এাআ পাাংনগট রগট াঅনডাযপরিায(_) গদপরয় গগঠত একগট নয় ltphp

$text=__(bdquoWordpress is a wonderful publishing platform‟‟liton_plugin‟)

gt

_e() পাাংন _e() পাাংনগট াঅনায ডটকসবপরট ডরাকারাাআজ কপরয এটা গএাআচগপরত echo এয ভত কাজ কপরয ডকান ডটকসটপরক গিপরন ডদখাপরনায জনয এফায একট ভজা কগয মা রপরক ডদপরখগি াঅপরগাআ- _e() পাাংনগট গদপরয় াঅপরগয পলাগগনগট এগডট কযফ ltphp

Plugin Name Liton Action

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(wp_footer liton_footer_action)

function liton_footer_action()

Output the translated text

_e( This site runs off the coolest platform ever ampmdash

WordPress

liton-plugin )

gt

35

এফায াঅউটট ডদগখ

esc_attr__() পাাংন এাআ পাাংনগট esc_attr() এয ভত এগট এাআচগটএভএর এগিগফউটপরক escape কপরয াঅভযা এফায esc_attr__() এফাং __() এাআ রগট পাাংনপরক একগট কপরয পলাগগন ততগয কযফ ltphp

Plugin Name Liton Esc Attr

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

A function that returns a link to the sites terms of service

page

function liton_terms_of_service_link()

return lta href=httpliton-onlinecomtos title=

esc_attr__( Visit the Terms of Service page boj-plugin ) gt __( Terms of

Service liton-plugin ) ltagt

Display the output of the liton_terms_of_service_link()

function

echo liton_terms_of_service_link()

gt

পলাগগনগটয াঅউটট ডদখন-

36

এযকভ াঅপরযা গকি পাাংন াঅপরি ডমগপররা াঅনাযা ডদপরখ ডনপরফন াআনটাযপরনট ডঘপরট

esc_html__() Function

esc_attr() Function

esc_url() Function

esc_js() Function

esc_html() Function

esc_attr_e() Function

esc_html_e() Function

_x() Function

_ex() Function

esc_attr_x() Function

esc_html_x() Function

_n() Function

_nx() Function

_n_noop() Function

_nx_noop() Function

Translation

bull Poedit httppoeditnet

bull GlotPress httpglotpressorg

bull Launchpad httpstranslationslaunchpadnet

bull Pootle httppootlelocamotionorg

bull KBabel httpi18nkdeorg

bull GNU Gettext httpgnuorgsoftwaregettext

GlotPress এখন ওপরয়ফ ডফড টর গপরপরফ ফযফায কযা পরচছ ওয়াডডে েপরজপরকটয ডিপরন একজন াথফা গটপরভয জনয িানসপররগটাং পটওয়যায গপরপরফ

37

াধযায়- াতাঃ পলাগগন গগকউগযগট

গগকউগযগট কগমপউটাপরযয বালায় ldquoগগকউগযগটrdquo ভাপরন বীগতকয একগট বদ ডমভন Cross Site

Scripting(XSS) Cross Site Request Forgery(CSRF) SQL Injection Privilege

Escalation Vulnerabilities এফাং Holes রফডর ডকাড একগট াবডাপরযয সযকষায জনয রভকীয কাযন পরত াপরয

পলাগগপরনয গগকউগযগট গক াঅনায পলাগগনগট ডমন গগকউয য় vulnerabilities data integrity এফাং reliability ডথপরক

াঅনায পলাগগনপরক গক গগকউগযগট ডদপরফন ওয়াডডপরে এনবায়যনপরভপরনট াঅনায পলাগগনপরক গগকউগযগট ডদয়া খফ কগঠন কাজ নয় এফাং খফ ভয় াপরকষ গফলয়ও নয় ওয়াডডপরেপরয গনজসব গকি পাাংন এপরকষপরতর াঅনাপরক খফাআ াাময কযপরফ

াআউজায াযগভন াঅভযা াপরনক পলাগগন াআনসটর কযায পরযাআ ডদপরখগি ডম মখনাআ এডগভন যাপরনর এ েপরফ কযপরত মাাআ তখন একগট এযয ডভপরজ াঅপর ডভপরজগট গনপরচয ভত-

ডরখা াঅপরি- You do not have sufficient permissionshellip এটা গনশচয়তা ডদয় ডম ডমপরকান এযাকন ীভাফি থাপরক গনগদডষট গকি যাাআট গদপরয় ওয়াডডপরেপরয একগট কভন পাাংন র current_user_can() একগট উদাযন ডদাআ-

38

ltphp

Capability

if ( current_user_can(install_plugins) )

wp_die( Insufficient permissions )

Role

if( current_user_can(editor) )

wp_die( You cannot edit this setting )

gt

খফ তাড়াতাগড় াঅগন এাআ current_user_can() পাাংন ডচক কযপরফন না কাযন এটা গনবডয কযপরফ get_currentuserinfo() এাআ পাাংপরনয উপরয াঅয এয ফযফাপরয ীভাফিতা াঅপরি এটা একগট পলাপরগফর পাাংন(pluggable function) াঅয এয ডরাপরকন পরচছ wp-

includespluggablephp মা পলাগগন এগকটব ফায য ডরাড য়

Nonces

ডকউ এগটপরক াঅফায Nonsense( গনপরফডাধ) বাফপরফন নাএগট ওয়াডডপরেপরয বালায় Nonces কগমপউটাপরযয বালায় nonce ফা cryptographic nonce পরচছ ldquonumber used once rdquo এটা ডিাট এফাং সপষট গকি য যানডভ গসটরাং ডমভন- াওয়াডড মা গকি গনপরদড কপরয Nonce গপরডন গপলড পভডপরক Retrieve ফা display কপরয-

একজন ওয়াডডপরে াআউজায ডমপরকান একগট এযাকন (delete update save and such) একগট াফপরজকট(একগট ডাসট পলাগগন ডগটাং াআতযাগদ) ২৪ ঘনটায একগট ভয় ডিভ

ডমভন ডাসট 50 গডগরট কযপরফন াঅনায ওয়াডডপরে বলগ ডথপরক তাপরর াঅনায গরঙকগট পরফ এযকভ- httpexamplecomwp-admin

postphppost=43ampaction=trashamp_wpnonce=83a08fcbc2

এখাপরন 83a08fcbc2 এগট র nonce মা ২৪ ঘনটা সথায়ী থাপরক রধভাতর এগট মগদ াঅনায িাযা ফযফরত য় এফাং গডগরট য় ডাসট 50 মখন াঅগন গরপরঙক গিক কপরযন ফপরচপরয় গযতবনড র ডম Nonce ডকান malicious াআউজায ফেপরত াপরযনা এফাং গঠক গরঙক িাড়া nonce এযয ডপরজ চপরর মায় ডমখাপরন াযগভন থাপরক না াঅপরযা গফসতাগযত ডদখন httpcodexwordpressorgWordPress_Nonces

39

Nonce URL ততগয এফায চরন াঅপরগয উদাযন ডথপরক Nonce URL ততগয কগয একগট ডাসট গডগরট কযায জনয wp_nonce_url() পাাংন ফযফায কযা য় ltphp

$url = wp_nonce_url( $url $action )

gt

েথভ যাযাগভটায $url পরচছ গসটরাং URL এপরডর এয মাপরক াঅগন কপরয়যী গসটরাং এয Nonce কযপরত চান াফযফহরত পলাগগপরনয গডগরট গরঙক এযকভ থাপরক- httpexamplecomwp-admineditphppage= liton

_utagsampliton_action=deleteampid=6

এখাপরন ডদখন যাযাগভটায liton_action এফাং এয টযাগ াঅাআগড গিতীয় যাযাগভটায পরচছ $action একগট গসটরাং মা াঅগন একগট াফপরজকট এয জনয একগট action ততগয কযপরফন উপরয ডদখরাভ delete এযাকন এয টযাগ াঅাআগড 6 সতযাাং $action যাযাগভটায পরত াপরয bdquoliton_utags-delete_tag6‟ গনপরচ ফাসতফ উদাযন ডদগখ- ltphp

$delete_url = add_query_arg(array( liton _action=gtdeleteid=gt$id) )

$nonced_url = wp_nonce_url( $delete_url bdquoliton _utags-delete_tag$id )

gt

lta href=ltphp echo $nonced_url gtgtdeleteltagt

এাআ টযাগগট পরফ গডগরট গরঙক এখাপরন add_query_arg() পাাংন ফযফায কযা পরয়পরি মা কাপরযনট URL ডক এযাপরয যাযাগভটায এয ভপরধয যাপরখ ানযবাপরফ ফরপরর এগট ডমাগ কপরয এযকভাঃ liton_action=deleteampid=6 amp liton_action=deleteampid=6

Nonce Form ততগয Nonce পভডপরকও ডোপরটকট কপরয wp_nonce_field() পাাংপরনয ভাধযপরভ ltphp

wp_nonce_field( $action $name $referer $echo ) gt

$action ( string) (optional) - action নাভ াআউগনক identifier optional

গকনত recommended $name (string) (optional) ndash গপরডন গপলড পভড ডবগযপরয়ফর নাভ $referer (boolean) (optional) ndash গডপলট গপরপরফ true থাপরক ডমখাপরন গপলড

ডবগরপরডন এয দযকায য়

40

$echo (boolean) (optional) - গডপলট গপরপরফ true থাপরক ডমখাপরন াঅউটট ডদখাপরনায ফা গপরডন পভড গপলড গযটানড কযায জনয দযকায য়

পপরভড াঅনায action এয নাভ গদন ltform method=postgt

lt-- some inputs here --gt

ltphp wp_nonce_field(name_of_my_actionname_of_nonce_field) gt

ltformgt

াঅভযা একগট পলাগগন ফানাপরফা ডমখাপরন াফযফরত টযাগগপররাপরক াঅভযা ভযানয়াগর গডগরট ফা গযপরনভ কযপরত াযফ এগট একট ফড় গকনত াপরনক গফলয়াআ াঅপরগাআ াঅপররাচনা কযা পরয়পরি ডদখপররাআ ফেপরত াযপরফন একগট ফাসতফধভডী উদাযন গনপরচ গদরাভ- ltphp

Plugin Name Liton Unused Tags

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add an entry for our option page to the Posts menu

add_action(admin_menu liton_utags_add_page)

function liton_utags_add_page()

add_posts_page( Unused Tags Unused Tagsmanage_optionsliton_utags

liton_utags_option_page )

Catch any liton_action parameter in query string

add_action( admin_init liton_utags_do_action )

Proceed to requested liton_action if applicable

function liton_utags_do_action()

if( isset( $_REQUEST[liton_action] ) )

return

if( current_user_can( manage_options ) )

wp_die( Insufficient privileges )

41

$id = $_REQUEST[id]

$action = $_REQUEST[liton_action]

if( $action == done )

add_action( admin_notices liton_utags_message )

return

check_admin_referer( liton_utags-$action_tag$id )

switch( $action )

case rename

$newtag = array( name =gt $_POST[name] slug =gt

$_POST[name] )

wp_update_term( $id post_tag $newtag )

break

case delete

wp_delete_term( $id post_tag )

break

wp_redirect( add_query_arg( array( liton_action =gt done )

) )

Admin notice

function liton_utags_message()

echo ltdiv class=updatedgtltpgtAction

completedltpgtltdivgt

Draw the tag management page

function liton_utags_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtUnused Tagslth2gt

ltphp

if( $tags = liton_utags_find_orphans() )

echo ltpgtYou currently have count( $tags ) unused

tagsltpgt

echo ltolgt

foreach( $tags as $tag )

42

$id = $tag-gtterm_id

$name = esc_attr( $tag-gtname )

$delete_url= add_query_arg(

array(liton_action=gtdeleteid=gt$id) )

$nonced_url= wp_nonce_url( $delete_url

liton_utags-delete_tag$id )

gt

ltligt

ltform action= method=postgt

ltphp wp_nonce_field( liton_utags-rename_tag$id )

gt

ltinput type=hidden name=liton_action

value=rename gt

ltinput type=hidden name=id value=ltphp echo

$id gt gt

ltinput type=text name=name value=ltphp echo

$name gt gt

ltinput type=submit value=Rename gt or

lta href=ltphp echo $nonced_url gtgtdeleteltagt

this tag

ltformgt

ltligt

ltphp

else gt

ltpgtYou have no unused tagsltpgt

ltphp endif gt

ltolgt

ltdivgt

ltphp

Find unused tags return them in an array

function liton_utags_find_orphans()

global $wpdb

$sql = SELECT termsterm_id termsname FROM

$wpdb-gtterms terms

INNER JOIN $wpdb-gtterm_taxonomy taxo

ON termsterm_id=taxoterm_id

WHERE taxotaxonomy = post_tag

43

AND taxocount=0

return $wpdb-gtget_results( $sql )

gt

ডযাপরফাপরডড এাআ পলাগগপরনয ডভন াওয়া মাপরফ ডাসট এয াফপরভন গপরপরফ গনপরচ ডদখন-

এফায পলাগগন ডভনপরত গিক কপরয ডদগখ পলাগগপরনয ডবতপরযয কাজ-

উপরয ডদখন াঅগভ একগট টযাগ ততগয কপরযগিরাভ l i নাপরভ এগট এখাপরন ডদখাপরচছ াঅগভ চাাআপরর এগট এগডট ফা গডগরট কযপরত াগয এফায গডগরট গরঙক এ ভাউপরয কাডয ডযপরখ গনপরচ গরঙক ডদখন ফা গডগরট করন একগট টযাগ াঅভায এখাপরন URL গট এযকভ httplocalhostdev-litonwp-

admineditphppage=liton_utagsampliton_action=doneampid=4amp_wpnonce=30a44b7

986

এখাপরন াঅগভ liton_action=done ফযফায কপরযগি Nonces এয পাাংনগপররায নাভ গনপরচ গদরাভ াঅনাযা ডদপরখ গনপরফন াআনটাযপরনট ডথপরক wp_nonce_field()

wp_nonce_url()

wp_verify_nonce()

wp_create_nonce()

44

check_admin_referer()

check_ajax_referer()

ডাটাপরফ াঅনাযা ডমপরত গএাআচগ গনপরয় কাজ কপরযন এগকউএর ডাটাপরফ এয াপরথ ফাাআ কভপরফী গযগচত এয গনটযাকস গপররা ডভাটাভগট ফায জানা একাআ বাপরফ াপরনপরকাআ ওয়াডডপরেপরও ডাটাপরফ ডকাড গরপরখন এটা ডকাগডাং এয জনয খাযা গদক াঅগভ নযভার গএাআচগ- এগকউএর ডকাড এয উদাযন গদগচছ- ltphp

$sql=rdquoINSERT INTO $wpdb-gtposts(post_title) VALUES(bdquo$title‟)rdquo

$wpdb-gtquery($sql) gt

এফায ওয়াডডপরেপরয সটযানডাডড ডকাগডাং গপরসটভ ডদখন- ltphp

$wpdb-gtinsert($wpdb-gtposts

array(bdquopost_title‟ =gt $title)

array(bdquos‟)

)

gt

ডাটাপরফ গগকউয কযায জনয াঅপরডট াাপরযন ডদখাফ- গনপরচয ডকাডগট খাযা েযাকগট ltphp

$wpdb-gtquery(ldquoUPDATE $wpdb-gtposts SET post_title=‟$newTitle‟ WHERE

ID=$my_idrdquo )

gt

উপরযয ভত কপরয না গরপরখ গনপরচয ভত কপরয গরখন- ltphp

$wpdb-gtupdate($wpdb-gtposts

Array(bdquopost_title‟ =gt‟$newTitle‟)

Array(bdquoID‟ =gt$my_id

)

gt

ানর বাপরফ ানযানয াাপরযন গপররা গরখপরফন

45

াধযায়- াঅটাঃ ডরাকারাাআপরজন এফাং Set t i ngs API

ডরাকারাাআপরজন ডরাকারাাআপরজন একগট গরতবনড গফলয় এয পাাংনগপররা র- load_theme_textdomain()

load_plugin_textdomain()

উদাযন- ltphp $var=__(bdquoHello‟‟domain‟) gt

ltphp _e(bdquoHello‟‟domain‟) gt

গফসতাগযত গনপরচয গরপরঙক ডদখন- httpcodexwordpressorgI18n_for_WordPress_Developers

ডগটাং API

ডগটাং API পরচছ াঅগন গকি ান ততগয কযপরফন মা াআনটাযনার বাপরফ াঅনায পলাগগপরন এপলাাআ পরফ মখন াঅগন াআউজায- গডপাাআন ান ততগয কযপরফন াঅনায পলাগগপরনয জনয তখন Settings

API ndashএ াঅনায ডকাড মতটা ারন জ করন Settings API াঅনায ডম কাজগপররা handle কপরয-

ওয়াডডপরেপরক জাগনপরয় ডদয় ডম াঅগন গনজসব ান ফযফায কযপরফন াঅনায াআনটপরক পাাংপরনয ভপরধয উপরেখ কযপরফ ডফগয বাগ ান ডজ গনপরজাআ ততগয কযপরফ $_POST ডাটা গপররাপরক ভগনটয কপরয ান ততগয এফাং াঅপরডট কপরয(মগদ েপরয়াজন য়)

Settings API পাাংন Settings API পাাংপরন গতনগট ডসট থাপরক- ১ েথপরভ ওয়াডডপরেপরক ফপরর ডম াঅগন নতন ডগটাং ফযফায কযপরফন াঅনায পলাগগপরনয জনয ২ এয পরয ডগটাং গডপাাআন করন (text areas input boxes and any

HTML form element) এফাং এপরদযপরক একাপরথ রে কপরয যাপরখ ৩ ওয়াডডপরেপরক াঅনায ডগটাং actual form এ ডদখাপরনায জনয ফপরর

46

এফায াঅভযা একগট পলাগগন ফানাপরফা Administration Page ndashএ ডযপাপরযনস গপরপরফ ডদখপরত াপরযন- httpcodexwordpressorgAdding_Administration_Menus

httpcodexwordpressorgFunction_Referenceadd_options_page

httpcodexwordpressorgAction_ReferenceActions_Run_During_an_Admin_P

age_Request

পলাগগপরনয এডগভন ডজ পরফ এযকভ- httpexamplecomwp-adminoptions-generalphppage=liton_myplugin

েথপরভ াঅভযা ডভন ততগয কযফ াঅপরগয ভত কপরয- Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

এফায ান ডজ এ পভড গনপরয় গকি ডগটাং ডদফ function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

উপরযয ডকাপরড াঅভযা একগট পপরভডয ভপরধয রধ াফগভট ফাটন এফাং My Plugin নাপরভ ডজ ততগয কপরযগি ডযাপরফাপরডড ডদখন-

47

ডগটাং এয াফ ডভন গপরপরফ My Plugin াঅপরি এফাং My Plugin ডত গিক কযপরর াঅভযা উপরযয ডজ ততগয কপরযগি ডমখাপরন াফগভট ফাটনগট ডদখাপরচছ এফায গতনগট যাযাগভটায ডযগজসটায কযফ- ltphp

register_setting( liton _myplugin_options liton _myplugin_options liton

_myplugin_validate_options)

gt

েথভগট ডগটাং রেপরয নাভ গিতীয়গট ান নাভ মা াঅভযা get_option() পাাংন গদপরয়ও ডপরত াগয ততীয়গট করফযাক পাাংন এগট একগট গসটরাং ডযপাপরযনস পাাংন এখাপরন াঅভযা নাভ

48

গদপরয়গি liton _myplugin_validate_options মা া কযপরফ পপরভডয কর ডব ডগটাং াঅভযা এটা পরয গডপাাআন কযফ

ডগটাং গডপাাআন ডকন add_settings_field() এফাং add_settings_section() পাাংন গদপরয় াঅভযা াঅভাপরদয কর ডগটাং গডপাাআন কযফ ltphp

add_settings_section( liton_myplugin_main My Plugin Settings

liton_myplugin_section_text liton _myplugin)

add_settings_field( liton _myplugin_text_string Enter text here

liton _myplugin_setting_input liton _myplugin liton _myplugin_main)

gt

add_settings_section() পাাংন গদপরয় াঅভযা ডদখাফ াঅপরর ডজ এ ডকন ডকভন ডদখাপরফ এয চাযগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ ডকন টাাআপরটর ltH3gt টযাপরগয ভপরধয করফযাক পাাংন এয নাভ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ (page= liton _myplugin এগট

URL এয াাং গপরপরফ থাকপরফ) গিতীয় যাযাগভটায add_settings_field() পপরভডয াআনট গপরপরফ ডদখাপরনা পরয়পরি এখাপরন াাচগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ পরযয গপপরলড গক গেনট কযা পরফ তা ডটকসট গপরপরফ ডদখাপরনা পরয়পরি(Enter text

here)

করফযাক পাাংন পপরভড গেনট কযপরফ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ ডগটাং ডপরজয ডকন গপলড মা add_settings_section() পাাংপরন গডপাাআন

কযা পরয়পরি ltphp

Explanations about this section

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

49

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton _myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name= liton _myplugin_options[text_string]

type=text value=$options[text_string] gt

gt

গিতীয় পাাংন ান বযার text_string ডক এযাপরযপরত ডসটায কপরয ডযপরখপরি এফায াআউজায াআনট বযাগরপরডট কযফ- ltphp

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace([^a-zA-Z]$input[text_string] )

return $valid

gt

পভডপরক ডযনডায কযফ- ltphp

Draw the options page

function liton_myplugin_options_page()

gt

ltdiv class=wrapgt

ltphp

screen_icon()

gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp

settings_fields( liton_myplugin_options)

do_settings_sections(liton_myplugin)

50

gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

settings_fields() পাাংনগট ডযপাপরযনস গপরপরফ ফযফায কযা পরয়পরি মা াঅভযা register_setting() পাাংপরন গডপরিয়ায কপরযগি do_settings_sections() পাাংনগট কর কযপরফ কর াঅউটট ডকন এফাং পভড গপলডপরক মা াঅভযা পরফড গডপাাআন কপরযগি াঅভাপরদয কাজ ডল এফায পরযা পলাগগনগট ডদখফ- ltphp

Plugin Name Settings API example

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

Draw the option page

function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save

Changes gt

ltformgtltdivgt

ltphp

51

Register and define the settings

add_action(admin_init liton_myplugin_admin_init)

function liton_myplugin_admin_init()

register_setting( liton_myplugin_options

liton_myplugin_options

liton_myplugin_validate_options )

add_settings_section( liton_myplugin_main My Plugin

Settings

liton_myplugin_section_text liton_myplugin )

add_settings_field( liton_myplugin_text_string Enter text

here

liton_myplugin_setting_input liton_myplugin

liton_myplugin_main )

Draw the section header

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton_myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name=liton_myplugin_options[text_string]

type=text value=$text_string gt

Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

return $valid

gt

52

ডদখন ডযাপরফাপরডড ডকভন ডদখায়-

পরয় ডগর াঅভাপরদয েথভ নডাাংগ পলাগগন ান ডজ াঅপরযকগট গজগন ডমটায জনয এতগকি পলাগগন URL এপরডর- httplocalhostdev-litonwp-adminoptions-

generalphppage=liton_mypluginampsettings-updated=true

াঅভায এখাপরন এযকভ ডদখাপরচছ ডটকসট ফপরকস ডকান গকি গরপরখ ডব কযায য এফাপরয াঅপরযকগট গজগন ডদখফ াঅভযা াপরনক ভয়াআ াপরনক পলাগগপরনয াআনট গপপরলড বর ডাটা াআনট কযপরর এযয ডভপরজ ডদখায় এাআ কাজগট কযফ এফায াঅভযা এখাপরন esc_attr() ফা esc_html() ফযফায কগযগন সতযাাং াঅভাপরদয গরগভপরটন থাকপরি ডবগরপরডট পাাংনগট একট এগডট কগয গনপরচয ভত কপরয Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

if( $valid[text_string] = $input[text_string] )

add_settings_error(liton_myplugin_text_stringliton_myplugin_texterror

53

Incorrect value enterederror)

return $valid

উপরয ডদখন add_settings_error() পাাংন ফযফায কপরযগি মা এযয ডচক কযপরফ পপরভডয াঅগভ একগট বর ডাটা(পরসপার কযাপরযকটায) াআনট কপরয ডদখরাভ এযয ডদখাপরচছ-

তায ভাপরন াঅভযা পর পরয়গি াঅনায পলাগগনগট এগডট কপরয ডনপরফন ডকায ডকন এফাং গপপরলডয গরসট গদরাভ াঅনাপরদয সগফধায জনয

54

CSSJS পাাআর মি কযা

াঅনায পলাগগপরন গএএ ফা জাবাগিে ডমাগ কযপরত পরত াপরয াঅগন চাাআপরর ফাগপরযয ডকান ফা াঅনায ততগয ডকান গএএ ফা জাবাগিে পাাআর ডমাগ কযপরত াপরযন তপরফ এপরকষপরতর াঅভযা ডমবাপরফ HTML এ পাাআর ডমাগ কগয ডযকভ না function liton_scripts()

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtojqueryjsrdquogtltscriptgt‟

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtoscriptjsrdquogtltscriptgt‟

add_action(bdquowp_head‟‟liton_scripts‟)

এগট মপনডরপর বর িগত গনপরচ ডদখন ওয়াডডপরেপর গকবাপরফ পাাআর মি কযপরত য়- function liton_scripts()

wp_enqueue_script(bdquojquery‟)

wp_enqueue_script(bdquotheme-scripts‟‟pathtoscriptsjs‟)

add_action(bdquowp_enqueue_script‟‟liton_scripts‟)

ানর বাপরফ াঅগন সটাাআরীট ডমাগ কযপরত াপরযন- function liton_styles()

wp_enqueue_ style (bdquocss‟)

wp_enqueue_ style (bdquotheme- styles‟pathto stylescss‟)

ডযপাপরযনস ডদখন- httpcodexwordpressorgFunction_Referencewp_enqueue_script

httpcodexwordpressorgFunction_Referencewp_enqueue_style

টডপরকাড টডপরকাড পরচছ ওয়াডডপরেপরয ডসপগগপক ডসপার টযাগ মা াঅগন ডাসট ফা ডপরজয ভপরধয াআনাটড কপরয ানয ডকান কনপরটনটপরক ওপরয়ফাাআপরটয ভপরধয গযপরপল কযপরত াযপরফন মগদ াঅগন গযারাগয টাাআপরয ডকান পলাগগন ফযফায কপরয থাপরকন তাপরর াঅনায ধাযনা থাকায কথা মাাআ ডাক াঅগভ কপরয়কগট উদাযি ডদখাফ

55

েথপরভ একগট পলাগগন ততগয কযফ ডমখাপরন add_shortcode() নাপরভয একগট পাাংন থাকপরফ এগট রগট যাযাগভটায েন কপরয েথভগট টডপরকাপরডয নাভ গিতীয়গট ডম পাাংনপরক কর কযপরফন ডগট াঅভযা একগট উদাযন ডদগখ- ltphp

Plugin Name Liton Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(litonhi)

function hi()

echo Hello World

gt

উপরয ডদখন খফ ডিাট গকনত াঅগন চাাআপরর এয ফযফায াপরনক গফসতত কযপরত াপরযন এখাপরন টডপরকাড নাভ পরচছ liton াঅয এগটপরক ডরখা য় এবাপরফ [liton] াঅভযা ডাপরসটয ভপরধয াআনাটড কপরয ডদগখ াঅউটট ডকভন ডদখায়-

এফায াঅউটট ডদগখ-

56

াঅভাপরদয ততগয কযা টডপরকাড পরবাপরফাআ কাজ কযপরি াঅপরযকগট উদাযন ডদখফ াঅনাযা াপরনপরকাআ গগর এডপরনস গনপরয় কাজ কপরযন াঅনাযা াপরনপরকাআ এডপরনস এয জনয পলাগগন ফযফায কপরযন গকনত চাাআপররাআ এাআ কাজগট াঅনাযা গনপরজয ভত কপরয াগজপরয় গনপরত াপরযন গগপররয কাপরি ফ ডাসট বযার ায়না াঅনাযা মাযা একসাটড াঅপরিন তাযা এটা বার কপরয জাপরনন তাাআ াপরনপরকাআ গগপররয ডকাড ফ ডপরজ ডদখাপরত চান না এজনয পলাগগন ফযফায কপরয রাব য়না কাযন পলাগগপরন জায়গা গপকসড থাপরক এপরত কপরয াঅগনডাং ও কভ য় াঅনাযা টডপরকাড ফযফায কপরয ডমপরকান জায়গায় এড ডদখাপরত াপরযন গনপরচ াঅগভ রগট টডপরকাড ততগয কপরযগি র‟ধযপরনয এড ডদখাপরনায জনয ltphp

Plugin Name Liton Adsense Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(adsense_468adsense_468_60)

add_shortcode(adsense_250adsense_250_250)

function adsense_468_60($atts)

return ltscript type=textjavascriptgtlt--

57

google_ad_client = ca-pub-0956247412222369

468x60 created 101510

google_ad_slot = 4372705450

google_ad_width = 468

google_ad_height = 60

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

function adsense_250_250($atts)

return ltscript type=textjavascriptgtlt--

google_ad_client = ca-pub-0956247412222369

250x250 created 81809

google_ad_slot = 9368091893

google_ad_width = 250

google_ad_height = 250

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

gt

একগট টডপরকাড ফযানায টাাআপরয জনয এফাং াঅপরযকগট ২৫০২৫০ াাআপরজয এফায ডাপরসট ডমপরকান একগট টডপরকাড াআনাটড করন ডমখাপরন াঅনায ডদখাপরনায েপরয়াজন ভপরন কপরযন াঅগভ রগট ডকাড ডটসট কপরয ডদখরাভ-

58

এফায াাআপরটয াঅউটট ডদগখ-

রগট এডাআ ডদখাপরচছ াঅপরযা াপরনক কাপরজ াঅগন টডপরকাড ফযফায কযপরত াপরযন ডযপাপরযনসাঃ httpcodexwordpressorgShortcode_API

59

াধযায়- নয়াঃ পলাগগন উদাযন

ওয়াডডপরেপরয ডডটটাাআভকপরভনট নামবায ফাাংরা কযায পলাগগন াঅভাপরক কপরয়কজন ফপররগিপররন ওয়াডডপরেপরয গডপলট ডডটটাাআভকপরভনট নামবায ফাাংরা য়না রযাাংগপরয়জ ফাাংরা কযায যও ডডটটাাআভকপরভনট নামবায গপররা াআাংপরযগজ ডথপরক মায় গনপরচয পলাগগনগট ফযফায কপরয ডদখপরত াপরযন- ltphp

Plugin Name Liton Bangla datetimecomment number

Plugin URI httpliton-onlinecomplugins

Description Bangla datetimecomment number

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

This function converts all english numbers to bangla number

function make_bangla_number($str)

$engNumber = array(1234567890)

$bangNumber = array( ১ ২ ৩ ৪ ৫ ৬ ৭ ৮ ৯ ০ ) $converted = str_replace($engNumber $bangNumber $str)

return $converted

add_filter( get_the_time make_bangla_number )

add_filter( the_date make_bangla_number )

add_filter( get_the_date make_bangla_number )

add_filter( comments_number make_bangla_number )

add_filter( get_comment_date make_bangla_number )

add_filter( get_comment_time make_bangla_number )

gt

60

সলাাআডায পলাগগন াঅভযা এাআ ফাআপরয়য কর গটউপরটাগযয়াপরর মা মা গখরাভ তা এফায একগট নডাাংগ পলাগগপরনয এপলাাআ কযফ সলাাআডায পলাগগন মপপরকড াঅভযা ফাাআ জাগন একগট ওপরয়ফাাআপরটয ডচাযা ারপরট ডদয় একগট সলাাআডায াপরনক ডাাআনাগভক ভপরন য় ডদখপরতও াপরনক বার রাপরগ এাআ পলাগগপরন াঅভযা এডগভন যাপরনর ডথপরক াআপরভজ ডমাগ কযফ এফাং তা াঅভাপরদয াাআপরট ডদখাফ চরন কাজ রর কগয- েথপরভ গনপরবা সলাাআডায এয ওপরয়ফাাআপরট মান এফাং jQuery Plugin ডাউনপররাড করন

ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom Version 10

gt

াঅভযা পলাগগপরনয ডডায ততগয কযরাভ

পলাগগন গরপরসট ডদখাপরচছ bdquoLitons Nivo Plugin‟ াঅভাপরদয েথভ কাজ পরচছ custom post

type ওয়াডডপরে পাাংনাগরগট একগট নতন কাসটভ ডজ ততগয কযপরত custom post type

ফযফহরত পরফ ডমখাপরন একগট াআপরভজ থাকপরফ াঅভযা রধ টাাআপরটর ডনভ এফাং াআপরভজ াঅপররাডায গপরপরফ গপচায াআপরভজ পাাংনাগরগট ফযফায কযফ function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_function 600 280 true)

61

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

add_action(init np_init)

উপরযয ডকাপরড np_init() পাাংনগট রক কপরযগি মা ডডায যান কযায াঅপরগ যান পরফ াঅয এজনয register_post_type() পাাংনপরক এয যাযাগভটায গদপরয় np_init() পাাংপরনয ডবতপরয মি কপরযগি এটা মগদ না কযতাভ তাপরর ldquoHeaders already sentrdquo ডভপরজ ডদখাত এাআ ডভপরজগটয াপরথ াপরনপরকাআ গযগচত াঅা কগয register_post_type() পাাংন গদপরয় াঅভযা াআপরভজ মি এফাং ভযাপরনজ কযফ ভরত াঅভযা একগট নতন custom post type ডমাগ কপরযগি np_images নাভ গদপরয় নতন custom post type ডক ডগটাং বযার গপরপরফ াঅযগপরভনট া কপরযগি $args ডবগযপরয়ফরগট ট ডরপরবর ডভন ততগয কপরয াঅপরগাআ ডদপরখগি পলাগগনগট এগকটপরবট কযপরর াঅভযা গনপরচয ভত ডদখপরত াফ-

এফায গিে এফাং সটাাআরীট ডক মি কযফ- add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

এফায রক কযা পাাংনগপররা গডপরিয়ায কগয- function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__) array( jquery ))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

62

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

উপরযয ডকাডগপররা নতন কপরয ফিডনা কযায গকি ডনাআ াঅপরগাআ wp_enqueue_style() এফাং wp_enqueue_script() মপপরকড ফরা পরয়পরি নতন াঅপরযকগট পাাআর ততগয করন একাআ গডপরযকটগযপরত scriptjs এফাং গনপরচয ডকাডটক গদন- jQuery(document)ready(function($)

$(slider)nivoSlider()

)

াআপরভজপরক গযাাআজ করন- add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

াঅভযা এাআ পলাগগনগটপরক উাআপরজট গপরপরফও ফযফায কযফ ডগট পরয ডদখফ াঅপরযকগট গজগন মগদ গথপরভ না ডদয়া থাপরক ডজনয থামবপরনাআর াপরাটড গদপরয় গদন- add_theme_support( post-thumbnails )

এফায ওয়াডডপরেপরয কাপরযনট ডাসট কপরয়যী কযায ডকাড াঅয $result ডবগযপরয়ফপরর ডমফ ltdivgt টযাগ ফযফায কযা পরয়পরি তা jQuery Plugin গট একসিাকট কপরয indexhtml ডজগটয ডভাআন সলাাআডায ডকাডগট ডদখন একাআ াঅপরি রধ ডখানকায ltdivgt টযাগ গপররাপরক কগ কপরয এাআ পলাগগপরন ফযফায কযা পরয়পরি এফায টডপরকাড গদন- add_shortcode(np-shortcode np_function)

এাআ টডপরকাড গএাআচগ পাাংনপরক রক কযপরফ এফাং এয ভধয ডথপরক সলাাআডপরায কনপরটনট ডক গযটানড কযপরফ াঅভাপরদয টডপরকাড পরচছ [np-shortcode] াঅভযা পলাগগপরন মাাআ এফাং একগট িগফ মি কগয গপচাযড াআপরভজ গপরপরফ গনপরচ ডদখন-

63

াঅগভ াঅপরযকগট ডজ ততগয কপরযগি ডমখাপরন টডপরকাড গদপরয়গি

াঅউটট ডজ ডদগখ এফায-

64

পরয় ডগর াঅভাপরদয সলাাআডায পলাগগন পরযা ডকাডগট গনপরচ গদরাভ- ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

65

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

66

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

এফায াঅগন মগদ উাআপরজট গপরপরফ ফযফায কযপরত চান তাপরর গনপরচয ডকাডটক গদন- class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

67

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

echo $after_widget

াঅপরযা রগট কাজ কযপরত পরফ াঅনাপরক এক াআপরভজ াাআজ উাআপরজট এয জনয গঠক কপরয গদপরত পরফ- add_image_size(np_widget 180 100 true)

াঅপরযকগট র উাআপরজট এযাকন রক ডমাগ কযা add_action(widgets_init np_widgets_init)

উাআপরজট পরযা ডকাড াঅফায গদরাভ- ltphp

Plugin Name Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Ciprian Turcu

Version 10

68

class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

69

echo $after_widget

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

70

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(widgets_init np_widgets_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

71

পলাগগন গনপরয় এত ডিাট গযপরয ডরখা মভফ নয় এজনযাআ ভপরন য় পলাগগন গনপরয় ডকউ ডরপরখন না কাযন এখাপরন এত গফলয় াঅপরি মা াঅপররাচনা কযপরত ডগপরর ৫০০ ডজ ায পরয় মাপরফ ডফাোয সগফধাপরথড াঅগভ মথামভফ উদাযন গদপরয় ডফাোপরনায ডচষটা কপরযগি াঅগভ এখাপরন টাপরগডট কপরযগি মাযা টকটাক জাপরন পলাগগন মপপরকড এডবানস ডরপরবপররয নয় কাযন তাযা জাপরনন াঅভায উপরেশয গির মাযা জানপরত চায় তাপরদযপরক জানাপরনা এখাপরন ডমফ গফলয় াঅপররাচনা কযা পরয়পরি তা ডভাটাভগট ভাপরনয একগট পলাগগন ফানাপরনায জনয মপরথষট তপরফ ভাপরনাননয়পরনয জনয াঅনাপরক গনপরজাআ খাপরজ গনপরত পরফ াঅনায জনয ডকানটা বার পরফ াঅগভ রধ গদক গনপরদডনা গদরাভ ভাতর এাআ ফাআগট রধভাতর ওয়াডডপরে রেপরয জনয ডরখা াপরনক বর ভরাগনত থাকপরত াপরয াঅনাযা কষভাসনদয দগষটপরত ডদখপরফন াঅগভ ডচষটা কপরযগি মতটা জ কপরয ডরখা মায় াপরনক ভয় ডদখা মায় ডম খফ ডিাট খাপরটা গফলয় গনপরয় াপরনপরকাআ নক কপরযন এটা গতয রাঃখজনক াঅনাযা গগপরর একট খাজপররাআ ভাধান াপরফন াঅপরগ গনপরজ ডচষটা করন তায পরয ানযপরক ভাধাপরনয জনয গজজঞাা করন াঅভায জনয ডদায়া কযপরফন বাপররা রাগপরর জানাপরফন খাযা রাগপররও জানাপরফন তাপররাআ াঅভায গযশরভ সবাথডক পরফ ভতাভত জাগনপরয় াঅভাপরক ডভাআর কযপরত াপরযন litonice09gmailcom |

72

Page 29: Wordpress Plugin Development

30

মগদ এাআ িা ফযফায না কগয তাপরর ডকভন ডদখাপরফ গনপরচ ডদখন-

াঅভাপরদয উাআপরজট পলাগগনগটয ডকাড গনপরচ ডদওয়া র ltphp

Plugin Name Liton Widget

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

class Messager extends WP_Widget

function __construct()

$params=array(

description =gtDisplay message to readers

name =gt Message

)

parent__construct(Messager$params)

31

public function form($instance)

extract($instance)

print_r($instance)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title)gtgtTitle ltlabelgt

ltinput

class=widefat

id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt

value=ltphp if(isset($title)) echo esc_attr($title) gt gt

ltpgt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(description)gtgtDescription

ltlabelgt

lttextarea

class=widefat

rows=10

id=ltphp echo $this-gtget_field_id(description) gt

name=ltphp echo $this-gtget_field_name(description) gtgtltphp

if(isset($description)) echo esc_attr($description) gtlttextareagt

ltpgt

ltphp

public function widget($args$instance)

extract($args)

extract($instance)

echo $before_widget

echo $before_title$title$after_title

echo ltpgt$descriptionltpgt

echo $after_widget

add_action(widgets_initliton_register_message)

function liton_register_message()

32

register_widget(Messager)

gt

এফায াঅভযা ডযাপরফাডড ডথপরক একগট ডভপরজ ডদফ গবগজটযপরদযপরক-

াঅভযা এাআ উাআপরজটগট ডাাআনাগভক বাপরফ কপরযগি কাযন এখাপরন lth2gt lth3gt lth4gt এ ধযপরনয ডকান টযাগ াঅভযা ফযফায কগযগন াঅভযা গথভ ডডপরবর কযগিনা সতযাাং এ কাজগট াঅভাপরদয ানযবাপরফ কযা দযকায গির এগট গথভ ডডপরবরায ডদগখপরয় ডদপরফন ডম ডকভন টযাগ পরফ াাআডফাপরয াাআপরটয াাআডফাপরয ডকভন ডদখায় তা ডদখন- াঅভযা রগট গথপরভ এগট ডটসট কপরয ডদখফ েথভগট টপরয়গনট াআপররপরবন

33

এফায াঅপরযকগট গথপরভ ডদগখ-

34

াধযায়- িয়াঃ পলাগগন পাাংন

গকি ডফগক পাাংন __() পাাংন

__() পাাংনগট গএাআচগপরত াঅনায ডটকসটপরক ডযগড কপরয িানসপররন এফাং গযটানড কপরয উদাযন গপরপরফ াঅগন একগট বযারপরক __() পাাংপরনয ভপরধয ডবগযপরয়ফর গদপরয় assign করন ভপরন যাখপরফন এাআ পাাংনগট রগট াঅনডাযপরিায(_) গদপরয় গগঠত একগট নয় ltphp

$text=__(bdquoWordpress is a wonderful publishing platform‟‟liton_plugin‟)

gt

_e() পাাংন _e() পাাংনগট াঅনায ডটকসবপরট ডরাকারাাআজ কপরয এটা গএাআচগপরত echo এয ভত কাজ কপরয ডকান ডটকসটপরক গিপরন ডদখাপরনায জনয এফায একট ভজা কগয মা রপরক ডদপরখগি াঅপরগাআ- _e() পাাংনগট গদপরয় াঅপরগয পলাগগনগট এগডট কযফ ltphp

Plugin Name Liton Action

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(wp_footer liton_footer_action)

function liton_footer_action()

Output the translated text

_e( This site runs off the coolest platform ever ampmdash

WordPress

liton-plugin )

gt

35

এফায াঅউটট ডদগখ

esc_attr__() পাাংন এাআ পাাংনগট esc_attr() এয ভত এগট এাআচগটএভএর এগিগফউটপরক escape কপরয াঅভযা এফায esc_attr__() এফাং __() এাআ রগট পাাংনপরক একগট কপরয পলাগগন ততগয কযফ ltphp

Plugin Name Liton Esc Attr

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

A function that returns a link to the sites terms of service

page

function liton_terms_of_service_link()

return lta href=httpliton-onlinecomtos title=

esc_attr__( Visit the Terms of Service page boj-plugin ) gt __( Terms of

Service liton-plugin ) ltagt

Display the output of the liton_terms_of_service_link()

function

echo liton_terms_of_service_link()

gt

পলাগগনগটয াঅউটট ডদখন-

36

এযকভ াঅপরযা গকি পাাংন াঅপরি ডমগপররা াঅনাযা ডদপরখ ডনপরফন াআনটাযপরনট ডঘপরট

esc_html__() Function

esc_attr() Function

esc_url() Function

esc_js() Function

esc_html() Function

esc_attr_e() Function

esc_html_e() Function

_x() Function

_ex() Function

esc_attr_x() Function

esc_html_x() Function

_n() Function

_nx() Function

_n_noop() Function

_nx_noop() Function

Translation

bull Poedit httppoeditnet

bull GlotPress httpglotpressorg

bull Launchpad httpstranslationslaunchpadnet

bull Pootle httppootlelocamotionorg

bull KBabel httpi18nkdeorg

bull GNU Gettext httpgnuorgsoftwaregettext

GlotPress এখন ওপরয়ফ ডফড টর গপরপরফ ফযফায কযা পরচছ ওয়াডডে েপরজপরকটয ডিপরন একজন াথফা গটপরভয জনয িানসপররগটাং পটওয়যায গপরপরফ

37

াধযায়- াতাঃ পলাগগন গগকউগযগট

গগকউগযগট কগমপউটাপরযয বালায় ldquoগগকউগযগটrdquo ভাপরন বীগতকয একগট বদ ডমভন Cross Site

Scripting(XSS) Cross Site Request Forgery(CSRF) SQL Injection Privilege

Escalation Vulnerabilities এফাং Holes রফডর ডকাড একগট াবডাপরযয সযকষায জনয রভকীয কাযন পরত াপরয

পলাগগপরনয গগকউগযগট গক াঅনায পলাগগনগট ডমন গগকউয য় vulnerabilities data integrity এফাং reliability ডথপরক

াঅনায পলাগগনপরক গক গগকউগযগট ডদপরফন ওয়াডডপরে এনবায়যনপরভপরনট াঅনায পলাগগনপরক গগকউগযগট ডদয়া খফ কগঠন কাজ নয় এফাং খফ ভয় াপরকষ গফলয়ও নয় ওয়াডডপরেপরয গনজসব গকি পাাংন এপরকষপরতর াঅনাপরক খফাআ াাময কযপরফ

াআউজায াযগভন াঅভযা াপরনক পলাগগন াআনসটর কযায পরযাআ ডদপরখগি ডম মখনাআ এডগভন যাপরনর এ েপরফ কযপরত মাাআ তখন একগট এযয ডভপরজ াঅপর ডভপরজগট গনপরচয ভত-

ডরখা াঅপরি- You do not have sufficient permissionshellip এটা গনশচয়তা ডদয় ডম ডমপরকান এযাকন ীভাফি থাপরক গনগদডষট গকি যাাআট গদপরয় ওয়াডডপরেপরয একগট কভন পাাংন র current_user_can() একগট উদাযন ডদাআ-

38

ltphp

Capability

if ( current_user_can(install_plugins) )

wp_die( Insufficient permissions )

Role

if( current_user_can(editor) )

wp_die( You cannot edit this setting )

gt

খফ তাড়াতাগড় াঅগন এাআ current_user_can() পাাংন ডচক কযপরফন না কাযন এটা গনবডয কযপরফ get_currentuserinfo() এাআ পাাংপরনয উপরয াঅয এয ফযফাপরয ীভাফিতা াঅপরি এটা একগট পলাপরগফর পাাংন(pluggable function) াঅয এয ডরাপরকন পরচছ wp-

includespluggablephp মা পলাগগন এগকটব ফায য ডরাড য়

Nonces

ডকউ এগটপরক াঅফায Nonsense( গনপরফডাধ) বাফপরফন নাএগট ওয়াডডপরেপরয বালায় Nonces কগমপউটাপরযয বালায় nonce ফা cryptographic nonce পরচছ ldquonumber used once rdquo এটা ডিাট এফাং সপষট গকি য যানডভ গসটরাং ডমভন- াওয়াডড মা গকি গনপরদড কপরয Nonce গপরডন গপলড পভডপরক Retrieve ফা display কপরয-

একজন ওয়াডডপরে াআউজায ডমপরকান একগট এযাকন (delete update save and such) একগট াফপরজকট(একগট ডাসট পলাগগন ডগটাং াআতযাগদ) ২৪ ঘনটায একগট ভয় ডিভ

ডমভন ডাসট 50 গডগরট কযপরফন াঅনায ওয়াডডপরে বলগ ডথপরক তাপরর াঅনায গরঙকগট পরফ এযকভ- httpexamplecomwp-admin

postphppost=43ampaction=trashamp_wpnonce=83a08fcbc2

এখাপরন 83a08fcbc2 এগট র nonce মা ২৪ ঘনটা সথায়ী থাপরক রধভাতর এগট মগদ াঅনায িাযা ফযফরত য় এফাং গডগরট য় ডাসট 50 মখন াঅগন গরপরঙক গিক কপরযন ফপরচপরয় গযতবনড র ডম Nonce ডকান malicious াআউজায ফেপরত াপরযনা এফাং গঠক গরঙক িাড়া nonce এযয ডপরজ চপরর মায় ডমখাপরন াযগভন থাপরক না াঅপরযা গফসতাগযত ডদখন httpcodexwordpressorgWordPress_Nonces

39

Nonce URL ততগয এফায চরন াঅপরগয উদাযন ডথপরক Nonce URL ততগয কগয একগট ডাসট গডগরট কযায জনয wp_nonce_url() পাাংন ফযফায কযা য় ltphp

$url = wp_nonce_url( $url $action )

gt

েথভ যাযাগভটায $url পরচছ গসটরাং URL এপরডর এয মাপরক াঅগন কপরয়যী গসটরাং এয Nonce কযপরত চান াফযফহরত পলাগগপরনয গডগরট গরঙক এযকভ থাপরক- httpexamplecomwp-admineditphppage= liton

_utagsampliton_action=deleteampid=6

এখাপরন ডদখন যাযাগভটায liton_action এফাং এয টযাগ াঅাআগড গিতীয় যাযাগভটায পরচছ $action একগট গসটরাং মা াঅগন একগট াফপরজকট এয জনয একগট action ততগয কযপরফন উপরয ডদখরাভ delete এযাকন এয টযাগ াঅাআগড 6 সতযাাং $action যাযাগভটায পরত াপরয bdquoliton_utags-delete_tag6‟ গনপরচ ফাসতফ উদাযন ডদগখ- ltphp

$delete_url = add_query_arg(array( liton _action=gtdeleteid=gt$id) )

$nonced_url = wp_nonce_url( $delete_url bdquoliton _utags-delete_tag$id )

gt

lta href=ltphp echo $nonced_url gtgtdeleteltagt

এাআ টযাগগট পরফ গডগরট গরঙক এখাপরন add_query_arg() পাাংন ফযফায কযা পরয়পরি মা কাপরযনট URL ডক এযাপরয যাযাগভটায এয ভপরধয যাপরখ ানযবাপরফ ফরপরর এগট ডমাগ কপরয এযকভাঃ liton_action=deleteampid=6 amp liton_action=deleteampid=6

Nonce Form ততগয Nonce পভডপরকও ডোপরটকট কপরয wp_nonce_field() পাাংপরনয ভাধযপরভ ltphp

wp_nonce_field( $action $name $referer $echo ) gt

$action ( string) (optional) - action নাভ াআউগনক identifier optional

গকনত recommended $name (string) (optional) ndash গপরডন গপলড পভড ডবগযপরয়ফর নাভ $referer (boolean) (optional) ndash গডপলট গপরপরফ true থাপরক ডমখাপরন গপলড

ডবগরপরডন এয দযকায য়

40

$echo (boolean) (optional) - গডপলট গপরপরফ true থাপরক ডমখাপরন াঅউটট ডদখাপরনায ফা গপরডন পভড গপলড গযটানড কযায জনয দযকায য়

পপরভড াঅনায action এয নাভ গদন ltform method=postgt

lt-- some inputs here --gt

ltphp wp_nonce_field(name_of_my_actionname_of_nonce_field) gt

ltformgt

াঅভযা একগট পলাগগন ফানাপরফা ডমখাপরন াফযফরত টযাগগপররাপরক াঅভযা ভযানয়াগর গডগরট ফা গযপরনভ কযপরত াযফ এগট একট ফড় গকনত াপরনক গফলয়াআ াঅপরগাআ াঅপররাচনা কযা পরয়পরি ডদখপররাআ ফেপরত াযপরফন একগট ফাসতফধভডী উদাযন গনপরচ গদরাভ- ltphp

Plugin Name Liton Unused Tags

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add an entry for our option page to the Posts menu

add_action(admin_menu liton_utags_add_page)

function liton_utags_add_page()

add_posts_page( Unused Tags Unused Tagsmanage_optionsliton_utags

liton_utags_option_page )

Catch any liton_action parameter in query string

add_action( admin_init liton_utags_do_action )

Proceed to requested liton_action if applicable

function liton_utags_do_action()

if( isset( $_REQUEST[liton_action] ) )

return

if( current_user_can( manage_options ) )

wp_die( Insufficient privileges )

41

$id = $_REQUEST[id]

$action = $_REQUEST[liton_action]

if( $action == done )

add_action( admin_notices liton_utags_message )

return

check_admin_referer( liton_utags-$action_tag$id )

switch( $action )

case rename

$newtag = array( name =gt $_POST[name] slug =gt

$_POST[name] )

wp_update_term( $id post_tag $newtag )

break

case delete

wp_delete_term( $id post_tag )

break

wp_redirect( add_query_arg( array( liton_action =gt done )

) )

Admin notice

function liton_utags_message()

echo ltdiv class=updatedgtltpgtAction

completedltpgtltdivgt

Draw the tag management page

function liton_utags_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtUnused Tagslth2gt

ltphp

if( $tags = liton_utags_find_orphans() )

echo ltpgtYou currently have count( $tags ) unused

tagsltpgt

echo ltolgt

foreach( $tags as $tag )

42

$id = $tag-gtterm_id

$name = esc_attr( $tag-gtname )

$delete_url= add_query_arg(

array(liton_action=gtdeleteid=gt$id) )

$nonced_url= wp_nonce_url( $delete_url

liton_utags-delete_tag$id )

gt

ltligt

ltform action= method=postgt

ltphp wp_nonce_field( liton_utags-rename_tag$id )

gt

ltinput type=hidden name=liton_action

value=rename gt

ltinput type=hidden name=id value=ltphp echo

$id gt gt

ltinput type=text name=name value=ltphp echo

$name gt gt

ltinput type=submit value=Rename gt or

lta href=ltphp echo $nonced_url gtgtdeleteltagt

this tag

ltformgt

ltligt

ltphp

else gt

ltpgtYou have no unused tagsltpgt

ltphp endif gt

ltolgt

ltdivgt

ltphp

Find unused tags return them in an array

function liton_utags_find_orphans()

global $wpdb

$sql = SELECT termsterm_id termsname FROM

$wpdb-gtterms terms

INNER JOIN $wpdb-gtterm_taxonomy taxo

ON termsterm_id=taxoterm_id

WHERE taxotaxonomy = post_tag

43

AND taxocount=0

return $wpdb-gtget_results( $sql )

gt

ডযাপরফাপরডড এাআ পলাগগপরনয ডভন াওয়া মাপরফ ডাসট এয াফপরভন গপরপরফ গনপরচ ডদখন-

এফায পলাগগন ডভনপরত গিক কপরয ডদগখ পলাগগপরনয ডবতপরযয কাজ-

উপরয ডদখন াঅগভ একগট টযাগ ততগয কপরযগিরাভ l i নাপরভ এগট এখাপরন ডদখাপরচছ াঅগভ চাাআপরর এগট এগডট ফা গডগরট কযপরত াগয এফায গডগরট গরঙক এ ভাউপরয কাডয ডযপরখ গনপরচ গরঙক ডদখন ফা গডগরট করন একগট টযাগ াঅভায এখাপরন URL গট এযকভ httplocalhostdev-litonwp-

admineditphppage=liton_utagsampliton_action=doneampid=4amp_wpnonce=30a44b7

986

এখাপরন াঅগভ liton_action=done ফযফায কপরযগি Nonces এয পাাংনগপররায নাভ গনপরচ গদরাভ াঅনাযা ডদপরখ গনপরফন াআনটাযপরনট ডথপরক wp_nonce_field()

wp_nonce_url()

wp_verify_nonce()

wp_create_nonce()

44

check_admin_referer()

check_ajax_referer()

ডাটাপরফ াঅনাযা ডমপরত গএাআচগ গনপরয় কাজ কপরযন এগকউএর ডাটাপরফ এয াপরথ ফাাআ কভপরফী গযগচত এয গনটযাকস গপররা ডভাটাভগট ফায জানা একাআ বাপরফ াপরনপরকাআ ওয়াডডপরেপরও ডাটাপরফ ডকাড গরপরখন এটা ডকাগডাং এয জনয খাযা গদক াঅগভ নযভার গএাআচগ- এগকউএর ডকাড এয উদাযন গদগচছ- ltphp

$sql=rdquoINSERT INTO $wpdb-gtposts(post_title) VALUES(bdquo$title‟)rdquo

$wpdb-gtquery($sql) gt

এফায ওয়াডডপরেপরয সটযানডাডড ডকাগডাং গপরসটভ ডদখন- ltphp

$wpdb-gtinsert($wpdb-gtposts

array(bdquopost_title‟ =gt $title)

array(bdquos‟)

)

gt

ডাটাপরফ গগকউয কযায জনয াঅপরডট াাপরযন ডদখাফ- গনপরচয ডকাডগট খাযা েযাকগট ltphp

$wpdb-gtquery(ldquoUPDATE $wpdb-gtposts SET post_title=‟$newTitle‟ WHERE

ID=$my_idrdquo )

gt

উপরযয ভত কপরয না গরপরখ গনপরচয ভত কপরয গরখন- ltphp

$wpdb-gtupdate($wpdb-gtposts

Array(bdquopost_title‟ =gt‟$newTitle‟)

Array(bdquoID‟ =gt$my_id

)

gt

ানর বাপরফ ানযানয াাপরযন গপররা গরখপরফন

45

াধযায়- াঅটাঃ ডরাকারাাআপরজন এফাং Set t i ngs API

ডরাকারাাআপরজন ডরাকারাাআপরজন একগট গরতবনড গফলয় এয পাাংনগপররা র- load_theme_textdomain()

load_plugin_textdomain()

উদাযন- ltphp $var=__(bdquoHello‟‟domain‟) gt

ltphp _e(bdquoHello‟‟domain‟) gt

গফসতাগযত গনপরচয গরপরঙক ডদখন- httpcodexwordpressorgI18n_for_WordPress_Developers

ডগটাং API

ডগটাং API পরচছ াঅগন গকি ান ততগয কযপরফন মা াআনটাযনার বাপরফ াঅনায পলাগগপরন এপলাাআ পরফ মখন াঅগন াআউজায- গডপাাআন ান ততগয কযপরফন াঅনায পলাগগপরনয জনয তখন Settings

API ndashএ াঅনায ডকাড মতটা ারন জ করন Settings API াঅনায ডম কাজগপররা handle কপরয-

ওয়াডডপরেপরক জাগনপরয় ডদয় ডম াঅগন গনজসব ান ফযফায কযপরফন াঅনায াআনটপরক পাাংপরনয ভপরধয উপরেখ কযপরফ ডফগয বাগ ান ডজ গনপরজাআ ততগয কযপরফ $_POST ডাটা গপররাপরক ভগনটয কপরয ান ততগয এফাং াঅপরডট কপরয(মগদ েপরয়াজন য়)

Settings API পাাংন Settings API পাাংপরন গতনগট ডসট থাপরক- ১ েথপরভ ওয়াডডপরেপরক ফপরর ডম াঅগন নতন ডগটাং ফযফায কযপরফন াঅনায পলাগগপরনয জনয ২ এয পরয ডগটাং গডপাাআন করন (text areas input boxes and any

HTML form element) এফাং এপরদযপরক একাপরথ রে কপরয যাপরখ ৩ ওয়াডডপরেপরক াঅনায ডগটাং actual form এ ডদখাপরনায জনয ফপরর

46

এফায াঅভযা একগট পলাগগন ফানাপরফা Administration Page ndashএ ডযপাপরযনস গপরপরফ ডদখপরত াপরযন- httpcodexwordpressorgAdding_Administration_Menus

httpcodexwordpressorgFunction_Referenceadd_options_page

httpcodexwordpressorgAction_ReferenceActions_Run_During_an_Admin_P

age_Request

পলাগগপরনয এডগভন ডজ পরফ এযকভ- httpexamplecomwp-adminoptions-generalphppage=liton_myplugin

েথপরভ াঅভযা ডভন ততগয কযফ াঅপরগয ভত কপরয- Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

এফায ান ডজ এ পভড গনপরয় গকি ডগটাং ডদফ function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

উপরযয ডকাপরড াঅভযা একগট পপরভডয ভপরধয রধ াফগভট ফাটন এফাং My Plugin নাপরভ ডজ ততগয কপরযগি ডযাপরফাপরডড ডদখন-

47

ডগটাং এয াফ ডভন গপরপরফ My Plugin াঅপরি এফাং My Plugin ডত গিক কযপরর াঅভযা উপরযয ডজ ততগয কপরযগি ডমখাপরন াফগভট ফাটনগট ডদখাপরচছ এফায গতনগট যাযাগভটায ডযগজসটায কযফ- ltphp

register_setting( liton _myplugin_options liton _myplugin_options liton

_myplugin_validate_options)

gt

েথভগট ডগটাং রেপরয নাভ গিতীয়গট ান নাভ মা াঅভযা get_option() পাাংন গদপরয়ও ডপরত াগয ততীয়গট করফযাক পাাংন এগট একগট গসটরাং ডযপাপরযনস পাাংন এখাপরন াঅভযা নাভ

48

গদপরয়গি liton _myplugin_validate_options মা া কযপরফ পপরভডয কর ডব ডগটাং াঅভযা এটা পরয গডপাাআন কযফ

ডগটাং গডপাাআন ডকন add_settings_field() এফাং add_settings_section() পাাংন গদপরয় াঅভযা াঅভাপরদয কর ডগটাং গডপাাআন কযফ ltphp

add_settings_section( liton_myplugin_main My Plugin Settings

liton_myplugin_section_text liton _myplugin)

add_settings_field( liton _myplugin_text_string Enter text here

liton _myplugin_setting_input liton _myplugin liton _myplugin_main)

gt

add_settings_section() পাাংন গদপরয় াঅভযা ডদখাফ াঅপরর ডজ এ ডকন ডকভন ডদখাপরফ এয চাযগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ ডকন টাাআপরটর ltH3gt টযাপরগয ভপরধয করফযাক পাাংন এয নাভ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ (page= liton _myplugin এগট

URL এয াাং গপরপরফ থাকপরফ) গিতীয় যাযাগভটায add_settings_field() পপরভডয াআনট গপরপরফ ডদখাপরনা পরয়পরি এখাপরন াাচগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ পরযয গপপরলড গক গেনট কযা পরফ তা ডটকসট গপরপরফ ডদখাপরনা পরয়পরি(Enter text

here)

করফযাক পাাংন পপরভড গেনট কযপরফ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ ডগটাং ডপরজয ডকন গপলড মা add_settings_section() পাাংপরন গডপাাআন

কযা পরয়পরি ltphp

Explanations about this section

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

49

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton _myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name= liton _myplugin_options[text_string]

type=text value=$options[text_string] gt

gt

গিতীয় পাাংন ান বযার text_string ডক এযাপরযপরত ডসটায কপরয ডযপরখপরি এফায াআউজায াআনট বযাগরপরডট কযফ- ltphp

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace([^a-zA-Z]$input[text_string] )

return $valid

gt

পভডপরক ডযনডায কযফ- ltphp

Draw the options page

function liton_myplugin_options_page()

gt

ltdiv class=wrapgt

ltphp

screen_icon()

gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp

settings_fields( liton_myplugin_options)

do_settings_sections(liton_myplugin)

50

gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

settings_fields() পাাংনগট ডযপাপরযনস গপরপরফ ফযফায কযা পরয়পরি মা াঅভযা register_setting() পাাংপরন গডপরিয়ায কপরযগি do_settings_sections() পাাংনগট কর কযপরফ কর াঅউটট ডকন এফাং পভড গপলডপরক মা াঅভযা পরফড গডপাাআন কপরযগি াঅভাপরদয কাজ ডল এফায পরযা পলাগগনগট ডদখফ- ltphp

Plugin Name Settings API example

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

Draw the option page

function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save

Changes gt

ltformgtltdivgt

ltphp

51

Register and define the settings

add_action(admin_init liton_myplugin_admin_init)

function liton_myplugin_admin_init()

register_setting( liton_myplugin_options

liton_myplugin_options

liton_myplugin_validate_options )

add_settings_section( liton_myplugin_main My Plugin

Settings

liton_myplugin_section_text liton_myplugin )

add_settings_field( liton_myplugin_text_string Enter text

here

liton_myplugin_setting_input liton_myplugin

liton_myplugin_main )

Draw the section header

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton_myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name=liton_myplugin_options[text_string]

type=text value=$text_string gt

Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

return $valid

gt

52

ডদখন ডযাপরফাপরডড ডকভন ডদখায়-

পরয় ডগর াঅভাপরদয েথভ নডাাংগ পলাগগন ান ডজ াঅপরযকগট গজগন ডমটায জনয এতগকি পলাগগন URL এপরডর- httplocalhostdev-litonwp-adminoptions-

generalphppage=liton_mypluginampsettings-updated=true

াঅভায এখাপরন এযকভ ডদখাপরচছ ডটকসট ফপরকস ডকান গকি গরপরখ ডব কযায য এফাপরয াঅপরযকগট গজগন ডদখফ াঅভযা াপরনক ভয়াআ াপরনক পলাগগপরনয াআনট গপপরলড বর ডাটা াআনট কযপরর এযয ডভপরজ ডদখায় এাআ কাজগট কযফ এফায াঅভযা এখাপরন esc_attr() ফা esc_html() ফযফায কগযগন সতযাাং াঅভাপরদয গরগভপরটন থাকপরি ডবগরপরডট পাাংনগট একট এগডট কগয গনপরচয ভত কপরয Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

if( $valid[text_string] = $input[text_string] )

add_settings_error(liton_myplugin_text_stringliton_myplugin_texterror

53

Incorrect value enterederror)

return $valid

উপরয ডদখন add_settings_error() পাাংন ফযফায কপরযগি মা এযয ডচক কযপরফ পপরভডয াঅগভ একগট বর ডাটা(পরসপার কযাপরযকটায) াআনট কপরয ডদখরাভ এযয ডদখাপরচছ-

তায ভাপরন াঅভযা পর পরয়গি াঅনায পলাগগনগট এগডট কপরয ডনপরফন ডকায ডকন এফাং গপপরলডয গরসট গদরাভ াঅনাপরদয সগফধায জনয

54

CSSJS পাাআর মি কযা

াঅনায পলাগগপরন গএএ ফা জাবাগিে ডমাগ কযপরত পরত াপরয াঅগন চাাআপরর ফাগপরযয ডকান ফা াঅনায ততগয ডকান গএএ ফা জাবাগিে পাাআর ডমাগ কযপরত াপরযন তপরফ এপরকষপরতর াঅভযা ডমবাপরফ HTML এ পাাআর ডমাগ কগয ডযকভ না function liton_scripts()

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtojqueryjsrdquogtltscriptgt‟

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtoscriptjsrdquogtltscriptgt‟

add_action(bdquowp_head‟‟liton_scripts‟)

এগট মপনডরপর বর িগত গনপরচ ডদখন ওয়াডডপরেপর গকবাপরফ পাাআর মি কযপরত য়- function liton_scripts()

wp_enqueue_script(bdquojquery‟)

wp_enqueue_script(bdquotheme-scripts‟‟pathtoscriptsjs‟)

add_action(bdquowp_enqueue_script‟‟liton_scripts‟)

ানর বাপরফ াঅগন সটাাআরীট ডমাগ কযপরত াপরযন- function liton_styles()

wp_enqueue_ style (bdquocss‟)

wp_enqueue_ style (bdquotheme- styles‟pathto stylescss‟)

ডযপাপরযনস ডদখন- httpcodexwordpressorgFunction_Referencewp_enqueue_script

httpcodexwordpressorgFunction_Referencewp_enqueue_style

টডপরকাড টডপরকাড পরচছ ওয়াডডপরেপরয ডসপগগপক ডসপার টযাগ মা াঅগন ডাসট ফা ডপরজয ভপরধয াআনাটড কপরয ানয ডকান কনপরটনটপরক ওপরয়ফাাআপরটয ভপরধয গযপরপল কযপরত াযপরফন মগদ াঅগন গযারাগয টাাআপরয ডকান পলাগগন ফযফায কপরয থাপরকন তাপরর াঅনায ধাযনা থাকায কথা মাাআ ডাক াঅগভ কপরয়কগট উদাযি ডদখাফ

55

েথপরভ একগট পলাগগন ততগয কযফ ডমখাপরন add_shortcode() নাপরভয একগট পাাংন থাকপরফ এগট রগট যাযাগভটায েন কপরয েথভগট টডপরকাপরডয নাভ গিতীয়গট ডম পাাংনপরক কর কযপরফন ডগট াঅভযা একগট উদাযন ডদগখ- ltphp

Plugin Name Liton Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(litonhi)

function hi()

echo Hello World

gt

উপরয ডদখন খফ ডিাট গকনত াঅগন চাাআপরর এয ফযফায াপরনক গফসতত কযপরত াপরযন এখাপরন টডপরকাড নাভ পরচছ liton াঅয এগটপরক ডরখা য় এবাপরফ [liton] াঅভযা ডাপরসটয ভপরধয াআনাটড কপরয ডদগখ াঅউটট ডকভন ডদখায়-

এফায াঅউটট ডদগখ-

56

াঅভাপরদয ততগয কযা টডপরকাড পরবাপরফাআ কাজ কযপরি াঅপরযকগট উদাযন ডদখফ াঅনাযা াপরনপরকাআ গগর এডপরনস গনপরয় কাজ কপরযন াঅনাযা াপরনপরকাআ এডপরনস এয জনয পলাগগন ফযফায কপরযন গকনত চাাআপররাআ এাআ কাজগট াঅনাযা গনপরজয ভত কপরয াগজপরয় গনপরত াপরযন গগপররয কাপরি ফ ডাসট বযার ায়না াঅনাযা মাযা একসাটড াঅপরিন তাযা এটা বার কপরয জাপরনন তাাআ াপরনপরকাআ গগপররয ডকাড ফ ডপরজ ডদখাপরত চান না এজনয পলাগগন ফযফায কপরয রাব য়না কাযন পলাগগপরন জায়গা গপকসড থাপরক এপরত কপরয াঅগনডাং ও কভ য় াঅনাযা টডপরকাড ফযফায কপরয ডমপরকান জায়গায় এড ডদখাপরত াপরযন গনপরচ াঅগভ রগট টডপরকাড ততগয কপরযগি র‟ধযপরনয এড ডদখাপরনায জনয ltphp

Plugin Name Liton Adsense Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(adsense_468adsense_468_60)

add_shortcode(adsense_250adsense_250_250)

function adsense_468_60($atts)

return ltscript type=textjavascriptgtlt--

57

google_ad_client = ca-pub-0956247412222369

468x60 created 101510

google_ad_slot = 4372705450

google_ad_width = 468

google_ad_height = 60

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

function adsense_250_250($atts)

return ltscript type=textjavascriptgtlt--

google_ad_client = ca-pub-0956247412222369

250x250 created 81809

google_ad_slot = 9368091893

google_ad_width = 250

google_ad_height = 250

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

gt

একগট টডপরকাড ফযানায টাাআপরয জনয এফাং াঅপরযকগট ২৫০২৫০ াাআপরজয এফায ডাপরসট ডমপরকান একগট টডপরকাড াআনাটড করন ডমখাপরন াঅনায ডদখাপরনায েপরয়াজন ভপরন কপরযন াঅগভ রগট ডকাড ডটসট কপরয ডদখরাভ-

58

এফায াাআপরটয াঅউটট ডদগখ-

রগট এডাআ ডদখাপরচছ াঅপরযা াপরনক কাপরজ াঅগন টডপরকাড ফযফায কযপরত াপরযন ডযপাপরযনসাঃ httpcodexwordpressorgShortcode_API

59

াধযায়- নয়াঃ পলাগগন উদাযন

ওয়াডডপরেপরয ডডটটাাআভকপরভনট নামবায ফাাংরা কযায পলাগগন াঅভাপরক কপরয়কজন ফপররগিপররন ওয়াডডপরেপরয গডপলট ডডটটাাআভকপরভনট নামবায ফাাংরা য়না রযাাংগপরয়জ ফাাংরা কযায যও ডডটটাাআভকপরভনট নামবায গপররা াআাংপরযগজ ডথপরক মায় গনপরচয পলাগগনগট ফযফায কপরয ডদখপরত াপরযন- ltphp

Plugin Name Liton Bangla datetimecomment number

Plugin URI httpliton-onlinecomplugins

Description Bangla datetimecomment number

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

This function converts all english numbers to bangla number

function make_bangla_number($str)

$engNumber = array(1234567890)

$bangNumber = array( ১ ২ ৩ ৪ ৫ ৬ ৭ ৮ ৯ ০ ) $converted = str_replace($engNumber $bangNumber $str)

return $converted

add_filter( get_the_time make_bangla_number )

add_filter( the_date make_bangla_number )

add_filter( get_the_date make_bangla_number )

add_filter( comments_number make_bangla_number )

add_filter( get_comment_date make_bangla_number )

add_filter( get_comment_time make_bangla_number )

gt

60

সলাাআডায পলাগগন াঅভযা এাআ ফাআপরয়য কর গটউপরটাগযয়াপরর মা মা গখরাভ তা এফায একগট নডাাংগ পলাগগপরনয এপলাাআ কযফ সলাাআডায পলাগগন মপপরকড াঅভযা ফাাআ জাগন একগট ওপরয়ফাাআপরটয ডচাযা ারপরট ডদয় একগট সলাাআডায াপরনক ডাাআনাগভক ভপরন য় ডদখপরতও াপরনক বার রাপরগ এাআ পলাগগপরন াঅভযা এডগভন যাপরনর ডথপরক াআপরভজ ডমাগ কযফ এফাং তা াঅভাপরদয াাআপরট ডদখাফ চরন কাজ রর কগয- েথপরভ গনপরবা সলাাআডায এয ওপরয়ফাাআপরট মান এফাং jQuery Plugin ডাউনপররাড করন

ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom Version 10

gt

াঅভযা পলাগগপরনয ডডায ততগয কযরাভ

পলাগগন গরপরসট ডদখাপরচছ bdquoLitons Nivo Plugin‟ াঅভাপরদয েথভ কাজ পরচছ custom post

type ওয়াডডপরে পাাংনাগরগট একগট নতন কাসটভ ডজ ততগয কযপরত custom post type

ফযফহরত পরফ ডমখাপরন একগট াআপরভজ থাকপরফ াঅভযা রধ টাাআপরটর ডনভ এফাং াআপরভজ াঅপররাডায গপরপরফ গপচায াআপরভজ পাাংনাগরগট ফযফায কযফ function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_function 600 280 true)

61

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

add_action(init np_init)

উপরযয ডকাপরড np_init() পাাংনগট রক কপরযগি মা ডডায যান কযায াঅপরগ যান পরফ াঅয এজনয register_post_type() পাাংনপরক এয যাযাগভটায গদপরয় np_init() পাাংপরনয ডবতপরয মি কপরযগি এটা মগদ না কযতাভ তাপরর ldquoHeaders already sentrdquo ডভপরজ ডদখাত এাআ ডভপরজগটয াপরথ াপরনপরকাআ গযগচত াঅা কগয register_post_type() পাাংন গদপরয় াঅভযা াআপরভজ মি এফাং ভযাপরনজ কযফ ভরত াঅভযা একগট নতন custom post type ডমাগ কপরযগি np_images নাভ গদপরয় নতন custom post type ডক ডগটাং বযার গপরপরফ াঅযগপরভনট া কপরযগি $args ডবগযপরয়ফরগট ট ডরপরবর ডভন ততগয কপরয াঅপরগাআ ডদপরখগি পলাগগনগট এগকটপরবট কযপরর াঅভযা গনপরচয ভত ডদখপরত াফ-

এফায গিে এফাং সটাাআরীট ডক মি কযফ- add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

এফায রক কযা পাাংনগপররা গডপরিয়ায কগয- function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__) array( jquery ))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

62

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

উপরযয ডকাডগপররা নতন কপরয ফিডনা কযায গকি ডনাআ াঅপরগাআ wp_enqueue_style() এফাং wp_enqueue_script() মপপরকড ফরা পরয়পরি নতন াঅপরযকগট পাাআর ততগয করন একাআ গডপরযকটগযপরত scriptjs এফাং গনপরচয ডকাডটক গদন- jQuery(document)ready(function($)

$(slider)nivoSlider()

)

াআপরভজপরক গযাাআজ করন- add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

াঅভযা এাআ পলাগগনগটপরক উাআপরজট গপরপরফও ফযফায কযফ ডগট পরয ডদখফ াঅপরযকগট গজগন মগদ গথপরভ না ডদয়া থাপরক ডজনয থামবপরনাআর াপরাটড গদপরয় গদন- add_theme_support( post-thumbnails )

এফায ওয়াডডপরেপরয কাপরযনট ডাসট কপরয়যী কযায ডকাড াঅয $result ডবগযপরয়ফপরর ডমফ ltdivgt টযাগ ফযফায কযা পরয়পরি তা jQuery Plugin গট একসিাকট কপরয indexhtml ডজগটয ডভাআন সলাাআডায ডকাডগট ডদখন একাআ াঅপরি রধ ডখানকায ltdivgt টযাগ গপররাপরক কগ কপরয এাআ পলাগগপরন ফযফায কযা পরয়পরি এফায টডপরকাড গদন- add_shortcode(np-shortcode np_function)

এাআ টডপরকাড গএাআচগ পাাংনপরক রক কযপরফ এফাং এয ভধয ডথপরক সলাাআডপরায কনপরটনট ডক গযটানড কযপরফ াঅভাপরদয টডপরকাড পরচছ [np-shortcode] াঅভযা পলাগগপরন মাাআ এফাং একগট িগফ মি কগয গপচাযড াআপরভজ গপরপরফ গনপরচ ডদখন-

63

াঅগভ াঅপরযকগট ডজ ততগয কপরযগি ডমখাপরন টডপরকাড গদপরয়গি

াঅউটট ডজ ডদগখ এফায-

64

পরয় ডগর াঅভাপরদয সলাাআডায পলাগগন পরযা ডকাডগট গনপরচ গদরাভ- ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

65

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

66

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

এফায াঅগন মগদ উাআপরজট গপরপরফ ফযফায কযপরত চান তাপরর গনপরচয ডকাডটক গদন- class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

67

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

echo $after_widget

াঅপরযা রগট কাজ কযপরত পরফ াঅনাপরক এক াআপরভজ াাআজ উাআপরজট এয জনয গঠক কপরয গদপরত পরফ- add_image_size(np_widget 180 100 true)

াঅপরযকগট র উাআপরজট এযাকন রক ডমাগ কযা add_action(widgets_init np_widgets_init)

উাআপরজট পরযা ডকাড াঅফায গদরাভ- ltphp

Plugin Name Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Ciprian Turcu

Version 10

68

class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

69

echo $after_widget

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

70

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(widgets_init np_widgets_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

71

পলাগগন গনপরয় এত ডিাট গযপরয ডরখা মভফ নয় এজনযাআ ভপরন য় পলাগগন গনপরয় ডকউ ডরপরখন না কাযন এখাপরন এত গফলয় াঅপরি মা াঅপররাচনা কযপরত ডগপরর ৫০০ ডজ ায পরয় মাপরফ ডফাোয সগফধাপরথড াঅগভ মথামভফ উদাযন গদপরয় ডফাোপরনায ডচষটা কপরযগি াঅগভ এখাপরন টাপরগডট কপরযগি মাযা টকটাক জাপরন পলাগগন মপপরকড এডবানস ডরপরবপররয নয় কাযন তাযা জাপরনন াঅভায উপরেশয গির মাযা জানপরত চায় তাপরদযপরক জানাপরনা এখাপরন ডমফ গফলয় াঅপররাচনা কযা পরয়পরি তা ডভাটাভগট ভাপরনয একগট পলাগগন ফানাপরনায জনয মপরথষট তপরফ ভাপরনাননয়পরনয জনয াঅনাপরক গনপরজাআ খাপরজ গনপরত পরফ াঅনায জনয ডকানটা বার পরফ াঅগভ রধ গদক গনপরদডনা গদরাভ ভাতর এাআ ফাআগট রধভাতর ওয়াডডপরে রেপরয জনয ডরখা াপরনক বর ভরাগনত থাকপরত াপরয াঅনাযা কষভাসনদয দগষটপরত ডদখপরফন াঅগভ ডচষটা কপরযগি মতটা জ কপরয ডরখা মায় াপরনক ভয় ডদখা মায় ডম খফ ডিাট খাপরটা গফলয় গনপরয় াপরনপরকাআ নক কপরযন এটা গতয রাঃখজনক াঅনাযা গগপরর একট খাজপররাআ ভাধান াপরফন াঅপরগ গনপরজ ডচষটা করন তায পরয ানযপরক ভাধাপরনয জনয গজজঞাা করন াঅভায জনয ডদায়া কযপরফন বাপররা রাগপরর জানাপরফন খাযা রাগপররও জানাপরফন তাপররাআ াঅভায গযশরভ সবাথডক পরফ ভতাভত জাগনপরয় াঅভাপরক ডভাআর কযপরত াপরযন litonice09gmailcom |

72

Page 30: Wordpress Plugin Development

31

public function form($instance)

extract($instance)

print_r($instance)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title)gtgtTitle ltlabelgt

ltinput

class=widefat

id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt

value=ltphp if(isset($title)) echo esc_attr($title) gt gt

ltpgt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(description)gtgtDescription

ltlabelgt

lttextarea

class=widefat

rows=10

id=ltphp echo $this-gtget_field_id(description) gt

name=ltphp echo $this-gtget_field_name(description) gtgtltphp

if(isset($description)) echo esc_attr($description) gtlttextareagt

ltpgt

ltphp

public function widget($args$instance)

extract($args)

extract($instance)

echo $before_widget

echo $before_title$title$after_title

echo ltpgt$descriptionltpgt

echo $after_widget

add_action(widgets_initliton_register_message)

function liton_register_message()

32

register_widget(Messager)

gt

এফায াঅভযা ডযাপরফাডড ডথপরক একগট ডভপরজ ডদফ গবগজটযপরদযপরক-

াঅভযা এাআ উাআপরজটগট ডাাআনাগভক বাপরফ কপরযগি কাযন এখাপরন lth2gt lth3gt lth4gt এ ধযপরনয ডকান টযাগ াঅভযা ফযফায কগযগন াঅভযা গথভ ডডপরবর কযগিনা সতযাাং এ কাজগট াঅভাপরদয ানযবাপরফ কযা দযকায গির এগট গথভ ডডপরবরায ডদগখপরয় ডদপরফন ডম ডকভন টযাগ পরফ াাআডফাপরয াাআপরটয াাআডফাপরয ডকভন ডদখায় তা ডদখন- াঅভযা রগট গথপরভ এগট ডটসট কপরয ডদখফ েথভগট টপরয়গনট াআপররপরবন

33

এফায াঅপরযকগট গথপরভ ডদগখ-

34

াধযায়- িয়াঃ পলাগগন পাাংন

গকি ডফগক পাাংন __() পাাংন

__() পাাংনগট গএাআচগপরত াঅনায ডটকসটপরক ডযগড কপরয িানসপররন এফাং গযটানড কপরয উদাযন গপরপরফ াঅগন একগট বযারপরক __() পাাংপরনয ভপরধয ডবগযপরয়ফর গদপরয় assign করন ভপরন যাখপরফন এাআ পাাংনগট রগট াঅনডাযপরিায(_) গদপরয় গগঠত একগট নয় ltphp

$text=__(bdquoWordpress is a wonderful publishing platform‟‟liton_plugin‟)

gt

_e() পাাংন _e() পাাংনগট াঅনায ডটকসবপরট ডরাকারাাআজ কপরয এটা গএাআচগপরত echo এয ভত কাজ কপরয ডকান ডটকসটপরক গিপরন ডদখাপরনায জনয এফায একট ভজা কগয মা রপরক ডদপরখগি াঅপরগাআ- _e() পাাংনগট গদপরয় াঅপরগয পলাগগনগট এগডট কযফ ltphp

Plugin Name Liton Action

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(wp_footer liton_footer_action)

function liton_footer_action()

Output the translated text

_e( This site runs off the coolest platform ever ampmdash

WordPress

liton-plugin )

gt

35

এফায াঅউটট ডদগখ

esc_attr__() পাাংন এাআ পাাংনগট esc_attr() এয ভত এগট এাআচগটএভএর এগিগফউটপরক escape কপরয াঅভযা এফায esc_attr__() এফাং __() এাআ রগট পাাংনপরক একগট কপরয পলাগগন ততগয কযফ ltphp

Plugin Name Liton Esc Attr

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

A function that returns a link to the sites terms of service

page

function liton_terms_of_service_link()

return lta href=httpliton-onlinecomtos title=

esc_attr__( Visit the Terms of Service page boj-plugin ) gt __( Terms of

Service liton-plugin ) ltagt

Display the output of the liton_terms_of_service_link()

function

echo liton_terms_of_service_link()

gt

পলাগগনগটয াঅউটট ডদখন-

36

এযকভ াঅপরযা গকি পাাংন াঅপরি ডমগপররা াঅনাযা ডদপরখ ডনপরফন াআনটাযপরনট ডঘপরট

esc_html__() Function

esc_attr() Function

esc_url() Function

esc_js() Function

esc_html() Function

esc_attr_e() Function

esc_html_e() Function

_x() Function

_ex() Function

esc_attr_x() Function

esc_html_x() Function

_n() Function

_nx() Function

_n_noop() Function

_nx_noop() Function

Translation

bull Poedit httppoeditnet

bull GlotPress httpglotpressorg

bull Launchpad httpstranslationslaunchpadnet

bull Pootle httppootlelocamotionorg

bull KBabel httpi18nkdeorg

bull GNU Gettext httpgnuorgsoftwaregettext

GlotPress এখন ওপরয়ফ ডফড টর গপরপরফ ফযফায কযা পরচছ ওয়াডডে েপরজপরকটয ডিপরন একজন াথফা গটপরভয জনয িানসপররগটাং পটওয়যায গপরপরফ

37

াধযায়- াতাঃ পলাগগন গগকউগযগট

গগকউগযগট কগমপউটাপরযয বালায় ldquoগগকউগযগটrdquo ভাপরন বীগতকয একগট বদ ডমভন Cross Site

Scripting(XSS) Cross Site Request Forgery(CSRF) SQL Injection Privilege

Escalation Vulnerabilities এফাং Holes রফডর ডকাড একগট াবডাপরযয সযকষায জনয রভকীয কাযন পরত াপরয

পলাগগপরনয গগকউগযগট গক াঅনায পলাগগনগট ডমন গগকউয য় vulnerabilities data integrity এফাং reliability ডথপরক

াঅনায পলাগগনপরক গক গগকউগযগট ডদপরফন ওয়াডডপরে এনবায়যনপরভপরনট াঅনায পলাগগনপরক গগকউগযগট ডদয়া খফ কগঠন কাজ নয় এফাং খফ ভয় াপরকষ গফলয়ও নয় ওয়াডডপরেপরয গনজসব গকি পাাংন এপরকষপরতর াঅনাপরক খফাআ াাময কযপরফ

াআউজায াযগভন াঅভযা াপরনক পলাগগন াআনসটর কযায পরযাআ ডদপরখগি ডম মখনাআ এডগভন যাপরনর এ েপরফ কযপরত মাাআ তখন একগট এযয ডভপরজ াঅপর ডভপরজগট গনপরচয ভত-

ডরখা াঅপরি- You do not have sufficient permissionshellip এটা গনশচয়তা ডদয় ডম ডমপরকান এযাকন ীভাফি থাপরক গনগদডষট গকি যাাআট গদপরয় ওয়াডডপরেপরয একগট কভন পাাংন র current_user_can() একগট উদাযন ডদাআ-

38

ltphp

Capability

if ( current_user_can(install_plugins) )

wp_die( Insufficient permissions )

Role

if( current_user_can(editor) )

wp_die( You cannot edit this setting )

gt

খফ তাড়াতাগড় াঅগন এাআ current_user_can() পাাংন ডচক কযপরফন না কাযন এটা গনবডয কযপরফ get_currentuserinfo() এাআ পাাংপরনয উপরয াঅয এয ফযফাপরয ীভাফিতা াঅপরি এটা একগট পলাপরগফর পাাংন(pluggable function) াঅয এয ডরাপরকন পরচছ wp-

includespluggablephp মা পলাগগন এগকটব ফায য ডরাড য়

Nonces

ডকউ এগটপরক াঅফায Nonsense( গনপরফডাধ) বাফপরফন নাএগট ওয়াডডপরেপরয বালায় Nonces কগমপউটাপরযয বালায় nonce ফা cryptographic nonce পরচছ ldquonumber used once rdquo এটা ডিাট এফাং সপষট গকি য যানডভ গসটরাং ডমভন- াওয়াডড মা গকি গনপরদড কপরয Nonce গপরডন গপলড পভডপরক Retrieve ফা display কপরয-

একজন ওয়াডডপরে াআউজায ডমপরকান একগট এযাকন (delete update save and such) একগট াফপরজকট(একগট ডাসট পলাগগন ডগটাং াআতযাগদ) ২৪ ঘনটায একগট ভয় ডিভ

ডমভন ডাসট 50 গডগরট কযপরফন াঅনায ওয়াডডপরে বলগ ডথপরক তাপরর াঅনায গরঙকগট পরফ এযকভ- httpexamplecomwp-admin

postphppost=43ampaction=trashamp_wpnonce=83a08fcbc2

এখাপরন 83a08fcbc2 এগট র nonce মা ২৪ ঘনটা সথায়ী থাপরক রধভাতর এগট মগদ াঅনায িাযা ফযফরত য় এফাং গডগরট য় ডাসট 50 মখন াঅগন গরপরঙক গিক কপরযন ফপরচপরয় গযতবনড র ডম Nonce ডকান malicious াআউজায ফেপরত াপরযনা এফাং গঠক গরঙক িাড়া nonce এযয ডপরজ চপরর মায় ডমখাপরন াযগভন থাপরক না াঅপরযা গফসতাগযত ডদখন httpcodexwordpressorgWordPress_Nonces

39

Nonce URL ততগয এফায চরন াঅপরগয উদাযন ডথপরক Nonce URL ততগয কগয একগট ডাসট গডগরট কযায জনয wp_nonce_url() পাাংন ফযফায কযা য় ltphp

$url = wp_nonce_url( $url $action )

gt

েথভ যাযাগভটায $url পরচছ গসটরাং URL এপরডর এয মাপরক াঅগন কপরয়যী গসটরাং এয Nonce কযপরত চান াফযফহরত পলাগগপরনয গডগরট গরঙক এযকভ থাপরক- httpexamplecomwp-admineditphppage= liton

_utagsampliton_action=deleteampid=6

এখাপরন ডদখন যাযাগভটায liton_action এফাং এয টযাগ াঅাআগড গিতীয় যাযাগভটায পরচছ $action একগট গসটরাং মা াঅগন একগট াফপরজকট এয জনয একগট action ততগয কযপরফন উপরয ডদখরাভ delete এযাকন এয টযাগ াঅাআগড 6 সতযাাং $action যাযাগভটায পরত াপরয bdquoliton_utags-delete_tag6‟ গনপরচ ফাসতফ উদাযন ডদগখ- ltphp

$delete_url = add_query_arg(array( liton _action=gtdeleteid=gt$id) )

$nonced_url = wp_nonce_url( $delete_url bdquoliton _utags-delete_tag$id )

gt

lta href=ltphp echo $nonced_url gtgtdeleteltagt

এাআ টযাগগট পরফ গডগরট গরঙক এখাপরন add_query_arg() পাাংন ফযফায কযা পরয়পরি মা কাপরযনট URL ডক এযাপরয যাযাগভটায এয ভপরধয যাপরখ ানযবাপরফ ফরপরর এগট ডমাগ কপরয এযকভাঃ liton_action=deleteampid=6 amp liton_action=deleteampid=6

Nonce Form ততগয Nonce পভডপরকও ডোপরটকট কপরয wp_nonce_field() পাাংপরনয ভাধযপরভ ltphp

wp_nonce_field( $action $name $referer $echo ) gt

$action ( string) (optional) - action নাভ াআউগনক identifier optional

গকনত recommended $name (string) (optional) ndash গপরডন গপলড পভড ডবগযপরয়ফর নাভ $referer (boolean) (optional) ndash গডপলট গপরপরফ true থাপরক ডমখাপরন গপলড

ডবগরপরডন এয দযকায য়

40

$echo (boolean) (optional) - গডপলট গপরপরফ true থাপরক ডমখাপরন াঅউটট ডদখাপরনায ফা গপরডন পভড গপলড গযটানড কযায জনয দযকায য়

পপরভড াঅনায action এয নাভ গদন ltform method=postgt

lt-- some inputs here --gt

ltphp wp_nonce_field(name_of_my_actionname_of_nonce_field) gt

ltformgt

াঅভযা একগট পলাগগন ফানাপরফা ডমখাপরন াফযফরত টযাগগপররাপরক াঅভযা ভযানয়াগর গডগরট ফা গযপরনভ কযপরত াযফ এগট একট ফড় গকনত াপরনক গফলয়াআ াঅপরগাআ াঅপররাচনা কযা পরয়পরি ডদখপররাআ ফেপরত াযপরফন একগট ফাসতফধভডী উদাযন গনপরচ গদরাভ- ltphp

Plugin Name Liton Unused Tags

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add an entry for our option page to the Posts menu

add_action(admin_menu liton_utags_add_page)

function liton_utags_add_page()

add_posts_page( Unused Tags Unused Tagsmanage_optionsliton_utags

liton_utags_option_page )

Catch any liton_action parameter in query string

add_action( admin_init liton_utags_do_action )

Proceed to requested liton_action if applicable

function liton_utags_do_action()

if( isset( $_REQUEST[liton_action] ) )

return

if( current_user_can( manage_options ) )

wp_die( Insufficient privileges )

41

$id = $_REQUEST[id]

$action = $_REQUEST[liton_action]

if( $action == done )

add_action( admin_notices liton_utags_message )

return

check_admin_referer( liton_utags-$action_tag$id )

switch( $action )

case rename

$newtag = array( name =gt $_POST[name] slug =gt

$_POST[name] )

wp_update_term( $id post_tag $newtag )

break

case delete

wp_delete_term( $id post_tag )

break

wp_redirect( add_query_arg( array( liton_action =gt done )

) )

Admin notice

function liton_utags_message()

echo ltdiv class=updatedgtltpgtAction

completedltpgtltdivgt

Draw the tag management page

function liton_utags_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtUnused Tagslth2gt

ltphp

if( $tags = liton_utags_find_orphans() )

echo ltpgtYou currently have count( $tags ) unused

tagsltpgt

echo ltolgt

foreach( $tags as $tag )

42

$id = $tag-gtterm_id

$name = esc_attr( $tag-gtname )

$delete_url= add_query_arg(

array(liton_action=gtdeleteid=gt$id) )

$nonced_url= wp_nonce_url( $delete_url

liton_utags-delete_tag$id )

gt

ltligt

ltform action= method=postgt

ltphp wp_nonce_field( liton_utags-rename_tag$id )

gt

ltinput type=hidden name=liton_action

value=rename gt

ltinput type=hidden name=id value=ltphp echo

$id gt gt

ltinput type=text name=name value=ltphp echo

$name gt gt

ltinput type=submit value=Rename gt or

lta href=ltphp echo $nonced_url gtgtdeleteltagt

this tag

ltformgt

ltligt

ltphp

else gt

ltpgtYou have no unused tagsltpgt

ltphp endif gt

ltolgt

ltdivgt

ltphp

Find unused tags return them in an array

function liton_utags_find_orphans()

global $wpdb

$sql = SELECT termsterm_id termsname FROM

$wpdb-gtterms terms

INNER JOIN $wpdb-gtterm_taxonomy taxo

ON termsterm_id=taxoterm_id

WHERE taxotaxonomy = post_tag

43

AND taxocount=0

return $wpdb-gtget_results( $sql )

gt

ডযাপরফাপরডড এাআ পলাগগপরনয ডভন াওয়া মাপরফ ডাসট এয াফপরভন গপরপরফ গনপরচ ডদখন-

এফায পলাগগন ডভনপরত গিক কপরয ডদগখ পলাগগপরনয ডবতপরযয কাজ-

উপরয ডদখন াঅগভ একগট টযাগ ততগয কপরযগিরাভ l i নাপরভ এগট এখাপরন ডদখাপরচছ াঅগভ চাাআপরর এগট এগডট ফা গডগরট কযপরত াগয এফায গডগরট গরঙক এ ভাউপরয কাডয ডযপরখ গনপরচ গরঙক ডদখন ফা গডগরট করন একগট টযাগ াঅভায এখাপরন URL গট এযকভ httplocalhostdev-litonwp-

admineditphppage=liton_utagsampliton_action=doneampid=4amp_wpnonce=30a44b7

986

এখাপরন াঅগভ liton_action=done ফযফায কপরযগি Nonces এয পাাংনগপররায নাভ গনপরচ গদরাভ াঅনাযা ডদপরখ গনপরফন াআনটাযপরনট ডথপরক wp_nonce_field()

wp_nonce_url()

wp_verify_nonce()

wp_create_nonce()

44

check_admin_referer()

check_ajax_referer()

ডাটাপরফ াঅনাযা ডমপরত গএাআচগ গনপরয় কাজ কপরযন এগকউএর ডাটাপরফ এয াপরথ ফাাআ কভপরফী গযগচত এয গনটযাকস গপররা ডভাটাভগট ফায জানা একাআ বাপরফ াপরনপরকাআ ওয়াডডপরেপরও ডাটাপরফ ডকাড গরপরখন এটা ডকাগডাং এয জনয খাযা গদক াঅগভ নযভার গএাআচগ- এগকউএর ডকাড এয উদাযন গদগচছ- ltphp

$sql=rdquoINSERT INTO $wpdb-gtposts(post_title) VALUES(bdquo$title‟)rdquo

$wpdb-gtquery($sql) gt

এফায ওয়াডডপরেপরয সটযানডাডড ডকাগডাং গপরসটভ ডদখন- ltphp

$wpdb-gtinsert($wpdb-gtposts

array(bdquopost_title‟ =gt $title)

array(bdquos‟)

)

gt

ডাটাপরফ গগকউয কযায জনয াঅপরডট াাপরযন ডদখাফ- গনপরচয ডকাডগট খাযা েযাকগট ltphp

$wpdb-gtquery(ldquoUPDATE $wpdb-gtposts SET post_title=‟$newTitle‟ WHERE

ID=$my_idrdquo )

gt

উপরযয ভত কপরয না গরপরখ গনপরচয ভত কপরয গরখন- ltphp

$wpdb-gtupdate($wpdb-gtposts

Array(bdquopost_title‟ =gt‟$newTitle‟)

Array(bdquoID‟ =gt$my_id

)

gt

ানর বাপরফ ানযানয াাপরযন গপররা গরখপরফন

45

াধযায়- াঅটাঃ ডরাকারাাআপরজন এফাং Set t i ngs API

ডরাকারাাআপরজন ডরাকারাাআপরজন একগট গরতবনড গফলয় এয পাাংনগপররা র- load_theme_textdomain()

load_plugin_textdomain()

উদাযন- ltphp $var=__(bdquoHello‟‟domain‟) gt

ltphp _e(bdquoHello‟‟domain‟) gt

গফসতাগযত গনপরচয গরপরঙক ডদখন- httpcodexwordpressorgI18n_for_WordPress_Developers

ডগটাং API

ডগটাং API পরচছ াঅগন গকি ান ততগয কযপরফন মা াআনটাযনার বাপরফ াঅনায পলাগগপরন এপলাাআ পরফ মখন াঅগন াআউজায- গডপাাআন ান ততগয কযপরফন াঅনায পলাগগপরনয জনয তখন Settings

API ndashএ াঅনায ডকাড মতটা ারন জ করন Settings API াঅনায ডম কাজগপররা handle কপরয-

ওয়াডডপরেপরক জাগনপরয় ডদয় ডম াঅগন গনজসব ান ফযফায কযপরফন াঅনায াআনটপরক পাাংপরনয ভপরধয উপরেখ কযপরফ ডফগয বাগ ান ডজ গনপরজাআ ততগয কযপরফ $_POST ডাটা গপররাপরক ভগনটয কপরয ান ততগয এফাং াঅপরডট কপরয(মগদ েপরয়াজন য়)

Settings API পাাংন Settings API পাাংপরন গতনগট ডসট থাপরক- ১ েথপরভ ওয়াডডপরেপরক ফপরর ডম াঅগন নতন ডগটাং ফযফায কযপরফন াঅনায পলাগগপরনয জনয ২ এয পরয ডগটাং গডপাাআন করন (text areas input boxes and any

HTML form element) এফাং এপরদযপরক একাপরথ রে কপরয যাপরখ ৩ ওয়াডডপরেপরক াঅনায ডগটাং actual form এ ডদখাপরনায জনয ফপরর

46

এফায াঅভযা একগট পলাগগন ফানাপরফা Administration Page ndashএ ডযপাপরযনস গপরপরফ ডদখপরত াপরযন- httpcodexwordpressorgAdding_Administration_Menus

httpcodexwordpressorgFunction_Referenceadd_options_page

httpcodexwordpressorgAction_ReferenceActions_Run_During_an_Admin_P

age_Request

পলাগগপরনয এডগভন ডজ পরফ এযকভ- httpexamplecomwp-adminoptions-generalphppage=liton_myplugin

েথপরভ াঅভযা ডভন ততগয কযফ াঅপরগয ভত কপরয- Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

এফায ান ডজ এ পভড গনপরয় গকি ডগটাং ডদফ function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

উপরযয ডকাপরড াঅভযা একগট পপরভডয ভপরধয রধ াফগভট ফাটন এফাং My Plugin নাপরভ ডজ ততগয কপরযগি ডযাপরফাপরডড ডদখন-

47

ডগটাং এয াফ ডভন গপরপরফ My Plugin াঅপরি এফাং My Plugin ডত গিক কযপরর াঅভযা উপরযয ডজ ততগয কপরযগি ডমখাপরন াফগভট ফাটনগট ডদখাপরচছ এফায গতনগট যাযাগভটায ডযগজসটায কযফ- ltphp

register_setting( liton _myplugin_options liton _myplugin_options liton

_myplugin_validate_options)

gt

েথভগট ডগটাং রেপরয নাভ গিতীয়গট ান নাভ মা াঅভযা get_option() পাাংন গদপরয়ও ডপরত াগয ততীয়গট করফযাক পাাংন এগট একগট গসটরাং ডযপাপরযনস পাাংন এখাপরন াঅভযা নাভ

48

গদপরয়গি liton _myplugin_validate_options মা া কযপরফ পপরভডয কর ডব ডগটাং াঅভযা এটা পরয গডপাাআন কযফ

ডগটাং গডপাাআন ডকন add_settings_field() এফাং add_settings_section() পাাংন গদপরয় াঅভযা াঅভাপরদয কর ডগটাং গডপাাআন কযফ ltphp

add_settings_section( liton_myplugin_main My Plugin Settings

liton_myplugin_section_text liton _myplugin)

add_settings_field( liton _myplugin_text_string Enter text here

liton _myplugin_setting_input liton _myplugin liton _myplugin_main)

gt

add_settings_section() পাাংন গদপরয় াঅভযা ডদখাফ াঅপরর ডজ এ ডকন ডকভন ডদখাপরফ এয চাযগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ ডকন টাাআপরটর ltH3gt টযাপরগয ভপরধয করফযাক পাাংন এয নাভ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ (page= liton _myplugin এগট

URL এয াাং গপরপরফ থাকপরফ) গিতীয় যাযাগভটায add_settings_field() পপরভডয াআনট গপরপরফ ডদখাপরনা পরয়পরি এখাপরন াাচগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ পরযয গপপরলড গক গেনট কযা পরফ তা ডটকসট গপরপরফ ডদখাপরনা পরয়পরি(Enter text

here)

করফযাক পাাংন পপরভড গেনট কযপরফ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ ডগটাং ডপরজয ডকন গপলড মা add_settings_section() পাাংপরন গডপাাআন

কযা পরয়পরি ltphp

Explanations about this section

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

49

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton _myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name= liton _myplugin_options[text_string]

type=text value=$options[text_string] gt

gt

গিতীয় পাাংন ান বযার text_string ডক এযাপরযপরত ডসটায কপরয ডযপরখপরি এফায াআউজায াআনট বযাগরপরডট কযফ- ltphp

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace([^a-zA-Z]$input[text_string] )

return $valid

gt

পভডপরক ডযনডায কযফ- ltphp

Draw the options page

function liton_myplugin_options_page()

gt

ltdiv class=wrapgt

ltphp

screen_icon()

gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp

settings_fields( liton_myplugin_options)

do_settings_sections(liton_myplugin)

50

gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

settings_fields() পাাংনগট ডযপাপরযনস গপরপরফ ফযফায কযা পরয়পরি মা াঅভযা register_setting() পাাংপরন গডপরিয়ায কপরযগি do_settings_sections() পাাংনগট কর কযপরফ কর াঅউটট ডকন এফাং পভড গপলডপরক মা াঅভযা পরফড গডপাাআন কপরযগি াঅভাপরদয কাজ ডল এফায পরযা পলাগগনগট ডদখফ- ltphp

Plugin Name Settings API example

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

Draw the option page

function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save

Changes gt

ltformgtltdivgt

ltphp

51

Register and define the settings

add_action(admin_init liton_myplugin_admin_init)

function liton_myplugin_admin_init()

register_setting( liton_myplugin_options

liton_myplugin_options

liton_myplugin_validate_options )

add_settings_section( liton_myplugin_main My Plugin

Settings

liton_myplugin_section_text liton_myplugin )

add_settings_field( liton_myplugin_text_string Enter text

here

liton_myplugin_setting_input liton_myplugin

liton_myplugin_main )

Draw the section header

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton_myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name=liton_myplugin_options[text_string]

type=text value=$text_string gt

Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

return $valid

gt

52

ডদখন ডযাপরফাপরডড ডকভন ডদখায়-

পরয় ডগর াঅভাপরদয েথভ নডাাংগ পলাগগন ান ডজ াঅপরযকগট গজগন ডমটায জনয এতগকি পলাগগন URL এপরডর- httplocalhostdev-litonwp-adminoptions-

generalphppage=liton_mypluginampsettings-updated=true

াঅভায এখাপরন এযকভ ডদখাপরচছ ডটকসট ফপরকস ডকান গকি গরপরখ ডব কযায য এফাপরয াঅপরযকগট গজগন ডদখফ াঅভযা াপরনক ভয়াআ াপরনক পলাগগপরনয াআনট গপপরলড বর ডাটা াআনট কযপরর এযয ডভপরজ ডদখায় এাআ কাজগট কযফ এফায াঅভযা এখাপরন esc_attr() ফা esc_html() ফযফায কগযগন সতযাাং াঅভাপরদয গরগভপরটন থাকপরি ডবগরপরডট পাাংনগট একট এগডট কগয গনপরচয ভত কপরয Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

if( $valid[text_string] = $input[text_string] )

add_settings_error(liton_myplugin_text_stringliton_myplugin_texterror

53

Incorrect value enterederror)

return $valid

উপরয ডদখন add_settings_error() পাাংন ফযফায কপরযগি মা এযয ডচক কযপরফ পপরভডয াঅগভ একগট বর ডাটা(পরসপার কযাপরযকটায) াআনট কপরয ডদখরাভ এযয ডদখাপরচছ-

তায ভাপরন াঅভযা পর পরয়গি াঅনায পলাগগনগট এগডট কপরয ডনপরফন ডকায ডকন এফাং গপপরলডয গরসট গদরাভ াঅনাপরদয সগফধায জনয

54

CSSJS পাাআর মি কযা

াঅনায পলাগগপরন গএএ ফা জাবাগিে ডমাগ কযপরত পরত াপরয াঅগন চাাআপরর ফাগপরযয ডকান ফা াঅনায ততগয ডকান গএএ ফা জাবাগিে পাাআর ডমাগ কযপরত াপরযন তপরফ এপরকষপরতর াঅভযা ডমবাপরফ HTML এ পাাআর ডমাগ কগয ডযকভ না function liton_scripts()

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtojqueryjsrdquogtltscriptgt‟

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtoscriptjsrdquogtltscriptgt‟

add_action(bdquowp_head‟‟liton_scripts‟)

এগট মপনডরপর বর িগত গনপরচ ডদখন ওয়াডডপরেপর গকবাপরফ পাাআর মি কযপরত য়- function liton_scripts()

wp_enqueue_script(bdquojquery‟)

wp_enqueue_script(bdquotheme-scripts‟‟pathtoscriptsjs‟)

add_action(bdquowp_enqueue_script‟‟liton_scripts‟)

ানর বাপরফ াঅগন সটাাআরীট ডমাগ কযপরত াপরযন- function liton_styles()

wp_enqueue_ style (bdquocss‟)

wp_enqueue_ style (bdquotheme- styles‟pathto stylescss‟)

ডযপাপরযনস ডদখন- httpcodexwordpressorgFunction_Referencewp_enqueue_script

httpcodexwordpressorgFunction_Referencewp_enqueue_style

টডপরকাড টডপরকাড পরচছ ওয়াডডপরেপরয ডসপগগপক ডসপার টযাগ মা াঅগন ডাসট ফা ডপরজয ভপরধয াআনাটড কপরয ানয ডকান কনপরটনটপরক ওপরয়ফাাআপরটয ভপরধয গযপরপল কযপরত াযপরফন মগদ াঅগন গযারাগয টাাআপরয ডকান পলাগগন ফযফায কপরয থাপরকন তাপরর াঅনায ধাযনা থাকায কথা মাাআ ডাক াঅগভ কপরয়কগট উদাযি ডদখাফ

55

েথপরভ একগট পলাগগন ততগয কযফ ডমখাপরন add_shortcode() নাপরভয একগট পাাংন থাকপরফ এগট রগট যাযাগভটায েন কপরয েথভগট টডপরকাপরডয নাভ গিতীয়গট ডম পাাংনপরক কর কযপরফন ডগট াঅভযা একগট উদাযন ডদগখ- ltphp

Plugin Name Liton Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(litonhi)

function hi()

echo Hello World

gt

উপরয ডদখন খফ ডিাট গকনত াঅগন চাাআপরর এয ফযফায াপরনক গফসতত কযপরত াপরযন এখাপরন টডপরকাড নাভ পরচছ liton াঅয এগটপরক ডরখা য় এবাপরফ [liton] াঅভযা ডাপরসটয ভপরধয াআনাটড কপরয ডদগখ াঅউটট ডকভন ডদখায়-

এফায াঅউটট ডদগখ-

56

াঅভাপরদয ততগয কযা টডপরকাড পরবাপরফাআ কাজ কযপরি াঅপরযকগট উদাযন ডদখফ াঅনাযা াপরনপরকাআ গগর এডপরনস গনপরয় কাজ কপরযন াঅনাযা াপরনপরকাআ এডপরনস এয জনয পলাগগন ফযফায কপরযন গকনত চাাআপররাআ এাআ কাজগট াঅনাযা গনপরজয ভত কপরয াগজপরয় গনপরত াপরযন গগপররয কাপরি ফ ডাসট বযার ায়না াঅনাযা মাযা একসাটড াঅপরিন তাযা এটা বার কপরয জাপরনন তাাআ াপরনপরকাআ গগপররয ডকাড ফ ডপরজ ডদখাপরত চান না এজনয পলাগগন ফযফায কপরয রাব য়না কাযন পলাগগপরন জায়গা গপকসড থাপরক এপরত কপরয াঅগনডাং ও কভ য় াঅনাযা টডপরকাড ফযফায কপরয ডমপরকান জায়গায় এড ডদখাপরত াপরযন গনপরচ াঅগভ রগট টডপরকাড ততগয কপরযগি র‟ধযপরনয এড ডদখাপরনায জনয ltphp

Plugin Name Liton Adsense Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(adsense_468adsense_468_60)

add_shortcode(adsense_250adsense_250_250)

function adsense_468_60($atts)

return ltscript type=textjavascriptgtlt--

57

google_ad_client = ca-pub-0956247412222369

468x60 created 101510

google_ad_slot = 4372705450

google_ad_width = 468

google_ad_height = 60

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

function adsense_250_250($atts)

return ltscript type=textjavascriptgtlt--

google_ad_client = ca-pub-0956247412222369

250x250 created 81809

google_ad_slot = 9368091893

google_ad_width = 250

google_ad_height = 250

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

gt

একগট টডপরকাড ফযানায টাাআপরয জনয এফাং াঅপরযকগট ২৫০২৫০ াাআপরজয এফায ডাপরসট ডমপরকান একগট টডপরকাড াআনাটড করন ডমখাপরন াঅনায ডদখাপরনায েপরয়াজন ভপরন কপরযন াঅগভ রগট ডকাড ডটসট কপরয ডদখরাভ-

58

এফায াাআপরটয াঅউটট ডদগখ-

রগট এডাআ ডদখাপরচছ াঅপরযা াপরনক কাপরজ াঅগন টডপরকাড ফযফায কযপরত াপরযন ডযপাপরযনসাঃ httpcodexwordpressorgShortcode_API

59

াধযায়- নয়াঃ পলাগগন উদাযন

ওয়াডডপরেপরয ডডটটাাআভকপরভনট নামবায ফাাংরা কযায পলাগগন াঅভাপরক কপরয়কজন ফপররগিপররন ওয়াডডপরেপরয গডপলট ডডটটাাআভকপরভনট নামবায ফাাংরা য়না রযাাংগপরয়জ ফাাংরা কযায যও ডডটটাাআভকপরভনট নামবায গপররা াআাংপরযগজ ডথপরক মায় গনপরচয পলাগগনগট ফযফায কপরয ডদখপরত াপরযন- ltphp

Plugin Name Liton Bangla datetimecomment number

Plugin URI httpliton-onlinecomplugins

Description Bangla datetimecomment number

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

This function converts all english numbers to bangla number

function make_bangla_number($str)

$engNumber = array(1234567890)

$bangNumber = array( ১ ২ ৩ ৪ ৫ ৬ ৭ ৮ ৯ ০ ) $converted = str_replace($engNumber $bangNumber $str)

return $converted

add_filter( get_the_time make_bangla_number )

add_filter( the_date make_bangla_number )

add_filter( get_the_date make_bangla_number )

add_filter( comments_number make_bangla_number )

add_filter( get_comment_date make_bangla_number )

add_filter( get_comment_time make_bangla_number )

gt

60

সলাাআডায পলাগগন াঅভযা এাআ ফাআপরয়য কর গটউপরটাগযয়াপরর মা মা গখরাভ তা এফায একগট নডাাংগ পলাগগপরনয এপলাাআ কযফ সলাাআডায পলাগগন মপপরকড াঅভযা ফাাআ জাগন একগট ওপরয়ফাাআপরটয ডচাযা ারপরট ডদয় একগট সলাাআডায াপরনক ডাাআনাগভক ভপরন য় ডদখপরতও াপরনক বার রাপরগ এাআ পলাগগপরন াঅভযা এডগভন যাপরনর ডথপরক াআপরভজ ডমাগ কযফ এফাং তা াঅভাপরদয াাআপরট ডদখাফ চরন কাজ রর কগয- েথপরভ গনপরবা সলাাআডায এয ওপরয়ফাাআপরট মান এফাং jQuery Plugin ডাউনপররাড করন

ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom Version 10

gt

াঅভযা পলাগগপরনয ডডায ততগয কযরাভ

পলাগগন গরপরসট ডদখাপরচছ bdquoLitons Nivo Plugin‟ াঅভাপরদয েথভ কাজ পরচছ custom post

type ওয়াডডপরে পাাংনাগরগট একগট নতন কাসটভ ডজ ততগয কযপরত custom post type

ফযফহরত পরফ ডমখাপরন একগট াআপরভজ থাকপরফ াঅভযা রধ টাাআপরটর ডনভ এফাং াআপরভজ াঅপররাডায গপরপরফ গপচায াআপরভজ পাাংনাগরগট ফযফায কযফ function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_function 600 280 true)

61

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

add_action(init np_init)

উপরযয ডকাপরড np_init() পাাংনগট রক কপরযগি মা ডডায যান কযায াঅপরগ যান পরফ াঅয এজনয register_post_type() পাাংনপরক এয যাযাগভটায গদপরয় np_init() পাাংপরনয ডবতপরয মি কপরযগি এটা মগদ না কযতাভ তাপরর ldquoHeaders already sentrdquo ডভপরজ ডদখাত এাআ ডভপরজগটয াপরথ াপরনপরকাআ গযগচত াঅা কগয register_post_type() পাাংন গদপরয় াঅভযা াআপরভজ মি এফাং ভযাপরনজ কযফ ভরত াঅভযা একগট নতন custom post type ডমাগ কপরযগি np_images নাভ গদপরয় নতন custom post type ডক ডগটাং বযার গপরপরফ াঅযগপরভনট া কপরযগি $args ডবগযপরয়ফরগট ট ডরপরবর ডভন ততগয কপরয াঅপরগাআ ডদপরখগি পলাগগনগট এগকটপরবট কযপরর াঅভযা গনপরচয ভত ডদখপরত াফ-

এফায গিে এফাং সটাাআরীট ডক মি কযফ- add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

এফায রক কযা পাাংনগপররা গডপরিয়ায কগয- function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__) array( jquery ))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

62

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

উপরযয ডকাডগপররা নতন কপরয ফিডনা কযায গকি ডনাআ াঅপরগাআ wp_enqueue_style() এফাং wp_enqueue_script() মপপরকড ফরা পরয়পরি নতন াঅপরযকগট পাাআর ততগয করন একাআ গডপরযকটগযপরত scriptjs এফাং গনপরচয ডকাডটক গদন- jQuery(document)ready(function($)

$(slider)nivoSlider()

)

াআপরভজপরক গযাাআজ করন- add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

াঅভযা এাআ পলাগগনগটপরক উাআপরজট গপরপরফও ফযফায কযফ ডগট পরয ডদখফ াঅপরযকগট গজগন মগদ গথপরভ না ডদয়া থাপরক ডজনয থামবপরনাআর াপরাটড গদপরয় গদন- add_theme_support( post-thumbnails )

এফায ওয়াডডপরেপরয কাপরযনট ডাসট কপরয়যী কযায ডকাড াঅয $result ডবগযপরয়ফপরর ডমফ ltdivgt টযাগ ফযফায কযা পরয়পরি তা jQuery Plugin গট একসিাকট কপরয indexhtml ডজগটয ডভাআন সলাাআডায ডকাডগট ডদখন একাআ াঅপরি রধ ডখানকায ltdivgt টযাগ গপররাপরক কগ কপরয এাআ পলাগগপরন ফযফায কযা পরয়পরি এফায টডপরকাড গদন- add_shortcode(np-shortcode np_function)

এাআ টডপরকাড গএাআচগ পাাংনপরক রক কযপরফ এফাং এয ভধয ডথপরক সলাাআডপরায কনপরটনট ডক গযটানড কযপরফ াঅভাপরদয টডপরকাড পরচছ [np-shortcode] াঅভযা পলাগগপরন মাাআ এফাং একগট িগফ মি কগয গপচাযড াআপরভজ গপরপরফ গনপরচ ডদখন-

63

াঅগভ াঅপরযকগট ডজ ততগয কপরযগি ডমখাপরন টডপরকাড গদপরয়গি

াঅউটট ডজ ডদগখ এফায-

64

পরয় ডগর াঅভাপরদয সলাাআডায পলাগগন পরযা ডকাডগট গনপরচ গদরাভ- ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

65

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

66

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

এফায াঅগন মগদ উাআপরজট গপরপরফ ফযফায কযপরত চান তাপরর গনপরচয ডকাডটক গদন- class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

67

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

echo $after_widget

াঅপরযা রগট কাজ কযপরত পরফ াঅনাপরক এক াআপরভজ াাআজ উাআপরজট এয জনয গঠক কপরয গদপরত পরফ- add_image_size(np_widget 180 100 true)

াঅপরযকগট র উাআপরজট এযাকন রক ডমাগ কযা add_action(widgets_init np_widgets_init)

উাআপরজট পরযা ডকাড াঅফায গদরাভ- ltphp

Plugin Name Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Ciprian Turcu

Version 10

68

class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

69

echo $after_widget

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

70

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(widgets_init np_widgets_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

71

পলাগগন গনপরয় এত ডিাট গযপরয ডরখা মভফ নয় এজনযাআ ভপরন য় পলাগগন গনপরয় ডকউ ডরপরখন না কাযন এখাপরন এত গফলয় াঅপরি মা াঅপররাচনা কযপরত ডগপরর ৫০০ ডজ ায পরয় মাপরফ ডফাোয সগফধাপরথড াঅগভ মথামভফ উদাযন গদপরয় ডফাোপরনায ডচষটা কপরযগি াঅগভ এখাপরন টাপরগডট কপরযগি মাযা টকটাক জাপরন পলাগগন মপপরকড এডবানস ডরপরবপররয নয় কাযন তাযা জাপরনন াঅভায উপরেশয গির মাযা জানপরত চায় তাপরদযপরক জানাপরনা এখাপরন ডমফ গফলয় াঅপররাচনা কযা পরয়পরি তা ডভাটাভগট ভাপরনয একগট পলাগগন ফানাপরনায জনয মপরথষট তপরফ ভাপরনাননয়পরনয জনয াঅনাপরক গনপরজাআ খাপরজ গনপরত পরফ াঅনায জনয ডকানটা বার পরফ াঅগভ রধ গদক গনপরদডনা গদরাভ ভাতর এাআ ফাআগট রধভাতর ওয়াডডপরে রেপরয জনয ডরখা াপরনক বর ভরাগনত থাকপরত াপরয াঅনাযা কষভাসনদয দগষটপরত ডদখপরফন াঅগভ ডচষটা কপরযগি মতটা জ কপরয ডরখা মায় াপরনক ভয় ডদখা মায় ডম খফ ডিাট খাপরটা গফলয় গনপরয় াপরনপরকাআ নক কপরযন এটা গতয রাঃখজনক াঅনাযা গগপরর একট খাজপররাআ ভাধান াপরফন াঅপরগ গনপরজ ডচষটা করন তায পরয ানযপরক ভাধাপরনয জনয গজজঞাা করন াঅভায জনয ডদায়া কযপরফন বাপররা রাগপরর জানাপরফন খাযা রাগপররও জানাপরফন তাপররাআ াঅভায গযশরভ সবাথডক পরফ ভতাভত জাগনপরয় াঅভাপরক ডভাআর কযপরত াপরযন litonice09gmailcom |

72

Page 31: Wordpress Plugin Development

32

register_widget(Messager)

gt

এফায াঅভযা ডযাপরফাডড ডথপরক একগট ডভপরজ ডদফ গবগজটযপরদযপরক-

াঅভযা এাআ উাআপরজটগট ডাাআনাগভক বাপরফ কপরযগি কাযন এখাপরন lth2gt lth3gt lth4gt এ ধযপরনয ডকান টযাগ াঅভযা ফযফায কগযগন াঅভযা গথভ ডডপরবর কযগিনা সতযাাং এ কাজগট াঅভাপরদয ানযবাপরফ কযা দযকায গির এগট গথভ ডডপরবরায ডদগখপরয় ডদপরফন ডম ডকভন টযাগ পরফ াাআডফাপরয াাআপরটয াাআডফাপরয ডকভন ডদখায় তা ডদখন- াঅভযা রগট গথপরভ এগট ডটসট কপরয ডদখফ েথভগট টপরয়গনট াআপররপরবন

33

এফায াঅপরযকগট গথপরভ ডদগখ-

34

াধযায়- িয়াঃ পলাগগন পাাংন

গকি ডফগক পাাংন __() পাাংন

__() পাাংনগট গএাআচগপরত াঅনায ডটকসটপরক ডযগড কপরয িানসপররন এফাং গযটানড কপরয উদাযন গপরপরফ াঅগন একগট বযারপরক __() পাাংপরনয ভপরধয ডবগযপরয়ফর গদপরয় assign করন ভপরন যাখপরফন এাআ পাাংনগট রগট াঅনডাযপরিায(_) গদপরয় গগঠত একগট নয় ltphp

$text=__(bdquoWordpress is a wonderful publishing platform‟‟liton_plugin‟)

gt

_e() পাাংন _e() পাাংনগট াঅনায ডটকসবপরট ডরাকারাাআজ কপরয এটা গএাআচগপরত echo এয ভত কাজ কপরয ডকান ডটকসটপরক গিপরন ডদখাপরনায জনয এফায একট ভজা কগয মা রপরক ডদপরখগি াঅপরগাআ- _e() পাাংনগট গদপরয় াঅপরগয পলাগগনগট এগডট কযফ ltphp

Plugin Name Liton Action

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(wp_footer liton_footer_action)

function liton_footer_action()

Output the translated text

_e( This site runs off the coolest platform ever ampmdash

WordPress

liton-plugin )

gt

35

এফায াঅউটট ডদগখ

esc_attr__() পাাংন এাআ পাাংনগট esc_attr() এয ভত এগট এাআচগটএভএর এগিগফউটপরক escape কপরয াঅভযা এফায esc_attr__() এফাং __() এাআ রগট পাাংনপরক একগট কপরয পলাগগন ততগয কযফ ltphp

Plugin Name Liton Esc Attr

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

A function that returns a link to the sites terms of service

page

function liton_terms_of_service_link()

return lta href=httpliton-onlinecomtos title=

esc_attr__( Visit the Terms of Service page boj-plugin ) gt __( Terms of

Service liton-plugin ) ltagt

Display the output of the liton_terms_of_service_link()

function

echo liton_terms_of_service_link()

gt

পলাগগনগটয াঅউটট ডদখন-

36

এযকভ াঅপরযা গকি পাাংন াঅপরি ডমগপররা াঅনাযা ডদপরখ ডনপরফন াআনটাযপরনট ডঘপরট

esc_html__() Function

esc_attr() Function

esc_url() Function

esc_js() Function

esc_html() Function

esc_attr_e() Function

esc_html_e() Function

_x() Function

_ex() Function

esc_attr_x() Function

esc_html_x() Function

_n() Function

_nx() Function

_n_noop() Function

_nx_noop() Function

Translation

bull Poedit httppoeditnet

bull GlotPress httpglotpressorg

bull Launchpad httpstranslationslaunchpadnet

bull Pootle httppootlelocamotionorg

bull KBabel httpi18nkdeorg

bull GNU Gettext httpgnuorgsoftwaregettext

GlotPress এখন ওপরয়ফ ডফড টর গপরপরফ ফযফায কযা পরচছ ওয়াডডে েপরজপরকটয ডিপরন একজন াথফা গটপরভয জনয িানসপররগটাং পটওয়যায গপরপরফ

37

াধযায়- াতাঃ পলাগগন গগকউগযগট

গগকউগযগট কগমপউটাপরযয বালায় ldquoগগকউগযগটrdquo ভাপরন বীগতকয একগট বদ ডমভন Cross Site

Scripting(XSS) Cross Site Request Forgery(CSRF) SQL Injection Privilege

Escalation Vulnerabilities এফাং Holes রফডর ডকাড একগট াবডাপরযয সযকষায জনয রভকীয কাযন পরত াপরয

পলাগগপরনয গগকউগযগট গক াঅনায পলাগগনগট ডমন গগকউয য় vulnerabilities data integrity এফাং reliability ডথপরক

াঅনায পলাগগনপরক গক গগকউগযগট ডদপরফন ওয়াডডপরে এনবায়যনপরভপরনট াঅনায পলাগগনপরক গগকউগযগট ডদয়া খফ কগঠন কাজ নয় এফাং খফ ভয় াপরকষ গফলয়ও নয় ওয়াডডপরেপরয গনজসব গকি পাাংন এপরকষপরতর াঅনাপরক খফাআ াাময কযপরফ

াআউজায াযগভন াঅভযা াপরনক পলাগগন াআনসটর কযায পরযাআ ডদপরখগি ডম মখনাআ এডগভন যাপরনর এ েপরফ কযপরত মাাআ তখন একগট এযয ডভপরজ াঅপর ডভপরজগট গনপরচয ভত-

ডরখা াঅপরি- You do not have sufficient permissionshellip এটা গনশচয়তা ডদয় ডম ডমপরকান এযাকন ীভাফি থাপরক গনগদডষট গকি যাাআট গদপরয় ওয়াডডপরেপরয একগট কভন পাাংন র current_user_can() একগট উদাযন ডদাআ-

38

ltphp

Capability

if ( current_user_can(install_plugins) )

wp_die( Insufficient permissions )

Role

if( current_user_can(editor) )

wp_die( You cannot edit this setting )

gt

খফ তাড়াতাগড় াঅগন এাআ current_user_can() পাাংন ডচক কযপরফন না কাযন এটা গনবডয কযপরফ get_currentuserinfo() এাআ পাাংপরনয উপরয াঅয এয ফযফাপরয ীভাফিতা াঅপরি এটা একগট পলাপরগফর পাাংন(pluggable function) াঅয এয ডরাপরকন পরচছ wp-

includespluggablephp মা পলাগগন এগকটব ফায য ডরাড য়

Nonces

ডকউ এগটপরক াঅফায Nonsense( গনপরফডাধ) বাফপরফন নাএগট ওয়াডডপরেপরয বালায় Nonces কগমপউটাপরযয বালায় nonce ফা cryptographic nonce পরচছ ldquonumber used once rdquo এটা ডিাট এফাং সপষট গকি য যানডভ গসটরাং ডমভন- াওয়াডড মা গকি গনপরদড কপরয Nonce গপরডন গপলড পভডপরক Retrieve ফা display কপরয-

একজন ওয়াডডপরে াআউজায ডমপরকান একগট এযাকন (delete update save and such) একগট াফপরজকট(একগট ডাসট পলাগগন ডগটাং াআতযাগদ) ২৪ ঘনটায একগট ভয় ডিভ

ডমভন ডাসট 50 গডগরট কযপরফন াঅনায ওয়াডডপরে বলগ ডথপরক তাপরর াঅনায গরঙকগট পরফ এযকভ- httpexamplecomwp-admin

postphppost=43ampaction=trashamp_wpnonce=83a08fcbc2

এখাপরন 83a08fcbc2 এগট র nonce মা ২৪ ঘনটা সথায়ী থাপরক রধভাতর এগট মগদ াঅনায িাযা ফযফরত য় এফাং গডগরট য় ডাসট 50 মখন াঅগন গরপরঙক গিক কপরযন ফপরচপরয় গযতবনড র ডম Nonce ডকান malicious াআউজায ফেপরত াপরযনা এফাং গঠক গরঙক িাড়া nonce এযয ডপরজ চপরর মায় ডমখাপরন াযগভন থাপরক না াঅপরযা গফসতাগযত ডদখন httpcodexwordpressorgWordPress_Nonces

39

Nonce URL ততগয এফায চরন াঅপরগয উদাযন ডথপরক Nonce URL ততগয কগয একগট ডাসট গডগরট কযায জনয wp_nonce_url() পাাংন ফযফায কযা য় ltphp

$url = wp_nonce_url( $url $action )

gt

েথভ যাযাগভটায $url পরচছ গসটরাং URL এপরডর এয মাপরক াঅগন কপরয়যী গসটরাং এয Nonce কযপরত চান াফযফহরত পলাগগপরনয গডগরট গরঙক এযকভ থাপরক- httpexamplecomwp-admineditphppage= liton

_utagsampliton_action=deleteampid=6

এখাপরন ডদখন যাযাগভটায liton_action এফাং এয টযাগ াঅাআগড গিতীয় যাযাগভটায পরচছ $action একগট গসটরাং মা াঅগন একগট াফপরজকট এয জনয একগট action ততগয কযপরফন উপরয ডদখরাভ delete এযাকন এয টযাগ াঅাআগড 6 সতযাাং $action যাযাগভটায পরত াপরয bdquoliton_utags-delete_tag6‟ গনপরচ ফাসতফ উদাযন ডদগখ- ltphp

$delete_url = add_query_arg(array( liton _action=gtdeleteid=gt$id) )

$nonced_url = wp_nonce_url( $delete_url bdquoliton _utags-delete_tag$id )

gt

lta href=ltphp echo $nonced_url gtgtdeleteltagt

এাআ টযাগগট পরফ গডগরট গরঙক এখাপরন add_query_arg() পাাংন ফযফায কযা পরয়পরি মা কাপরযনট URL ডক এযাপরয যাযাগভটায এয ভপরধয যাপরখ ানযবাপরফ ফরপরর এগট ডমাগ কপরয এযকভাঃ liton_action=deleteampid=6 amp liton_action=deleteampid=6

Nonce Form ততগয Nonce পভডপরকও ডোপরটকট কপরয wp_nonce_field() পাাংপরনয ভাধযপরভ ltphp

wp_nonce_field( $action $name $referer $echo ) gt

$action ( string) (optional) - action নাভ াআউগনক identifier optional

গকনত recommended $name (string) (optional) ndash গপরডন গপলড পভড ডবগযপরয়ফর নাভ $referer (boolean) (optional) ndash গডপলট গপরপরফ true থাপরক ডমখাপরন গপলড

ডবগরপরডন এয দযকায য়

40

$echo (boolean) (optional) - গডপলট গপরপরফ true থাপরক ডমখাপরন াঅউটট ডদখাপরনায ফা গপরডন পভড গপলড গযটানড কযায জনয দযকায য়

পপরভড াঅনায action এয নাভ গদন ltform method=postgt

lt-- some inputs here --gt

ltphp wp_nonce_field(name_of_my_actionname_of_nonce_field) gt

ltformgt

াঅভযা একগট পলাগগন ফানাপরফা ডমখাপরন াফযফরত টযাগগপররাপরক াঅভযা ভযানয়াগর গডগরট ফা গযপরনভ কযপরত াযফ এগট একট ফড় গকনত াপরনক গফলয়াআ াঅপরগাআ াঅপররাচনা কযা পরয়পরি ডদখপররাআ ফেপরত াযপরফন একগট ফাসতফধভডী উদাযন গনপরচ গদরাভ- ltphp

Plugin Name Liton Unused Tags

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add an entry for our option page to the Posts menu

add_action(admin_menu liton_utags_add_page)

function liton_utags_add_page()

add_posts_page( Unused Tags Unused Tagsmanage_optionsliton_utags

liton_utags_option_page )

Catch any liton_action parameter in query string

add_action( admin_init liton_utags_do_action )

Proceed to requested liton_action if applicable

function liton_utags_do_action()

if( isset( $_REQUEST[liton_action] ) )

return

if( current_user_can( manage_options ) )

wp_die( Insufficient privileges )

41

$id = $_REQUEST[id]

$action = $_REQUEST[liton_action]

if( $action == done )

add_action( admin_notices liton_utags_message )

return

check_admin_referer( liton_utags-$action_tag$id )

switch( $action )

case rename

$newtag = array( name =gt $_POST[name] slug =gt

$_POST[name] )

wp_update_term( $id post_tag $newtag )

break

case delete

wp_delete_term( $id post_tag )

break

wp_redirect( add_query_arg( array( liton_action =gt done )

) )

Admin notice

function liton_utags_message()

echo ltdiv class=updatedgtltpgtAction

completedltpgtltdivgt

Draw the tag management page

function liton_utags_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtUnused Tagslth2gt

ltphp

if( $tags = liton_utags_find_orphans() )

echo ltpgtYou currently have count( $tags ) unused

tagsltpgt

echo ltolgt

foreach( $tags as $tag )

42

$id = $tag-gtterm_id

$name = esc_attr( $tag-gtname )

$delete_url= add_query_arg(

array(liton_action=gtdeleteid=gt$id) )

$nonced_url= wp_nonce_url( $delete_url

liton_utags-delete_tag$id )

gt

ltligt

ltform action= method=postgt

ltphp wp_nonce_field( liton_utags-rename_tag$id )

gt

ltinput type=hidden name=liton_action

value=rename gt

ltinput type=hidden name=id value=ltphp echo

$id gt gt

ltinput type=text name=name value=ltphp echo

$name gt gt

ltinput type=submit value=Rename gt or

lta href=ltphp echo $nonced_url gtgtdeleteltagt

this tag

ltformgt

ltligt

ltphp

else gt

ltpgtYou have no unused tagsltpgt

ltphp endif gt

ltolgt

ltdivgt

ltphp

Find unused tags return them in an array

function liton_utags_find_orphans()

global $wpdb

$sql = SELECT termsterm_id termsname FROM

$wpdb-gtterms terms

INNER JOIN $wpdb-gtterm_taxonomy taxo

ON termsterm_id=taxoterm_id

WHERE taxotaxonomy = post_tag

43

AND taxocount=0

return $wpdb-gtget_results( $sql )

gt

ডযাপরফাপরডড এাআ পলাগগপরনয ডভন াওয়া মাপরফ ডাসট এয াফপরভন গপরপরফ গনপরচ ডদখন-

এফায পলাগগন ডভনপরত গিক কপরয ডদগখ পলাগগপরনয ডবতপরযয কাজ-

উপরয ডদখন াঅগভ একগট টযাগ ততগয কপরযগিরাভ l i নাপরভ এগট এখাপরন ডদখাপরচছ াঅগভ চাাআপরর এগট এগডট ফা গডগরট কযপরত াগয এফায গডগরট গরঙক এ ভাউপরয কাডয ডযপরখ গনপরচ গরঙক ডদখন ফা গডগরট করন একগট টযাগ াঅভায এখাপরন URL গট এযকভ httplocalhostdev-litonwp-

admineditphppage=liton_utagsampliton_action=doneampid=4amp_wpnonce=30a44b7

986

এখাপরন াঅগভ liton_action=done ফযফায কপরযগি Nonces এয পাাংনগপররায নাভ গনপরচ গদরাভ াঅনাযা ডদপরখ গনপরফন াআনটাযপরনট ডথপরক wp_nonce_field()

wp_nonce_url()

wp_verify_nonce()

wp_create_nonce()

44

check_admin_referer()

check_ajax_referer()

ডাটাপরফ াঅনাযা ডমপরত গএাআচগ গনপরয় কাজ কপরযন এগকউএর ডাটাপরফ এয াপরথ ফাাআ কভপরফী গযগচত এয গনটযাকস গপররা ডভাটাভগট ফায জানা একাআ বাপরফ াপরনপরকাআ ওয়াডডপরেপরও ডাটাপরফ ডকাড গরপরখন এটা ডকাগডাং এয জনয খাযা গদক াঅগভ নযভার গএাআচগ- এগকউএর ডকাড এয উদাযন গদগচছ- ltphp

$sql=rdquoINSERT INTO $wpdb-gtposts(post_title) VALUES(bdquo$title‟)rdquo

$wpdb-gtquery($sql) gt

এফায ওয়াডডপরেপরয সটযানডাডড ডকাগডাং গপরসটভ ডদখন- ltphp

$wpdb-gtinsert($wpdb-gtposts

array(bdquopost_title‟ =gt $title)

array(bdquos‟)

)

gt

ডাটাপরফ গগকউয কযায জনয াঅপরডট াাপরযন ডদখাফ- গনপরচয ডকাডগট খাযা েযাকগট ltphp

$wpdb-gtquery(ldquoUPDATE $wpdb-gtposts SET post_title=‟$newTitle‟ WHERE

ID=$my_idrdquo )

gt

উপরযয ভত কপরয না গরপরখ গনপরচয ভত কপরয গরখন- ltphp

$wpdb-gtupdate($wpdb-gtposts

Array(bdquopost_title‟ =gt‟$newTitle‟)

Array(bdquoID‟ =gt$my_id

)

gt

ানর বাপরফ ানযানয াাপরযন গপররা গরখপরফন

45

াধযায়- াঅটাঃ ডরাকারাাআপরজন এফাং Set t i ngs API

ডরাকারাাআপরজন ডরাকারাাআপরজন একগট গরতবনড গফলয় এয পাাংনগপররা র- load_theme_textdomain()

load_plugin_textdomain()

উদাযন- ltphp $var=__(bdquoHello‟‟domain‟) gt

ltphp _e(bdquoHello‟‟domain‟) gt

গফসতাগযত গনপরচয গরপরঙক ডদখন- httpcodexwordpressorgI18n_for_WordPress_Developers

ডগটাং API

ডগটাং API পরচছ াঅগন গকি ান ততগয কযপরফন মা াআনটাযনার বাপরফ াঅনায পলাগগপরন এপলাাআ পরফ মখন াঅগন াআউজায- গডপাাআন ান ততগয কযপরফন াঅনায পলাগগপরনয জনয তখন Settings

API ndashএ াঅনায ডকাড মতটা ারন জ করন Settings API াঅনায ডম কাজগপররা handle কপরয-

ওয়াডডপরেপরক জাগনপরয় ডদয় ডম াঅগন গনজসব ান ফযফায কযপরফন াঅনায াআনটপরক পাাংপরনয ভপরধয উপরেখ কযপরফ ডফগয বাগ ান ডজ গনপরজাআ ততগয কযপরফ $_POST ডাটা গপররাপরক ভগনটয কপরয ান ততগয এফাং াঅপরডট কপরয(মগদ েপরয়াজন য়)

Settings API পাাংন Settings API পাাংপরন গতনগট ডসট থাপরক- ১ েথপরভ ওয়াডডপরেপরক ফপরর ডম াঅগন নতন ডগটাং ফযফায কযপরফন াঅনায পলাগগপরনয জনয ২ এয পরয ডগটাং গডপাাআন করন (text areas input boxes and any

HTML form element) এফাং এপরদযপরক একাপরথ রে কপরয যাপরখ ৩ ওয়াডডপরেপরক াঅনায ডগটাং actual form এ ডদখাপরনায জনয ফপরর

46

এফায াঅভযা একগট পলাগগন ফানাপরফা Administration Page ndashএ ডযপাপরযনস গপরপরফ ডদখপরত াপরযন- httpcodexwordpressorgAdding_Administration_Menus

httpcodexwordpressorgFunction_Referenceadd_options_page

httpcodexwordpressorgAction_ReferenceActions_Run_During_an_Admin_P

age_Request

পলাগগপরনয এডগভন ডজ পরফ এযকভ- httpexamplecomwp-adminoptions-generalphppage=liton_myplugin

েথপরভ াঅভযা ডভন ততগয কযফ াঅপরগয ভত কপরয- Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

এফায ান ডজ এ পভড গনপরয় গকি ডগটাং ডদফ function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

উপরযয ডকাপরড াঅভযা একগট পপরভডয ভপরধয রধ াফগভট ফাটন এফাং My Plugin নাপরভ ডজ ততগয কপরযগি ডযাপরফাপরডড ডদখন-

47

ডগটাং এয াফ ডভন গপরপরফ My Plugin াঅপরি এফাং My Plugin ডত গিক কযপরর াঅভযা উপরযয ডজ ততগয কপরযগি ডমখাপরন াফগভট ফাটনগট ডদখাপরচছ এফায গতনগট যাযাগভটায ডযগজসটায কযফ- ltphp

register_setting( liton _myplugin_options liton _myplugin_options liton

_myplugin_validate_options)

gt

েথভগট ডগটাং রেপরয নাভ গিতীয়গট ান নাভ মা াঅভযা get_option() পাাংন গদপরয়ও ডপরত াগয ততীয়গট করফযাক পাাংন এগট একগট গসটরাং ডযপাপরযনস পাাংন এখাপরন াঅভযা নাভ

48

গদপরয়গি liton _myplugin_validate_options মা া কযপরফ পপরভডয কর ডব ডগটাং াঅভযা এটা পরয গডপাাআন কযফ

ডগটাং গডপাাআন ডকন add_settings_field() এফাং add_settings_section() পাাংন গদপরয় াঅভযা াঅভাপরদয কর ডগটাং গডপাাআন কযফ ltphp

add_settings_section( liton_myplugin_main My Plugin Settings

liton_myplugin_section_text liton _myplugin)

add_settings_field( liton _myplugin_text_string Enter text here

liton _myplugin_setting_input liton _myplugin liton _myplugin_main)

gt

add_settings_section() পাাংন গদপরয় াঅভযা ডদখাফ াঅপরর ডজ এ ডকন ডকভন ডদখাপরফ এয চাযগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ ডকন টাাআপরটর ltH3gt টযাপরগয ভপরধয করফযাক পাাংন এয নাভ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ (page= liton _myplugin এগট

URL এয াাং গপরপরফ থাকপরফ) গিতীয় যাযাগভটায add_settings_field() পপরভডয াআনট গপরপরফ ডদখাপরনা পরয়পরি এখাপরন াাচগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ পরযয গপপরলড গক গেনট কযা পরফ তা ডটকসট গপরপরফ ডদখাপরনা পরয়পরি(Enter text

here)

করফযাক পাাংন পপরভড গেনট কযপরফ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ ডগটাং ডপরজয ডকন গপলড মা add_settings_section() পাাংপরন গডপাাআন

কযা পরয়পরি ltphp

Explanations about this section

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

49

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton _myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name= liton _myplugin_options[text_string]

type=text value=$options[text_string] gt

gt

গিতীয় পাাংন ান বযার text_string ডক এযাপরযপরত ডসটায কপরয ডযপরখপরি এফায াআউজায াআনট বযাগরপরডট কযফ- ltphp

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace([^a-zA-Z]$input[text_string] )

return $valid

gt

পভডপরক ডযনডায কযফ- ltphp

Draw the options page

function liton_myplugin_options_page()

gt

ltdiv class=wrapgt

ltphp

screen_icon()

gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp

settings_fields( liton_myplugin_options)

do_settings_sections(liton_myplugin)

50

gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

settings_fields() পাাংনগট ডযপাপরযনস গপরপরফ ফযফায কযা পরয়পরি মা াঅভযা register_setting() পাাংপরন গডপরিয়ায কপরযগি do_settings_sections() পাাংনগট কর কযপরফ কর াঅউটট ডকন এফাং পভড গপলডপরক মা াঅভযা পরফড গডপাাআন কপরযগি াঅভাপরদয কাজ ডল এফায পরযা পলাগগনগট ডদখফ- ltphp

Plugin Name Settings API example

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

Draw the option page

function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save

Changes gt

ltformgtltdivgt

ltphp

51

Register and define the settings

add_action(admin_init liton_myplugin_admin_init)

function liton_myplugin_admin_init()

register_setting( liton_myplugin_options

liton_myplugin_options

liton_myplugin_validate_options )

add_settings_section( liton_myplugin_main My Plugin

Settings

liton_myplugin_section_text liton_myplugin )

add_settings_field( liton_myplugin_text_string Enter text

here

liton_myplugin_setting_input liton_myplugin

liton_myplugin_main )

Draw the section header

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton_myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name=liton_myplugin_options[text_string]

type=text value=$text_string gt

Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

return $valid

gt

52

ডদখন ডযাপরফাপরডড ডকভন ডদখায়-

পরয় ডগর াঅভাপরদয েথভ নডাাংগ পলাগগন ান ডজ াঅপরযকগট গজগন ডমটায জনয এতগকি পলাগগন URL এপরডর- httplocalhostdev-litonwp-adminoptions-

generalphppage=liton_mypluginampsettings-updated=true

াঅভায এখাপরন এযকভ ডদখাপরচছ ডটকসট ফপরকস ডকান গকি গরপরখ ডব কযায য এফাপরয াঅপরযকগট গজগন ডদখফ াঅভযা াপরনক ভয়াআ াপরনক পলাগগপরনয াআনট গপপরলড বর ডাটা াআনট কযপরর এযয ডভপরজ ডদখায় এাআ কাজগট কযফ এফায াঅভযা এখাপরন esc_attr() ফা esc_html() ফযফায কগযগন সতযাাং াঅভাপরদয গরগভপরটন থাকপরি ডবগরপরডট পাাংনগট একট এগডট কগয গনপরচয ভত কপরয Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

if( $valid[text_string] = $input[text_string] )

add_settings_error(liton_myplugin_text_stringliton_myplugin_texterror

53

Incorrect value enterederror)

return $valid

উপরয ডদখন add_settings_error() পাাংন ফযফায কপরযগি মা এযয ডচক কযপরফ পপরভডয াঅগভ একগট বর ডাটা(পরসপার কযাপরযকটায) াআনট কপরয ডদখরাভ এযয ডদখাপরচছ-

তায ভাপরন াঅভযা পর পরয়গি াঅনায পলাগগনগট এগডট কপরয ডনপরফন ডকায ডকন এফাং গপপরলডয গরসট গদরাভ াঅনাপরদয সগফধায জনয

54

CSSJS পাাআর মি কযা

াঅনায পলাগগপরন গএএ ফা জাবাগিে ডমাগ কযপরত পরত াপরয াঅগন চাাআপরর ফাগপরযয ডকান ফা াঅনায ততগয ডকান গএএ ফা জাবাগিে পাাআর ডমাগ কযপরত াপরযন তপরফ এপরকষপরতর াঅভযা ডমবাপরফ HTML এ পাাআর ডমাগ কগয ডযকভ না function liton_scripts()

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtojqueryjsrdquogtltscriptgt‟

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtoscriptjsrdquogtltscriptgt‟

add_action(bdquowp_head‟‟liton_scripts‟)

এগট মপনডরপর বর িগত গনপরচ ডদখন ওয়াডডপরেপর গকবাপরফ পাাআর মি কযপরত য়- function liton_scripts()

wp_enqueue_script(bdquojquery‟)

wp_enqueue_script(bdquotheme-scripts‟‟pathtoscriptsjs‟)

add_action(bdquowp_enqueue_script‟‟liton_scripts‟)

ানর বাপরফ াঅগন সটাাআরীট ডমাগ কযপরত াপরযন- function liton_styles()

wp_enqueue_ style (bdquocss‟)

wp_enqueue_ style (bdquotheme- styles‟pathto stylescss‟)

ডযপাপরযনস ডদখন- httpcodexwordpressorgFunction_Referencewp_enqueue_script

httpcodexwordpressorgFunction_Referencewp_enqueue_style

টডপরকাড টডপরকাড পরচছ ওয়াডডপরেপরয ডসপগগপক ডসপার টযাগ মা াঅগন ডাসট ফা ডপরজয ভপরধয াআনাটড কপরয ানয ডকান কনপরটনটপরক ওপরয়ফাাআপরটয ভপরধয গযপরপল কযপরত াযপরফন মগদ াঅগন গযারাগয টাাআপরয ডকান পলাগগন ফযফায কপরয থাপরকন তাপরর াঅনায ধাযনা থাকায কথা মাাআ ডাক াঅগভ কপরয়কগট উদাযি ডদখাফ

55

েথপরভ একগট পলাগগন ততগয কযফ ডমখাপরন add_shortcode() নাপরভয একগট পাাংন থাকপরফ এগট রগট যাযাগভটায েন কপরয েথভগট টডপরকাপরডয নাভ গিতীয়গট ডম পাাংনপরক কর কযপরফন ডগট াঅভযা একগট উদাযন ডদগখ- ltphp

Plugin Name Liton Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(litonhi)

function hi()

echo Hello World

gt

উপরয ডদখন খফ ডিাট গকনত াঅগন চাাআপরর এয ফযফায াপরনক গফসতত কযপরত াপরযন এখাপরন টডপরকাড নাভ পরচছ liton াঅয এগটপরক ডরখা য় এবাপরফ [liton] াঅভযা ডাপরসটয ভপরধয াআনাটড কপরয ডদগখ াঅউটট ডকভন ডদখায়-

এফায াঅউটট ডদগখ-

56

াঅভাপরদয ততগয কযা টডপরকাড পরবাপরফাআ কাজ কযপরি াঅপরযকগট উদাযন ডদখফ াঅনাযা াপরনপরকাআ গগর এডপরনস গনপরয় কাজ কপরযন াঅনাযা াপরনপরকাআ এডপরনস এয জনয পলাগগন ফযফায কপরযন গকনত চাাআপররাআ এাআ কাজগট াঅনাযা গনপরজয ভত কপরয াগজপরয় গনপরত াপরযন গগপররয কাপরি ফ ডাসট বযার ায়না াঅনাযা মাযা একসাটড াঅপরিন তাযা এটা বার কপরয জাপরনন তাাআ াপরনপরকাআ গগপররয ডকাড ফ ডপরজ ডদখাপরত চান না এজনয পলাগগন ফযফায কপরয রাব য়না কাযন পলাগগপরন জায়গা গপকসড থাপরক এপরত কপরয াঅগনডাং ও কভ য় াঅনাযা টডপরকাড ফযফায কপরয ডমপরকান জায়গায় এড ডদখাপরত াপরযন গনপরচ াঅগভ রগট টডপরকাড ততগয কপরযগি র‟ধযপরনয এড ডদখাপরনায জনয ltphp

Plugin Name Liton Adsense Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(adsense_468adsense_468_60)

add_shortcode(adsense_250adsense_250_250)

function adsense_468_60($atts)

return ltscript type=textjavascriptgtlt--

57

google_ad_client = ca-pub-0956247412222369

468x60 created 101510

google_ad_slot = 4372705450

google_ad_width = 468

google_ad_height = 60

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

function adsense_250_250($atts)

return ltscript type=textjavascriptgtlt--

google_ad_client = ca-pub-0956247412222369

250x250 created 81809

google_ad_slot = 9368091893

google_ad_width = 250

google_ad_height = 250

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

gt

একগট টডপরকাড ফযানায টাাআপরয জনয এফাং াঅপরযকগট ২৫০২৫০ াাআপরজয এফায ডাপরসট ডমপরকান একগট টডপরকাড াআনাটড করন ডমখাপরন াঅনায ডদখাপরনায েপরয়াজন ভপরন কপরযন াঅগভ রগট ডকাড ডটসট কপরয ডদখরাভ-

58

এফায াাআপরটয াঅউটট ডদগখ-

রগট এডাআ ডদখাপরচছ াঅপরযা াপরনক কাপরজ াঅগন টডপরকাড ফযফায কযপরত াপরযন ডযপাপরযনসাঃ httpcodexwordpressorgShortcode_API

59

াধযায়- নয়াঃ পলাগগন উদাযন

ওয়াডডপরেপরয ডডটটাাআভকপরভনট নামবায ফাাংরা কযায পলাগগন াঅভাপরক কপরয়কজন ফপররগিপররন ওয়াডডপরেপরয গডপলট ডডটটাাআভকপরভনট নামবায ফাাংরা য়না রযাাংগপরয়জ ফাাংরা কযায যও ডডটটাাআভকপরভনট নামবায গপররা াআাংপরযগজ ডথপরক মায় গনপরচয পলাগগনগট ফযফায কপরয ডদখপরত াপরযন- ltphp

Plugin Name Liton Bangla datetimecomment number

Plugin URI httpliton-onlinecomplugins

Description Bangla datetimecomment number

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

This function converts all english numbers to bangla number

function make_bangla_number($str)

$engNumber = array(1234567890)

$bangNumber = array( ১ ২ ৩ ৪ ৫ ৬ ৭ ৮ ৯ ০ ) $converted = str_replace($engNumber $bangNumber $str)

return $converted

add_filter( get_the_time make_bangla_number )

add_filter( the_date make_bangla_number )

add_filter( get_the_date make_bangla_number )

add_filter( comments_number make_bangla_number )

add_filter( get_comment_date make_bangla_number )

add_filter( get_comment_time make_bangla_number )

gt

60

সলাাআডায পলাগগন াঅভযা এাআ ফাআপরয়য কর গটউপরটাগযয়াপরর মা মা গখরাভ তা এফায একগট নডাাংগ পলাগগপরনয এপলাাআ কযফ সলাাআডায পলাগগন মপপরকড াঅভযা ফাাআ জাগন একগট ওপরয়ফাাআপরটয ডচাযা ারপরট ডদয় একগট সলাাআডায াপরনক ডাাআনাগভক ভপরন য় ডদখপরতও াপরনক বার রাপরগ এাআ পলাগগপরন াঅভযা এডগভন যাপরনর ডথপরক াআপরভজ ডমাগ কযফ এফাং তা াঅভাপরদয াাআপরট ডদখাফ চরন কাজ রর কগয- েথপরভ গনপরবা সলাাআডায এয ওপরয়ফাাআপরট মান এফাং jQuery Plugin ডাউনপররাড করন

ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom Version 10

gt

াঅভযা পলাগগপরনয ডডায ততগয কযরাভ

পলাগগন গরপরসট ডদখাপরচছ bdquoLitons Nivo Plugin‟ াঅভাপরদয েথভ কাজ পরচছ custom post

type ওয়াডডপরে পাাংনাগরগট একগট নতন কাসটভ ডজ ততগয কযপরত custom post type

ফযফহরত পরফ ডমখাপরন একগট াআপরভজ থাকপরফ াঅভযা রধ টাাআপরটর ডনভ এফাং াআপরভজ াঅপররাডায গপরপরফ গপচায াআপরভজ পাাংনাগরগট ফযফায কযফ function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_function 600 280 true)

61

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

add_action(init np_init)

উপরযয ডকাপরড np_init() পাাংনগট রক কপরযগি মা ডডায যান কযায াঅপরগ যান পরফ াঅয এজনয register_post_type() পাাংনপরক এয যাযাগভটায গদপরয় np_init() পাাংপরনয ডবতপরয মি কপরযগি এটা মগদ না কযতাভ তাপরর ldquoHeaders already sentrdquo ডভপরজ ডদখাত এাআ ডভপরজগটয াপরথ াপরনপরকাআ গযগচত াঅা কগয register_post_type() পাাংন গদপরয় াঅভযা াআপরভজ মি এফাং ভযাপরনজ কযফ ভরত াঅভযা একগট নতন custom post type ডমাগ কপরযগি np_images নাভ গদপরয় নতন custom post type ডক ডগটাং বযার গপরপরফ াঅযগপরভনট া কপরযগি $args ডবগযপরয়ফরগট ট ডরপরবর ডভন ততগয কপরয াঅপরগাআ ডদপরখগি পলাগগনগট এগকটপরবট কযপরর াঅভযা গনপরচয ভত ডদখপরত াফ-

এফায গিে এফাং সটাাআরীট ডক মি কযফ- add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

এফায রক কযা পাাংনগপররা গডপরিয়ায কগয- function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__) array( jquery ))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

62

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

উপরযয ডকাডগপররা নতন কপরয ফিডনা কযায গকি ডনাআ াঅপরগাআ wp_enqueue_style() এফাং wp_enqueue_script() মপপরকড ফরা পরয়পরি নতন াঅপরযকগট পাাআর ততগয করন একাআ গডপরযকটগযপরত scriptjs এফাং গনপরচয ডকাডটক গদন- jQuery(document)ready(function($)

$(slider)nivoSlider()

)

াআপরভজপরক গযাাআজ করন- add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

াঅভযা এাআ পলাগগনগটপরক উাআপরজট গপরপরফও ফযফায কযফ ডগট পরয ডদখফ াঅপরযকগট গজগন মগদ গথপরভ না ডদয়া থাপরক ডজনয থামবপরনাআর াপরাটড গদপরয় গদন- add_theme_support( post-thumbnails )

এফায ওয়াডডপরেপরয কাপরযনট ডাসট কপরয়যী কযায ডকাড াঅয $result ডবগযপরয়ফপরর ডমফ ltdivgt টযাগ ফযফায কযা পরয়পরি তা jQuery Plugin গট একসিাকট কপরয indexhtml ডজগটয ডভাআন সলাাআডায ডকাডগট ডদখন একাআ াঅপরি রধ ডখানকায ltdivgt টযাগ গপররাপরক কগ কপরয এাআ পলাগগপরন ফযফায কযা পরয়পরি এফায টডপরকাড গদন- add_shortcode(np-shortcode np_function)

এাআ টডপরকাড গএাআচগ পাাংনপরক রক কযপরফ এফাং এয ভধয ডথপরক সলাাআডপরায কনপরটনট ডক গযটানড কযপরফ াঅভাপরদয টডপরকাড পরচছ [np-shortcode] াঅভযা পলাগগপরন মাাআ এফাং একগট িগফ মি কগয গপচাযড াআপরভজ গপরপরফ গনপরচ ডদখন-

63

াঅগভ াঅপরযকগট ডজ ততগয কপরযগি ডমখাপরন টডপরকাড গদপরয়গি

াঅউটট ডজ ডদগখ এফায-

64

পরয় ডগর াঅভাপরদয সলাাআডায পলাগগন পরযা ডকাডগট গনপরচ গদরাভ- ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

65

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

66

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

এফায াঅগন মগদ উাআপরজট গপরপরফ ফযফায কযপরত চান তাপরর গনপরচয ডকাডটক গদন- class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

67

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

echo $after_widget

াঅপরযা রগট কাজ কযপরত পরফ াঅনাপরক এক াআপরভজ াাআজ উাআপরজট এয জনয গঠক কপরয গদপরত পরফ- add_image_size(np_widget 180 100 true)

াঅপরযকগট র উাআপরজট এযাকন রক ডমাগ কযা add_action(widgets_init np_widgets_init)

উাআপরজট পরযা ডকাড াঅফায গদরাভ- ltphp

Plugin Name Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Ciprian Turcu

Version 10

68

class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

69

echo $after_widget

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

70

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(widgets_init np_widgets_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

71

পলাগগন গনপরয় এত ডিাট গযপরয ডরখা মভফ নয় এজনযাআ ভপরন য় পলাগগন গনপরয় ডকউ ডরপরখন না কাযন এখাপরন এত গফলয় াঅপরি মা াঅপররাচনা কযপরত ডগপরর ৫০০ ডজ ায পরয় মাপরফ ডফাোয সগফধাপরথড াঅগভ মথামভফ উদাযন গদপরয় ডফাোপরনায ডচষটা কপরযগি াঅগভ এখাপরন টাপরগডট কপরযগি মাযা টকটাক জাপরন পলাগগন মপপরকড এডবানস ডরপরবপররয নয় কাযন তাযা জাপরনন াঅভায উপরেশয গির মাযা জানপরত চায় তাপরদযপরক জানাপরনা এখাপরন ডমফ গফলয় াঅপররাচনা কযা পরয়পরি তা ডভাটাভগট ভাপরনয একগট পলাগগন ফানাপরনায জনয মপরথষট তপরফ ভাপরনাননয়পরনয জনয াঅনাপরক গনপরজাআ খাপরজ গনপরত পরফ াঅনায জনয ডকানটা বার পরফ াঅগভ রধ গদক গনপরদডনা গদরাভ ভাতর এাআ ফাআগট রধভাতর ওয়াডডপরে রেপরয জনয ডরখা াপরনক বর ভরাগনত থাকপরত াপরয াঅনাযা কষভাসনদয দগষটপরত ডদখপরফন াঅগভ ডচষটা কপরযগি মতটা জ কপরয ডরখা মায় াপরনক ভয় ডদখা মায় ডম খফ ডিাট খাপরটা গফলয় গনপরয় াপরনপরকাআ নক কপরযন এটা গতয রাঃখজনক াঅনাযা গগপরর একট খাজপররাআ ভাধান াপরফন াঅপরগ গনপরজ ডচষটা করন তায পরয ানযপরক ভাধাপরনয জনয গজজঞাা করন াঅভায জনয ডদায়া কযপরফন বাপররা রাগপরর জানাপরফন খাযা রাগপররও জানাপরফন তাপররাআ াঅভায গযশরভ সবাথডক পরফ ভতাভত জাগনপরয় াঅভাপরক ডভাআর কযপরত াপরযন litonice09gmailcom |

72

Page 32: Wordpress Plugin Development

33

এফায াঅপরযকগট গথপরভ ডদগখ-

34

াধযায়- িয়াঃ পলাগগন পাাংন

গকি ডফগক পাাংন __() পাাংন

__() পাাংনগট গএাআচগপরত াঅনায ডটকসটপরক ডযগড কপরয িানসপররন এফাং গযটানড কপরয উদাযন গপরপরফ াঅগন একগট বযারপরক __() পাাংপরনয ভপরধয ডবগযপরয়ফর গদপরয় assign করন ভপরন যাখপরফন এাআ পাাংনগট রগট াঅনডাযপরিায(_) গদপরয় গগঠত একগট নয় ltphp

$text=__(bdquoWordpress is a wonderful publishing platform‟‟liton_plugin‟)

gt

_e() পাাংন _e() পাাংনগট াঅনায ডটকসবপরট ডরাকারাাআজ কপরয এটা গএাআচগপরত echo এয ভত কাজ কপরয ডকান ডটকসটপরক গিপরন ডদখাপরনায জনয এফায একট ভজা কগয মা রপরক ডদপরখগি াঅপরগাআ- _e() পাাংনগট গদপরয় াঅপরগয পলাগগনগট এগডট কযফ ltphp

Plugin Name Liton Action

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(wp_footer liton_footer_action)

function liton_footer_action()

Output the translated text

_e( This site runs off the coolest platform ever ampmdash

WordPress

liton-plugin )

gt

35

এফায াঅউটট ডদগখ

esc_attr__() পাাংন এাআ পাাংনগট esc_attr() এয ভত এগট এাআচগটএভএর এগিগফউটপরক escape কপরয াঅভযা এফায esc_attr__() এফাং __() এাআ রগট পাাংনপরক একগট কপরয পলাগগন ততগয কযফ ltphp

Plugin Name Liton Esc Attr

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

A function that returns a link to the sites terms of service

page

function liton_terms_of_service_link()

return lta href=httpliton-onlinecomtos title=

esc_attr__( Visit the Terms of Service page boj-plugin ) gt __( Terms of

Service liton-plugin ) ltagt

Display the output of the liton_terms_of_service_link()

function

echo liton_terms_of_service_link()

gt

পলাগগনগটয াঅউটট ডদখন-

36

এযকভ াঅপরযা গকি পাাংন াঅপরি ডমগপররা াঅনাযা ডদপরখ ডনপরফন াআনটাযপরনট ডঘপরট

esc_html__() Function

esc_attr() Function

esc_url() Function

esc_js() Function

esc_html() Function

esc_attr_e() Function

esc_html_e() Function

_x() Function

_ex() Function

esc_attr_x() Function

esc_html_x() Function

_n() Function

_nx() Function

_n_noop() Function

_nx_noop() Function

Translation

bull Poedit httppoeditnet

bull GlotPress httpglotpressorg

bull Launchpad httpstranslationslaunchpadnet

bull Pootle httppootlelocamotionorg

bull KBabel httpi18nkdeorg

bull GNU Gettext httpgnuorgsoftwaregettext

GlotPress এখন ওপরয়ফ ডফড টর গপরপরফ ফযফায কযা পরচছ ওয়াডডে েপরজপরকটয ডিপরন একজন াথফা গটপরভয জনয িানসপররগটাং পটওয়যায গপরপরফ

37

াধযায়- াতাঃ পলাগগন গগকউগযগট

গগকউগযগট কগমপউটাপরযয বালায় ldquoগগকউগযগটrdquo ভাপরন বীগতকয একগট বদ ডমভন Cross Site

Scripting(XSS) Cross Site Request Forgery(CSRF) SQL Injection Privilege

Escalation Vulnerabilities এফাং Holes রফডর ডকাড একগট াবডাপরযয সযকষায জনয রভকীয কাযন পরত াপরয

পলাগগপরনয গগকউগযগট গক াঅনায পলাগগনগট ডমন গগকউয য় vulnerabilities data integrity এফাং reliability ডথপরক

াঅনায পলাগগনপরক গক গগকউগযগট ডদপরফন ওয়াডডপরে এনবায়যনপরভপরনট াঅনায পলাগগনপরক গগকউগযগট ডদয়া খফ কগঠন কাজ নয় এফাং খফ ভয় াপরকষ গফলয়ও নয় ওয়াডডপরেপরয গনজসব গকি পাাংন এপরকষপরতর াঅনাপরক খফাআ াাময কযপরফ

াআউজায াযগভন াঅভযা াপরনক পলাগগন াআনসটর কযায পরযাআ ডদপরখগি ডম মখনাআ এডগভন যাপরনর এ েপরফ কযপরত মাাআ তখন একগট এযয ডভপরজ াঅপর ডভপরজগট গনপরচয ভত-

ডরখা াঅপরি- You do not have sufficient permissionshellip এটা গনশচয়তা ডদয় ডম ডমপরকান এযাকন ীভাফি থাপরক গনগদডষট গকি যাাআট গদপরয় ওয়াডডপরেপরয একগট কভন পাাংন র current_user_can() একগট উদাযন ডদাআ-

38

ltphp

Capability

if ( current_user_can(install_plugins) )

wp_die( Insufficient permissions )

Role

if( current_user_can(editor) )

wp_die( You cannot edit this setting )

gt

খফ তাড়াতাগড় াঅগন এাআ current_user_can() পাাংন ডচক কযপরফন না কাযন এটা গনবডয কযপরফ get_currentuserinfo() এাআ পাাংপরনয উপরয াঅয এয ফযফাপরয ীভাফিতা াঅপরি এটা একগট পলাপরগফর পাাংন(pluggable function) াঅয এয ডরাপরকন পরচছ wp-

includespluggablephp মা পলাগগন এগকটব ফায য ডরাড য়

Nonces

ডকউ এগটপরক াঅফায Nonsense( গনপরফডাধ) বাফপরফন নাএগট ওয়াডডপরেপরয বালায় Nonces কগমপউটাপরযয বালায় nonce ফা cryptographic nonce পরচছ ldquonumber used once rdquo এটা ডিাট এফাং সপষট গকি য যানডভ গসটরাং ডমভন- াওয়াডড মা গকি গনপরদড কপরয Nonce গপরডন গপলড পভডপরক Retrieve ফা display কপরয-

একজন ওয়াডডপরে াআউজায ডমপরকান একগট এযাকন (delete update save and such) একগট াফপরজকট(একগট ডাসট পলাগগন ডগটাং াআতযাগদ) ২৪ ঘনটায একগট ভয় ডিভ

ডমভন ডাসট 50 গডগরট কযপরফন াঅনায ওয়াডডপরে বলগ ডথপরক তাপরর াঅনায গরঙকগট পরফ এযকভ- httpexamplecomwp-admin

postphppost=43ampaction=trashamp_wpnonce=83a08fcbc2

এখাপরন 83a08fcbc2 এগট র nonce মা ২৪ ঘনটা সথায়ী থাপরক রধভাতর এগট মগদ াঅনায িাযা ফযফরত য় এফাং গডগরট য় ডাসট 50 মখন াঅগন গরপরঙক গিক কপরযন ফপরচপরয় গযতবনড র ডম Nonce ডকান malicious াআউজায ফেপরত াপরযনা এফাং গঠক গরঙক িাড়া nonce এযয ডপরজ চপরর মায় ডমখাপরন াযগভন থাপরক না াঅপরযা গফসতাগযত ডদখন httpcodexwordpressorgWordPress_Nonces

39

Nonce URL ততগয এফায চরন াঅপরগয উদাযন ডথপরক Nonce URL ততগয কগয একগট ডাসট গডগরট কযায জনয wp_nonce_url() পাাংন ফযফায কযা য় ltphp

$url = wp_nonce_url( $url $action )

gt

েথভ যাযাগভটায $url পরচছ গসটরাং URL এপরডর এয মাপরক াঅগন কপরয়যী গসটরাং এয Nonce কযপরত চান াফযফহরত পলাগগপরনয গডগরট গরঙক এযকভ থাপরক- httpexamplecomwp-admineditphppage= liton

_utagsampliton_action=deleteampid=6

এখাপরন ডদখন যাযাগভটায liton_action এফাং এয টযাগ াঅাআগড গিতীয় যাযাগভটায পরচছ $action একগট গসটরাং মা াঅগন একগট াফপরজকট এয জনয একগট action ততগয কযপরফন উপরয ডদখরাভ delete এযাকন এয টযাগ াঅাআগড 6 সতযাাং $action যাযাগভটায পরত াপরয bdquoliton_utags-delete_tag6‟ গনপরচ ফাসতফ উদাযন ডদগখ- ltphp

$delete_url = add_query_arg(array( liton _action=gtdeleteid=gt$id) )

$nonced_url = wp_nonce_url( $delete_url bdquoliton _utags-delete_tag$id )

gt

lta href=ltphp echo $nonced_url gtgtdeleteltagt

এাআ টযাগগট পরফ গডগরট গরঙক এখাপরন add_query_arg() পাাংন ফযফায কযা পরয়পরি মা কাপরযনট URL ডক এযাপরয যাযাগভটায এয ভপরধয যাপরখ ানযবাপরফ ফরপরর এগট ডমাগ কপরয এযকভাঃ liton_action=deleteampid=6 amp liton_action=deleteampid=6

Nonce Form ততগয Nonce পভডপরকও ডোপরটকট কপরয wp_nonce_field() পাাংপরনয ভাধযপরভ ltphp

wp_nonce_field( $action $name $referer $echo ) gt

$action ( string) (optional) - action নাভ াআউগনক identifier optional

গকনত recommended $name (string) (optional) ndash গপরডন গপলড পভড ডবগযপরয়ফর নাভ $referer (boolean) (optional) ndash গডপলট গপরপরফ true থাপরক ডমখাপরন গপলড

ডবগরপরডন এয দযকায য়

40

$echo (boolean) (optional) - গডপলট গপরপরফ true থাপরক ডমখাপরন াঅউটট ডদখাপরনায ফা গপরডন পভড গপলড গযটানড কযায জনয দযকায য়

পপরভড াঅনায action এয নাভ গদন ltform method=postgt

lt-- some inputs here --gt

ltphp wp_nonce_field(name_of_my_actionname_of_nonce_field) gt

ltformgt

াঅভযা একগট পলাগগন ফানাপরফা ডমখাপরন াফযফরত টযাগগপররাপরক াঅভযা ভযানয়াগর গডগরট ফা গযপরনভ কযপরত াযফ এগট একট ফড় গকনত াপরনক গফলয়াআ াঅপরগাআ াঅপররাচনা কযা পরয়পরি ডদখপররাআ ফেপরত াযপরফন একগট ফাসতফধভডী উদাযন গনপরচ গদরাভ- ltphp

Plugin Name Liton Unused Tags

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add an entry for our option page to the Posts menu

add_action(admin_menu liton_utags_add_page)

function liton_utags_add_page()

add_posts_page( Unused Tags Unused Tagsmanage_optionsliton_utags

liton_utags_option_page )

Catch any liton_action parameter in query string

add_action( admin_init liton_utags_do_action )

Proceed to requested liton_action if applicable

function liton_utags_do_action()

if( isset( $_REQUEST[liton_action] ) )

return

if( current_user_can( manage_options ) )

wp_die( Insufficient privileges )

41

$id = $_REQUEST[id]

$action = $_REQUEST[liton_action]

if( $action == done )

add_action( admin_notices liton_utags_message )

return

check_admin_referer( liton_utags-$action_tag$id )

switch( $action )

case rename

$newtag = array( name =gt $_POST[name] slug =gt

$_POST[name] )

wp_update_term( $id post_tag $newtag )

break

case delete

wp_delete_term( $id post_tag )

break

wp_redirect( add_query_arg( array( liton_action =gt done )

) )

Admin notice

function liton_utags_message()

echo ltdiv class=updatedgtltpgtAction

completedltpgtltdivgt

Draw the tag management page

function liton_utags_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtUnused Tagslth2gt

ltphp

if( $tags = liton_utags_find_orphans() )

echo ltpgtYou currently have count( $tags ) unused

tagsltpgt

echo ltolgt

foreach( $tags as $tag )

42

$id = $tag-gtterm_id

$name = esc_attr( $tag-gtname )

$delete_url= add_query_arg(

array(liton_action=gtdeleteid=gt$id) )

$nonced_url= wp_nonce_url( $delete_url

liton_utags-delete_tag$id )

gt

ltligt

ltform action= method=postgt

ltphp wp_nonce_field( liton_utags-rename_tag$id )

gt

ltinput type=hidden name=liton_action

value=rename gt

ltinput type=hidden name=id value=ltphp echo

$id gt gt

ltinput type=text name=name value=ltphp echo

$name gt gt

ltinput type=submit value=Rename gt or

lta href=ltphp echo $nonced_url gtgtdeleteltagt

this tag

ltformgt

ltligt

ltphp

else gt

ltpgtYou have no unused tagsltpgt

ltphp endif gt

ltolgt

ltdivgt

ltphp

Find unused tags return them in an array

function liton_utags_find_orphans()

global $wpdb

$sql = SELECT termsterm_id termsname FROM

$wpdb-gtterms terms

INNER JOIN $wpdb-gtterm_taxonomy taxo

ON termsterm_id=taxoterm_id

WHERE taxotaxonomy = post_tag

43

AND taxocount=0

return $wpdb-gtget_results( $sql )

gt

ডযাপরফাপরডড এাআ পলাগগপরনয ডভন াওয়া মাপরফ ডাসট এয াফপরভন গপরপরফ গনপরচ ডদখন-

এফায পলাগগন ডভনপরত গিক কপরয ডদগখ পলাগগপরনয ডবতপরযয কাজ-

উপরয ডদখন াঅগভ একগট টযাগ ততগয কপরযগিরাভ l i নাপরভ এগট এখাপরন ডদখাপরচছ াঅগভ চাাআপরর এগট এগডট ফা গডগরট কযপরত াগয এফায গডগরট গরঙক এ ভাউপরয কাডয ডযপরখ গনপরচ গরঙক ডদখন ফা গডগরট করন একগট টযাগ াঅভায এখাপরন URL গট এযকভ httplocalhostdev-litonwp-

admineditphppage=liton_utagsampliton_action=doneampid=4amp_wpnonce=30a44b7

986

এখাপরন াঅগভ liton_action=done ফযফায কপরযগি Nonces এয পাাংনগপররায নাভ গনপরচ গদরাভ াঅনাযা ডদপরখ গনপরফন াআনটাযপরনট ডথপরক wp_nonce_field()

wp_nonce_url()

wp_verify_nonce()

wp_create_nonce()

44

check_admin_referer()

check_ajax_referer()

ডাটাপরফ াঅনাযা ডমপরত গএাআচগ গনপরয় কাজ কপরযন এগকউএর ডাটাপরফ এয াপরথ ফাাআ কভপরফী গযগচত এয গনটযাকস গপররা ডভাটাভগট ফায জানা একাআ বাপরফ াপরনপরকাআ ওয়াডডপরেপরও ডাটাপরফ ডকাড গরপরখন এটা ডকাগডাং এয জনয খাযা গদক াঅগভ নযভার গএাআচগ- এগকউএর ডকাড এয উদাযন গদগচছ- ltphp

$sql=rdquoINSERT INTO $wpdb-gtposts(post_title) VALUES(bdquo$title‟)rdquo

$wpdb-gtquery($sql) gt

এফায ওয়াডডপরেপরয সটযানডাডড ডকাগডাং গপরসটভ ডদখন- ltphp

$wpdb-gtinsert($wpdb-gtposts

array(bdquopost_title‟ =gt $title)

array(bdquos‟)

)

gt

ডাটাপরফ গগকউয কযায জনয াঅপরডট াাপরযন ডদখাফ- গনপরচয ডকাডগট খাযা েযাকগট ltphp

$wpdb-gtquery(ldquoUPDATE $wpdb-gtposts SET post_title=‟$newTitle‟ WHERE

ID=$my_idrdquo )

gt

উপরযয ভত কপরয না গরপরখ গনপরচয ভত কপরয গরখন- ltphp

$wpdb-gtupdate($wpdb-gtposts

Array(bdquopost_title‟ =gt‟$newTitle‟)

Array(bdquoID‟ =gt$my_id

)

gt

ানর বাপরফ ানযানয াাপরযন গপররা গরখপরফন

45

াধযায়- াঅটাঃ ডরাকারাাআপরজন এফাং Set t i ngs API

ডরাকারাাআপরজন ডরাকারাাআপরজন একগট গরতবনড গফলয় এয পাাংনগপররা র- load_theme_textdomain()

load_plugin_textdomain()

উদাযন- ltphp $var=__(bdquoHello‟‟domain‟) gt

ltphp _e(bdquoHello‟‟domain‟) gt

গফসতাগযত গনপরচয গরপরঙক ডদখন- httpcodexwordpressorgI18n_for_WordPress_Developers

ডগটাং API

ডগটাং API পরচছ াঅগন গকি ান ততগয কযপরফন মা াআনটাযনার বাপরফ াঅনায পলাগগপরন এপলাাআ পরফ মখন াঅগন াআউজায- গডপাাআন ান ততগয কযপরফন াঅনায পলাগগপরনয জনয তখন Settings

API ndashএ াঅনায ডকাড মতটা ারন জ করন Settings API াঅনায ডম কাজগপররা handle কপরয-

ওয়াডডপরেপরক জাগনপরয় ডদয় ডম াঅগন গনজসব ান ফযফায কযপরফন াঅনায াআনটপরক পাাংপরনয ভপরধয উপরেখ কযপরফ ডফগয বাগ ান ডজ গনপরজাআ ততগয কযপরফ $_POST ডাটা গপররাপরক ভগনটয কপরয ান ততগয এফাং াঅপরডট কপরয(মগদ েপরয়াজন য়)

Settings API পাাংন Settings API পাাংপরন গতনগট ডসট থাপরক- ১ েথপরভ ওয়াডডপরেপরক ফপরর ডম াঅগন নতন ডগটাং ফযফায কযপরফন াঅনায পলাগগপরনয জনয ২ এয পরয ডগটাং গডপাাআন করন (text areas input boxes and any

HTML form element) এফাং এপরদযপরক একাপরথ রে কপরয যাপরখ ৩ ওয়াডডপরেপরক াঅনায ডগটাং actual form এ ডদখাপরনায জনয ফপরর

46

এফায াঅভযা একগট পলাগগন ফানাপরফা Administration Page ndashএ ডযপাপরযনস গপরপরফ ডদখপরত াপরযন- httpcodexwordpressorgAdding_Administration_Menus

httpcodexwordpressorgFunction_Referenceadd_options_page

httpcodexwordpressorgAction_ReferenceActions_Run_During_an_Admin_P

age_Request

পলাগগপরনয এডগভন ডজ পরফ এযকভ- httpexamplecomwp-adminoptions-generalphppage=liton_myplugin

েথপরভ াঅভযা ডভন ততগয কযফ াঅপরগয ভত কপরয- Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

এফায ান ডজ এ পভড গনপরয় গকি ডগটাং ডদফ function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

উপরযয ডকাপরড াঅভযা একগট পপরভডয ভপরধয রধ াফগভট ফাটন এফাং My Plugin নাপরভ ডজ ততগয কপরযগি ডযাপরফাপরডড ডদখন-

47

ডগটাং এয াফ ডভন গপরপরফ My Plugin াঅপরি এফাং My Plugin ডত গিক কযপরর াঅভযা উপরযয ডজ ততগয কপরযগি ডমখাপরন াফগভট ফাটনগট ডদখাপরচছ এফায গতনগট যাযাগভটায ডযগজসটায কযফ- ltphp

register_setting( liton _myplugin_options liton _myplugin_options liton

_myplugin_validate_options)

gt

েথভগট ডগটাং রেপরয নাভ গিতীয়গট ান নাভ মা াঅভযা get_option() পাাংন গদপরয়ও ডপরত াগয ততীয়গট করফযাক পাাংন এগট একগট গসটরাং ডযপাপরযনস পাাংন এখাপরন াঅভযা নাভ

48

গদপরয়গি liton _myplugin_validate_options মা া কযপরফ পপরভডয কর ডব ডগটাং াঅভযা এটা পরয গডপাাআন কযফ

ডগটাং গডপাাআন ডকন add_settings_field() এফাং add_settings_section() পাাংন গদপরয় াঅভযা াঅভাপরদয কর ডগটাং গডপাাআন কযফ ltphp

add_settings_section( liton_myplugin_main My Plugin Settings

liton_myplugin_section_text liton _myplugin)

add_settings_field( liton _myplugin_text_string Enter text here

liton _myplugin_setting_input liton _myplugin liton _myplugin_main)

gt

add_settings_section() পাাংন গদপরয় াঅভযা ডদখাফ াঅপরর ডজ এ ডকন ডকভন ডদখাপরফ এয চাযগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ ডকন টাাআপরটর ltH3gt টযাপরগয ভপরধয করফযাক পাাংন এয নাভ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ (page= liton _myplugin এগট

URL এয াাং গপরপরফ থাকপরফ) গিতীয় যাযাগভটায add_settings_field() পপরভডয াআনট গপরপরফ ডদখাপরনা পরয়পরি এখাপরন াাচগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ পরযয গপপরলড গক গেনট কযা পরফ তা ডটকসট গপরপরফ ডদখাপরনা পরয়পরি(Enter text

here)

করফযাক পাাংন পপরভড গেনট কযপরফ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ ডগটাং ডপরজয ডকন গপলড মা add_settings_section() পাাংপরন গডপাাআন

কযা পরয়পরি ltphp

Explanations about this section

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

49

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton _myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name= liton _myplugin_options[text_string]

type=text value=$options[text_string] gt

gt

গিতীয় পাাংন ান বযার text_string ডক এযাপরযপরত ডসটায কপরয ডযপরখপরি এফায াআউজায াআনট বযাগরপরডট কযফ- ltphp

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace([^a-zA-Z]$input[text_string] )

return $valid

gt

পভডপরক ডযনডায কযফ- ltphp

Draw the options page

function liton_myplugin_options_page()

gt

ltdiv class=wrapgt

ltphp

screen_icon()

gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp

settings_fields( liton_myplugin_options)

do_settings_sections(liton_myplugin)

50

gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

settings_fields() পাাংনগট ডযপাপরযনস গপরপরফ ফযফায কযা পরয়পরি মা াঅভযা register_setting() পাাংপরন গডপরিয়ায কপরযগি do_settings_sections() পাাংনগট কর কযপরফ কর াঅউটট ডকন এফাং পভড গপলডপরক মা াঅভযা পরফড গডপাাআন কপরযগি াঅভাপরদয কাজ ডল এফায পরযা পলাগগনগট ডদখফ- ltphp

Plugin Name Settings API example

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

Draw the option page

function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save

Changes gt

ltformgtltdivgt

ltphp

51

Register and define the settings

add_action(admin_init liton_myplugin_admin_init)

function liton_myplugin_admin_init()

register_setting( liton_myplugin_options

liton_myplugin_options

liton_myplugin_validate_options )

add_settings_section( liton_myplugin_main My Plugin

Settings

liton_myplugin_section_text liton_myplugin )

add_settings_field( liton_myplugin_text_string Enter text

here

liton_myplugin_setting_input liton_myplugin

liton_myplugin_main )

Draw the section header

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton_myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name=liton_myplugin_options[text_string]

type=text value=$text_string gt

Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

return $valid

gt

52

ডদখন ডযাপরফাপরডড ডকভন ডদখায়-

পরয় ডগর াঅভাপরদয েথভ নডাাংগ পলাগগন ান ডজ াঅপরযকগট গজগন ডমটায জনয এতগকি পলাগগন URL এপরডর- httplocalhostdev-litonwp-adminoptions-

generalphppage=liton_mypluginampsettings-updated=true

াঅভায এখাপরন এযকভ ডদখাপরচছ ডটকসট ফপরকস ডকান গকি গরপরখ ডব কযায য এফাপরয াঅপরযকগট গজগন ডদখফ াঅভযা াপরনক ভয়াআ াপরনক পলাগগপরনয াআনট গপপরলড বর ডাটা াআনট কযপরর এযয ডভপরজ ডদখায় এাআ কাজগট কযফ এফায াঅভযা এখাপরন esc_attr() ফা esc_html() ফযফায কগযগন সতযাাং াঅভাপরদয গরগভপরটন থাকপরি ডবগরপরডট পাাংনগট একট এগডট কগয গনপরচয ভত কপরয Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

if( $valid[text_string] = $input[text_string] )

add_settings_error(liton_myplugin_text_stringliton_myplugin_texterror

53

Incorrect value enterederror)

return $valid

উপরয ডদখন add_settings_error() পাাংন ফযফায কপরযগি মা এযয ডচক কযপরফ পপরভডয াঅগভ একগট বর ডাটা(পরসপার কযাপরযকটায) াআনট কপরয ডদখরাভ এযয ডদখাপরচছ-

তায ভাপরন াঅভযা পর পরয়গি াঅনায পলাগগনগট এগডট কপরয ডনপরফন ডকায ডকন এফাং গপপরলডয গরসট গদরাভ াঅনাপরদয সগফধায জনয

54

CSSJS পাাআর মি কযা

াঅনায পলাগগপরন গএএ ফা জাবাগিে ডমাগ কযপরত পরত াপরয াঅগন চাাআপরর ফাগপরযয ডকান ফা াঅনায ততগয ডকান গএএ ফা জাবাগিে পাাআর ডমাগ কযপরত াপরযন তপরফ এপরকষপরতর াঅভযা ডমবাপরফ HTML এ পাাআর ডমাগ কগয ডযকভ না function liton_scripts()

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtojqueryjsrdquogtltscriptgt‟

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtoscriptjsrdquogtltscriptgt‟

add_action(bdquowp_head‟‟liton_scripts‟)

এগট মপনডরপর বর িগত গনপরচ ডদখন ওয়াডডপরেপর গকবাপরফ পাাআর মি কযপরত য়- function liton_scripts()

wp_enqueue_script(bdquojquery‟)

wp_enqueue_script(bdquotheme-scripts‟‟pathtoscriptsjs‟)

add_action(bdquowp_enqueue_script‟‟liton_scripts‟)

ানর বাপরফ াঅগন সটাাআরীট ডমাগ কযপরত াপরযন- function liton_styles()

wp_enqueue_ style (bdquocss‟)

wp_enqueue_ style (bdquotheme- styles‟pathto stylescss‟)

ডযপাপরযনস ডদখন- httpcodexwordpressorgFunction_Referencewp_enqueue_script

httpcodexwordpressorgFunction_Referencewp_enqueue_style

টডপরকাড টডপরকাড পরচছ ওয়াডডপরেপরয ডসপগগপক ডসপার টযাগ মা াঅগন ডাসট ফা ডপরজয ভপরধয াআনাটড কপরয ানয ডকান কনপরটনটপরক ওপরয়ফাাআপরটয ভপরধয গযপরপল কযপরত াযপরফন মগদ াঅগন গযারাগয টাাআপরয ডকান পলাগগন ফযফায কপরয থাপরকন তাপরর াঅনায ধাযনা থাকায কথা মাাআ ডাক াঅগভ কপরয়কগট উদাযি ডদখাফ

55

েথপরভ একগট পলাগগন ততগয কযফ ডমখাপরন add_shortcode() নাপরভয একগট পাাংন থাকপরফ এগট রগট যাযাগভটায েন কপরয েথভগট টডপরকাপরডয নাভ গিতীয়গট ডম পাাংনপরক কর কযপরফন ডগট াঅভযা একগট উদাযন ডদগখ- ltphp

Plugin Name Liton Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(litonhi)

function hi()

echo Hello World

gt

উপরয ডদখন খফ ডিাট গকনত াঅগন চাাআপরর এয ফযফায াপরনক গফসতত কযপরত াপরযন এখাপরন টডপরকাড নাভ পরচছ liton াঅয এগটপরক ডরখা য় এবাপরফ [liton] াঅভযা ডাপরসটয ভপরধয াআনাটড কপরয ডদগখ াঅউটট ডকভন ডদখায়-

এফায াঅউটট ডদগখ-

56

াঅভাপরদয ততগয কযা টডপরকাড পরবাপরফাআ কাজ কযপরি াঅপরযকগট উদাযন ডদখফ াঅনাযা াপরনপরকাআ গগর এডপরনস গনপরয় কাজ কপরযন াঅনাযা াপরনপরকাআ এডপরনস এয জনয পলাগগন ফযফায কপরযন গকনত চাাআপররাআ এাআ কাজগট াঅনাযা গনপরজয ভত কপরয াগজপরয় গনপরত াপরযন গগপররয কাপরি ফ ডাসট বযার ায়না াঅনাযা মাযা একসাটড াঅপরিন তাযা এটা বার কপরয জাপরনন তাাআ াপরনপরকাআ গগপররয ডকাড ফ ডপরজ ডদখাপরত চান না এজনয পলাগগন ফযফায কপরয রাব য়না কাযন পলাগগপরন জায়গা গপকসড থাপরক এপরত কপরয াঅগনডাং ও কভ য় াঅনাযা টডপরকাড ফযফায কপরয ডমপরকান জায়গায় এড ডদখাপরত াপরযন গনপরচ াঅগভ রগট টডপরকাড ততগয কপরযগি র‟ধযপরনয এড ডদখাপরনায জনয ltphp

Plugin Name Liton Adsense Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(adsense_468adsense_468_60)

add_shortcode(adsense_250adsense_250_250)

function adsense_468_60($atts)

return ltscript type=textjavascriptgtlt--

57

google_ad_client = ca-pub-0956247412222369

468x60 created 101510

google_ad_slot = 4372705450

google_ad_width = 468

google_ad_height = 60

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

function adsense_250_250($atts)

return ltscript type=textjavascriptgtlt--

google_ad_client = ca-pub-0956247412222369

250x250 created 81809

google_ad_slot = 9368091893

google_ad_width = 250

google_ad_height = 250

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

gt

একগট টডপরকাড ফযানায টাাআপরয জনয এফাং াঅপরযকগট ২৫০২৫০ াাআপরজয এফায ডাপরসট ডমপরকান একগট টডপরকাড াআনাটড করন ডমখাপরন াঅনায ডদখাপরনায েপরয়াজন ভপরন কপরযন াঅগভ রগট ডকাড ডটসট কপরয ডদখরাভ-

58

এফায াাআপরটয াঅউটট ডদগখ-

রগট এডাআ ডদখাপরচছ াঅপরযা াপরনক কাপরজ াঅগন টডপরকাড ফযফায কযপরত াপরযন ডযপাপরযনসাঃ httpcodexwordpressorgShortcode_API

59

াধযায়- নয়াঃ পলাগগন উদাযন

ওয়াডডপরেপরয ডডটটাাআভকপরভনট নামবায ফাাংরা কযায পলাগগন াঅভাপরক কপরয়কজন ফপররগিপররন ওয়াডডপরেপরয গডপলট ডডটটাাআভকপরভনট নামবায ফাাংরা য়না রযাাংগপরয়জ ফাাংরা কযায যও ডডটটাাআভকপরভনট নামবায গপররা াআাংপরযগজ ডথপরক মায় গনপরচয পলাগগনগট ফযফায কপরয ডদখপরত াপরযন- ltphp

Plugin Name Liton Bangla datetimecomment number

Plugin URI httpliton-onlinecomplugins

Description Bangla datetimecomment number

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

This function converts all english numbers to bangla number

function make_bangla_number($str)

$engNumber = array(1234567890)

$bangNumber = array( ১ ২ ৩ ৪ ৫ ৬ ৭ ৮ ৯ ০ ) $converted = str_replace($engNumber $bangNumber $str)

return $converted

add_filter( get_the_time make_bangla_number )

add_filter( the_date make_bangla_number )

add_filter( get_the_date make_bangla_number )

add_filter( comments_number make_bangla_number )

add_filter( get_comment_date make_bangla_number )

add_filter( get_comment_time make_bangla_number )

gt

60

সলাাআডায পলাগগন াঅভযা এাআ ফাআপরয়য কর গটউপরটাগযয়াপরর মা মা গখরাভ তা এফায একগট নডাাংগ পলাগগপরনয এপলাাআ কযফ সলাাআডায পলাগগন মপপরকড াঅভযা ফাাআ জাগন একগট ওপরয়ফাাআপরটয ডচাযা ারপরট ডদয় একগট সলাাআডায াপরনক ডাাআনাগভক ভপরন য় ডদখপরতও াপরনক বার রাপরগ এাআ পলাগগপরন াঅভযা এডগভন যাপরনর ডথপরক াআপরভজ ডমাগ কযফ এফাং তা াঅভাপরদয াাআপরট ডদখাফ চরন কাজ রর কগয- েথপরভ গনপরবা সলাাআডায এয ওপরয়ফাাআপরট মান এফাং jQuery Plugin ডাউনপররাড করন

ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom Version 10

gt

াঅভযা পলাগগপরনয ডডায ততগয কযরাভ

পলাগগন গরপরসট ডদখাপরচছ bdquoLitons Nivo Plugin‟ াঅভাপরদয েথভ কাজ পরচছ custom post

type ওয়াডডপরে পাাংনাগরগট একগট নতন কাসটভ ডজ ততগয কযপরত custom post type

ফযফহরত পরফ ডমখাপরন একগট াআপরভজ থাকপরফ াঅভযা রধ টাাআপরটর ডনভ এফাং াআপরভজ াঅপররাডায গপরপরফ গপচায াআপরভজ পাাংনাগরগট ফযফায কযফ function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_function 600 280 true)

61

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

add_action(init np_init)

উপরযয ডকাপরড np_init() পাাংনগট রক কপরযগি মা ডডায যান কযায াঅপরগ যান পরফ াঅয এজনয register_post_type() পাাংনপরক এয যাযাগভটায গদপরয় np_init() পাাংপরনয ডবতপরয মি কপরযগি এটা মগদ না কযতাভ তাপরর ldquoHeaders already sentrdquo ডভপরজ ডদখাত এাআ ডভপরজগটয াপরথ াপরনপরকাআ গযগচত াঅা কগয register_post_type() পাাংন গদপরয় াঅভযা াআপরভজ মি এফাং ভযাপরনজ কযফ ভরত াঅভযা একগট নতন custom post type ডমাগ কপরযগি np_images নাভ গদপরয় নতন custom post type ডক ডগটাং বযার গপরপরফ াঅযগপরভনট া কপরযগি $args ডবগযপরয়ফরগট ট ডরপরবর ডভন ততগয কপরয াঅপরগাআ ডদপরখগি পলাগগনগট এগকটপরবট কযপরর াঅভযা গনপরচয ভত ডদখপরত াফ-

এফায গিে এফাং সটাাআরীট ডক মি কযফ- add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

এফায রক কযা পাাংনগপররা গডপরিয়ায কগয- function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__) array( jquery ))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

62

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

উপরযয ডকাডগপররা নতন কপরয ফিডনা কযায গকি ডনাআ াঅপরগাআ wp_enqueue_style() এফাং wp_enqueue_script() মপপরকড ফরা পরয়পরি নতন াঅপরযকগট পাাআর ততগয করন একাআ গডপরযকটগযপরত scriptjs এফাং গনপরচয ডকাডটক গদন- jQuery(document)ready(function($)

$(slider)nivoSlider()

)

াআপরভজপরক গযাাআজ করন- add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

াঅভযা এাআ পলাগগনগটপরক উাআপরজট গপরপরফও ফযফায কযফ ডগট পরয ডদখফ াঅপরযকগট গজগন মগদ গথপরভ না ডদয়া থাপরক ডজনয থামবপরনাআর াপরাটড গদপরয় গদন- add_theme_support( post-thumbnails )

এফায ওয়াডডপরেপরয কাপরযনট ডাসট কপরয়যী কযায ডকাড াঅয $result ডবগযপরয়ফপরর ডমফ ltdivgt টযাগ ফযফায কযা পরয়পরি তা jQuery Plugin গট একসিাকট কপরয indexhtml ডজগটয ডভাআন সলাাআডায ডকাডগট ডদখন একাআ াঅপরি রধ ডখানকায ltdivgt টযাগ গপররাপরক কগ কপরয এাআ পলাগগপরন ফযফায কযা পরয়পরি এফায টডপরকাড গদন- add_shortcode(np-shortcode np_function)

এাআ টডপরকাড গএাআচগ পাাংনপরক রক কযপরফ এফাং এয ভধয ডথপরক সলাাআডপরায কনপরটনট ডক গযটানড কযপরফ াঅভাপরদয টডপরকাড পরচছ [np-shortcode] াঅভযা পলাগগপরন মাাআ এফাং একগট িগফ মি কগয গপচাযড াআপরভজ গপরপরফ গনপরচ ডদখন-

63

াঅগভ াঅপরযকগট ডজ ততগয কপরযগি ডমখাপরন টডপরকাড গদপরয়গি

াঅউটট ডজ ডদগখ এফায-

64

পরয় ডগর াঅভাপরদয সলাাআডায পলাগগন পরযা ডকাডগট গনপরচ গদরাভ- ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

65

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

66

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

এফায াঅগন মগদ উাআপরজট গপরপরফ ফযফায কযপরত চান তাপরর গনপরচয ডকাডটক গদন- class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

67

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

echo $after_widget

াঅপরযা রগট কাজ কযপরত পরফ াঅনাপরক এক াআপরভজ াাআজ উাআপরজট এয জনয গঠক কপরয গদপরত পরফ- add_image_size(np_widget 180 100 true)

াঅপরযকগট র উাআপরজট এযাকন রক ডমাগ কযা add_action(widgets_init np_widgets_init)

উাআপরজট পরযা ডকাড াঅফায গদরাভ- ltphp

Plugin Name Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Ciprian Turcu

Version 10

68

class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

69

echo $after_widget

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

70

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(widgets_init np_widgets_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

71

পলাগগন গনপরয় এত ডিাট গযপরয ডরখা মভফ নয় এজনযাআ ভপরন য় পলাগগন গনপরয় ডকউ ডরপরখন না কাযন এখাপরন এত গফলয় াঅপরি মা াঅপররাচনা কযপরত ডগপরর ৫০০ ডজ ায পরয় মাপরফ ডফাোয সগফধাপরথড াঅগভ মথামভফ উদাযন গদপরয় ডফাোপরনায ডচষটা কপরযগি াঅগভ এখাপরন টাপরগডট কপরযগি মাযা টকটাক জাপরন পলাগগন মপপরকড এডবানস ডরপরবপররয নয় কাযন তাযা জাপরনন াঅভায উপরেশয গির মাযা জানপরত চায় তাপরদযপরক জানাপরনা এখাপরন ডমফ গফলয় াঅপররাচনা কযা পরয়পরি তা ডভাটাভগট ভাপরনয একগট পলাগগন ফানাপরনায জনয মপরথষট তপরফ ভাপরনাননয়পরনয জনয াঅনাপরক গনপরজাআ খাপরজ গনপরত পরফ াঅনায জনয ডকানটা বার পরফ াঅগভ রধ গদক গনপরদডনা গদরাভ ভাতর এাআ ফাআগট রধভাতর ওয়াডডপরে রেপরয জনয ডরখা াপরনক বর ভরাগনত থাকপরত াপরয াঅনাযা কষভাসনদয দগষটপরত ডদখপরফন াঅগভ ডচষটা কপরযগি মতটা জ কপরয ডরখা মায় াপরনক ভয় ডদখা মায় ডম খফ ডিাট খাপরটা গফলয় গনপরয় াপরনপরকাআ নক কপরযন এটা গতয রাঃখজনক াঅনাযা গগপরর একট খাজপররাআ ভাধান াপরফন াঅপরগ গনপরজ ডচষটা করন তায পরয ানযপরক ভাধাপরনয জনয গজজঞাা করন াঅভায জনয ডদায়া কযপরফন বাপররা রাগপরর জানাপরফন খাযা রাগপররও জানাপরফন তাপররাআ াঅভায গযশরভ সবাথডক পরফ ভতাভত জাগনপরয় াঅভাপরক ডভাআর কযপরত াপরযন litonice09gmailcom |

72

Page 33: Wordpress Plugin Development

34

াধযায়- িয়াঃ পলাগগন পাাংন

গকি ডফগক পাাংন __() পাাংন

__() পাাংনগট গএাআচগপরত াঅনায ডটকসটপরক ডযগড কপরয িানসপররন এফাং গযটানড কপরয উদাযন গপরপরফ াঅগন একগট বযারপরক __() পাাংপরনয ভপরধয ডবগযপরয়ফর গদপরয় assign করন ভপরন যাখপরফন এাআ পাাংনগট রগট াঅনডাযপরিায(_) গদপরয় গগঠত একগট নয় ltphp

$text=__(bdquoWordpress is a wonderful publishing platform‟‟liton_plugin‟)

gt

_e() পাাংন _e() পাাংনগট াঅনায ডটকসবপরট ডরাকারাাআজ কপরয এটা গএাআচগপরত echo এয ভত কাজ কপরয ডকান ডটকসটপরক গিপরন ডদখাপরনায জনয এফায একট ভজা কগয মা রপরক ডদপরখগি াঅপরগাআ- _e() পাাংনগট গদপরয় াঅপরগয পলাগগনগট এগডট কযফ ltphp

Plugin Name Liton Action

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_action(wp_footer liton_footer_action)

function liton_footer_action()

Output the translated text

_e( This site runs off the coolest platform ever ampmdash

WordPress

liton-plugin )

gt

35

এফায াঅউটট ডদগখ

esc_attr__() পাাংন এাআ পাাংনগট esc_attr() এয ভত এগট এাআচগটএভএর এগিগফউটপরক escape কপরয াঅভযা এফায esc_attr__() এফাং __() এাআ রগট পাাংনপরক একগট কপরয পলাগগন ততগয কযফ ltphp

Plugin Name Liton Esc Attr

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

A function that returns a link to the sites terms of service

page

function liton_terms_of_service_link()

return lta href=httpliton-onlinecomtos title=

esc_attr__( Visit the Terms of Service page boj-plugin ) gt __( Terms of

Service liton-plugin ) ltagt

Display the output of the liton_terms_of_service_link()

function

echo liton_terms_of_service_link()

gt

পলাগগনগটয াঅউটট ডদখন-

36

এযকভ াঅপরযা গকি পাাংন াঅপরি ডমগপররা াঅনাযা ডদপরখ ডনপরফন াআনটাযপরনট ডঘপরট

esc_html__() Function

esc_attr() Function

esc_url() Function

esc_js() Function

esc_html() Function

esc_attr_e() Function

esc_html_e() Function

_x() Function

_ex() Function

esc_attr_x() Function

esc_html_x() Function

_n() Function

_nx() Function

_n_noop() Function

_nx_noop() Function

Translation

bull Poedit httppoeditnet

bull GlotPress httpglotpressorg

bull Launchpad httpstranslationslaunchpadnet

bull Pootle httppootlelocamotionorg

bull KBabel httpi18nkdeorg

bull GNU Gettext httpgnuorgsoftwaregettext

GlotPress এখন ওপরয়ফ ডফড টর গপরপরফ ফযফায কযা পরচছ ওয়াডডে েপরজপরকটয ডিপরন একজন াথফা গটপরভয জনয িানসপররগটাং পটওয়যায গপরপরফ

37

াধযায়- াতাঃ পলাগগন গগকউগযগট

গগকউগযগট কগমপউটাপরযয বালায় ldquoগগকউগযগটrdquo ভাপরন বীগতকয একগট বদ ডমভন Cross Site

Scripting(XSS) Cross Site Request Forgery(CSRF) SQL Injection Privilege

Escalation Vulnerabilities এফাং Holes রফডর ডকাড একগট াবডাপরযয সযকষায জনয রভকীয কাযন পরত াপরয

পলাগগপরনয গগকউগযগট গক াঅনায পলাগগনগট ডমন গগকউয য় vulnerabilities data integrity এফাং reliability ডথপরক

াঅনায পলাগগনপরক গক গগকউগযগট ডদপরফন ওয়াডডপরে এনবায়যনপরভপরনট াঅনায পলাগগনপরক গগকউগযগট ডদয়া খফ কগঠন কাজ নয় এফাং খফ ভয় াপরকষ গফলয়ও নয় ওয়াডডপরেপরয গনজসব গকি পাাংন এপরকষপরতর াঅনাপরক খফাআ াাময কযপরফ

াআউজায াযগভন াঅভযা াপরনক পলাগগন াআনসটর কযায পরযাআ ডদপরখগি ডম মখনাআ এডগভন যাপরনর এ েপরফ কযপরত মাাআ তখন একগট এযয ডভপরজ াঅপর ডভপরজগট গনপরচয ভত-

ডরখা াঅপরি- You do not have sufficient permissionshellip এটা গনশচয়তা ডদয় ডম ডমপরকান এযাকন ীভাফি থাপরক গনগদডষট গকি যাাআট গদপরয় ওয়াডডপরেপরয একগট কভন পাাংন র current_user_can() একগট উদাযন ডদাআ-

38

ltphp

Capability

if ( current_user_can(install_plugins) )

wp_die( Insufficient permissions )

Role

if( current_user_can(editor) )

wp_die( You cannot edit this setting )

gt

খফ তাড়াতাগড় াঅগন এাআ current_user_can() পাাংন ডচক কযপরফন না কাযন এটা গনবডয কযপরফ get_currentuserinfo() এাআ পাাংপরনয উপরয াঅয এয ফযফাপরয ীভাফিতা াঅপরি এটা একগট পলাপরগফর পাাংন(pluggable function) াঅয এয ডরাপরকন পরচছ wp-

includespluggablephp মা পলাগগন এগকটব ফায য ডরাড য়

Nonces

ডকউ এগটপরক াঅফায Nonsense( গনপরফডাধ) বাফপরফন নাএগট ওয়াডডপরেপরয বালায় Nonces কগমপউটাপরযয বালায় nonce ফা cryptographic nonce পরচছ ldquonumber used once rdquo এটা ডিাট এফাং সপষট গকি য যানডভ গসটরাং ডমভন- াওয়াডড মা গকি গনপরদড কপরয Nonce গপরডন গপলড পভডপরক Retrieve ফা display কপরয-

একজন ওয়াডডপরে াআউজায ডমপরকান একগট এযাকন (delete update save and such) একগট াফপরজকট(একগট ডাসট পলাগগন ডগটাং াআতযাগদ) ২৪ ঘনটায একগট ভয় ডিভ

ডমভন ডাসট 50 গডগরট কযপরফন াঅনায ওয়াডডপরে বলগ ডথপরক তাপরর াঅনায গরঙকগট পরফ এযকভ- httpexamplecomwp-admin

postphppost=43ampaction=trashamp_wpnonce=83a08fcbc2

এখাপরন 83a08fcbc2 এগট র nonce মা ২৪ ঘনটা সথায়ী থাপরক রধভাতর এগট মগদ াঅনায িাযা ফযফরত য় এফাং গডগরট য় ডাসট 50 মখন াঅগন গরপরঙক গিক কপরযন ফপরচপরয় গযতবনড র ডম Nonce ডকান malicious াআউজায ফেপরত াপরযনা এফাং গঠক গরঙক িাড়া nonce এযয ডপরজ চপরর মায় ডমখাপরন াযগভন থাপরক না াঅপরযা গফসতাগযত ডদখন httpcodexwordpressorgWordPress_Nonces

39

Nonce URL ততগয এফায চরন াঅপরগয উদাযন ডথপরক Nonce URL ততগয কগয একগট ডাসট গডগরট কযায জনয wp_nonce_url() পাাংন ফযফায কযা য় ltphp

$url = wp_nonce_url( $url $action )

gt

েথভ যাযাগভটায $url পরচছ গসটরাং URL এপরডর এয মাপরক াঅগন কপরয়যী গসটরাং এয Nonce কযপরত চান াফযফহরত পলাগগপরনয গডগরট গরঙক এযকভ থাপরক- httpexamplecomwp-admineditphppage= liton

_utagsampliton_action=deleteampid=6

এখাপরন ডদখন যাযাগভটায liton_action এফাং এয টযাগ াঅাআগড গিতীয় যাযাগভটায পরচছ $action একগট গসটরাং মা াঅগন একগট াফপরজকট এয জনয একগট action ততগয কযপরফন উপরয ডদখরাভ delete এযাকন এয টযাগ াঅাআগড 6 সতযাাং $action যাযাগভটায পরত াপরয bdquoliton_utags-delete_tag6‟ গনপরচ ফাসতফ উদাযন ডদগখ- ltphp

$delete_url = add_query_arg(array( liton _action=gtdeleteid=gt$id) )

$nonced_url = wp_nonce_url( $delete_url bdquoliton _utags-delete_tag$id )

gt

lta href=ltphp echo $nonced_url gtgtdeleteltagt

এাআ টযাগগট পরফ গডগরট গরঙক এখাপরন add_query_arg() পাাংন ফযফায কযা পরয়পরি মা কাপরযনট URL ডক এযাপরয যাযাগভটায এয ভপরধয যাপরখ ানযবাপরফ ফরপরর এগট ডমাগ কপরয এযকভাঃ liton_action=deleteampid=6 amp liton_action=deleteampid=6

Nonce Form ততগয Nonce পভডপরকও ডোপরটকট কপরয wp_nonce_field() পাাংপরনয ভাধযপরভ ltphp

wp_nonce_field( $action $name $referer $echo ) gt

$action ( string) (optional) - action নাভ াআউগনক identifier optional

গকনত recommended $name (string) (optional) ndash গপরডন গপলড পভড ডবগযপরয়ফর নাভ $referer (boolean) (optional) ndash গডপলট গপরপরফ true থাপরক ডমখাপরন গপলড

ডবগরপরডন এয দযকায য়

40

$echo (boolean) (optional) - গডপলট গপরপরফ true থাপরক ডমখাপরন াঅউটট ডদখাপরনায ফা গপরডন পভড গপলড গযটানড কযায জনয দযকায য়

পপরভড াঅনায action এয নাভ গদন ltform method=postgt

lt-- some inputs here --gt

ltphp wp_nonce_field(name_of_my_actionname_of_nonce_field) gt

ltformgt

াঅভযা একগট পলাগগন ফানাপরফা ডমখাপরন াফযফরত টযাগগপররাপরক াঅভযা ভযানয়াগর গডগরট ফা গযপরনভ কযপরত াযফ এগট একট ফড় গকনত াপরনক গফলয়াআ াঅপরগাআ াঅপররাচনা কযা পরয়পরি ডদখপররাআ ফেপরত াযপরফন একগট ফাসতফধভডী উদাযন গনপরচ গদরাভ- ltphp

Plugin Name Liton Unused Tags

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add an entry for our option page to the Posts menu

add_action(admin_menu liton_utags_add_page)

function liton_utags_add_page()

add_posts_page( Unused Tags Unused Tagsmanage_optionsliton_utags

liton_utags_option_page )

Catch any liton_action parameter in query string

add_action( admin_init liton_utags_do_action )

Proceed to requested liton_action if applicable

function liton_utags_do_action()

if( isset( $_REQUEST[liton_action] ) )

return

if( current_user_can( manage_options ) )

wp_die( Insufficient privileges )

41

$id = $_REQUEST[id]

$action = $_REQUEST[liton_action]

if( $action == done )

add_action( admin_notices liton_utags_message )

return

check_admin_referer( liton_utags-$action_tag$id )

switch( $action )

case rename

$newtag = array( name =gt $_POST[name] slug =gt

$_POST[name] )

wp_update_term( $id post_tag $newtag )

break

case delete

wp_delete_term( $id post_tag )

break

wp_redirect( add_query_arg( array( liton_action =gt done )

) )

Admin notice

function liton_utags_message()

echo ltdiv class=updatedgtltpgtAction

completedltpgtltdivgt

Draw the tag management page

function liton_utags_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtUnused Tagslth2gt

ltphp

if( $tags = liton_utags_find_orphans() )

echo ltpgtYou currently have count( $tags ) unused

tagsltpgt

echo ltolgt

foreach( $tags as $tag )

42

$id = $tag-gtterm_id

$name = esc_attr( $tag-gtname )

$delete_url= add_query_arg(

array(liton_action=gtdeleteid=gt$id) )

$nonced_url= wp_nonce_url( $delete_url

liton_utags-delete_tag$id )

gt

ltligt

ltform action= method=postgt

ltphp wp_nonce_field( liton_utags-rename_tag$id )

gt

ltinput type=hidden name=liton_action

value=rename gt

ltinput type=hidden name=id value=ltphp echo

$id gt gt

ltinput type=text name=name value=ltphp echo

$name gt gt

ltinput type=submit value=Rename gt or

lta href=ltphp echo $nonced_url gtgtdeleteltagt

this tag

ltformgt

ltligt

ltphp

else gt

ltpgtYou have no unused tagsltpgt

ltphp endif gt

ltolgt

ltdivgt

ltphp

Find unused tags return them in an array

function liton_utags_find_orphans()

global $wpdb

$sql = SELECT termsterm_id termsname FROM

$wpdb-gtterms terms

INNER JOIN $wpdb-gtterm_taxonomy taxo

ON termsterm_id=taxoterm_id

WHERE taxotaxonomy = post_tag

43

AND taxocount=0

return $wpdb-gtget_results( $sql )

gt

ডযাপরফাপরডড এাআ পলাগগপরনয ডভন াওয়া মাপরফ ডাসট এয াফপরভন গপরপরফ গনপরচ ডদখন-

এফায পলাগগন ডভনপরত গিক কপরয ডদগখ পলাগগপরনয ডবতপরযয কাজ-

উপরয ডদখন াঅগভ একগট টযাগ ততগয কপরযগিরাভ l i নাপরভ এগট এখাপরন ডদখাপরচছ াঅগভ চাাআপরর এগট এগডট ফা গডগরট কযপরত াগয এফায গডগরট গরঙক এ ভাউপরয কাডয ডযপরখ গনপরচ গরঙক ডদখন ফা গডগরট করন একগট টযাগ াঅভায এখাপরন URL গট এযকভ httplocalhostdev-litonwp-

admineditphppage=liton_utagsampliton_action=doneampid=4amp_wpnonce=30a44b7

986

এখাপরন াঅগভ liton_action=done ফযফায কপরযগি Nonces এয পাাংনগপররায নাভ গনপরচ গদরাভ াঅনাযা ডদপরখ গনপরফন াআনটাযপরনট ডথপরক wp_nonce_field()

wp_nonce_url()

wp_verify_nonce()

wp_create_nonce()

44

check_admin_referer()

check_ajax_referer()

ডাটাপরফ াঅনাযা ডমপরত গএাআচগ গনপরয় কাজ কপরযন এগকউএর ডাটাপরফ এয াপরথ ফাাআ কভপরফী গযগচত এয গনটযাকস গপররা ডভাটাভগট ফায জানা একাআ বাপরফ াপরনপরকাআ ওয়াডডপরেপরও ডাটাপরফ ডকাড গরপরখন এটা ডকাগডাং এয জনয খাযা গদক াঅগভ নযভার গএাআচগ- এগকউএর ডকাড এয উদাযন গদগচছ- ltphp

$sql=rdquoINSERT INTO $wpdb-gtposts(post_title) VALUES(bdquo$title‟)rdquo

$wpdb-gtquery($sql) gt

এফায ওয়াডডপরেপরয সটযানডাডড ডকাগডাং গপরসটভ ডদখন- ltphp

$wpdb-gtinsert($wpdb-gtposts

array(bdquopost_title‟ =gt $title)

array(bdquos‟)

)

gt

ডাটাপরফ গগকউয কযায জনয াঅপরডট াাপরযন ডদখাফ- গনপরচয ডকাডগট খাযা েযাকগট ltphp

$wpdb-gtquery(ldquoUPDATE $wpdb-gtposts SET post_title=‟$newTitle‟ WHERE

ID=$my_idrdquo )

gt

উপরযয ভত কপরয না গরপরখ গনপরচয ভত কপরয গরখন- ltphp

$wpdb-gtupdate($wpdb-gtposts

Array(bdquopost_title‟ =gt‟$newTitle‟)

Array(bdquoID‟ =gt$my_id

)

gt

ানর বাপরফ ানযানয াাপরযন গপররা গরখপরফন

45

াধযায়- াঅটাঃ ডরাকারাাআপরজন এফাং Set t i ngs API

ডরাকারাাআপরজন ডরাকারাাআপরজন একগট গরতবনড গফলয় এয পাাংনগপররা র- load_theme_textdomain()

load_plugin_textdomain()

উদাযন- ltphp $var=__(bdquoHello‟‟domain‟) gt

ltphp _e(bdquoHello‟‟domain‟) gt

গফসতাগযত গনপরচয গরপরঙক ডদখন- httpcodexwordpressorgI18n_for_WordPress_Developers

ডগটাং API

ডগটাং API পরচছ াঅগন গকি ান ততগয কযপরফন মা াআনটাযনার বাপরফ াঅনায পলাগগপরন এপলাাআ পরফ মখন াঅগন াআউজায- গডপাাআন ান ততগয কযপরফন াঅনায পলাগগপরনয জনয তখন Settings

API ndashএ াঅনায ডকাড মতটা ারন জ করন Settings API াঅনায ডম কাজগপররা handle কপরয-

ওয়াডডপরেপরক জাগনপরয় ডদয় ডম াঅগন গনজসব ান ফযফায কযপরফন াঅনায াআনটপরক পাাংপরনয ভপরধয উপরেখ কযপরফ ডফগয বাগ ান ডজ গনপরজাআ ততগয কযপরফ $_POST ডাটা গপররাপরক ভগনটয কপরয ান ততগয এফাং াঅপরডট কপরয(মগদ েপরয়াজন য়)

Settings API পাাংন Settings API পাাংপরন গতনগট ডসট থাপরক- ১ েথপরভ ওয়াডডপরেপরক ফপরর ডম াঅগন নতন ডগটাং ফযফায কযপরফন াঅনায পলাগগপরনয জনয ২ এয পরয ডগটাং গডপাাআন করন (text areas input boxes and any

HTML form element) এফাং এপরদযপরক একাপরথ রে কপরয যাপরখ ৩ ওয়াডডপরেপরক াঅনায ডগটাং actual form এ ডদখাপরনায জনয ফপরর

46

এফায াঅভযা একগট পলাগগন ফানাপরফা Administration Page ndashএ ডযপাপরযনস গপরপরফ ডদখপরত াপরযন- httpcodexwordpressorgAdding_Administration_Menus

httpcodexwordpressorgFunction_Referenceadd_options_page

httpcodexwordpressorgAction_ReferenceActions_Run_During_an_Admin_P

age_Request

পলাগগপরনয এডগভন ডজ পরফ এযকভ- httpexamplecomwp-adminoptions-generalphppage=liton_myplugin

েথপরভ াঅভযা ডভন ততগয কযফ াঅপরগয ভত কপরয- Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

এফায ান ডজ এ পভড গনপরয় গকি ডগটাং ডদফ function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

উপরযয ডকাপরড াঅভযা একগট পপরভডয ভপরধয রধ াফগভট ফাটন এফাং My Plugin নাপরভ ডজ ততগয কপরযগি ডযাপরফাপরডড ডদখন-

47

ডগটাং এয াফ ডভন গপরপরফ My Plugin াঅপরি এফাং My Plugin ডত গিক কযপরর াঅভযা উপরযয ডজ ততগয কপরযগি ডমখাপরন াফগভট ফাটনগট ডদখাপরচছ এফায গতনগট যাযাগভটায ডযগজসটায কযফ- ltphp

register_setting( liton _myplugin_options liton _myplugin_options liton

_myplugin_validate_options)

gt

েথভগট ডগটাং রেপরয নাভ গিতীয়গট ান নাভ মা াঅভযা get_option() পাাংন গদপরয়ও ডপরত াগয ততীয়গট করফযাক পাাংন এগট একগট গসটরাং ডযপাপরযনস পাাংন এখাপরন াঅভযা নাভ

48

গদপরয়গি liton _myplugin_validate_options মা া কযপরফ পপরভডয কর ডব ডগটাং াঅভযা এটা পরয গডপাাআন কযফ

ডগটাং গডপাাআন ডকন add_settings_field() এফাং add_settings_section() পাাংন গদপরয় াঅভযা াঅভাপরদয কর ডগটাং গডপাাআন কযফ ltphp

add_settings_section( liton_myplugin_main My Plugin Settings

liton_myplugin_section_text liton _myplugin)

add_settings_field( liton _myplugin_text_string Enter text here

liton _myplugin_setting_input liton _myplugin liton _myplugin_main)

gt

add_settings_section() পাাংন গদপরয় াঅভযা ডদখাফ াঅপরর ডজ এ ডকন ডকভন ডদখাপরফ এয চাযগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ ডকন টাাআপরটর ltH3gt টযাপরগয ভপরধয করফযাক পাাংন এয নাভ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ (page= liton _myplugin এগট

URL এয াাং গপরপরফ থাকপরফ) গিতীয় যাযাগভটায add_settings_field() পপরভডয াআনট গপরপরফ ডদখাপরনা পরয়পরি এখাপরন াাচগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ পরযয গপপরলড গক গেনট কযা পরফ তা ডটকসট গপরপরফ ডদখাপরনা পরয়পরি(Enter text

here)

করফযাক পাাংন পপরভড গেনট কযপরফ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ ডগটাং ডপরজয ডকন গপলড মা add_settings_section() পাাংপরন গডপাাআন

কযা পরয়পরি ltphp

Explanations about this section

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

49

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton _myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name= liton _myplugin_options[text_string]

type=text value=$options[text_string] gt

gt

গিতীয় পাাংন ান বযার text_string ডক এযাপরযপরত ডসটায কপরয ডযপরখপরি এফায াআউজায াআনট বযাগরপরডট কযফ- ltphp

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace([^a-zA-Z]$input[text_string] )

return $valid

gt

পভডপরক ডযনডায কযফ- ltphp

Draw the options page

function liton_myplugin_options_page()

gt

ltdiv class=wrapgt

ltphp

screen_icon()

gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp

settings_fields( liton_myplugin_options)

do_settings_sections(liton_myplugin)

50

gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

settings_fields() পাাংনগট ডযপাপরযনস গপরপরফ ফযফায কযা পরয়পরি মা াঅভযা register_setting() পাাংপরন গডপরিয়ায কপরযগি do_settings_sections() পাাংনগট কর কযপরফ কর াঅউটট ডকন এফাং পভড গপলডপরক মা াঅভযা পরফড গডপাাআন কপরযগি াঅভাপরদয কাজ ডল এফায পরযা পলাগগনগট ডদখফ- ltphp

Plugin Name Settings API example

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

Draw the option page

function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save

Changes gt

ltformgtltdivgt

ltphp

51

Register and define the settings

add_action(admin_init liton_myplugin_admin_init)

function liton_myplugin_admin_init()

register_setting( liton_myplugin_options

liton_myplugin_options

liton_myplugin_validate_options )

add_settings_section( liton_myplugin_main My Plugin

Settings

liton_myplugin_section_text liton_myplugin )

add_settings_field( liton_myplugin_text_string Enter text

here

liton_myplugin_setting_input liton_myplugin

liton_myplugin_main )

Draw the section header

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton_myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name=liton_myplugin_options[text_string]

type=text value=$text_string gt

Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

return $valid

gt

52

ডদখন ডযাপরফাপরডড ডকভন ডদখায়-

পরয় ডগর াঅভাপরদয েথভ নডাাংগ পলাগগন ান ডজ াঅপরযকগট গজগন ডমটায জনয এতগকি পলাগগন URL এপরডর- httplocalhostdev-litonwp-adminoptions-

generalphppage=liton_mypluginampsettings-updated=true

াঅভায এখাপরন এযকভ ডদখাপরচছ ডটকসট ফপরকস ডকান গকি গরপরখ ডব কযায য এফাপরয াঅপরযকগট গজগন ডদখফ াঅভযা াপরনক ভয়াআ াপরনক পলাগগপরনয াআনট গপপরলড বর ডাটা াআনট কযপরর এযয ডভপরজ ডদখায় এাআ কাজগট কযফ এফায াঅভযা এখাপরন esc_attr() ফা esc_html() ফযফায কগযগন সতযাাং াঅভাপরদয গরগভপরটন থাকপরি ডবগরপরডট পাাংনগট একট এগডট কগয গনপরচয ভত কপরয Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

if( $valid[text_string] = $input[text_string] )

add_settings_error(liton_myplugin_text_stringliton_myplugin_texterror

53

Incorrect value enterederror)

return $valid

উপরয ডদখন add_settings_error() পাাংন ফযফায কপরযগি মা এযয ডচক কযপরফ পপরভডয াঅগভ একগট বর ডাটা(পরসপার কযাপরযকটায) াআনট কপরয ডদখরাভ এযয ডদখাপরচছ-

তায ভাপরন াঅভযা পর পরয়গি াঅনায পলাগগনগট এগডট কপরয ডনপরফন ডকায ডকন এফাং গপপরলডয গরসট গদরাভ াঅনাপরদয সগফধায জনয

54

CSSJS পাাআর মি কযা

াঅনায পলাগগপরন গএএ ফা জাবাগিে ডমাগ কযপরত পরত াপরয াঅগন চাাআপরর ফাগপরযয ডকান ফা াঅনায ততগয ডকান গএএ ফা জাবাগিে পাাআর ডমাগ কযপরত াপরযন তপরফ এপরকষপরতর াঅভযা ডমবাপরফ HTML এ পাাআর ডমাগ কগয ডযকভ না function liton_scripts()

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtojqueryjsrdquogtltscriptgt‟

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtoscriptjsrdquogtltscriptgt‟

add_action(bdquowp_head‟‟liton_scripts‟)

এগট মপনডরপর বর িগত গনপরচ ডদখন ওয়াডডপরেপর গকবাপরফ পাাআর মি কযপরত য়- function liton_scripts()

wp_enqueue_script(bdquojquery‟)

wp_enqueue_script(bdquotheme-scripts‟‟pathtoscriptsjs‟)

add_action(bdquowp_enqueue_script‟‟liton_scripts‟)

ানর বাপরফ াঅগন সটাাআরীট ডমাগ কযপরত াপরযন- function liton_styles()

wp_enqueue_ style (bdquocss‟)

wp_enqueue_ style (bdquotheme- styles‟pathto stylescss‟)

ডযপাপরযনস ডদখন- httpcodexwordpressorgFunction_Referencewp_enqueue_script

httpcodexwordpressorgFunction_Referencewp_enqueue_style

টডপরকাড টডপরকাড পরচছ ওয়াডডপরেপরয ডসপগগপক ডসপার টযাগ মা াঅগন ডাসট ফা ডপরজয ভপরধয াআনাটড কপরয ানয ডকান কনপরটনটপরক ওপরয়ফাাআপরটয ভপরধয গযপরপল কযপরত াযপরফন মগদ াঅগন গযারাগয টাাআপরয ডকান পলাগগন ফযফায কপরয থাপরকন তাপরর াঅনায ধাযনা থাকায কথা মাাআ ডাক াঅগভ কপরয়কগট উদাযি ডদখাফ

55

েথপরভ একগট পলাগগন ততগয কযফ ডমখাপরন add_shortcode() নাপরভয একগট পাাংন থাকপরফ এগট রগট যাযাগভটায েন কপরয েথভগট টডপরকাপরডয নাভ গিতীয়গট ডম পাাংনপরক কর কযপরফন ডগট াঅভযা একগট উদাযন ডদগখ- ltphp

Plugin Name Liton Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(litonhi)

function hi()

echo Hello World

gt

উপরয ডদখন খফ ডিাট গকনত াঅগন চাাআপরর এয ফযফায াপরনক গফসতত কযপরত াপরযন এখাপরন টডপরকাড নাভ পরচছ liton াঅয এগটপরক ডরখা য় এবাপরফ [liton] াঅভযা ডাপরসটয ভপরধয াআনাটড কপরয ডদগখ াঅউটট ডকভন ডদখায়-

এফায াঅউটট ডদগখ-

56

াঅভাপরদয ততগয কযা টডপরকাড পরবাপরফাআ কাজ কযপরি াঅপরযকগট উদাযন ডদখফ াঅনাযা াপরনপরকাআ গগর এডপরনস গনপরয় কাজ কপরযন াঅনাযা াপরনপরকাআ এডপরনস এয জনয পলাগগন ফযফায কপরযন গকনত চাাআপররাআ এাআ কাজগট াঅনাযা গনপরজয ভত কপরয াগজপরয় গনপরত াপরযন গগপররয কাপরি ফ ডাসট বযার ায়না াঅনাযা মাযা একসাটড াঅপরিন তাযা এটা বার কপরয জাপরনন তাাআ াপরনপরকাআ গগপররয ডকাড ফ ডপরজ ডদখাপরত চান না এজনয পলাগগন ফযফায কপরয রাব য়না কাযন পলাগগপরন জায়গা গপকসড থাপরক এপরত কপরয াঅগনডাং ও কভ য় াঅনাযা টডপরকাড ফযফায কপরয ডমপরকান জায়গায় এড ডদখাপরত াপরযন গনপরচ াঅগভ রগট টডপরকাড ততগয কপরযগি র‟ধযপরনয এড ডদখাপরনায জনয ltphp

Plugin Name Liton Adsense Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(adsense_468adsense_468_60)

add_shortcode(adsense_250adsense_250_250)

function adsense_468_60($atts)

return ltscript type=textjavascriptgtlt--

57

google_ad_client = ca-pub-0956247412222369

468x60 created 101510

google_ad_slot = 4372705450

google_ad_width = 468

google_ad_height = 60

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

function adsense_250_250($atts)

return ltscript type=textjavascriptgtlt--

google_ad_client = ca-pub-0956247412222369

250x250 created 81809

google_ad_slot = 9368091893

google_ad_width = 250

google_ad_height = 250

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

gt

একগট টডপরকাড ফযানায টাাআপরয জনয এফাং াঅপরযকগট ২৫০২৫০ াাআপরজয এফায ডাপরসট ডমপরকান একগট টডপরকাড াআনাটড করন ডমখাপরন াঅনায ডদখাপরনায েপরয়াজন ভপরন কপরযন াঅগভ রগট ডকাড ডটসট কপরয ডদখরাভ-

58

এফায াাআপরটয াঅউটট ডদগখ-

রগট এডাআ ডদখাপরচছ াঅপরযা াপরনক কাপরজ াঅগন টডপরকাড ফযফায কযপরত াপরযন ডযপাপরযনসাঃ httpcodexwordpressorgShortcode_API

59

াধযায়- নয়াঃ পলাগগন উদাযন

ওয়াডডপরেপরয ডডটটাাআভকপরভনট নামবায ফাাংরা কযায পলাগগন াঅভাপরক কপরয়কজন ফপররগিপররন ওয়াডডপরেপরয গডপলট ডডটটাাআভকপরভনট নামবায ফাাংরা য়না রযাাংগপরয়জ ফাাংরা কযায যও ডডটটাাআভকপরভনট নামবায গপররা াআাংপরযগজ ডথপরক মায় গনপরচয পলাগগনগট ফযফায কপরয ডদখপরত াপরযন- ltphp

Plugin Name Liton Bangla datetimecomment number

Plugin URI httpliton-onlinecomplugins

Description Bangla datetimecomment number

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

This function converts all english numbers to bangla number

function make_bangla_number($str)

$engNumber = array(1234567890)

$bangNumber = array( ১ ২ ৩ ৪ ৫ ৬ ৭ ৮ ৯ ০ ) $converted = str_replace($engNumber $bangNumber $str)

return $converted

add_filter( get_the_time make_bangla_number )

add_filter( the_date make_bangla_number )

add_filter( get_the_date make_bangla_number )

add_filter( comments_number make_bangla_number )

add_filter( get_comment_date make_bangla_number )

add_filter( get_comment_time make_bangla_number )

gt

60

সলাাআডায পলাগগন াঅভযা এাআ ফাআপরয়য কর গটউপরটাগযয়াপরর মা মা গখরাভ তা এফায একগট নডাাংগ পলাগগপরনয এপলাাআ কযফ সলাাআডায পলাগগন মপপরকড াঅভযা ফাাআ জাগন একগট ওপরয়ফাাআপরটয ডচাযা ারপরট ডদয় একগট সলাাআডায াপরনক ডাাআনাগভক ভপরন য় ডদখপরতও াপরনক বার রাপরগ এাআ পলাগগপরন াঅভযা এডগভন যাপরনর ডথপরক াআপরভজ ডমাগ কযফ এফাং তা াঅভাপরদয াাআপরট ডদখাফ চরন কাজ রর কগয- েথপরভ গনপরবা সলাাআডায এয ওপরয়ফাাআপরট মান এফাং jQuery Plugin ডাউনপররাড করন

ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom Version 10

gt

াঅভযা পলাগগপরনয ডডায ততগয কযরাভ

পলাগগন গরপরসট ডদখাপরচছ bdquoLitons Nivo Plugin‟ াঅভাপরদয েথভ কাজ পরচছ custom post

type ওয়াডডপরে পাাংনাগরগট একগট নতন কাসটভ ডজ ততগয কযপরত custom post type

ফযফহরত পরফ ডমখাপরন একগট াআপরভজ থাকপরফ াঅভযা রধ টাাআপরটর ডনভ এফাং াআপরভজ াঅপররাডায গপরপরফ গপচায াআপরভজ পাাংনাগরগট ফযফায কযফ function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_function 600 280 true)

61

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

add_action(init np_init)

উপরযয ডকাপরড np_init() পাাংনগট রক কপরযগি মা ডডায যান কযায াঅপরগ যান পরফ াঅয এজনয register_post_type() পাাংনপরক এয যাযাগভটায গদপরয় np_init() পাাংপরনয ডবতপরয মি কপরযগি এটা মগদ না কযতাভ তাপরর ldquoHeaders already sentrdquo ডভপরজ ডদখাত এাআ ডভপরজগটয াপরথ াপরনপরকাআ গযগচত াঅা কগয register_post_type() পাাংন গদপরয় াঅভযা াআপরভজ মি এফাং ভযাপরনজ কযফ ভরত াঅভযা একগট নতন custom post type ডমাগ কপরযগি np_images নাভ গদপরয় নতন custom post type ডক ডগটাং বযার গপরপরফ াঅযগপরভনট া কপরযগি $args ডবগযপরয়ফরগট ট ডরপরবর ডভন ততগয কপরয াঅপরগাআ ডদপরখগি পলাগগনগট এগকটপরবট কযপরর াঅভযা গনপরচয ভত ডদখপরত াফ-

এফায গিে এফাং সটাাআরীট ডক মি কযফ- add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

এফায রক কযা পাাংনগপররা গডপরিয়ায কগয- function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__) array( jquery ))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

62

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

উপরযয ডকাডগপররা নতন কপরয ফিডনা কযায গকি ডনাআ াঅপরগাআ wp_enqueue_style() এফাং wp_enqueue_script() মপপরকড ফরা পরয়পরি নতন াঅপরযকগট পাাআর ততগয করন একাআ গডপরযকটগযপরত scriptjs এফাং গনপরচয ডকাডটক গদন- jQuery(document)ready(function($)

$(slider)nivoSlider()

)

াআপরভজপরক গযাাআজ করন- add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

াঅভযা এাআ পলাগগনগটপরক উাআপরজট গপরপরফও ফযফায কযফ ডগট পরয ডদখফ াঅপরযকগট গজগন মগদ গথপরভ না ডদয়া থাপরক ডজনয থামবপরনাআর াপরাটড গদপরয় গদন- add_theme_support( post-thumbnails )

এফায ওয়াডডপরেপরয কাপরযনট ডাসট কপরয়যী কযায ডকাড াঅয $result ডবগযপরয়ফপরর ডমফ ltdivgt টযাগ ফযফায কযা পরয়পরি তা jQuery Plugin গট একসিাকট কপরয indexhtml ডজগটয ডভাআন সলাাআডায ডকাডগট ডদখন একাআ াঅপরি রধ ডখানকায ltdivgt টযাগ গপররাপরক কগ কপরয এাআ পলাগগপরন ফযফায কযা পরয়পরি এফায টডপরকাড গদন- add_shortcode(np-shortcode np_function)

এাআ টডপরকাড গএাআচগ পাাংনপরক রক কযপরফ এফাং এয ভধয ডথপরক সলাাআডপরায কনপরটনট ডক গযটানড কযপরফ াঅভাপরদয টডপরকাড পরচছ [np-shortcode] াঅভযা পলাগগপরন মাাআ এফাং একগট িগফ মি কগয গপচাযড াআপরভজ গপরপরফ গনপরচ ডদখন-

63

াঅগভ াঅপরযকগট ডজ ততগয কপরযগি ডমখাপরন টডপরকাড গদপরয়গি

াঅউটট ডজ ডদগখ এফায-

64

পরয় ডগর াঅভাপরদয সলাাআডায পলাগগন পরযা ডকাডগট গনপরচ গদরাভ- ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

65

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

66

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

এফায াঅগন মগদ উাআপরজট গপরপরফ ফযফায কযপরত চান তাপরর গনপরচয ডকাডটক গদন- class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

67

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

echo $after_widget

াঅপরযা রগট কাজ কযপরত পরফ াঅনাপরক এক াআপরভজ াাআজ উাআপরজট এয জনয গঠক কপরয গদপরত পরফ- add_image_size(np_widget 180 100 true)

াঅপরযকগট র উাআপরজট এযাকন রক ডমাগ কযা add_action(widgets_init np_widgets_init)

উাআপরজট পরযা ডকাড াঅফায গদরাভ- ltphp

Plugin Name Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Ciprian Turcu

Version 10

68

class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

69

echo $after_widget

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

70

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(widgets_init np_widgets_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

71

পলাগগন গনপরয় এত ডিাট গযপরয ডরখা মভফ নয় এজনযাআ ভপরন য় পলাগগন গনপরয় ডকউ ডরপরখন না কাযন এখাপরন এত গফলয় াঅপরি মা াঅপররাচনা কযপরত ডগপরর ৫০০ ডজ ায পরয় মাপরফ ডফাোয সগফধাপরথড াঅগভ মথামভফ উদাযন গদপরয় ডফাোপরনায ডচষটা কপরযগি াঅগভ এখাপরন টাপরগডট কপরযগি মাযা টকটাক জাপরন পলাগগন মপপরকড এডবানস ডরপরবপররয নয় কাযন তাযা জাপরনন াঅভায উপরেশয গির মাযা জানপরত চায় তাপরদযপরক জানাপরনা এখাপরন ডমফ গফলয় াঅপররাচনা কযা পরয়পরি তা ডভাটাভগট ভাপরনয একগট পলাগগন ফানাপরনায জনয মপরথষট তপরফ ভাপরনাননয়পরনয জনয াঅনাপরক গনপরজাআ খাপরজ গনপরত পরফ াঅনায জনয ডকানটা বার পরফ াঅগভ রধ গদক গনপরদডনা গদরাভ ভাতর এাআ ফাআগট রধভাতর ওয়াডডপরে রেপরয জনয ডরখা াপরনক বর ভরাগনত থাকপরত াপরয াঅনাযা কষভাসনদয দগষটপরত ডদখপরফন াঅগভ ডচষটা কপরযগি মতটা জ কপরয ডরখা মায় াপরনক ভয় ডদখা মায় ডম খফ ডিাট খাপরটা গফলয় গনপরয় াপরনপরকাআ নক কপরযন এটা গতয রাঃখজনক াঅনাযা গগপরর একট খাজপররাআ ভাধান াপরফন াঅপরগ গনপরজ ডচষটা করন তায পরয ানযপরক ভাধাপরনয জনয গজজঞাা করন াঅভায জনয ডদায়া কযপরফন বাপররা রাগপরর জানাপরফন খাযা রাগপররও জানাপরফন তাপররাআ াঅভায গযশরভ সবাথডক পরফ ভতাভত জাগনপরয় াঅভাপরক ডভাআর কযপরত াপরযন litonice09gmailcom |

72

Page 34: Wordpress Plugin Development

35

এফায াঅউটট ডদগখ

esc_attr__() পাাংন এাআ পাাংনগট esc_attr() এয ভত এগট এাআচগটএভএর এগিগফউটপরক escape কপরয াঅভযা এফায esc_attr__() এফাং __() এাআ রগট পাাংনপরক একগট কপরয পলাগগন ততগয কযফ ltphp

Plugin Name Liton Esc Attr

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

A function that returns a link to the sites terms of service

page

function liton_terms_of_service_link()

return lta href=httpliton-onlinecomtos title=

esc_attr__( Visit the Terms of Service page boj-plugin ) gt __( Terms of

Service liton-plugin ) ltagt

Display the output of the liton_terms_of_service_link()

function

echo liton_terms_of_service_link()

gt

পলাগগনগটয াঅউটট ডদখন-

36

এযকভ াঅপরযা গকি পাাংন াঅপরি ডমগপররা াঅনাযা ডদপরখ ডনপরফন াআনটাযপরনট ডঘপরট

esc_html__() Function

esc_attr() Function

esc_url() Function

esc_js() Function

esc_html() Function

esc_attr_e() Function

esc_html_e() Function

_x() Function

_ex() Function

esc_attr_x() Function

esc_html_x() Function

_n() Function

_nx() Function

_n_noop() Function

_nx_noop() Function

Translation

bull Poedit httppoeditnet

bull GlotPress httpglotpressorg

bull Launchpad httpstranslationslaunchpadnet

bull Pootle httppootlelocamotionorg

bull KBabel httpi18nkdeorg

bull GNU Gettext httpgnuorgsoftwaregettext

GlotPress এখন ওপরয়ফ ডফড টর গপরপরফ ফযফায কযা পরচছ ওয়াডডে েপরজপরকটয ডিপরন একজন াথফা গটপরভয জনয িানসপররগটাং পটওয়যায গপরপরফ

37

াধযায়- াতাঃ পলাগগন গগকউগযগট

গগকউগযগট কগমপউটাপরযয বালায় ldquoগগকউগযগটrdquo ভাপরন বীগতকয একগট বদ ডমভন Cross Site

Scripting(XSS) Cross Site Request Forgery(CSRF) SQL Injection Privilege

Escalation Vulnerabilities এফাং Holes রফডর ডকাড একগট াবডাপরযয সযকষায জনয রভকীয কাযন পরত াপরয

পলাগগপরনয গগকউগযগট গক াঅনায পলাগগনগট ডমন গগকউয য় vulnerabilities data integrity এফাং reliability ডথপরক

াঅনায পলাগগনপরক গক গগকউগযগট ডদপরফন ওয়াডডপরে এনবায়যনপরভপরনট াঅনায পলাগগনপরক গগকউগযগট ডদয়া খফ কগঠন কাজ নয় এফাং খফ ভয় াপরকষ গফলয়ও নয় ওয়াডডপরেপরয গনজসব গকি পাাংন এপরকষপরতর াঅনাপরক খফাআ াাময কযপরফ

াআউজায াযগভন াঅভযা াপরনক পলাগগন াআনসটর কযায পরযাআ ডদপরখগি ডম মখনাআ এডগভন যাপরনর এ েপরফ কযপরত মাাআ তখন একগট এযয ডভপরজ াঅপর ডভপরজগট গনপরচয ভত-

ডরখা াঅপরি- You do not have sufficient permissionshellip এটা গনশচয়তা ডদয় ডম ডমপরকান এযাকন ীভাফি থাপরক গনগদডষট গকি যাাআট গদপরয় ওয়াডডপরেপরয একগট কভন পাাংন র current_user_can() একগট উদাযন ডদাআ-

38

ltphp

Capability

if ( current_user_can(install_plugins) )

wp_die( Insufficient permissions )

Role

if( current_user_can(editor) )

wp_die( You cannot edit this setting )

gt

খফ তাড়াতাগড় াঅগন এাআ current_user_can() পাাংন ডচক কযপরফন না কাযন এটা গনবডয কযপরফ get_currentuserinfo() এাআ পাাংপরনয উপরয াঅয এয ফযফাপরয ীভাফিতা াঅপরি এটা একগট পলাপরগফর পাাংন(pluggable function) াঅয এয ডরাপরকন পরচছ wp-

includespluggablephp মা পলাগগন এগকটব ফায য ডরাড য়

Nonces

ডকউ এগটপরক াঅফায Nonsense( গনপরফডাধ) বাফপরফন নাএগট ওয়াডডপরেপরয বালায় Nonces কগমপউটাপরযয বালায় nonce ফা cryptographic nonce পরচছ ldquonumber used once rdquo এটা ডিাট এফাং সপষট গকি য যানডভ গসটরাং ডমভন- াওয়াডড মা গকি গনপরদড কপরয Nonce গপরডন গপলড পভডপরক Retrieve ফা display কপরয-

একজন ওয়াডডপরে াআউজায ডমপরকান একগট এযাকন (delete update save and such) একগট াফপরজকট(একগট ডাসট পলাগগন ডগটাং াআতযাগদ) ২৪ ঘনটায একগট ভয় ডিভ

ডমভন ডাসট 50 গডগরট কযপরফন াঅনায ওয়াডডপরে বলগ ডথপরক তাপরর াঅনায গরঙকগট পরফ এযকভ- httpexamplecomwp-admin

postphppost=43ampaction=trashamp_wpnonce=83a08fcbc2

এখাপরন 83a08fcbc2 এগট র nonce মা ২৪ ঘনটা সথায়ী থাপরক রধভাতর এগট মগদ াঅনায িাযা ফযফরত য় এফাং গডগরট য় ডাসট 50 মখন াঅগন গরপরঙক গিক কপরযন ফপরচপরয় গযতবনড র ডম Nonce ডকান malicious াআউজায ফেপরত াপরযনা এফাং গঠক গরঙক িাড়া nonce এযয ডপরজ চপরর মায় ডমখাপরন াযগভন থাপরক না াঅপরযা গফসতাগযত ডদখন httpcodexwordpressorgWordPress_Nonces

39

Nonce URL ততগয এফায চরন াঅপরগয উদাযন ডথপরক Nonce URL ততগয কগয একগট ডাসট গডগরট কযায জনয wp_nonce_url() পাাংন ফযফায কযা য় ltphp

$url = wp_nonce_url( $url $action )

gt

েথভ যাযাগভটায $url পরচছ গসটরাং URL এপরডর এয মাপরক াঅগন কপরয়যী গসটরাং এয Nonce কযপরত চান াফযফহরত পলাগগপরনয গডগরট গরঙক এযকভ থাপরক- httpexamplecomwp-admineditphppage= liton

_utagsampliton_action=deleteampid=6

এখাপরন ডদখন যাযাগভটায liton_action এফাং এয টযাগ াঅাআগড গিতীয় যাযাগভটায পরচছ $action একগট গসটরাং মা াঅগন একগট াফপরজকট এয জনয একগট action ততগয কযপরফন উপরয ডদখরাভ delete এযাকন এয টযাগ াঅাআগড 6 সতযাাং $action যাযাগভটায পরত াপরয bdquoliton_utags-delete_tag6‟ গনপরচ ফাসতফ উদাযন ডদগখ- ltphp

$delete_url = add_query_arg(array( liton _action=gtdeleteid=gt$id) )

$nonced_url = wp_nonce_url( $delete_url bdquoliton _utags-delete_tag$id )

gt

lta href=ltphp echo $nonced_url gtgtdeleteltagt

এাআ টযাগগট পরফ গডগরট গরঙক এখাপরন add_query_arg() পাাংন ফযফায কযা পরয়পরি মা কাপরযনট URL ডক এযাপরয যাযাগভটায এয ভপরধয যাপরখ ানযবাপরফ ফরপরর এগট ডমাগ কপরয এযকভাঃ liton_action=deleteampid=6 amp liton_action=deleteampid=6

Nonce Form ততগয Nonce পভডপরকও ডোপরটকট কপরয wp_nonce_field() পাাংপরনয ভাধযপরভ ltphp

wp_nonce_field( $action $name $referer $echo ) gt

$action ( string) (optional) - action নাভ াআউগনক identifier optional

গকনত recommended $name (string) (optional) ndash গপরডন গপলড পভড ডবগযপরয়ফর নাভ $referer (boolean) (optional) ndash গডপলট গপরপরফ true থাপরক ডমখাপরন গপলড

ডবগরপরডন এয দযকায য়

40

$echo (boolean) (optional) - গডপলট গপরপরফ true থাপরক ডমখাপরন াঅউটট ডদখাপরনায ফা গপরডন পভড গপলড গযটানড কযায জনয দযকায য়

পপরভড াঅনায action এয নাভ গদন ltform method=postgt

lt-- some inputs here --gt

ltphp wp_nonce_field(name_of_my_actionname_of_nonce_field) gt

ltformgt

াঅভযা একগট পলাগগন ফানাপরফা ডমখাপরন াফযফরত টযাগগপররাপরক াঅভযা ভযানয়াগর গডগরট ফা গযপরনভ কযপরত াযফ এগট একট ফড় গকনত াপরনক গফলয়াআ াঅপরগাআ াঅপররাচনা কযা পরয়পরি ডদখপররাআ ফেপরত াযপরফন একগট ফাসতফধভডী উদাযন গনপরচ গদরাভ- ltphp

Plugin Name Liton Unused Tags

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add an entry for our option page to the Posts menu

add_action(admin_menu liton_utags_add_page)

function liton_utags_add_page()

add_posts_page( Unused Tags Unused Tagsmanage_optionsliton_utags

liton_utags_option_page )

Catch any liton_action parameter in query string

add_action( admin_init liton_utags_do_action )

Proceed to requested liton_action if applicable

function liton_utags_do_action()

if( isset( $_REQUEST[liton_action] ) )

return

if( current_user_can( manage_options ) )

wp_die( Insufficient privileges )

41

$id = $_REQUEST[id]

$action = $_REQUEST[liton_action]

if( $action == done )

add_action( admin_notices liton_utags_message )

return

check_admin_referer( liton_utags-$action_tag$id )

switch( $action )

case rename

$newtag = array( name =gt $_POST[name] slug =gt

$_POST[name] )

wp_update_term( $id post_tag $newtag )

break

case delete

wp_delete_term( $id post_tag )

break

wp_redirect( add_query_arg( array( liton_action =gt done )

) )

Admin notice

function liton_utags_message()

echo ltdiv class=updatedgtltpgtAction

completedltpgtltdivgt

Draw the tag management page

function liton_utags_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtUnused Tagslth2gt

ltphp

if( $tags = liton_utags_find_orphans() )

echo ltpgtYou currently have count( $tags ) unused

tagsltpgt

echo ltolgt

foreach( $tags as $tag )

42

$id = $tag-gtterm_id

$name = esc_attr( $tag-gtname )

$delete_url= add_query_arg(

array(liton_action=gtdeleteid=gt$id) )

$nonced_url= wp_nonce_url( $delete_url

liton_utags-delete_tag$id )

gt

ltligt

ltform action= method=postgt

ltphp wp_nonce_field( liton_utags-rename_tag$id )

gt

ltinput type=hidden name=liton_action

value=rename gt

ltinput type=hidden name=id value=ltphp echo

$id gt gt

ltinput type=text name=name value=ltphp echo

$name gt gt

ltinput type=submit value=Rename gt or

lta href=ltphp echo $nonced_url gtgtdeleteltagt

this tag

ltformgt

ltligt

ltphp

else gt

ltpgtYou have no unused tagsltpgt

ltphp endif gt

ltolgt

ltdivgt

ltphp

Find unused tags return them in an array

function liton_utags_find_orphans()

global $wpdb

$sql = SELECT termsterm_id termsname FROM

$wpdb-gtterms terms

INNER JOIN $wpdb-gtterm_taxonomy taxo

ON termsterm_id=taxoterm_id

WHERE taxotaxonomy = post_tag

43

AND taxocount=0

return $wpdb-gtget_results( $sql )

gt

ডযাপরফাপরডড এাআ পলাগগপরনয ডভন াওয়া মাপরফ ডাসট এয াফপরভন গপরপরফ গনপরচ ডদখন-

এফায পলাগগন ডভনপরত গিক কপরয ডদগখ পলাগগপরনয ডবতপরযয কাজ-

উপরয ডদখন াঅগভ একগট টযাগ ততগয কপরযগিরাভ l i নাপরভ এগট এখাপরন ডদখাপরচছ াঅগভ চাাআপরর এগট এগডট ফা গডগরট কযপরত াগয এফায গডগরট গরঙক এ ভাউপরয কাডয ডযপরখ গনপরচ গরঙক ডদখন ফা গডগরট করন একগট টযাগ াঅভায এখাপরন URL গট এযকভ httplocalhostdev-litonwp-

admineditphppage=liton_utagsampliton_action=doneampid=4amp_wpnonce=30a44b7

986

এখাপরন াঅগভ liton_action=done ফযফায কপরযগি Nonces এয পাাংনগপররায নাভ গনপরচ গদরাভ াঅনাযা ডদপরখ গনপরফন াআনটাযপরনট ডথপরক wp_nonce_field()

wp_nonce_url()

wp_verify_nonce()

wp_create_nonce()

44

check_admin_referer()

check_ajax_referer()

ডাটাপরফ াঅনাযা ডমপরত গএাআচগ গনপরয় কাজ কপরযন এগকউএর ডাটাপরফ এয াপরথ ফাাআ কভপরফী গযগচত এয গনটযাকস গপররা ডভাটাভগট ফায জানা একাআ বাপরফ াপরনপরকাআ ওয়াডডপরেপরও ডাটাপরফ ডকাড গরপরখন এটা ডকাগডাং এয জনয খাযা গদক াঅগভ নযভার গএাআচগ- এগকউএর ডকাড এয উদাযন গদগচছ- ltphp

$sql=rdquoINSERT INTO $wpdb-gtposts(post_title) VALUES(bdquo$title‟)rdquo

$wpdb-gtquery($sql) gt

এফায ওয়াডডপরেপরয সটযানডাডড ডকাগডাং গপরসটভ ডদখন- ltphp

$wpdb-gtinsert($wpdb-gtposts

array(bdquopost_title‟ =gt $title)

array(bdquos‟)

)

gt

ডাটাপরফ গগকউয কযায জনয াঅপরডট াাপরযন ডদখাফ- গনপরচয ডকাডগট খাযা েযাকগট ltphp

$wpdb-gtquery(ldquoUPDATE $wpdb-gtposts SET post_title=‟$newTitle‟ WHERE

ID=$my_idrdquo )

gt

উপরযয ভত কপরয না গরপরখ গনপরচয ভত কপরয গরখন- ltphp

$wpdb-gtupdate($wpdb-gtposts

Array(bdquopost_title‟ =gt‟$newTitle‟)

Array(bdquoID‟ =gt$my_id

)

gt

ানর বাপরফ ানযানয াাপরযন গপররা গরখপরফন

45

াধযায়- াঅটাঃ ডরাকারাাআপরজন এফাং Set t i ngs API

ডরাকারাাআপরজন ডরাকারাাআপরজন একগট গরতবনড গফলয় এয পাাংনগপররা র- load_theme_textdomain()

load_plugin_textdomain()

উদাযন- ltphp $var=__(bdquoHello‟‟domain‟) gt

ltphp _e(bdquoHello‟‟domain‟) gt

গফসতাগযত গনপরচয গরপরঙক ডদখন- httpcodexwordpressorgI18n_for_WordPress_Developers

ডগটাং API

ডগটাং API পরচছ াঅগন গকি ান ততগয কযপরফন মা াআনটাযনার বাপরফ াঅনায পলাগগপরন এপলাাআ পরফ মখন াঅগন াআউজায- গডপাাআন ান ততগয কযপরফন াঅনায পলাগগপরনয জনয তখন Settings

API ndashএ াঅনায ডকাড মতটা ারন জ করন Settings API াঅনায ডম কাজগপররা handle কপরয-

ওয়াডডপরেপরক জাগনপরয় ডদয় ডম াঅগন গনজসব ান ফযফায কযপরফন াঅনায াআনটপরক পাাংপরনয ভপরধয উপরেখ কযপরফ ডফগয বাগ ান ডজ গনপরজাআ ততগয কযপরফ $_POST ডাটা গপররাপরক ভগনটয কপরয ান ততগয এফাং াঅপরডট কপরয(মগদ েপরয়াজন য়)

Settings API পাাংন Settings API পাাংপরন গতনগট ডসট থাপরক- ১ েথপরভ ওয়াডডপরেপরক ফপরর ডম াঅগন নতন ডগটাং ফযফায কযপরফন াঅনায পলাগগপরনয জনয ২ এয পরয ডগটাং গডপাাআন করন (text areas input boxes and any

HTML form element) এফাং এপরদযপরক একাপরথ রে কপরয যাপরখ ৩ ওয়াডডপরেপরক াঅনায ডগটাং actual form এ ডদখাপরনায জনয ফপরর

46

এফায াঅভযা একগট পলাগগন ফানাপরফা Administration Page ndashএ ডযপাপরযনস গপরপরফ ডদখপরত াপরযন- httpcodexwordpressorgAdding_Administration_Menus

httpcodexwordpressorgFunction_Referenceadd_options_page

httpcodexwordpressorgAction_ReferenceActions_Run_During_an_Admin_P

age_Request

পলাগগপরনয এডগভন ডজ পরফ এযকভ- httpexamplecomwp-adminoptions-generalphppage=liton_myplugin

েথপরভ াঅভযা ডভন ততগয কযফ াঅপরগয ভত কপরয- Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

এফায ান ডজ এ পভড গনপরয় গকি ডগটাং ডদফ function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

উপরযয ডকাপরড াঅভযা একগট পপরভডয ভপরধয রধ াফগভট ফাটন এফাং My Plugin নাপরভ ডজ ততগয কপরযগি ডযাপরফাপরডড ডদখন-

47

ডগটাং এয াফ ডভন গপরপরফ My Plugin াঅপরি এফাং My Plugin ডত গিক কযপরর াঅভযা উপরযয ডজ ততগয কপরযগি ডমখাপরন াফগভট ফাটনগট ডদখাপরচছ এফায গতনগট যাযাগভটায ডযগজসটায কযফ- ltphp

register_setting( liton _myplugin_options liton _myplugin_options liton

_myplugin_validate_options)

gt

েথভগট ডগটাং রেপরয নাভ গিতীয়গট ান নাভ মা াঅভযা get_option() পাাংন গদপরয়ও ডপরত াগয ততীয়গট করফযাক পাাংন এগট একগট গসটরাং ডযপাপরযনস পাাংন এখাপরন াঅভযা নাভ

48

গদপরয়গি liton _myplugin_validate_options মা া কযপরফ পপরভডয কর ডব ডগটাং াঅভযা এটা পরয গডপাাআন কযফ

ডগটাং গডপাাআন ডকন add_settings_field() এফাং add_settings_section() পাাংন গদপরয় াঅভযা াঅভাপরদয কর ডগটাং গডপাাআন কযফ ltphp

add_settings_section( liton_myplugin_main My Plugin Settings

liton_myplugin_section_text liton _myplugin)

add_settings_field( liton _myplugin_text_string Enter text here

liton _myplugin_setting_input liton _myplugin liton _myplugin_main)

gt

add_settings_section() পাাংন গদপরয় াঅভযা ডদখাফ াঅপরর ডজ এ ডকন ডকভন ডদখাপরফ এয চাযগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ ডকন টাাআপরটর ltH3gt টযাপরগয ভপরধয করফযাক পাাংন এয নাভ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ (page= liton _myplugin এগট

URL এয াাং গপরপরফ থাকপরফ) গিতীয় যাযাগভটায add_settings_field() পপরভডয াআনট গপরপরফ ডদখাপরনা পরয়পরি এখাপরন াাচগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ পরযয গপপরলড গক গেনট কযা পরফ তা ডটকসট গপরপরফ ডদখাপরনা পরয়পরি(Enter text

here)

করফযাক পাাংন পপরভড গেনট কযপরফ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ ডগটাং ডপরজয ডকন গপলড মা add_settings_section() পাাংপরন গডপাাআন

কযা পরয়পরি ltphp

Explanations about this section

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

49

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton _myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name= liton _myplugin_options[text_string]

type=text value=$options[text_string] gt

gt

গিতীয় পাাংন ান বযার text_string ডক এযাপরযপরত ডসটায কপরয ডযপরখপরি এফায াআউজায াআনট বযাগরপরডট কযফ- ltphp

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace([^a-zA-Z]$input[text_string] )

return $valid

gt

পভডপরক ডযনডায কযফ- ltphp

Draw the options page

function liton_myplugin_options_page()

gt

ltdiv class=wrapgt

ltphp

screen_icon()

gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp

settings_fields( liton_myplugin_options)

do_settings_sections(liton_myplugin)

50

gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

settings_fields() পাাংনগট ডযপাপরযনস গপরপরফ ফযফায কযা পরয়পরি মা াঅভযা register_setting() পাাংপরন গডপরিয়ায কপরযগি do_settings_sections() পাাংনগট কর কযপরফ কর াঅউটট ডকন এফাং পভড গপলডপরক মা াঅভযা পরফড গডপাাআন কপরযগি াঅভাপরদয কাজ ডল এফায পরযা পলাগগনগট ডদখফ- ltphp

Plugin Name Settings API example

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

Draw the option page

function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save

Changes gt

ltformgtltdivgt

ltphp

51

Register and define the settings

add_action(admin_init liton_myplugin_admin_init)

function liton_myplugin_admin_init()

register_setting( liton_myplugin_options

liton_myplugin_options

liton_myplugin_validate_options )

add_settings_section( liton_myplugin_main My Plugin

Settings

liton_myplugin_section_text liton_myplugin )

add_settings_field( liton_myplugin_text_string Enter text

here

liton_myplugin_setting_input liton_myplugin

liton_myplugin_main )

Draw the section header

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton_myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name=liton_myplugin_options[text_string]

type=text value=$text_string gt

Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

return $valid

gt

52

ডদখন ডযাপরফাপরডড ডকভন ডদখায়-

পরয় ডগর াঅভাপরদয েথভ নডাাংগ পলাগগন ান ডজ াঅপরযকগট গজগন ডমটায জনয এতগকি পলাগগন URL এপরডর- httplocalhostdev-litonwp-adminoptions-

generalphppage=liton_mypluginampsettings-updated=true

াঅভায এখাপরন এযকভ ডদখাপরচছ ডটকসট ফপরকস ডকান গকি গরপরখ ডব কযায য এফাপরয াঅপরযকগট গজগন ডদখফ াঅভযা াপরনক ভয়াআ াপরনক পলাগগপরনয াআনট গপপরলড বর ডাটা াআনট কযপরর এযয ডভপরজ ডদখায় এাআ কাজগট কযফ এফায াঅভযা এখাপরন esc_attr() ফা esc_html() ফযফায কগযগন সতযাাং াঅভাপরদয গরগভপরটন থাকপরি ডবগরপরডট পাাংনগট একট এগডট কগয গনপরচয ভত কপরয Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

if( $valid[text_string] = $input[text_string] )

add_settings_error(liton_myplugin_text_stringliton_myplugin_texterror

53

Incorrect value enterederror)

return $valid

উপরয ডদখন add_settings_error() পাাংন ফযফায কপরযগি মা এযয ডচক কযপরফ পপরভডয াঅগভ একগট বর ডাটা(পরসপার কযাপরযকটায) াআনট কপরয ডদখরাভ এযয ডদখাপরচছ-

তায ভাপরন াঅভযা পর পরয়গি াঅনায পলাগগনগট এগডট কপরয ডনপরফন ডকায ডকন এফাং গপপরলডয গরসট গদরাভ াঅনাপরদয সগফধায জনয

54

CSSJS পাাআর মি কযা

াঅনায পলাগগপরন গএএ ফা জাবাগিে ডমাগ কযপরত পরত াপরয াঅগন চাাআপরর ফাগপরযয ডকান ফা াঅনায ততগয ডকান গএএ ফা জাবাগিে পাাআর ডমাগ কযপরত াপরযন তপরফ এপরকষপরতর াঅভযা ডমবাপরফ HTML এ পাাআর ডমাগ কগয ডযকভ না function liton_scripts()

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtojqueryjsrdquogtltscriptgt‟

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtoscriptjsrdquogtltscriptgt‟

add_action(bdquowp_head‟‟liton_scripts‟)

এগট মপনডরপর বর িগত গনপরচ ডদখন ওয়াডডপরেপর গকবাপরফ পাাআর মি কযপরত য়- function liton_scripts()

wp_enqueue_script(bdquojquery‟)

wp_enqueue_script(bdquotheme-scripts‟‟pathtoscriptsjs‟)

add_action(bdquowp_enqueue_script‟‟liton_scripts‟)

ানর বাপরফ াঅগন সটাাআরীট ডমাগ কযপরত াপরযন- function liton_styles()

wp_enqueue_ style (bdquocss‟)

wp_enqueue_ style (bdquotheme- styles‟pathto stylescss‟)

ডযপাপরযনস ডদখন- httpcodexwordpressorgFunction_Referencewp_enqueue_script

httpcodexwordpressorgFunction_Referencewp_enqueue_style

টডপরকাড টডপরকাড পরচছ ওয়াডডপরেপরয ডসপগগপক ডসপার টযাগ মা াঅগন ডাসট ফা ডপরজয ভপরধয াআনাটড কপরয ানয ডকান কনপরটনটপরক ওপরয়ফাাআপরটয ভপরধয গযপরপল কযপরত াযপরফন মগদ াঅগন গযারাগয টাাআপরয ডকান পলাগগন ফযফায কপরয থাপরকন তাপরর াঅনায ধাযনা থাকায কথা মাাআ ডাক াঅগভ কপরয়কগট উদাযি ডদখাফ

55

েথপরভ একগট পলাগগন ততগয কযফ ডমখাপরন add_shortcode() নাপরভয একগট পাাংন থাকপরফ এগট রগট যাযাগভটায েন কপরয েথভগট টডপরকাপরডয নাভ গিতীয়গট ডম পাাংনপরক কর কযপরফন ডগট াঅভযা একগট উদাযন ডদগখ- ltphp

Plugin Name Liton Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(litonhi)

function hi()

echo Hello World

gt

উপরয ডদখন খফ ডিাট গকনত াঅগন চাাআপরর এয ফযফায াপরনক গফসতত কযপরত াপরযন এখাপরন টডপরকাড নাভ পরচছ liton াঅয এগটপরক ডরখা য় এবাপরফ [liton] াঅভযা ডাপরসটয ভপরধয াআনাটড কপরয ডদগখ াঅউটট ডকভন ডদখায়-

এফায াঅউটট ডদগখ-

56

াঅভাপরদয ততগয কযা টডপরকাড পরবাপরফাআ কাজ কযপরি াঅপরযকগট উদাযন ডদখফ াঅনাযা াপরনপরকাআ গগর এডপরনস গনপরয় কাজ কপরযন াঅনাযা াপরনপরকাআ এডপরনস এয জনয পলাগগন ফযফায কপরযন গকনত চাাআপররাআ এাআ কাজগট াঅনাযা গনপরজয ভত কপরয াগজপরয় গনপরত াপরযন গগপররয কাপরি ফ ডাসট বযার ায়না াঅনাযা মাযা একসাটড াঅপরিন তাযা এটা বার কপরয জাপরনন তাাআ াপরনপরকাআ গগপররয ডকাড ফ ডপরজ ডদখাপরত চান না এজনয পলাগগন ফযফায কপরয রাব য়না কাযন পলাগগপরন জায়গা গপকসড থাপরক এপরত কপরয াঅগনডাং ও কভ য় াঅনাযা টডপরকাড ফযফায কপরয ডমপরকান জায়গায় এড ডদখাপরত াপরযন গনপরচ াঅগভ রগট টডপরকাড ততগয কপরযগি র‟ধযপরনয এড ডদখাপরনায জনয ltphp

Plugin Name Liton Adsense Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(adsense_468adsense_468_60)

add_shortcode(adsense_250adsense_250_250)

function adsense_468_60($atts)

return ltscript type=textjavascriptgtlt--

57

google_ad_client = ca-pub-0956247412222369

468x60 created 101510

google_ad_slot = 4372705450

google_ad_width = 468

google_ad_height = 60

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

function adsense_250_250($atts)

return ltscript type=textjavascriptgtlt--

google_ad_client = ca-pub-0956247412222369

250x250 created 81809

google_ad_slot = 9368091893

google_ad_width = 250

google_ad_height = 250

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

gt

একগট টডপরকাড ফযানায টাাআপরয জনয এফাং াঅপরযকগট ২৫০২৫০ াাআপরজয এফায ডাপরসট ডমপরকান একগট টডপরকাড াআনাটড করন ডমখাপরন াঅনায ডদখাপরনায েপরয়াজন ভপরন কপরযন াঅগভ রগট ডকাড ডটসট কপরয ডদখরাভ-

58

এফায াাআপরটয াঅউটট ডদগখ-

রগট এডাআ ডদখাপরচছ াঅপরযা াপরনক কাপরজ াঅগন টডপরকাড ফযফায কযপরত াপরযন ডযপাপরযনসাঃ httpcodexwordpressorgShortcode_API

59

াধযায়- নয়াঃ পলাগগন উদাযন

ওয়াডডপরেপরয ডডটটাাআভকপরভনট নামবায ফাাংরা কযায পলাগগন াঅভাপরক কপরয়কজন ফপররগিপররন ওয়াডডপরেপরয গডপলট ডডটটাাআভকপরভনট নামবায ফাাংরা য়না রযাাংগপরয়জ ফাাংরা কযায যও ডডটটাাআভকপরভনট নামবায গপররা াআাংপরযগজ ডথপরক মায় গনপরচয পলাগগনগট ফযফায কপরয ডদখপরত াপরযন- ltphp

Plugin Name Liton Bangla datetimecomment number

Plugin URI httpliton-onlinecomplugins

Description Bangla datetimecomment number

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

This function converts all english numbers to bangla number

function make_bangla_number($str)

$engNumber = array(1234567890)

$bangNumber = array( ১ ২ ৩ ৪ ৫ ৬ ৭ ৮ ৯ ০ ) $converted = str_replace($engNumber $bangNumber $str)

return $converted

add_filter( get_the_time make_bangla_number )

add_filter( the_date make_bangla_number )

add_filter( get_the_date make_bangla_number )

add_filter( comments_number make_bangla_number )

add_filter( get_comment_date make_bangla_number )

add_filter( get_comment_time make_bangla_number )

gt

60

সলাাআডায পলাগগন াঅভযা এাআ ফাআপরয়য কর গটউপরটাগযয়াপরর মা মা গখরাভ তা এফায একগট নডাাংগ পলাগগপরনয এপলাাআ কযফ সলাাআডায পলাগগন মপপরকড াঅভযা ফাাআ জাগন একগট ওপরয়ফাাআপরটয ডচাযা ারপরট ডদয় একগট সলাাআডায াপরনক ডাাআনাগভক ভপরন য় ডদখপরতও াপরনক বার রাপরগ এাআ পলাগগপরন াঅভযা এডগভন যাপরনর ডথপরক াআপরভজ ডমাগ কযফ এফাং তা াঅভাপরদয াাআপরট ডদখাফ চরন কাজ রর কগয- েথপরভ গনপরবা সলাাআডায এয ওপরয়ফাাআপরট মান এফাং jQuery Plugin ডাউনপররাড করন

ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom Version 10

gt

াঅভযা পলাগগপরনয ডডায ততগয কযরাভ

পলাগগন গরপরসট ডদখাপরচছ bdquoLitons Nivo Plugin‟ াঅভাপরদয েথভ কাজ পরচছ custom post

type ওয়াডডপরে পাাংনাগরগট একগট নতন কাসটভ ডজ ততগয কযপরত custom post type

ফযফহরত পরফ ডমখাপরন একগট াআপরভজ থাকপরফ াঅভযা রধ টাাআপরটর ডনভ এফাং াআপরভজ াঅপররাডায গপরপরফ গপচায াআপরভজ পাাংনাগরগট ফযফায কযফ function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_function 600 280 true)

61

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

add_action(init np_init)

উপরযয ডকাপরড np_init() পাাংনগট রক কপরযগি মা ডডায যান কযায াঅপরগ যান পরফ াঅয এজনয register_post_type() পাাংনপরক এয যাযাগভটায গদপরয় np_init() পাাংপরনয ডবতপরয মি কপরযগি এটা মগদ না কযতাভ তাপরর ldquoHeaders already sentrdquo ডভপরজ ডদখাত এাআ ডভপরজগটয াপরথ াপরনপরকাআ গযগচত াঅা কগয register_post_type() পাাংন গদপরয় াঅভযা াআপরভজ মি এফাং ভযাপরনজ কযফ ভরত াঅভযা একগট নতন custom post type ডমাগ কপরযগি np_images নাভ গদপরয় নতন custom post type ডক ডগটাং বযার গপরপরফ াঅযগপরভনট া কপরযগি $args ডবগযপরয়ফরগট ট ডরপরবর ডভন ততগয কপরয াঅপরগাআ ডদপরখগি পলাগগনগট এগকটপরবট কযপরর াঅভযা গনপরচয ভত ডদখপরত াফ-

এফায গিে এফাং সটাাআরীট ডক মি কযফ- add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

এফায রক কযা পাাংনগপররা গডপরিয়ায কগয- function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__) array( jquery ))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

62

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

উপরযয ডকাডগপররা নতন কপরয ফিডনা কযায গকি ডনাআ াঅপরগাআ wp_enqueue_style() এফাং wp_enqueue_script() মপপরকড ফরা পরয়পরি নতন াঅপরযকগট পাাআর ততগয করন একাআ গডপরযকটগযপরত scriptjs এফাং গনপরচয ডকাডটক গদন- jQuery(document)ready(function($)

$(slider)nivoSlider()

)

াআপরভজপরক গযাাআজ করন- add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

াঅভযা এাআ পলাগগনগটপরক উাআপরজট গপরপরফও ফযফায কযফ ডগট পরয ডদখফ াঅপরযকগট গজগন মগদ গথপরভ না ডদয়া থাপরক ডজনয থামবপরনাআর াপরাটড গদপরয় গদন- add_theme_support( post-thumbnails )

এফায ওয়াডডপরেপরয কাপরযনট ডাসট কপরয়যী কযায ডকাড াঅয $result ডবগযপরয়ফপরর ডমফ ltdivgt টযাগ ফযফায কযা পরয়পরি তা jQuery Plugin গট একসিাকট কপরয indexhtml ডজগটয ডভাআন সলাাআডায ডকাডগট ডদখন একাআ াঅপরি রধ ডখানকায ltdivgt টযাগ গপররাপরক কগ কপরয এাআ পলাগগপরন ফযফায কযা পরয়পরি এফায টডপরকাড গদন- add_shortcode(np-shortcode np_function)

এাআ টডপরকাড গএাআচগ পাাংনপরক রক কযপরফ এফাং এয ভধয ডথপরক সলাাআডপরায কনপরটনট ডক গযটানড কযপরফ াঅভাপরদয টডপরকাড পরচছ [np-shortcode] াঅভযা পলাগগপরন মাাআ এফাং একগট িগফ মি কগয গপচাযড াআপরভজ গপরপরফ গনপরচ ডদখন-

63

াঅগভ াঅপরযকগট ডজ ততগয কপরযগি ডমখাপরন টডপরকাড গদপরয়গি

াঅউটট ডজ ডদগখ এফায-

64

পরয় ডগর াঅভাপরদয সলাাআডায পলাগগন পরযা ডকাডগট গনপরচ গদরাভ- ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

65

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

66

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

এফায াঅগন মগদ উাআপরজট গপরপরফ ফযফায কযপরত চান তাপরর গনপরচয ডকাডটক গদন- class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

67

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

echo $after_widget

াঅপরযা রগট কাজ কযপরত পরফ াঅনাপরক এক াআপরভজ াাআজ উাআপরজট এয জনয গঠক কপরয গদপরত পরফ- add_image_size(np_widget 180 100 true)

াঅপরযকগট র উাআপরজট এযাকন রক ডমাগ কযা add_action(widgets_init np_widgets_init)

উাআপরজট পরযা ডকাড াঅফায গদরাভ- ltphp

Plugin Name Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Ciprian Turcu

Version 10

68

class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

69

echo $after_widget

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

70

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(widgets_init np_widgets_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

71

পলাগগন গনপরয় এত ডিাট গযপরয ডরখা মভফ নয় এজনযাআ ভপরন য় পলাগগন গনপরয় ডকউ ডরপরখন না কাযন এখাপরন এত গফলয় াঅপরি মা াঅপররাচনা কযপরত ডগপরর ৫০০ ডজ ায পরয় মাপরফ ডফাোয সগফধাপরথড াঅগভ মথামভফ উদাযন গদপরয় ডফাোপরনায ডচষটা কপরযগি াঅগভ এখাপরন টাপরগডট কপরযগি মাযা টকটাক জাপরন পলাগগন মপপরকড এডবানস ডরপরবপররয নয় কাযন তাযা জাপরনন াঅভায উপরেশয গির মাযা জানপরত চায় তাপরদযপরক জানাপরনা এখাপরন ডমফ গফলয় াঅপররাচনা কযা পরয়পরি তা ডভাটাভগট ভাপরনয একগট পলাগগন ফানাপরনায জনয মপরথষট তপরফ ভাপরনাননয়পরনয জনয াঅনাপরক গনপরজাআ খাপরজ গনপরত পরফ াঅনায জনয ডকানটা বার পরফ াঅগভ রধ গদক গনপরদডনা গদরাভ ভাতর এাআ ফাআগট রধভাতর ওয়াডডপরে রেপরয জনয ডরখা াপরনক বর ভরাগনত থাকপরত াপরয াঅনাযা কষভাসনদয দগষটপরত ডদখপরফন াঅগভ ডচষটা কপরযগি মতটা জ কপরয ডরখা মায় াপরনক ভয় ডদখা মায় ডম খফ ডিাট খাপরটা গফলয় গনপরয় াপরনপরকাআ নক কপরযন এটা গতয রাঃখজনক াঅনাযা গগপরর একট খাজপররাআ ভাধান াপরফন াঅপরগ গনপরজ ডচষটা করন তায পরয ানযপরক ভাধাপরনয জনয গজজঞাা করন াঅভায জনয ডদায়া কযপরফন বাপররা রাগপরর জানাপরফন খাযা রাগপররও জানাপরফন তাপররাআ াঅভায গযশরভ সবাথডক পরফ ভতাভত জাগনপরয় াঅভাপরক ডভাআর কযপরত াপরযন litonice09gmailcom |

72

Page 35: Wordpress Plugin Development

36

এযকভ াঅপরযা গকি পাাংন াঅপরি ডমগপররা াঅনাযা ডদপরখ ডনপরফন াআনটাযপরনট ডঘপরট

esc_html__() Function

esc_attr() Function

esc_url() Function

esc_js() Function

esc_html() Function

esc_attr_e() Function

esc_html_e() Function

_x() Function

_ex() Function

esc_attr_x() Function

esc_html_x() Function

_n() Function

_nx() Function

_n_noop() Function

_nx_noop() Function

Translation

bull Poedit httppoeditnet

bull GlotPress httpglotpressorg

bull Launchpad httpstranslationslaunchpadnet

bull Pootle httppootlelocamotionorg

bull KBabel httpi18nkdeorg

bull GNU Gettext httpgnuorgsoftwaregettext

GlotPress এখন ওপরয়ফ ডফড টর গপরপরফ ফযফায কযা পরচছ ওয়াডডে েপরজপরকটয ডিপরন একজন াথফা গটপরভয জনয িানসপররগটাং পটওয়যায গপরপরফ

37

াধযায়- াতাঃ পলাগগন গগকউগযগট

গগকউগযগট কগমপউটাপরযয বালায় ldquoগগকউগযগটrdquo ভাপরন বীগতকয একগট বদ ডমভন Cross Site

Scripting(XSS) Cross Site Request Forgery(CSRF) SQL Injection Privilege

Escalation Vulnerabilities এফাং Holes রফডর ডকাড একগট াবডাপরযয সযকষায জনয রভকীয কাযন পরত াপরয

পলাগগপরনয গগকউগযগট গক াঅনায পলাগগনগট ডমন গগকউয য় vulnerabilities data integrity এফাং reliability ডথপরক

াঅনায পলাগগনপরক গক গগকউগযগট ডদপরফন ওয়াডডপরে এনবায়যনপরভপরনট াঅনায পলাগগনপরক গগকউগযগট ডদয়া খফ কগঠন কাজ নয় এফাং খফ ভয় াপরকষ গফলয়ও নয় ওয়াডডপরেপরয গনজসব গকি পাাংন এপরকষপরতর াঅনাপরক খফাআ াাময কযপরফ

াআউজায াযগভন াঅভযা াপরনক পলাগগন াআনসটর কযায পরযাআ ডদপরখগি ডম মখনাআ এডগভন যাপরনর এ েপরফ কযপরত মাাআ তখন একগট এযয ডভপরজ াঅপর ডভপরজগট গনপরচয ভত-

ডরখা াঅপরি- You do not have sufficient permissionshellip এটা গনশচয়তা ডদয় ডম ডমপরকান এযাকন ীভাফি থাপরক গনগদডষট গকি যাাআট গদপরয় ওয়াডডপরেপরয একগট কভন পাাংন র current_user_can() একগট উদাযন ডদাআ-

38

ltphp

Capability

if ( current_user_can(install_plugins) )

wp_die( Insufficient permissions )

Role

if( current_user_can(editor) )

wp_die( You cannot edit this setting )

gt

খফ তাড়াতাগড় াঅগন এাআ current_user_can() পাাংন ডচক কযপরফন না কাযন এটা গনবডয কযপরফ get_currentuserinfo() এাআ পাাংপরনয উপরয াঅয এয ফযফাপরয ীভাফিতা াঅপরি এটা একগট পলাপরগফর পাাংন(pluggable function) াঅয এয ডরাপরকন পরচছ wp-

includespluggablephp মা পলাগগন এগকটব ফায য ডরাড য়

Nonces

ডকউ এগটপরক াঅফায Nonsense( গনপরফডাধ) বাফপরফন নাএগট ওয়াডডপরেপরয বালায় Nonces কগমপউটাপরযয বালায় nonce ফা cryptographic nonce পরচছ ldquonumber used once rdquo এটা ডিাট এফাং সপষট গকি য যানডভ গসটরাং ডমভন- াওয়াডড মা গকি গনপরদড কপরয Nonce গপরডন গপলড পভডপরক Retrieve ফা display কপরয-

একজন ওয়াডডপরে াআউজায ডমপরকান একগট এযাকন (delete update save and such) একগট াফপরজকট(একগট ডাসট পলাগগন ডগটাং াআতযাগদ) ২৪ ঘনটায একগট ভয় ডিভ

ডমভন ডাসট 50 গডগরট কযপরফন াঅনায ওয়াডডপরে বলগ ডথপরক তাপরর াঅনায গরঙকগট পরফ এযকভ- httpexamplecomwp-admin

postphppost=43ampaction=trashamp_wpnonce=83a08fcbc2

এখাপরন 83a08fcbc2 এগট র nonce মা ২৪ ঘনটা সথায়ী থাপরক রধভাতর এগট মগদ াঅনায িাযা ফযফরত য় এফাং গডগরট য় ডাসট 50 মখন াঅগন গরপরঙক গিক কপরযন ফপরচপরয় গযতবনড র ডম Nonce ডকান malicious াআউজায ফেপরত াপরযনা এফাং গঠক গরঙক িাড়া nonce এযয ডপরজ চপরর মায় ডমখাপরন াযগভন থাপরক না াঅপরযা গফসতাগযত ডদখন httpcodexwordpressorgWordPress_Nonces

39

Nonce URL ততগয এফায চরন াঅপরগয উদাযন ডথপরক Nonce URL ততগয কগয একগট ডাসট গডগরট কযায জনয wp_nonce_url() পাাংন ফযফায কযা য় ltphp

$url = wp_nonce_url( $url $action )

gt

েথভ যাযাগভটায $url পরচছ গসটরাং URL এপরডর এয মাপরক াঅগন কপরয়যী গসটরাং এয Nonce কযপরত চান াফযফহরত পলাগগপরনয গডগরট গরঙক এযকভ থাপরক- httpexamplecomwp-admineditphppage= liton

_utagsampliton_action=deleteampid=6

এখাপরন ডদখন যাযাগভটায liton_action এফাং এয টযাগ াঅাআগড গিতীয় যাযাগভটায পরচছ $action একগট গসটরাং মা াঅগন একগট াফপরজকট এয জনয একগট action ততগয কযপরফন উপরয ডদখরাভ delete এযাকন এয টযাগ াঅাআগড 6 সতযাাং $action যাযাগভটায পরত াপরয bdquoliton_utags-delete_tag6‟ গনপরচ ফাসতফ উদাযন ডদগখ- ltphp

$delete_url = add_query_arg(array( liton _action=gtdeleteid=gt$id) )

$nonced_url = wp_nonce_url( $delete_url bdquoliton _utags-delete_tag$id )

gt

lta href=ltphp echo $nonced_url gtgtdeleteltagt

এাআ টযাগগট পরফ গডগরট গরঙক এখাপরন add_query_arg() পাাংন ফযফায কযা পরয়পরি মা কাপরযনট URL ডক এযাপরয যাযাগভটায এয ভপরধয যাপরখ ানযবাপরফ ফরপরর এগট ডমাগ কপরয এযকভাঃ liton_action=deleteampid=6 amp liton_action=deleteampid=6

Nonce Form ততগয Nonce পভডপরকও ডোপরটকট কপরয wp_nonce_field() পাাংপরনয ভাধযপরভ ltphp

wp_nonce_field( $action $name $referer $echo ) gt

$action ( string) (optional) - action নাভ াআউগনক identifier optional

গকনত recommended $name (string) (optional) ndash গপরডন গপলড পভড ডবগযপরয়ফর নাভ $referer (boolean) (optional) ndash গডপলট গপরপরফ true থাপরক ডমখাপরন গপলড

ডবগরপরডন এয দযকায য়

40

$echo (boolean) (optional) - গডপলট গপরপরফ true থাপরক ডমখাপরন াঅউটট ডদখাপরনায ফা গপরডন পভড গপলড গযটানড কযায জনয দযকায য়

পপরভড াঅনায action এয নাভ গদন ltform method=postgt

lt-- some inputs here --gt

ltphp wp_nonce_field(name_of_my_actionname_of_nonce_field) gt

ltformgt

াঅভযা একগট পলাগগন ফানাপরফা ডমখাপরন াফযফরত টযাগগপররাপরক াঅভযা ভযানয়াগর গডগরট ফা গযপরনভ কযপরত াযফ এগট একট ফড় গকনত াপরনক গফলয়াআ াঅপরগাআ াঅপররাচনা কযা পরয়পরি ডদখপররাআ ফেপরত াযপরফন একগট ফাসতফধভডী উদাযন গনপরচ গদরাভ- ltphp

Plugin Name Liton Unused Tags

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add an entry for our option page to the Posts menu

add_action(admin_menu liton_utags_add_page)

function liton_utags_add_page()

add_posts_page( Unused Tags Unused Tagsmanage_optionsliton_utags

liton_utags_option_page )

Catch any liton_action parameter in query string

add_action( admin_init liton_utags_do_action )

Proceed to requested liton_action if applicable

function liton_utags_do_action()

if( isset( $_REQUEST[liton_action] ) )

return

if( current_user_can( manage_options ) )

wp_die( Insufficient privileges )

41

$id = $_REQUEST[id]

$action = $_REQUEST[liton_action]

if( $action == done )

add_action( admin_notices liton_utags_message )

return

check_admin_referer( liton_utags-$action_tag$id )

switch( $action )

case rename

$newtag = array( name =gt $_POST[name] slug =gt

$_POST[name] )

wp_update_term( $id post_tag $newtag )

break

case delete

wp_delete_term( $id post_tag )

break

wp_redirect( add_query_arg( array( liton_action =gt done )

) )

Admin notice

function liton_utags_message()

echo ltdiv class=updatedgtltpgtAction

completedltpgtltdivgt

Draw the tag management page

function liton_utags_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtUnused Tagslth2gt

ltphp

if( $tags = liton_utags_find_orphans() )

echo ltpgtYou currently have count( $tags ) unused

tagsltpgt

echo ltolgt

foreach( $tags as $tag )

42

$id = $tag-gtterm_id

$name = esc_attr( $tag-gtname )

$delete_url= add_query_arg(

array(liton_action=gtdeleteid=gt$id) )

$nonced_url= wp_nonce_url( $delete_url

liton_utags-delete_tag$id )

gt

ltligt

ltform action= method=postgt

ltphp wp_nonce_field( liton_utags-rename_tag$id )

gt

ltinput type=hidden name=liton_action

value=rename gt

ltinput type=hidden name=id value=ltphp echo

$id gt gt

ltinput type=text name=name value=ltphp echo

$name gt gt

ltinput type=submit value=Rename gt or

lta href=ltphp echo $nonced_url gtgtdeleteltagt

this tag

ltformgt

ltligt

ltphp

else gt

ltpgtYou have no unused tagsltpgt

ltphp endif gt

ltolgt

ltdivgt

ltphp

Find unused tags return them in an array

function liton_utags_find_orphans()

global $wpdb

$sql = SELECT termsterm_id termsname FROM

$wpdb-gtterms terms

INNER JOIN $wpdb-gtterm_taxonomy taxo

ON termsterm_id=taxoterm_id

WHERE taxotaxonomy = post_tag

43

AND taxocount=0

return $wpdb-gtget_results( $sql )

gt

ডযাপরফাপরডড এাআ পলাগগপরনয ডভন াওয়া মাপরফ ডাসট এয াফপরভন গপরপরফ গনপরচ ডদখন-

এফায পলাগগন ডভনপরত গিক কপরয ডদগখ পলাগগপরনয ডবতপরযয কাজ-

উপরয ডদখন াঅগভ একগট টযাগ ততগয কপরযগিরাভ l i নাপরভ এগট এখাপরন ডদখাপরচছ াঅগভ চাাআপরর এগট এগডট ফা গডগরট কযপরত াগয এফায গডগরট গরঙক এ ভাউপরয কাডয ডযপরখ গনপরচ গরঙক ডদখন ফা গডগরট করন একগট টযাগ াঅভায এখাপরন URL গট এযকভ httplocalhostdev-litonwp-

admineditphppage=liton_utagsampliton_action=doneampid=4amp_wpnonce=30a44b7

986

এখাপরন াঅগভ liton_action=done ফযফায কপরযগি Nonces এয পাাংনগপররায নাভ গনপরচ গদরাভ াঅনাযা ডদপরখ গনপরফন াআনটাযপরনট ডথপরক wp_nonce_field()

wp_nonce_url()

wp_verify_nonce()

wp_create_nonce()

44

check_admin_referer()

check_ajax_referer()

ডাটাপরফ াঅনাযা ডমপরত গএাআচগ গনপরয় কাজ কপরযন এগকউএর ডাটাপরফ এয াপরথ ফাাআ কভপরফী গযগচত এয গনটযাকস গপররা ডভাটাভগট ফায জানা একাআ বাপরফ াপরনপরকাআ ওয়াডডপরেপরও ডাটাপরফ ডকাড গরপরখন এটা ডকাগডাং এয জনয খাযা গদক াঅগভ নযভার গএাআচগ- এগকউএর ডকাড এয উদাযন গদগচছ- ltphp

$sql=rdquoINSERT INTO $wpdb-gtposts(post_title) VALUES(bdquo$title‟)rdquo

$wpdb-gtquery($sql) gt

এফায ওয়াডডপরেপরয সটযানডাডড ডকাগডাং গপরসটভ ডদখন- ltphp

$wpdb-gtinsert($wpdb-gtposts

array(bdquopost_title‟ =gt $title)

array(bdquos‟)

)

gt

ডাটাপরফ গগকউয কযায জনয াঅপরডট াাপরযন ডদখাফ- গনপরচয ডকাডগট খাযা েযাকগট ltphp

$wpdb-gtquery(ldquoUPDATE $wpdb-gtposts SET post_title=‟$newTitle‟ WHERE

ID=$my_idrdquo )

gt

উপরযয ভত কপরয না গরপরখ গনপরচয ভত কপরয গরখন- ltphp

$wpdb-gtupdate($wpdb-gtposts

Array(bdquopost_title‟ =gt‟$newTitle‟)

Array(bdquoID‟ =gt$my_id

)

gt

ানর বাপরফ ানযানয াাপরযন গপররা গরখপরফন

45

াধযায়- াঅটাঃ ডরাকারাাআপরজন এফাং Set t i ngs API

ডরাকারাাআপরজন ডরাকারাাআপরজন একগট গরতবনড গফলয় এয পাাংনগপররা র- load_theme_textdomain()

load_plugin_textdomain()

উদাযন- ltphp $var=__(bdquoHello‟‟domain‟) gt

ltphp _e(bdquoHello‟‟domain‟) gt

গফসতাগযত গনপরচয গরপরঙক ডদখন- httpcodexwordpressorgI18n_for_WordPress_Developers

ডগটাং API

ডগটাং API পরচছ াঅগন গকি ান ততগয কযপরফন মা াআনটাযনার বাপরফ াঅনায পলাগগপরন এপলাাআ পরফ মখন াঅগন াআউজায- গডপাাআন ান ততগয কযপরফন াঅনায পলাগগপরনয জনয তখন Settings

API ndashএ াঅনায ডকাড মতটা ারন জ করন Settings API াঅনায ডম কাজগপররা handle কপরয-

ওয়াডডপরেপরক জাগনপরয় ডদয় ডম াঅগন গনজসব ান ফযফায কযপরফন াঅনায াআনটপরক পাাংপরনয ভপরধয উপরেখ কযপরফ ডফগয বাগ ান ডজ গনপরজাআ ততগয কযপরফ $_POST ডাটা গপররাপরক ভগনটয কপরয ান ততগয এফাং াঅপরডট কপরয(মগদ েপরয়াজন য়)

Settings API পাাংন Settings API পাাংপরন গতনগট ডসট থাপরক- ১ েথপরভ ওয়াডডপরেপরক ফপরর ডম াঅগন নতন ডগটাং ফযফায কযপরফন াঅনায পলাগগপরনয জনয ২ এয পরয ডগটাং গডপাাআন করন (text areas input boxes and any

HTML form element) এফাং এপরদযপরক একাপরথ রে কপরয যাপরখ ৩ ওয়াডডপরেপরক াঅনায ডগটাং actual form এ ডদখাপরনায জনয ফপরর

46

এফায াঅভযা একগট পলাগগন ফানাপরফা Administration Page ndashএ ডযপাপরযনস গপরপরফ ডদখপরত াপরযন- httpcodexwordpressorgAdding_Administration_Menus

httpcodexwordpressorgFunction_Referenceadd_options_page

httpcodexwordpressorgAction_ReferenceActions_Run_During_an_Admin_P

age_Request

পলাগগপরনয এডগভন ডজ পরফ এযকভ- httpexamplecomwp-adminoptions-generalphppage=liton_myplugin

েথপরভ াঅভযা ডভন ততগয কযফ াঅপরগয ভত কপরয- Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

এফায ান ডজ এ পভড গনপরয় গকি ডগটাং ডদফ function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

উপরযয ডকাপরড াঅভযা একগট পপরভডয ভপরধয রধ াফগভট ফাটন এফাং My Plugin নাপরভ ডজ ততগয কপরযগি ডযাপরফাপরডড ডদখন-

47

ডগটাং এয াফ ডভন গপরপরফ My Plugin াঅপরি এফাং My Plugin ডত গিক কযপরর াঅভযা উপরযয ডজ ততগয কপরযগি ডমখাপরন াফগভট ফাটনগট ডদখাপরচছ এফায গতনগট যাযাগভটায ডযগজসটায কযফ- ltphp

register_setting( liton _myplugin_options liton _myplugin_options liton

_myplugin_validate_options)

gt

েথভগট ডগটাং রেপরয নাভ গিতীয়গট ান নাভ মা াঅভযা get_option() পাাংন গদপরয়ও ডপরত াগয ততীয়গট করফযাক পাাংন এগট একগট গসটরাং ডযপাপরযনস পাাংন এখাপরন াঅভযা নাভ

48

গদপরয়গি liton _myplugin_validate_options মা া কযপরফ পপরভডয কর ডব ডগটাং াঅভযা এটা পরয গডপাাআন কযফ

ডগটাং গডপাাআন ডকন add_settings_field() এফাং add_settings_section() পাাংন গদপরয় াঅভযা াঅভাপরদয কর ডগটাং গডপাাআন কযফ ltphp

add_settings_section( liton_myplugin_main My Plugin Settings

liton_myplugin_section_text liton _myplugin)

add_settings_field( liton _myplugin_text_string Enter text here

liton _myplugin_setting_input liton _myplugin liton _myplugin_main)

gt

add_settings_section() পাাংন গদপরয় াঅভযা ডদখাফ াঅপরর ডজ এ ডকন ডকভন ডদখাপরফ এয চাযগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ ডকন টাাআপরটর ltH3gt টযাপরগয ভপরধয করফযাক পাাংন এয নাভ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ (page= liton _myplugin এগট

URL এয াাং গপরপরফ থাকপরফ) গিতীয় যাযাগভটায add_settings_field() পপরভডয াআনট গপরপরফ ডদখাপরনা পরয়পরি এখাপরন াাচগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ পরযয গপপরলড গক গেনট কযা পরফ তা ডটকসট গপরপরফ ডদখাপরনা পরয়পরি(Enter text

here)

করফযাক পাাংন পপরভড গেনট কযপরফ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ ডগটাং ডপরজয ডকন গপলড মা add_settings_section() পাাংপরন গডপাাআন

কযা পরয়পরি ltphp

Explanations about this section

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

49

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton _myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name= liton _myplugin_options[text_string]

type=text value=$options[text_string] gt

gt

গিতীয় পাাংন ান বযার text_string ডক এযাপরযপরত ডসটায কপরয ডযপরখপরি এফায াআউজায াআনট বযাগরপরডট কযফ- ltphp

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace([^a-zA-Z]$input[text_string] )

return $valid

gt

পভডপরক ডযনডায কযফ- ltphp

Draw the options page

function liton_myplugin_options_page()

gt

ltdiv class=wrapgt

ltphp

screen_icon()

gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp

settings_fields( liton_myplugin_options)

do_settings_sections(liton_myplugin)

50

gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

settings_fields() পাাংনগট ডযপাপরযনস গপরপরফ ফযফায কযা পরয়পরি মা াঅভযা register_setting() পাাংপরন গডপরিয়ায কপরযগি do_settings_sections() পাাংনগট কর কযপরফ কর াঅউটট ডকন এফাং পভড গপলডপরক মা াঅভযা পরফড গডপাাআন কপরযগি াঅভাপরদয কাজ ডল এফায পরযা পলাগগনগট ডদখফ- ltphp

Plugin Name Settings API example

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

Draw the option page

function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save

Changes gt

ltformgtltdivgt

ltphp

51

Register and define the settings

add_action(admin_init liton_myplugin_admin_init)

function liton_myplugin_admin_init()

register_setting( liton_myplugin_options

liton_myplugin_options

liton_myplugin_validate_options )

add_settings_section( liton_myplugin_main My Plugin

Settings

liton_myplugin_section_text liton_myplugin )

add_settings_field( liton_myplugin_text_string Enter text

here

liton_myplugin_setting_input liton_myplugin

liton_myplugin_main )

Draw the section header

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton_myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name=liton_myplugin_options[text_string]

type=text value=$text_string gt

Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

return $valid

gt

52

ডদখন ডযাপরফাপরডড ডকভন ডদখায়-

পরয় ডগর াঅভাপরদয েথভ নডাাংগ পলাগগন ান ডজ াঅপরযকগট গজগন ডমটায জনয এতগকি পলাগগন URL এপরডর- httplocalhostdev-litonwp-adminoptions-

generalphppage=liton_mypluginampsettings-updated=true

াঅভায এখাপরন এযকভ ডদখাপরচছ ডটকসট ফপরকস ডকান গকি গরপরখ ডব কযায য এফাপরয াঅপরযকগট গজগন ডদখফ াঅভযা াপরনক ভয়াআ াপরনক পলাগগপরনয াআনট গপপরলড বর ডাটা াআনট কযপরর এযয ডভপরজ ডদখায় এাআ কাজগট কযফ এফায াঅভযা এখাপরন esc_attr() ফা esc_html() ফযফায কগযগন সতযাাং াঅভাপরদয গরগভপরটন থাকপরি ডবগরপরডট পাাংনগট একট এগডট কগয গনপরচয ভত কপরয Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

if( $valid[text_string] = $input[text_string] )

add_settings_error(liton_myplugin_text_stringliton_myplugin_texterror

53

Incorrect value enterederror)

return $valid

উপরয ডদখন add_settings_error() পাাংন ফযফায কপরযগি মা এযয ডচক কযপরফ পপরভডয াঅগভ একগট বর ডাটা(পরসপার কযাপরযকটায) াআনট কপরয ডদখরাভ এযয ডদখাপরচছ-

তায ভাপরন াঅভযা পর পরয়গি াঅনায পলাগগনগট এগডট কপরয ডনপরফন ডকায ডকন এফাং গপপরলডয গরসট গদরাভ াঅনাপরদয সগফধায জনয

54

CSSJS পাাআর মি কযা

াঅনায পলাগগপরন গএএ ফা জাবাগিে ডমাগ কযপরত পরত াপরয াঅগন চাাআপরর ফাগপরযয ডকান ফা াঅনায ততগয ডকান গএএ ফা জাবাগিে পাাআর ডমাগ কযপরত াপরযন তপরফ এপরকষপরতর াঅভযা ডমবাপরফ HTML এ পাাআর ডমাগ কগয ডযকভ না function liton_scripts()

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtojqueryjsrdquogtltscriptgt‟

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtoscriptjsrdquogtltscriptgt‟

add_action(bdquowp_head‟‟liton_scripts‟)

এগট মপনডরপর বর িগত গনপরচ ডদখন ওয়াডডপরেপর গকবাপরফ পাাআর মি কযপরত য়- function liton_scripts()

wp_enqueue_script(bdquojquery‟)

wp_enqueue_script(bdquotheme-scripts‟‟pathtoscriptsjs‟)

add_action(bdquowp_enqueue_script‟‟liton_scripts‟)

ানর বাপরফ াঅগন সটাাআরীট ডমাগ কযপরত াপরযন- function liton_styles()

wp_enqueue_ style (bdquocss‟)

wp_enqueue_ style (bdquotheme- styles‟pathto stylescss‟)

ডযপাপরযনস ডদখন- httpcodexwordpressorgFunction_Referencewp_enqueue_script

httpcodexwordpressorgFunction_Referencewp_enqueue_style

টডপরকাড টডপরকাড পরচছ ওয়াডডপরেপরয ডসপগগপক ডসপার টযাগ মা াঅগন ডাসট ফা ডপরজয ভপরধয াআনাটড কপরয ানয ডকান কনপরটনটপরক ওপরয়ফাাআপরটয ভপরধয গযপরপল কযপরত াযপরফন মগদ াঅগন গযারাগয টাাআপরয ডকান পলাগগন ফযফায কপরয থাপরকন তাপরর াঅনায ধাযনা থাকায কথা মাাআ ডাক াঅগভ কপরয়কগট উদাযি ডদখাফ

55

েথপরভ একগট পলাগগন ততগয কযফ ডমখাপরন add_shortcode() নাপরভয একগট পাাংন থাকপরফ এগট রগট যাযাগভটায েন কপরয েথভগট টডপরকাপরডয নাভ গিতীয়গট ডম পাাংনপরক কর কযপরফন ডগট াঅভযা একগট উদাযন ডদগখ- ltphp

Plugin Name Liton Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(litonhi)

function hi()

echo Hello World

gt

উপরয ডদখন খফ ডিাট গকনত াঅগন চাাআপরর এয ফযফায াপরনক গফসতত কযপরত াপরযন এখাপরন টডপরকাড নাভ পরচছ liton াঅয এগটপরক ডরখা য় এবাপরফ [liton] াঅভযা ডাপরসটয ভপরধয াআনাটড কপরয ডদগখ াঅউটট ডকভন ডদখায়-

এফায াঅউটট ডদগখ-

56

াঅভাপরদয ততগয কযা টডপরকাড পরবাপরফাআ কাজ কযপরি াঅপরযকগট উদাযন ডদখফ াঅনাযা াপরনপরকাআ গগর এডপরনস গনপরয় কাজ কপরযন াঅনাযা াপরনপরকাআ এডপরনস এয জনয পলাগগন ফযফায কপরযন গকনত চাাআপররাআ এাআ কাজগট াঅনাযা গনপরজয ভত কপরয াগজপরয় গনপরত াপরযন গগপররয কাপরি ফ ডাসট বযার ায়না াঅনাযা মাযা একসাটড াঅপরিন তাযা এটা বার কপরয জাপরনন তাাআ াপরনপরকাআ গগপররয ডকাড ফ ডপরজ ডদখাপরত চান না এজনয পলাগগন ফযফায কপরয রাব য়না কাযন পলাগগপরন জায়গা গপকসড থাপরক এপরত কপরয াঅগনডাং ও কভ য় াঅনাযা টডপরকাড ফযফায কপরয ডমপরকান জায়গায় এড ডদখাপরত াপরযন গনপরচ াঅগভ রগট টডপরকাড ততগয কপরযগি র‟ধযপরনয এড ডদখাপরনায জনয ltphp

Plugin Name Liton Adsense Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(adsense_468adsense_468_60)

add_shortcode(adsense_250adsense_250_250)

function adsense_468_60($atts)

return ltscript type=textjavascriptgtlt--

57

google_ad_client = ca-pub-0956247412222369

468x60 created 101510

google_ad_slot = 4372705450

google_ad_width = 468

google_ad_height = 60

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

function adsense_250_250($atts)

return ltscript type=textjavascriptgtlt--

google_ad_client = ca-pub-0956247412222369

250x250 created 81809

google_ad_slot = 9368091893

google_ad_width = 250

google_ad_height = 250

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

gt

একগট টডপরকাড ফযানায টাাআপরয জনয এফাং াঅপরযকগট ২৫০২৫০ াাআপরজয এফায ডাপরসট ডমপরকান একগট টডপরকাড াআনাটড করন ডমখাপরন াঅনায ডদখাপরনায েপরয়াজন ভপরন কপরযন াঅগভ রগট ডকাড ডটসট কপরয ডদখরাভ-

58

এফায াাআপরটয াঅউটট ডদগখ-

রগট এডাআ ডদখাপরচছ াঅপরযা াপরনক কাপরজ াঅগন টডপরকাড ফযফায কযপরত াপরযন ডযপাপরযনসাঃ httpcodexwordpressorgShortcode_API

59

াধযায়- নয়াঃ পলাগগন উদাযন

ওয়াডডপরেপরয ডডটটাাআভকপরভনট নামবায ফাাংরা কযায পলাগগন াঅভাপরক কপরয়কজন ফপররগিপররন ওয়াডডপরেপরয গডপলট ডডটটাাআভকপরভনট নামবায ফাাংরা য়না রযাাংগপরয়জ ফাাংরা কযায যও ডডটটাাআভকপরভনট নামবায গপররা াআাংপরযগজ ডথপরক মায় গনপরচয পলাগগনগট ফযফায কপরয ডদখপরত াপরযন- ltphp

Plugin Name Liton Bangla datetimecomment number

Plugin URI httpliton-onlinecomplugins

Description Bangla datetimecomment number

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

This function converts all english numbers to bangla number

function make_bangla_number($str)

$engNumber = array(1234567890)

$bangNumber = array( ১ ২ ৩ ৪ ৫ ৬ ৭ ৮ ৯ ০ ) $converted = str_replace($engNumber $bangNumber $str)

return $converted

add_filter( get_the_time make_bangla_number )

add_filter( the_date make_bangla_number )

add_filter( get_the_date make_bangla_number )

add_filter( comments_number make_bangla_number )

add_filter( get_comment_date make_bangla_number )

add_filter( get_comment_time make_bangla_number )

gt

60

সলাাআডায পলাগগন াঅভযা এাআ ফাআপরয়য কর গটউপরটাগযয়াপরর মা মা গখরাভ তা এফায একগট নডাাংগ পলাগগপরনয এপলাাআ কযফ সলাাআডায পলাগগন মপপরকড াঅভযা ফাাআ জাগন একগট ওপরয়ফাাআপরটয ডচাযা ারপরট ডদয় একগট সলাাআডায াপরনক ডাাআনাগভক ভপরন য় ডদখপরতও াপরনক বার রাপরগ এাআ পলাগগপরন াঅভযা এডগভন যাপরনর ডথপরক াআপরভজ ডমাগ কযফ এফাং তা াঅভাপরদয াাআপরট ডদখাফ চরন কাজ রর কগয- েথপরভ গনপরবা সলাাআডায এয ওপরয়ফাাআপরট মান এফাং jQuery Plugin ডাউনপররাড করন

ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom Version 10

gt

াঅভযা পলাগগপরনয ডডায ততগয কযরাভ

পলাগগন গরপরসট ডদখাপরচছ bdquoLitons Nivo Plugin‟ াঅভাপরদয েথভ কাজ পরচছ custom post

type ওয়াডডপরে পাাংনাগরগট একগট নতন কাসটভ ডজ ততগয কযপরত custom post type

ফযফহরত পরফ ডমখাপরন একগট াআপরভজ থাকপরফ াঅভযা রধ টাাআপরটর ডনভ এফাং াআপরভজ াঅপররাডায গপরপরফ গপচায াআপরভজ পাাংনাগরগট ফযফায কযফ function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_function 600 280 true)

61

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

add_action(init np_init)

উপরযয ডকাপরড np_init() পাাংনগট রক কপরযগি মা ডডায যান কযায াঅপরগ যান পরফ াঅয এজনয register_post_type() পাাংনপরক এয যাযাগভটায গদপরয় np_init() পাাংপরনয ডবতপরয মি কপরযগি এটা মগদ না কযতাভ তাপরর ldquoHeaders already sentrdquo ডভপরজ ডদখাত এাআ ডভপরজগটয াপরথ াপরনপরকাআ গযগচত াঅা কগয register_post_type() পাাংন গদপরয় াঅভযা াআপরভজ মি এফাং ভযাপরনজ কযফ ভরত াঅভযা একগট নতন custom post type ডমাগ কপরযগি np_images নাভ গদপরয় নতন custom post type ডক ডগটাং বযার গপরপরফ াঅযগপরভনট া কপরযগি $args ডবগযপরয়ফরগট ট ডরপরবর ডভন ততগয কপরয াঅপরগাআ ডদপরখগি পলাগগনগট এগকটপরবট কযপরর াঅভযা গনপরচয ভত ডদখপরত াফ-

এফায গিে এফাং সটাাআরীট ডক মি কযফ- add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

এফায রক কযা পাাংনগপররা গডপরিয়ায কগয- function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__) array( jquery ))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

62

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

উপরযয ডকাডগপররা নতন কপরয ফিডনা কযায গকি ডনাআ াঅপরগাআ wp_enqueue_style() এফাং wp_enqueue_script() মপপরকড ফরা পরয়পরি নতন াঅপরযকগট পাাআর ততগয করন একাআ গডপরযকটগযপরত scriptjs এফাং গনপরচয ডকাডটক গদন- jQuery(document)ready(function($)

$(slider)nivoSlider()

)

াআপরভজপরক গযাাআজ করন- add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

াঅভযা এাআ পলাগগনগটপরক উাআপরজট গপরপরফও ফযফায কযফ ডগট পরয ডদখফ াঅপরযকগট গজগন মগদ গথপরভ না ডদয়া থাপরক ডজনয থামবপরনাআর াপরাটড গদপরয় গদন- add_theme_support( post-thumbnails )

এফায ওয়াডডপরেপরয কাপরযনট ডাসট কপরয়যী কযায ডকাড াঅয $result ডবগযপরয়ফপরর ডমফ ltdivgt টযাগ ফযফায কযা পরয়পরি তা jQuery Plugin গট একসিাকট কপরয indexhtml ডজগটয ডভাআন সলাাআডায ডকাডগট ডদখন একাআ াঅপরি রধ ডখানকায ltdivgt টযাগ গপররাপরক কগ কপরয এাআ পলাগগপরন ফযফায কযা পরয়পরি এফায টডপরকাড গদন- add_shortcode(np-shortcode np_function)

এাআ টডপরকাড গএাআচগ পাাংনপরক রক কযপরফ এফাং এয ভধয ডথপরক সলাাআডপরায কনপরটনট ডক গযটানড কযপরফ াঅভাপরদয টডপরকাড পরচছ [np-shortcode] াঅভযা পলাগগপরন মাাআ এফাং একগট িগফ মি কগয গপচাযড াআপরভজ গপরপরফ গনপরচ ডদখন-

63

াঅগভ াঅপরযকগট ডজ ততগয কপরযগি ডমখাপরন টডপরকাড গদপরয়গি

াঅউটট ডজ ডদগখ এফায-

64

পরয় ডগর াঅভাপরদয সলাাআডায পলাগগন পরযা ডকাডগট গনপরচ গদরাভ- ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

65

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

66

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

এফায াঅগন মগদ উাআপরজট গপরপরফ ফযফায কযপরত চান তাপরর গনপরচয ডকাডটক গদন- class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

67

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

echo $after_widget

াঅপরযা রগট কাজ কযপরত পরফ াঅনাপরক এক াআপরভজ াাআজ উাআপরজট এয জনয গঠক কপরয গদপরত পরফ- add_image_size(np_widget 180 100 true)

াঅপরযকগট র উাআপরজট এযাকন রক ডমাগ কযা add_action(widgets_init np_widgets_init)

উাআপরজট পরযা ডকাড াঅফায গদরাভ- ltphp

Plugin Name Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Ciprian Turcu

Version 10

68

class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

69

echo $after_widget

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

70

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(widgets_init np_widgets_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

71

পলাগগন গনপরয় এত ডিাট গযপরয ডরখা মভফ নয় এজনযাআ ভপরন য় পলাগগন গনপরয় ডকউ ডরপরখন না কাযন এখাপরন এত গফলয় াঅপরি মা াঅপররাচনা কযপরত ডগপরর ৫০০ ডজ ায পরয় মাপরফ ডফাোয সগফধাপরথড াঅগভ মথামভফ উদাযন গদপরয় ডফাোপরনায ডচষটা কপরযগি াঅগভ এখাপরন টাপরগডট কপরযগি মাযা টকটাক জাপরন পলাগগন মপপরকড এডবানস ডরপরবপররয নয় কাযন তাযা জাপরনন াঅভায উপরেশয গির মাযা জানপরত চায় তাপরদযপরক জানাপরনা এখাপরন ডমফ গফলয় াঅপররাচনা কযা পরয়পরি তা ডভাটাভগট ভাপরনয একগট পলাগগন ফানাপরনায জনয মপরথষট তপরফ ভাপরনাননয়পরনয জনয াঅনাপরক গনপরজাআ খাপরজ গনপরত পরফ াঅনায জনয ডকানটা বার পরফ াঅগভ রধ গদক গনপরদডনা গদরাভ ভাতর এাআ ফাআগট রধভাতর ওয়াডডপরে রেপরয জনয ডরখা াপরনক বর ভরাগনত থাকপরত াপরয াঅনাযা কষভাসনদয দগষটপরত ডদখপরফন াঅগভ ডচষটা কপরযগি মতটা জ কপরয ডরখা মায় াপরনক ভয় ডদখা মায় ডম খফ ডিাট খাপরটা গফলয় গনপরয় াপরনপরকাআ নক কপরযন এটা গতয রাঃখজনক াঅনাযা গগপরর একট খাজপররাআ ভাধান াপরফন াঅপরগ গনপরজ ডচষটা করন তায পরয ানযপরক ভাধাপরনয জনয গজজঞাা করন াঅভায জনয ডদায়া কযপরফন বাপররা রাগপরর জানাপরফন খাযা রাগপররও জানাপরফন তাপররাআ াঅভায গযশরভ সবাথডক পরফ ভতাভত জাগনপরয় াঅভাপরক ডভাআর কযপরত াপরযন litonice09gmailcom |

72

Page 36: Wordpress Plugin Development

37

াধযায়- াতাঃ পলাগগন গগকউগযগট

গগকউগযগট কগমপউটাপরযয বালায় ldquoগগকউগযগটrdquo ভাপরন বীগতকয একগট বদ ডমভন Cross Site

Scripting(XSS) Cross Site Request Forgery(CSRF) SQL Injection Privilege

Escalation Vulnerabilities এফাং Holes রফডর ডকাড একগট াবডাপরযয সযকষায জনয রভকীয কাযন পরত াপরয

পলাগগপরনয গগকউগযগট গক াঅনায পলাগগনগট ডমন গগকউয য় vulnerabilities data integrity এফাং reliability ডথপরক

াঅনায পলাগগনপরক গক গগকউগযগট ডদপরফন ওয়াডডপরে এনবায়যনপরভপরনট াঅনায পলাগগনপরক গগকউগযগট ডদয়া খফ কগঠন কাজ নয় এফাং খফ ভয় াপরকষ গফলয়ও নয় ওয়াডডপরেপরয গনজসব গকি পাাংন এপরকষপরতর াঅনাপরক খফাআ াাময কযপরফ

াআউজায াযগভন াঅভযা াপরনক পলাগগন াআনসটর কযায পরযাআ ডদপরখগি ডম মখনাআ এডগভন যাপরনর এ েপরফ কযপরত মাাআ তখন একগট এযয ডভপরজ াঅপর ডভপরজগট গনপরচয ভত-

ডরখা াঅপরি- You do not have sufficient permissionshellip এটা গনশচয়তা ডদয় ডম ডমপরকান এযাকন ীভাফি থাপরক গনগদডষট গকি যাাআট গদপরয় ওয়াডডপরেপরয একগট কভন পাাংন র current_user_can() একগট উদাযন ডদাআ-

38

ltphp

Capability

if ( current_user_can(install_plugins) )

wp_die( Insufficient permissions )

Role

if( current_user_can(editor) )

wp_die( You cannot edit this setting )

gt

খফ তাড়াতাগড় াঅগন এাআ current_user_can() পাাংন ডচক কযপরফন না কাযন এটা গনবডয কযপরফ get_currentuserinfo() এাআ পাাংপরনয উপরয াঅয এয ফযফাপরয ীভাফিতা াঅপরি এটা একগট পলাপরগফর পাাংন(pluggable function) াঅয এয ডরাপরকন পরচছ wp-

includespluggablephp মা পলাগগন এগকটব ফায য ডরাড য়

Nonces

ডকউ এগটপরক াঅফায Nonsense( গনপরফডাধ) বাফপরফন নাএগট ওয়াডডপরেপরয বালায় Nonces কগমপউটাপরযয বালায় nonce ফা cryptographic nonce পরচছ ldquonumber used once rdquo এটা ডিাট এফাং সপষট গকি য যানডভ গসটরাং ডমভন- াওয়াডড মা গকি গনপরদড কপরয Nonce গপরডন গপলড পভডপরক Retrieve ফা display কপরয-

একজন ওয়াডডপরে াআউজায ডমপরকান একগট এযাকন (delete update save and such) একগট াফপরজকট(একগট ডাসট পলাগগন ডগটাং াআতযাগদ) ২৪ ঘনটায একগট ভয় ডিভ

ডমভন ডাসট 50 গডগরট কযপরফন াঅনায ওয়াডডপরে বলগ ডথপরক তাপরর াঅনায গরঙকগট পরফ এযকভ- httpexamplecomwp-admin

postphppost=43ampaction=trashamp_wpnonce=83a08fcbc2

এখাপরন 83a08fcbc2 এগট র nonce মা ২৪ ঘনটা সথায়ী থাপরক রধভাতর এগট মগদ াঅনায িাযা ফযফরত য় এফাং গডগরট য় ডাসট 50 মখন াঅগন গরপরঙক গিক কপরযন ফপরচপরয় গযতবনড র ডম Nonce ডকান malicious াআউজায ফেপরত াপরযনা এফাং গঠক গরঙক িাড়া nonce এযয ডপরজ চপরর মায় ডমখাপরন াযগভন থাপরক না াঅপরযা গফসতাগযত ডদখন httpcodexwordpressorgWordPress_Nonces

39

Nonce URL ততগয এফায চরন াঅপরগয উদাযন ডথপরক Nonce URL ততগয কগয একগট ডাসট গডগরট কযায জনয wp_nonce_url() পাাংন ফযফায কযা য় ltphp

$url = wp_nonce_url( $url $action )

gt

েথভ যাযাগভটায $url পরচছ গসটরাং URL এপরডর এয মাপরক াঅগন কপরয়যী গসটরাং এয Nonce কযপরত চান াফযফহরত পলাগগপরনয গডগরট গরঙক এযকভ থাপরক- httpexamplecomwp-admineditphppage= liton

_utagsampliton_action=deleteampid=6

এখাপরন ডদখন যাযাগভটায liton_action এফাং এয টযাগ াঅাআগড গিতীয় যাযাগভটায পরচছ $action একগট গসটরাং মা াঅগন একগট াফপরজকট এয জনয একগট action ততগয কযপরফন উপরয ডদখরাভ delete এযাকন এয টযাগ াঅাআগড 6 সতযাাং $action যাযাগভটায পরত াপরয bdquoliton_utags-delete_tag6‟ গনপরচ ফাসতফ উদাযন ডদগখ- ltphp

$delete_url = add_query_arg(array( liton _action=gtdeleteid=gt$id) )

$nonced_url = wp_nonce_url( $delete_url bdquoliton _utags-delete_tag$id )

gt

lta href=ltphp echo $nonced_url gtgtdeleteltagt

এাআ টযাগগট পরফ গডগরট গরঙক এখাপরন add_query_arg() পাাংন ফযফায কযা পরয়পরি মা কাপরযনট URL ডক এযাপরয যাযাগভটায এয ভপরধয যাপরখ ানযবাপরফ ফরপরর এগট ডমাগ কপরয এযকভাঃ liton_action=deleteampid=6 amp liton_action=deleteampid=6

Nonce Form ততগয Nonce পভডপরকও ডোপরটকট কপরয wp_nonce_field() পাাংপরনয ভাধযপরভ ltphp

wp_nonce_field( $action $name $referer $echo ) gt

$action ( string) (optional) - action নাভ াআউগনক identifier optional

গকনত recommended $name (string) (optional) ndash গপরডন গপলড পভড ডবগযপরয়ফর নাভ $referer (boolean) (optional) ndash গডপলট গপরপরফ true থাপরক ডমখাপরন গপলড

ডবগরপরডন এয দযকায য়

40

$echo (boolean) (optional) - গডপলট গপরপরফ true থাপরক ডমখাপরন াঅউটট ডদখাপরনায ফা গপরডন পভড গপলড গযটানড কযায জনয দযকায য়

পপরভড াঅনায action এয নাভ গদন ltform method=postgt

lt-- some inputs here --gt

ltphp wp_nonce_field(name_of_my_actionname_of_nonce_field) gt

ltformgt

াঅভযা একগট পলাগগন ফানাপরফা ডমখাপরন াফযফরত টযাগগপররাপরক াঅভযা ভযানয়াগর গডগরট ফা গযপরনভ কযপরত াযফ এগট একট ফড় গকনত াপরনক গফলয়াআ াঅপরগাআ াঅপররাচনা কযা পরয়পরি ডদখপররাআ ফেপরত াযপরফন একগট ফাসতফধভডী উদাযন গনপরচ গদরাভ- ltphp

Plugin Name Liton Unused Tags

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add an entry for our option page to the Posts menu

add_action(admin_menu liton_utags_add_page)

function liton_utags_add_page()

add_posts_page( Unused Tags Unused Tagsmanage_optionsliton_utags

liton_utags_option_page )

Catch any liton_action parameter in query string

add_action( admin_init liton_utags_do_action )

Proceed to requested liton_action if applicable

function liton_utags_do_action()

if( isset( $_REQUEST[liton_action] ) )

return

if( current_user_can( manage_options ) )

wp_die( Insufficient privileges )

41

$id = $_REQUEST[id]

$action = $_REQUEST[liton_action]

if( $action == done )

add_action( admin_notices liton_utags_message )

return

check_admin_referer( liton_utags-$action_tag$id )

switch( $action )

case rename

$newtag = array( name =gt $_POST[name] slug =gt

$_POST[name] )

wp_update_term( $id post_tag $newtag )

break

case delete

wp_delete_term( $id post_tag )

break

wp_redirect( add_query_arg( array( liton_action =gt done )

) )

Admin notice

function liton_utags_message()

echo ltdiv class=updatedgtltpgtAction

completedltpgtltdivgt

Draw the tag management page

function liton_utags_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtUnused Tagslth2gt

ltphp

if( $tags = liton_utags_find_orphans() )

echo ltpgtYou currently have count( $tags ) unused

tagsltpgt

echo ltolgt

foreach( $tags as $tag )

42

$id = $tag-gtterm_id

$name = esc_attr( $tag-gtname )

$delete_url= add_query_arg(

array(liton_action=gtdeleteid=gt$id) )

$nonced_url= wp_nonce_url( $delete_url

liton_utags-delete_tag$id )

gt

ltligt

ltform action= method=postgt

ltphp wp_nonce_field( liton_utags-rename_tag$id )

gt

ltinput type=hidden name=liton_action

value=rename gt

ltinput type=hidden name=id value=ltphp echo

$id gt gt

ltinput type=text name=name value=ltphp echo

$name gt gt

ltinput type=submit value=Rename gt or

lta href=ltphp echo $nonced_url gtgtdeleteltagt

this tag

ltformgt

ltligt

ltphp

else gt

ltpgtYou have no unused tagsltpgt

ltphp endif gt

ltolgt

ltdivgt

ltphp

Find unused tags return them in an array

function liton_utags_find_orphans()

global $wpdb

$sql = SELECT termsterm_id termsname FROM

$wpdb-gtterms terms

INNER JOIN $wpdb-gtterm_taxonomy taxo

ON termsterm_id=taxoterm_id

WHERE taxotaxonomy = post_tag

43

AND taxocount=0

return $wpdb-gtget_results( $sql )

gt

ডযাপরফাপরডড এাআ পলাগগপরনয ডভন াওয়া মাপরফ ডাসট এয াফপরভন গপরপরফ গনপরচ ডদখন-

এফায পলাগগন ডভনপরত গিক কপরয ডদগখ পলাগগপরনয ডবতপরযয কাজ-

উপরয ডদখন াঅগভ একগট টযাগ ততগয কপরযগিরাভ l i নাপরভ এগট এখাপরন ডদখাপরচছ াঅগভ চাাআপরর এগট এগডট ফা গডগরট কযপরত াগয এফায গডগরট গরঙক এ ভাউপরয কাডয ডযপরখ গনপরচ গরঙক ডদখন ফা গডগরট করন একগট টযাগ াঅভায এখাপরন URL গট এযকভ httplocalhostdev-litonwp-

admineditphppage=liton_utagsampliton_action=doneampid=4amp_wpnonce=30a44b7

986

এখাপরন াঅগভ liton_action=done ফযফায কপরযগি Nonces এয পাাংনগপররায নাভ গনপরচ গদরাভ াঅনাযা ডদপরখ গনপরফন াআনটাযপরনট ডথপরক wp_nonce_field()

wp_nonce_url()

wp_verify_nonce()

wp_create_nonce()

44

check_admin_referer()

check_ajax_referer()

ডাটাপরফ াঅনাযা ডমপরত গএাআচগ গনপরয় কাজ কপরযন এগকউএর ডাটাপরফ এয াপরথ ফাাআ কভপরফী গযগচত এয গনটযাকস গপররা ডভাটাভগট ফায জানা একাআ বাপরফ াপরনপরকাআ ওয়াডডপরেপরও ডাটাপরফ ডকাড গরপরখন এটা ডকাগডাং এয জনয খাযা গদক াঅগভ নযভার গএাআচগ- এগকউএর ডকাড এয উদাযন গদগচছ- ltphp

$sql=rdquoINSERT INTO $wpdb-gtposts(post_title) VALUES(bdquo$title‟)rdquo

$wpdb-gtquery($sql) gt

এফায ওয়াডডপরেপরয সটযানডাডড ডকাগডাং গপরসটভ ডদখন- ltphp

$wpdb-gtinsert($wpdb-gtposts

array(bdquopost_title‟ =gt $title)

array(bdquos‟)

)

gt

ডাটাপরফ গগকউয কযায জনয াঅপরডট াাপরযন ডদখাফ- গনপরচয ডকাডগট খাযা েযাকগট ltphp

$wpdb-gtquery(ldquoUPDATE $wpdb-gtposts SET post_title=‟$newTitle‟ WHERE

ID=$my_idrdquo )

gt

উপরযয ভত কপরয না গরপরখ গনপরচয ভত কপরয গরখন- ltphp

$wpdb-gtupdate($wpdb-gtposts

Array(bdquopost_title‟ =gt‟$newTitle‟)

Array(bdquoID‟ =gt$my_id

)

gt

ানর বাপরফ ানযানয াাপরযন গপররা গরখপরফন

45

াধযায়- াঅটাঃ ডরাকারাাআপরজন এফাং Set t i ngs API

ডরাকারাাআপরজন ডরাকারাাআপরজন একগট গরতবনড গফলয় এয পাাংনগপররা র- load_theme_textdomain()

load_plugin_textdomain()

উদাযন- ltphp $var=__(bdquoHello‟‟domain‟) gt

ltphp _e(bdquoHello‟‟domain‟) gt

গফসতাগযত গনপরচয গরপরঙক ডদখন- httpcodexwordpressorgI18n_for_WordPress_Developers

ডগটাং API

ডগটাং API পরচছ াঅগন গকি ান ততগয কযপরফন মা াআনটাযনার বাপরফ াঅনায পলাগগপরন এপলাাআ পরফ মখন াঅগন াআউজায- গডপাাআন ান ততগয কযপরফন াঅনায পলাগগপরনয জনয তখন Settings

API ndashএ াঅনায ডকাড মতটা ারন জ করন Settings API াঅনায ডম কাজগপররা handle কপরয-

ওয়াডডপরেপরক জাগনপরয় ডদয় ডম াঅগন গনজসব ান ফযফায কযপরফন াঅনায াআনটপরক পাাংপরনয ভপরধয উপরেখ কযপরফ ডফগয বাগ ান ডজ গনপরজাআ ততগয কযপরফ $_POST ডাটা গপররাপরক ভগনটয কপরয ান ততগয এফাং াঅপরডট কপরয(মগদ েপরয়াজন য়)

Settings API পাাংন Settings API পাাংপরন গতনগট ডসট থাপরক- ১ েথপরভ ওয়াডডপরেপরক ফপরর ডম াঅগন নতন ডগটাং ফযফায কযপরফন াঅনায পলাগগপরনয জনয ২ এয পরয ডগটাং গডপাাআন করন (text areas input boxes and any

HTML form element) এফাং এপরদযপরক একাপরথ রে কপরয যাপরখ ৩ ওয়াডডপরেপরক াঅনায ডগটাং actual form এ ডদখাপরনায জনয ফপরর

46

এফায াঅভযা একগট পলাগগন ফানাপরফা Administration Page ndashএ ডযপাপরযনস গপরপরফ ডদখপরত াপরযন- httpcodexwordpressorgAdding_Administration_Menus

httpcodexwordpressorgFunction_Referenceadd_options_page

httpcodexwordpressorgAction_ReferenceActions_Run_During_an_Admin_P

age_Request

পলাগগপরনয এডগভন ডজ পরফ এযকভ- httpexamplecomwp-adminoptions-generalphppage=liton_myplugin

েথপরভ াঅভযা ডভন ততগয কযফ াঅপরগয ভত কপরয- Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

এফায ান ডজ এ পভড গনপরয় গকি ডগটাং ডদফ function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

উপরযয ডকাপরড াঅভযা একগট পপরভডয ভপরধয রধ াফগভট ফাটন এফাং My Plugin নাপরভ ডজ ততগয কপরযগি ডযাপরফাপরডড ডদখন-

47

ডগটাং এয াফ ডভন গপরপরফ My Plugin াঅপরি এফাং My Plugin ডত গিক কযপরর াঅভযা উপরযয ডজ ততগয কপরযগি ডমখাপরন াফগভট ফাটনগট ডদখাপরচছ এফায গতনগট যাযাগভটায ডযগজসটায কযফ- ltphp

register_setting( liton _myplugin_options liton _myplugin_options liton

_myplugin_validate_options)

gt

েথভগট ডগটাং রেপরয নাভ গিতীয়গট ান নাভ মা াঅভযা get_option() পাাংন গদপরয়ও ডপরত াগয ততীয়গট করফযাক পাাংন এগট একগট গসটরাং ডযপাপরযনস পাাংন এখাপরন াঅভযা নাভ

48

গদপরয়গি liton _myplugin_validate_options মা া কযপরফ পপরভডয কর ডব ডগটাং াঅভযা এটা পরয গডপাাআন কযফ

ডগটাং গডপাাআন ডকন add_settings_field() এফাং add_settings_section() পাাংন গদপরয় াঅভযা াঅভাপরদয কর ডগটাং গডপাাআন কযফ ltphp

add_settings_section( liton_myplugin_main My Plugin Settings

liton_myplugin_section_text liton _myplugin)

add_settings_field( liton _myplugin_text_string Enter text here

liton _myplugin_setting_input liton _myplugin liton _myplugin_main)

gt

add_settings_section() পাাংন গদপরয় াঅভযা ডদখাফ াঅপরর ডজ এ ডকন ডকভন ডদখাপরফ এয চাযগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ ডকন টাাআপরটর ltH3gt টযাপরগয ভপরধয করফযাক পাাংন এয নাভ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ (page= liton _myplugin এগট

URL এয াাং গপরপরফ থাকপরফ) গিতীয় যাযাগভটায add_settings_field() পপরভডয াআনট গপরপরফ ডদখাপরনা পরয়পরি এখাপরন াাচগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ পরযয গপপরলড গক গেনট কযা পরফ তা ডটকসট গপরপরফ ডদখাপরনা পরয়পরি(Enter text

here)

করফযাক পাাংন পপরভড গেনট কযপরফ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ ডগটাং ডপরজয ডকন গপলড মা add_settings_section() পাাংপরন গডপাাআন

কযা পরয়পরি ltphp

Explanations about this section

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

49

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton _myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name= liton _myplugin_options[text_string]

type=text value=$options[text_string] gt

gt

গিতীয় পাাংন ান বযার text_string ডক এযাপরযপরত ডসটায কপরয ডযপরখপরি এফায াআউজায াআনট বযাগরপরডট কযফ- ltphp

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace([^a-zA-Z]$input[text_string] )

return $valid

gt

পভডপরক ডযনডায কযফ- ltphp

Draw the options page

function liton_myplugin_options_page()

gt

ltdiv class=wrapgt

ltphp

screen_icon()

gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp

settings_fields( liton_myplugin_options)

do_settings_sections(liton_myplugin)

50

gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

settings_fields() পাাংনগট ডযপাপরযনস গপরপরফ ফযফায কযা পরয়পরি মা াঅভযা register_setting() পাাংপরন গডপরিয়ায কপরযগি do_settings_sections() পাাংনগট কর কযপরফ কর াঅউটট ডকন এফাং পভড গপলডপরক মা াঅভযা পরফড গডপাাআন কপরযগি াঅভাপরদয কাজ ডল এফায পরযা পলাগগনগট ডদখফ- ltphp

Plugin Name Settings API example

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

Draw the option page

function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save

Changes gt

ltformgtltdivgt

ltphp

51

Register and define the settings

add_action(admin_init liton_myplugin_admin_init)

function liton_myplugin_admin_init()

register_setting( liton_myplugin_options

liton_myplugin_options

liton_myplugin_validate_options )

add_settings_section( liton_myplugin_main My Plugin

Settings

liton_myplugin_section_text liton_myplugin )

add_settings_field( liton_myplugin_text_string Enter text

here

liton_myplugin_setting_input liton_myplugin

liton_myplugin_main )

Draw the section header

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton_myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name=liton_myplugin_options[text_string]

type=text value=$text_string gt

Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

return $valid

gt

52

ডদখন ডযাপরফাপরডড ডকভন ডদখায়-

পরয় ডগর াঅভাপরদয েথভ নডাাংগ পলাগগন ান ডজ াঅপরযকগট গজগন ডমটায জনয এতগকি পলাগগন URL এপরডর- httplocalhostdev-litonwp-adminoptions-

generalphppage=liton_mypluginampsettings-updated=true

াঅভায এখাপরন এযকভ ডদখাপরচছ ডটকসট ফপরকস ডকান গকি গরপরখ ডব কযায য এফাপরয াঅপরযকগট গজগন ডদখফ াঅভযা াপরনক ভয়াআ াপরনক পলাগগপরনয াআনট গপপরলড বর ডাটা াআনট কযপরর এযয ডভপরজ ডদখায় এাআ কাজগট কযফ এফায াঅভযা এখাপরন esc_attr() ফা esc_html() ফযফায কগযগন সতযাাং াঅভাপরদয গরগভপরটন থাকপরি ডবগরপরডট পাাংনগট একট এগডট কগয গনপরচয ভত কপরয Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

if( $valid[text_string] = $input[text_string] )

add_settings_error(liton_myplugin_text_stringliton_myplugin_texterror

53

Incorrect value enterederror)

return $valid

উপরয ডদখন add_settings_error() পাাংন ফযফায কপরযগি মা এযয ডচক কযপরফ পপরভডয াঅগভ একগট বর ডাটা(পরসপার কযাপরযকটায) াআনট কপরয ডদখরাভ এযয ডদখাপরচছ-

তায ভাপরন াঅভযা পর পরয়গি াঅনায পলাগগনগট এগডট কপরয ডনপরফন ডকায ডকন এফাং গপপরলডয গরসট গদরাভ াঅনাপরদয সগফধায জনয

54

CSSJS পাাআর মি কযা

াঅনায পলাগগপরন গএএ ফা জাবাগিে ডমাগ কযপরত পরত াপরয াঅগন চাাআপরর ফাগপরযয ডকান ফা াঅনায ততগয ডকান গএএ ফা জাবাগিে পাাআর ডমাগ কযপরত াপরযন তপরফ এপরকষপরতর াঅভযা ডমবাপরফ HTML এ পাাআর ডমাগ কগয ডযকভ না function liton_scripts()

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtojqueryjsrdquogtltscriptgt‟

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtoscriptjsrdquogtltscriptgt‟

add_action(bdquowp_head‟‟liton_scripts‟)

এগট মপনডরপর বর িগত গনপরচ ডদখন ওয়াডডপরেপর গকবাপরফ পাাআর মি কযপরত য়- function liton_scripts()

wp_enqueue_script(bdquojquery‟)

wp_enqueue_script(bdquotheme-scripts‟‟pathtoscriptsjs‟)

add_action(bdquowp_enqueue_script‟‟liton_scripts‟)

ানর বাপরফ াঅগন সটাাআরীট ডমাগ কযপরত াপরযন- function liton_styles()

wp_enqueue_ style (bdquocss‟)

wp_enqueue_ style (bdquotheme- styles‟pathto stylescss‟)

ডযপাপরযনস ডদখন- httpcodexwordpressorgFunction_Referencewp_enqueue_script

httpcodexwordpressorgFunction_Referencewp_enqueue_style

টডপরকাড টডপরকাড পরচছ ওয়াডডপরেপরয ডসপগগপক ডসপার টযাগ মা াঅগন ডাসট ফা ডপরজয ভপরধয াআনাটড কপরয ানয ডকান কনপরটনটপরক ওপরয়ফাাআপরটয ভপরধয গযপরপল কযপরত াযপরফন মগদ াঅগন গযারাগয টাাআপরয ডকান পলাগগন ফযফায কপরয থাপরকন তাপরর াঅনায ধাযনা থাকায কথা মাাআ ডাক াঅগভ কপরয়কগট উদাযি ডদখাফ

55

েথপরভ একগট পলাগগন ততগয কযফ ডমখাপরন add_shortcode() নাপরভয একগট পাাংন থাকপরফ এগট রগট যাযাগভটায েন কপরয েথভগট টডপরকাপরডয নাভ গিতীয়গট ডম পাাংনপরক কর কযপরফন ডগট াঅভযা একগট উদাযন ডদগখ- ltphp

Plugin Name Liton Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(litonhi)

function hi()

echo Hello World

gt

উপরয ডদখন খফ ডিাট গকনত াঅগন চাাআপরর এয ফযফায াপরনক গফসতত কযপরত াপরযন এখাপরন টডপরকাড নাভ পরচছ liton াঅয এগটপরক ডরখা য় এবাপরফ [liton] াঅভযা ডাপরসটয ভপরধয াআনাটড কপরয ডদগখ াঅউটট ডকভন ডদখায়-

এফায াঅউটট ডদগখ-

56

াঅভাপরদয ততগয কযা টডপরকাড পরবাপরফাআ কাজ কযপরি াঅপরযকগট উদাযন ডদখফ াঅনাযা াপরনপরকাআ গগর এডপরনস গনপরয় কাজ কপরযন াঅনাযা াপরনপরকাআ এডপরনস এয জনয পলাগগন ফযফায কপরযন গকনত চাাআপররাআ এাআ কাজগট াঅনাযা গনপরজয ভত কপরয াগজপরয় গনপরত াপরযন গগপররয কাপরি ফ ডাসট বযার ায়না াঅনাযা মাযা একসাটড াঅপরিন তাযা এটা বার কপরয জাপরনন তাাআ াপরনপরকাআ গগপররয ডকাড ফ ডপরজ ডদখাপরত চান না এজনয পলাগগন ফযফায কপরয রাব য়না কাযন পলাগগপরন জায়গা গপকসড থাপরক এপরত কপরয াঅগনডাং ও কভ য় াঅনাযা টডপরকাড ফযফায কপরয ডমপরকান জায়গায় এড ডদখাপরত াপরযন গনপরচ াঅগভ রগট টডপরকাড ততগয কপরযগি র‟ধযপরনয এড ডদখাপরনায জনয ltphp

Plugin Name Liton Adsense Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(adsense_468adsense_468_60)

add_shortcode(adsense_250adsense_250_250)

function adsense_468_60($atts)

return ltscript type=textjavascriptgtlt--

57

google_ad_client = ca-pub-0956247412222369

468x60 created 101510

google_ad_slot = 4372705450

google_ad_width = 468

google_ad_height = 60

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

function adsense_250_250($atts)

return ltscript type=textjavascriptgtlt--

google_ad_client = ca-pub-0956247412222369

250x250 created 81809

google_ad_slot = 9368091893

google_ad_width = 250

google_ad_height = 250

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

gt

একগট টডপরকাড ফযানায টাাআপরয জনয এফাং াঅপরযকগট ২৫০২৫০ াাআপরজয এফায ডাপরসট ডমপরকান একগট টডপরকাড াআনাটড করন ডমখাপরন াঅনায ডদখাপরনায েপরয়াজন ভপরন কপরযন াঅগভ রগট ডকাড ডটসট কপরয ডদখরাভ-

58

এফায াাআপরটয াঅউটট ডদগখ-

রগট এডাআ ডদখাপরচছ াঅপরযা াপরনক কাপরজ াঅগন টডপরকাড ফযফায কযপরত াপরযন ডযপাপরযনসাঃ httpcodexwordpressorgShortcode_API

59

াধযায়- নয়াঃ পলাগগন উদাযন

ওয়াডডপরেপরয ডডটটাাআভকপরভনট নামবায ফাাংরা কযায পলাগগন াঅভাপরক কপরয়কজন ফপররগিপররন ওয়াডডপরেপরয গডপলট ডডটটাাআভকপরভনট নামবায ফাাংরা য়না রযাাংগপরয়জ ফাাংরা কযায যও ডডটটাাআভকপরভনট নামবায গপররা াআাংপরযগজ ডথপরক মায় গনপরচয পলাগগনগট ফযফায কপরয ডদখপরত াপরযন- ltphp

Plugin Name Liton Bangla datetimecomment number

Plugin URI httpliton-onlinecomplugins

Description Bangla datetimecomment number

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

This function converts all english numbers to bangla number

function make_bangla_number($str)

$engNumber = array(1234567890)

$bangNumber = array( ১ ২ ৩ ৪ ৫ ৬ ৭ ৮ ৯ ০ ) $converted = str_replace($engNumber $bangNumber $str)

return $converted

add_filter( get_the_time make_bangla_number )

add_filter( the_date make_bangla_number )

add_filter( get_the_date make_bangla_number )

add_filter( comments_number make_bangla_number )

add_filter( get_comment_date make_bangla_number )

add_filter( get_comment_time make_bangla_number )

gt

60

সলাাআডায পলাগগন াঅভযা এাআ ফাআপরয়য কর গটউপরটাগযয়াপরর মা মা গখরাভ তা এফায একগট নডাাংগ পলাগগপরনয এপলাাআ কযফ সলাাআডায পলাগগন মপপরকড াঅভযা ফাাআ জাগন একগট ওপরয়ফাাআপরটয ডচাযা ারপরট ডদয় একগট সলাাআডায াপরনক ডাাআনাগভক ভপরন য় ডদখপরতও াপরনক বার রাপরগ এাআ পলাগগপরন াঅভযা এডগভন যাপরনর ডথপরক াআপরভজ ডমাগ কযফ এফাং তা াঅভাপরদয াাআপরট ডদখাফ চরন কাজ রর কগয- েথপরভ গনপরবা সলাাআডায এয ওপরয়ফাাআপরট মান এফাং jQuery Plugin ডাউনপররাড করন

ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom Version 10

gt

াঅভযা পলাগগপরনয ডডায ততগয কযরাভ

পলাগগন গরপরসট ডদখাপরচছ bdquoLitons Nivo Plugin‟ াঅভাপরদয েথভ কাজ পরচছ custom post

type ওয়াডডপরে পাাংনাগরগট একগট নতন কাসটভ ডজ ততগয কযপরত custom post type

ফযফহরত পরফ ডমখাপরন একগট াআপরভজ থাকপরফ াঅভযা রধ টাাআপরটর ডনভ এফাং াআপরভজ াঅপররাডায গপরপরফ গপচায াআপরভজ পাাংনাগরগট ফযফায কযফ function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_function 600 280 true)

61

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

add_action(init np_init)

উপরযয ডকাপরড np_init() পাাংনগট রক কপরযগি মা ডডায যান কযায াঅপরগ যান পরফ াঅয এজনয register_post_type() পাাংনপরক এয যাযাগভটায গদপরয় np_init() পাাংপরনয ডবতপরয মি কপরযগি এটা মগদ না কযতাভ তাপরর ldquoHeaders already sentrdquo ডভপরজ ডদখাত এাআ ডভপরজগটয াপরথ াপরনপরকাআ গযগচত াঅা কগয register_post_type() পাাংন গদপরয় াঅভযা াআপরভজ মি এফাং ভযাপরনজ কযফ ভরত াঅভযা একগট নতন custom post type ডমাগ কপরযগি np_images নাভ গদপরয় নতন custom post type ডক ডগটাং বযার গপরপরফ াঅযগপরভনট া কপরযগি $args ডবগযপরয়ফরগট ট ডরপরবর ডভন ততগয কপরয াঅপরগাআ ডদপরখগি পলাগগনগট এগকটপরবট কযপরর াঅভযা গনপরচয ভত ডদখপরত াফ-

এফায গিে এফাং সটাাআরীট ডক মি কযফ- add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

এফায রক কযা পাাংনগপররা গডপরিয়ায কগয- function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__) array( jquery ))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

62

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

উপরযয ডকাডগপররা নতন কপরয ফিডনা কযায গকি ডনাআ াঅপরগাআ wp_enqueue_style() এফাং wp_enqueue_script() মপপরকড ফরা পরয়পরি নতন াঅপরযকগট পাাআর ততগয করন একাআ গডপরযকটগযপরত scriptjs এফাং গনপরচয ডকাডটক গদন- jQuery(document)ready(function($)

$(slider)nivoSlider()

)

াআপরভজপরক গযাাআজ করন- add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

াঅভযা এাআ পলাগগনগটপরক উাআপরজট গপরপরফও ফযফায কযফ ডগট পরয ডদখফ াঅপরযকগট গজগন মগদ গথপরভ না ডদয়া থাপরক ডজনয থামবপরনাআর াপরাটড গদপরয় গদন- add_theme_support( post-thumbnails )

এফায ওয়াডডপরেপরয কাপরযনট ডাসট কপরয়যী কযায ডকাড াঅয $result ডবগযপরয়ফপরর ডমফ ltdivgt টযাগ ফযফায কযা পরয়পরি তা jQuery Plugin গট একসিাকট কপরয indexhtml ডজগটয ডভাআন সলাাআডায ডকাডগট ডদখন একাআ াঅপরি রধ ডখানকায ltdivgt টযাগ গপররাপরক কগ কপরয এাআ পলাগগপরন ফযফায কযা পরয়পরি এফায টডপরকাড গদন- add_shortcode(np-shortcode np_function)

এাআ টডপরকাড গএাআচগ পাাংনপরক রক কযপরফ এফাং এয ভধয ডথপরক সলাাআডপরায কনপরটনট ডক গযটানড কযপরফ াঅভাপরদয টডপরকাড পরচছ [np-shortcode] াঅভযা পলাগগপরন মাাআ এফাং একগট িগফ মি কগয গপচাযড াআপরভজ গপরপরফ গনপরচ ডদখন-

63

াঅগভ াঅপরযকগট ডজ ততগয কপরযগি ডমখাপরন টডপরকাড গদপরয়গি

াঅউটট ডজ ডদগখ এফায-

64

পরয় ডগর াঅভাপরদয সলাাআডায পলাগগন পরযা ডকাডগট গনপরচ গদরাভ- ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

65

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

66

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

এফায াঅগন মগদ উাআপরজট গপরপরফ ফযফায কযপরত চান তাপরর গনপরচয ডকাডটক গদন- class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

67

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

echo $after_widget

াঅপরযা রগট কাজ কযপরত পরফ াঅনাপরক এক াআপরভজ াাআজ উাআপরজট এয জনয গঠক কপরয গদপরত পরফ- add_image_size(np_widget 180 100 true)

াঅপরযকগট র উাআপরজট এযাকন রক ডমাগ কযা add_action(widgets_init np_widgets_init)

উাআপরজট পরযা ডকাড াঅফায গদরাভ- ltphp

Plugin Name Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Ciprian Turcu

Version 10

68

class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

69

echo $after_widget

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

70

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(widgets_init np_widgets_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

71

পলাগগন গনপরয় এত ডিাট গযপরয ডরখা মভফ নয় এজনযাআ ভপরন য় পলাগগন গনপরয় ডকউ ডরপরখন না কাযন এখাপরন এত গফলয় াঅপরি মা াঅপররাচনা কযপরত ডগপরর ৫০০ ডজ ায পরয় মাপরফ ডফাোয সগফধাপরথড াঅগভ মথামভফ উদাযন গদপরয় ডফাোপরনায ডচষটা কপরযগি াঅগভ এখাপরন টাপরগডট কপরযগি মাযা টকটাক জাপরন পলাগগন মপপরকড এডবানস ডরপরবপররয নয় কাযন তাযা জাপরনন াঅভায উপরেশয গির মাযা জানপরত চায় তাপরদযপরক জানাপরনা এখাপরন ডমফ গফলয় াঅপররাচনা কযা পরয়পরি তা ডভাটাভগট ভাপরনয একগট পলাগগন ফানাপরনায জনয মপরথষট তপরফ ভাপরনাননয়পরনয জনয াঅনাপরক গনপরজাআ খাপরজ গনপরত পরফ াঅনায জনয ডকানটা বার পরফ াঅগভ রধ গদক গনপরদডনা গদরাভ ভাতর এাআ ফাআগট রধভাতর ওয়াডডপরে রেপরয জনয ডরখা াপরনক বর ভরাগনত থাকপরত াপরয াঅনাযা কষভাসনদয দগষটপরত ডদখপরফন াঅগভ ডচষটা কপরযগি মতটা জ কপরয ডরখা মায় াপরনক ভয় ডদখা মায় ডম খফ ডিাট খাপরটা গফলয় গনপরয় াপরনপরকাআ নক কপরযন এটা গতয রাঃখজনক াঅনাযা গগপরর একট খাজপররাআ ভাধান াপরফন াঅপরগ গনপরজ ডচষটা করন তায পরয ানযপরক ভাধাপরনয জনয গজজঞাা করন াঅভায জনয ডদায়া কযপরফন বাপররা রাগপরর জানাপরফন খাযা রাগপররও জানাপরফন তাপররাআ াঅভায গযশরভ সবাথডক পরফ ভতাভত জাগনপরয় াঅভাপরক ডভাআর কযপরত াপরযন litonice09gmailcom |

72

Page 37: Wordpress Plugin Development

38

ltphp

Capability

if ( current_user_can(install_plugins) )

wp_die( Insufficient permissions )

Role

if( current_user_can(editor) )

wp_die( You cannot edit this setting )

gt

খফ তাড়াতাগড় াঅগন এাআ current_user_can() পাাংন ডচক কযপরফন না কাযন এটা গনবডয কযপরফ get_currentuserinfo() এাআ পাাংপরনয উপরয াঅয এয ফযফাপরয ীভাফিতা াঅপরি এটা একগট পলাপরগফর পাাংন(pluggable function) াঅয এয ডরাপরকন পরচছ wp-

includespluggablephp মা পলাগগন এগকটব ফায য ডরাড য়

Nonces

ডকউ এগটপরক াঅফায Nonsense( গনপরফডাধ) বাফপরফন নাএগট ওয়াডডপরেপরয বালায় Nonces কগমপউটাপরযয বালায় nonce ফা cryptographic nonce পরচছ ldquonumber used once rdquo এটা ডিাট এফাং সপষট গকি য যানডভ গসটরাং ডমভন- াওয়াডড মা গকি গনপরদড কপরয Nonce গপরডন গপলড পভডপরক Retrieve ফা display কপরয-

একজন ওয়াডডপরে াআউজায ডমপরকান একগট এযাকন (delete update save and such) একগট াফপরজকট(একগট ডাসট পলাগগন ডগটাং াআতযাগদ) ২৪ ঘনটায একগট ভয় ডিভ

ডমভন ডাসট 50 গডগরট কযপরফন াঅনায ওয়াডডপরে বলগ ডথপরক তাপরর াঅনায গরঙকগট পরফ এযকভ- httpexamplecomwp-admin

postphppost=43ampaction=trashamp_wpnonce=83a08fcbc2

এখাপরন 83a08fcbc2 এগট র nonce মা ২৪ ঘনটা সথায়ী থাপরক রধভাতর এগট মগদ াঅনায িাযা ফযফরত য় এফাং গডগরট য় ডাসট 50 মখন াঅগন গরপরঙক গিক কপরযন ফপরচপরয় গযতবনড র ডম Nonce ডকান malicious াআউজায ফেপরত াপরযনা এফাং গঠক গরঙক িাড়া nonce এযয ডপরজ চপরর মায় ডমখাপরন াযগভন থাপরক না াঅপরযা গফসতাগযত ডদখন httpcodexwordpressorgWordPress_Nonces

39

Nonce URL ততগয এফায চরন াঅপরগয উদাযন ডথপরক Nonce URL ততগয কগয একগট ডাসট গডগরট কযায জনয wp_nonce_url() পাাংন ফযফায কযা য় ltphp

$url = wp_nonce_url( $url $action )

gt

েথভ যাযাগভটায $url পরচছ গসটরাং URL এপরডর এয মাপরক াঅগন কপরয়যী গসটরাং এয Nonce কযপরত চান াফযফহরত পলাগগপরনয গডগরট গরঙক এযকভ থাপরক- httpexamplecomwp-admineditphppage= liton

_utagsampliton_action=deleteampid=6

এখাপরন ডদখন যাযাগভটায liton_action এফাং এয টযাগ াঅাআগড গিতীয় যাযাগভটায পরচছ $action একগট গসটরাং মা াঅগন একগট াফপরজকট এয জনয একগট action ততগয কযপরফন উপরয ডদখরাভ delete এযাকন এয টযাগ াঅাআগড 6 সতযাাং $action যাযাগভটায পরত াপরয bdquoliton_utags-delete_tag6‟ গনপরচ ফাসতফ উদাযন ডদগখ- ltphp

$delete_url = add_query_arg(array( liton _action=gtdeleteid=gt$id) )

$nonced_url = wp_nonce_url( $delete_url bdquoliton _utags-delete_tag$id )

gt

lta href=ltphp echo $nonced_url gtgtdeleteltagt

এাআ টযাগগট পরফ গডগরট গরঙক এখাপরন add_query_arg() পাাংন ফযফায কযা পরয়পরি মা কাপরযনট URL ডক এযাপরয যাযাগভটায এয ভপরধয যাপরখ ানযবাপরফ ফরপরর এগট ডমাগ কপরয এযকভাঃ liton_action=deleteampid=6 amp liton_action=deleteampid=6

Nonce Form ততগয Nonce পভডপরকও ডোপরটকট কপরয wp_nonce_field() পাাংপরনয ভাধযপরভ ltphp

wp_nonce_field( $action $name $referer $echo ) gt

$action ( string) (optional) - action নাভ াআউগনক identifier optional

গকনত recommended $name (string) (optional) ndash গপরডন গপলড পভড ডবগযপরয়ফর নাভ $referer (boolean) (optional) ndash গডপলট গপরপরফ true থাপরক ডমখাপরন গপলড

ডবগরপরডন এয দযকায য়

40

$echo (boolean) (optional) - গডপলট গপরপরফ true থাপরক ডমখাপরন াঅউটট ডদখাপরনায ফা গপরডন পভড গপলড গযটানড কযায জনয দযকায য়

পপরভড াঅনায action এয নাভ গদন ltform method=postgt

lt-- some inputs here --gt

ltphp wp_nonce_field(name_of_my_actionname_of_nonce_field) gt

ltformgt

াঅভযা একগট পলাগগন ফানাপরফা ডমখাপরন াফযফরত টযাগগপররাপরক াঅভযা ভযানয়াগর গডগরট ফা গযপরনভ কযপরত াযফ এগট একট ফড় গকনত াপরনক গফলয়াআ াঅপরগাআ াঅপররাচনা কযা পরয়পরি ডদখপররাআ ফেপরত াযপরফন একগট ফাসতফধভডী উদাযন গনপরচ গদরাভ- ltphp

Plugin Name Liton Unused Tags

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add an entry for our option page to the Posts menu

add_action(admin_menu liton_utags_add_page)

function liton_utags_add_page()

add_posts_page( Unused Tags Unused Tagsmanage_optionsliton_utags

liton_utags_option_page )

Catch any liton_action parameter in query string

add_action( admin_init liton_utags_do_action )

Proceed to requested liton_action if applicable

function liton_utags_do_action()

if( isset( $_REQUEST[liton_action] ) )

return

if( current_user_can( manage_options ) )

wp_die( Insufficient privileges )

41

$id = $_REQUEST[id]

$action = $_REQUEST[liton_action]

if( $action == done )

add_action( admin_notices liton_utags_message )

return

check_admin_referer( liton_utags-$action_tag$id )

switch( $action )

case rename

$newtag = array( name =gt $_POST[name] slug =gt

$_POST[name] )

wp_update_term( $id post_tag $newtag )

break

case delete

wp_delete_term( $id post_tag )

break

wp_redirect( add_query_arg( array( liton_action =gt done )

) )

Admin notice

function liton_utags_message()

echo ltdiv class=updatedgtltpgtAction

completedltpgtltdivgt

Draw the tag management page

function liton_utags_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtUnused Tagslth2gt

ltphp

if( $tags = liton_utags_find_orphans() )

echo ltpgtYou currently have count( $tags ) unused

tagsltpgt

echo ltolgt

foreach( $tags as $tag )

42

$id = $tag-gtterm_id

$name = esc_attr( $tag-gtname )

$delete_url= add_query_arg(

array(liton_action=gtdeleteid=gt$id) )

$nonced_url= wp_nonce_url( $delete_url

liton_utags-delete_tag$id )

gt

ltligt

ltform action= method=postgt

ltphp wp_nonce_field( liton_utags-rename_tag$id )

gt

ltinput type=hidden name=liton_action

value=rename gt

ltinput type=hidden name=id value=ltphp echo

$id gt gt

ltinput type=text name=name value=ltphp echo

$name gt gt

ltinput type=submit value=Rename gt or

lta href=ltphp echo $nonced_url gtgtdeleteltagt

this tag

ltformgt

ltligt

ltphp

else gt

ltpgtYou have no unused tagsltpgt

ltphp endif gt

ltolgt

ltdivgt

ltphp

Find unused tags return them in an array

function liton_utags_find_orphans()

global $wpdb

$sql = SELECT termsterm_id termsname FROM

$wpdb-gtterms terms

INNER JOIN $wpdb-gtterm_taxonomy taxo

ON termsterm_id=taxoterm_id

WHERE taxotaxonomy = post_tag

43

AND taxocount=0

return $wpdb-gtget_results( $sql )

gt

ডযাপরফাপরডড এাআ পলাগগপরনয ডভন াওয়া মাপরফ ডাসট এয াফপরভন গপরপরফ গনপরচ ডদখন-

এফায পলাগগন ডভনপরত গিক কপরয ডদগখ পলাগগপরনয ডবতপরযয কাজ-

উপরয ডদখন াঅগভ একগট টযাগ ততগয কপরযগিরাভ l i নাপরভ এগট এখাপরন ডদখাপরচছ াঅগভ চাাআপরর এগট এগডট ফা গডগরট কযপরত াগয এফায গডগরট গরঙক এ ভাউপরয কাডয ডযপরখ গনপরচ গরঙক ডদখন ফা গডগরট করন একগট টযাগ াঅভায এখাপরন URL গট এযকভ httplocalhostdev-litonwp-

admineditphppage=liton_utagsampliton_action=doneampid=4amp_wpnonce=30a44b7

986

এখাপরন াঅগভ liton_action=done ফযফায কপরযগি Nonces এয পাাংনগপররায নাভ গনপরচ গদরাভ াঅনাযা ডদপরখ গনপরফন াআনটাযপরনট ডথপরক wp_nonce_field()

wp_nonce_url()

wp_verify_nonce()

wp_create_nonce()

44

check_admin_referer()

check_ajax_referer()

ডাটাপরফ াঅনাযা ডমপরত গএাআচগ গনপরয় কাজ কপরযন এগকউএর ডাটাপরফ এয াপরথ ফাাআ কভপরফী গযগচত এয গনটযাকস গপররা ডভাটাভগট ফায জানা একাআ বাপরফ াপরনপরকাআ ওয়াডডপরেপরও ডাটাপরফ ডকাড গরপরখন এটা ডকাগডাং এয জনয খাযা গদক াঅগভ নযভার গএাআচগ- এগকউএর ডকাড এয উদাযন গদগচছ- ltphp

$sql=rdquoINSERT INTO $wpdb-gtposts(post_title) VALUES(bdquo$title‟)rdquo

$wpdb-gtquery($sql) gt

এফায ওয়াডডপরেপরয সটযানডাডড ডকাগডাং গপরসটভ ডদখন- ltphp

$wpdb-gtinsert($wpdb-gtposts

array(bdquopost_title‟ =gt $title)

array(bdquos‟)

)

gt

ডাটাপরফ গগকউয কযায জনয াঅপরডট াাপরযন ডদখাফ- গনপরচয ডকাডগট খাযা েযাকগট ltphp

$wpdb-gtquery(ldquoUPDATE $wpdb-gtposts SET post_title=‟$newTitle‟ WHERE

ID=$my_idrdquo )

gt

উপরযয ভত কপরয না গরপরখ গনপরচয ভত কপরয গরখন- ltphp

$wpdb-gtupdate($wpdb-gtposts

Array(bdquopost_title‟ =gt‟$newTitle‟)

Array(bdquoID‟ =gt$my_id

)

gt

ানর বাপরফ ানযানয াাপরযন গপররা গরখপরফন

45

াধযায়- াঅটাঃ ডরাকারাাআপরজন এফাং Set t i ngs API

ডরাকারাাআপরজন ডরাকারাাআপরজন একগট গরতবনড গফলয় এয পাাংনগপররা র- load_theme_textdomain()

load_plugin_textdomain()

উদাযন- ltphp $var=__(bdquoHello‟‟domain‟) gt

ltphp _e(bdquoHello‟‟domain‟) gt

গফসতাগযত গনপরচয গরপরঙক ডদখন- httpcodexwordpressorgI18n_for_WordPress_Developers

ডগটাং API

ডগটাং API পরচছ াঅগন গকি ান ততগয কযপরফন মা াআনটাযনার বাপরফ াঅনায পলাগগপরন এপলাাআ পরফ মখন াঅগন াআউজায- গডপাাআন ান ততগয কযপরফন াঅনায পলাগগপরনয জনয তখন Settings

API ndashএ াঅনায ডকাড মতটা ারন জ করন Settings API াঅনায ডম কাজগপররা handle কপরয-

ওয়াডডপরেপরক জাগনপরয় ডদয় ডম াঅগন গনজসব ান ফযফায কযপরফন াঅনায াআনটপরক পাাংপরনয ভপরধয উপরেখ কযপরফ ডফগয বাগ ান ডজ গনপরজাআ ততগয কযপরফ $_POST ডাটা গপররাপরক ভগনটয কপরয ান ততগয এফাং াঅপরডট কপরয(মগদ েপরয়াজন য়)

Settings API পাাংন Settings API পাাংপরন গতনগট ডসট থাপরক- ১ েথপরভ ওয়াডডপরেপরক ফপরর ডম াঅগন নতন ডগটাং ফযফায কযপরফন াঅনায পলাগগপরনয জনয ২ এয পরয ডগটাং গডপাাআন করন (text areas input boxes and any

HTML form element) এফাং এপরদযপরক একাপরথ রে কপরয যাপরখ ৩ ওয়াডডপরেপরক াঅনায ডগটাং actual form এ ডদখাপরনায জনয ফপরর

46

এফায াঅভযা একগট পলাগগন ফানাপরফা Administration Page ndashএ ডযপাপরযনস গপরপরফ ডদখপরত াপরযন- httpcodexwordpressorgAdding_Administration_Menus

httpcodexwordpressorgFunction_Referenceadd_options_page

httpcodexwordpressorgAction_ReferenceActions_Run_During_an_Admin_P

age_Request

পলাগগপরনয এডগভন ডজ পরফ এযকভ- httpexamplecomwp-adminoptions-generalphppage=liton_myplugin

েথপরভ াঅভযা ডভন ততগয কযফ াঅপরগয ভত কপরয- Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

এফায ান ডজ এ পভড গনপরয় গকি ডগটাং ডদফ function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

উপরযয ডকাপরড াঅভযা একগট পপরভডয ভপরধয রধ াফগভট ফাটন এফাং My Plugin নাপরভ ডজ ততগয কপরযগি ডযাপরফাপরডড ডদখন-

47

ডগটাং এয াফ ডভন গপরপরফ My Plugin াঅপরি এফাং My Plugin ডত গিক কযপরর াঅভযা উপরযয ডজ ততগয কপরযগি ডমখাপরন াফগভট ফাটনগট ডদখাপরচছ এফায গতনগট যাযাগভটায ডযগজসটায কযফ- ltphp

register_setting( liton _myplugin_options liton _myplugin_options liton

_myplugin_validate_options)

gt

েথভগট ডগটাং রেপরয নাভ গিতীয়গট ান নাভ মা াঅভযা get_option() পাাংন গদপরয়ও ডপরত াগয ততীয়গট করফযাক পাাংন এগট একগট গসটরাং ডযপাপরযনস পাাংন এখাপরন াঅভযা নাভ

48

গদপরয়গি liton _myplugin_validate_options মা া কযপরফ পপরভডয কর ডব ডগটাং াঅভযা এটা পরয গডপাাআন কযফ

ডগটাং গডপাাআন ডকন add_settings_field() এফাং add_settings_section() পাাংন গদপরয় াঅভযা াঅভাপরদয কর ডগটাং গডপাাআন কযফ ltphp

add_settings_section( liton_myplugin_main My Plugin Settings

liton_myplugin_section_text liton _myplugin)

add_settings_field( liton _myplugin_text_string Enter text here

liton _myplugin_setting_input liton _myplugin liton _myplugin_main)

gt

add_settings_section() পাাংন গদপরয় াঅভযা ডদখাফ াঅপরর ডজ এ ডকন ডকভন ডদখাপরফ এয চাযগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ ডকন টাাআপরটর ltH3gt টযাপরগয ভপরধয করফযাক পাাংন এয নাভ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ (page= liton _myplugin এগট

URL এয াাং গপরপরফ থাকপরফ) গিতীয় যাযাগভটায add_settings_field() পপরভডয াআনট গপরপরফ ডদখাপরনা পরয়পরি এখাপরন াাচগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ পরযয গপপরলড গক গেনট কযা পরফ তা ডটকসট গপরপরফ ডদখাপরনা পরয়পরি(Enter text

here)

করফযাক পাাংন পপরভড গেনট কযপরফ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ ডগটাং ডপরজয ডকন গপলড মা add_settings_section() পাাংপরন গডপাাআন

কযা পরয়পরি ltphp

Explanations about this section

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

49

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton _myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name= liton _myplugin_options[text_string]

type=text value=$options[text_string] gt

gt

গিতীয় পাাংন ান বযার text_string ডক এযাপরযপরত ডসটায কপরয ডযপরখপরি এফায াআউজায াআনট বযাগরপরডট কযফ- ltphp

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace([^a-zA-Z]$input[text_string] )

return $valid

gt

পভডপরক ডযনডায কযফ- ltphp

Draw the options page

function liton_myplugin_options_page()

gt

ltdiv class=wrapgt

ltphp

screen_icon()

gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp

settings_fields( liton_myplugin_options)

do_settings_sections(liton_myplugin)

50

gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

settings_fields() পাাংনগট ডযপাপরযনস গপরপরফ ফযফায কযা পরয়পরি মা াঅভযা register_setting() পাাংপরন গডপরিয়ায কপরযগি do_settings_sections() পাাংনগট কর কযপরফ কর াঅউটট ডকন এফাং পভড গপলডপরক মা াঅভযা পরফড গডপাাআন কপরযগি াঅভাপরদয কাজ ডল এফায পরযা পলাগগনগট ডদখফ- ltphp

Plugin Name Settings API example

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

Draw the option page

function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save

Changes gt

ltformgtltdivgt

ltphp

51

Register and define the settings

add_action(admin_init liton_myplugin_admin_init)

function liton_myplugin_admin_init()

register_setting( liton_myplugin_options

liton_myplugin_options

liton_myplugin_validate_options )

add_settings_section( liton_myplugin_main My Plugin

Settings

liton_myplugin_section_text liton_myplugin )

add_settings_field( liton_myplugin_text_string Enter text

here

liton_myplugin_setting_input liton_myplugin

liton_myplugin_main )

Draw the section header

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton_myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name=liton_myplugin_options[text_string]

type=text value=$text_string gt

Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

return $valid

gt

52

ডদখন ডযাপরফাপরডড ডকভন ডদখায়-

পরয় ডগর াঅভাপরদয েথভ নডাাংগ পলাগগন ান ডজ াঅপরযকগট গজগন ডমটায জনয এতগকি পলাগগন URL এপরডর- httplocalhostdev-litonwp-adminoptions-

generalphppage=liton_mypluginampsettings-updated=true

াঅভায এখাপরন এযকভ ডদখাপরচছ ডটকসট ফপরকস ডকান গকি গরপরখ ডব কযায য এফাপরয াঅপরযকগট গজগন ডদখফ াঅভযা াপরনক ভয়াআ াপরনক পলাগগপরনয াআনট গপপরলড বর ডাটা াআনট কযপরর এযয ডভপরজ ডদখায় এাআ কাজগট কযফ এফায াঅভযা এখাপরন esc_attr() ফা esc_html() ফযফায কগযগন সতযাাং াঅভাপরদয গরগভপরটন থাকপরি ডবগরপরডট পাাংনগট একট এগডট কগয গনপরচয ভত কপরয Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

if( $valid[text_string] = $input[text_string] )

add_settings_error(liton_myplugin_text_stringliton_myplugin_texterror

53

Incorrect value enterederror)

return $valid

উপরয ডদখন add_settings_error() পাাংন ফযফায কপরযগি মা এযয ডচক কযপরফ পপরভডয াঅগভ একগট বর ডাটা(পরসপার কযাপরযকটায) াআনট কপরয ডদখরাভ এযয ডদখাপরচছ-

তায ভাপরন াঅভযা পর পরয়গি াঅনায পলাগগনগট এগডট কপরয ডনপরফন ডকায ডকন এফাং গপপরলডয গরসট গদরাভ াঅনাপরদয সগফধায জনয

54

CSSJS পাাআর মি কযা

াঅনায পলাগগপরন গএএ ফা জাবাগিে ডমাগ কযপরত পরত াপরয াঅগন চাাআপরর ফাগপরযয ডকান ফা াঅনায ততগয ডকান গএএ ফা জাবাগিে পাাআর ডমাগ কযপরত াপরযন তপরফ এপরকষপরতর াঅভযা ডমবাপরফ HTML এ পাাআর ডমাগ কগয ডযকভ না function liton_scripts()

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtojqueryjsrdquogtltscriptgt‟

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtoscriptjsrdquogtltscriptgt‟

add_action(bdquowp_head‟‟liton_scripts‟)

এগট মপনডরপর বর িগত গনপরচ ডদখন ওয়াডডপরেপর গকবাপরফ পাাআর মি কযপরত য়- function liton_scripts()

wp_enqueue_script(bdquojquery‟)

wp_enqueue_script(bdquotheme-scripts‟‟pathtoscriptsjs‟)

add_action(bdquowp_enqueue_script‟‟liton_scripts‟)

ানর বাপরফ াঅগন সটাাআরীট ডমাগ কযপরত াপরযন- function liton_styles()

wp_enqueue_ style (bdquocss‟)

wp_enqueue_ style (bdquotheme- styles‟pathto stylescss‟)

ডযপাপরযনস ডদখন- httpcodexwordpressorgFunction_Referencewp_enqueue_script

httpcodexwordpressorgFunction_Referencewp_enqueue_style

টডপরকাড টডপরকাড পরচছ ওয়াডডপরেপরয ডসপগগপক ডসপার টযাগ মা াঅগন ডাসট ফা ডপরজয ভপরধয াআনাটড কপরয ানয ডকান কনপরটনটপরক ওপরয়ফাাআপরটয ভপরধয গযপরপল কযপরত াযপরফন মগদ াঅগন গযারাগয টাাআপরয ডকান পলাগগন ফযফায কপরয থাপরকন তাপরর াঅনায ধাযনা থাকায কথা মাাআ ডাক াঅগভ কপরয়কগট উদাযি ডদখাফ

55

েথপরভ একগট পলাগগন ততগয কযফ ডমখাপরন add_shortcode() নাপরভয একগট পাাংন থাকপরফ এগট রগট যাযাগভটায েন কপরয েথভগট টডপরকাপরডয নাভ গিতীয়গট ডম পাাংনপরক কর কযপরফন ডগট াঅভযা একগট উদাযন ডদগখ- ltphp

Plugin Name Liton Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(litonhi)

function hi()

echo Hello World

gt

উপরয ডদখন খফ ডিাট গকনত াঅগন চাাআপরর এয ফযফায াপরনক গফসতত কযপরত াপরযন এখাপরন টডপরকাড নাভ পরচছ liton াঅয এগটপরক ডরখা য় এবাপরফ [liton] াঅভযা ডাপরসটয ভপরধয াআনাটড কপরয ডদগখ াঅউটট ডকভন ডদখায়-

এফায াঅউটট ডদগখ-

56

াঅভাপরদয ততগয কযা টডপরকাড পরবাপরফাআ কাজ কযপরি াঅপরযকগট উদাযন ডদখফ াঅনাযা াপরনপরকাআ গগর এডপরনস গনপরয় কাজ কপরযন াঅনাযা াপরনপরকাআ এডপরনস এয জনয পলাগগন ফযফায কপরযন গকনত চাাআপররাআ এাআ কাজগট াঅনাযা গনপরজয ভত কপরয াগজপরয় গনপরত াপরযন গগপররয কাপরি ফ ডাসট বযার ায়না াঅনাযা মাযা একসাটড াঅপরিন তাযা এটা বার কপরয জাপরনন তাাআ াপরনপরকাআ গগপররয ডকাড ফ ডপরজ ডদখাপরত চান না এজনয পলাগগন ফযফায কপরয রাব য়না কাযন পলাগগপরন জায়গা গপকসড থাপরক এপরত কপরয াঅগনডাং ও কভ য় াঅনাযা টডপরকাড ফযফায কপরয ডমপরকান জায়গায় এড ডদখাপরত াপরযন গনপরচ াঅগভ রগট টডপরকাড ততগয কপরযগি র‟ধযপরনয এড ডদখাপরনায জনয ltphp

Plugin Name Liton Adsense Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(adsense_468adsense_468_60)

add_shortcode(adsense_250adsense_250_250)

function adsense_468_60($atts)

return ltscript type=textjavascriptgtlt--

57

google_ad_client = ca-pub-0956247412222369

468x60 created 101510

google_ad_slot = 4372705450

google_ad_width = 468

google_ad_height = 60

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

function adsense_250_250($atts)

return ltscript type=textjavascriptgtlt--

google_ad_client = ca-pub-0956247412222369

250x250 created 81809

google_ad_slot = 9368091893

google_ad_width = 250

google_ad_height = 250

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

gt

একগট টডপরকাড ফযানায টাাআপরয জনয এফাং াঅপরযকগট ২৫০২৫০ াাআপরজয এফায ডাপরসট ডমপরকান একগট টডপরকাড াআনাটড করন ডমখাপরন াঅনায ডদখাপরনায েপরয়াজন ভপরন কপরযন াঅগভ রগট ডকাড ডটসট কপরয ডদখরাভ-

58

এফায াাআপরটয াঅউটট ডদগখ-

রগট এডাআ ডদখাপরচছ াঅপরযা াপরনক কাপরজ াঅগন টডপরকাড ফযফায কযপরত াপরযন ডযপাপরযনসাঃ httpcodexwordpressorgShortcode_API

59

াধযায়- নয়াঃ পলাগগন উদাযন

ওয়াডডপরেপরয ডডটটাাআভকপরভনট নামবায ফাাংরা কযায পলাগগন াঅভাপরক কপরয়কজন ফপররগিপররন ওয়াডডপরেপরয গডপলট ডডটটাাআভকপরভনট নামবায ফাাংরা য়না রযাাংগপরয়জ ফাাংরা কযায যও ডডটটাাআভকপরভনট নামবায গপররা াআাংপরযগজ ডথপরক মায় গনপরচয পলাগগনগট ফযফায কপরয ডদখপরত াপরযন- ltphp

Plugin Name Liton Bangla datetimecomment number

Plugin URI httpliton-onlinecomplugins

Description Bangla datetimecomment number

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

This function converts all english numbers to bangla number

function make_bangla_number($str)

$engNumber = array(1234567890)

$bangNumber = array( ১ ২ ৩ ৪ ৫ ৬ ৭ ৮ ৯ ০ ) $converted = str_replace($engNumber $bangNumber $str)

return $converted

add_filter( get_the_time make_bangla_number )

add_filter( the_date make_bangla_number )

add_filter( get_the_date make_bangla_number )

add_filter( comments_number make_bangla_number )

add_filter( get_comment_date make_bangla_number )

add_filter( get_comment_time make_bangla_number )

gt

60

সলাাআডায পলাগগন াঅভযা এাআ ফাআপরয়য কর গটউপরটাগযয়াপরর মা মা গখরাভ তা এফায একগট নডাাংগ পলাগগপরনয এপলাাআ কযফ সলাাআডায পলাগগন মপপরকড াঅভযা ফাাআ জাগন একগট ওপরয়ফাাআপরটয ডচাযা ারপরট ডদয় একগট সলাাআডায াপরনক ডাাআনাগভক ভপরন য় ডদখপরতও াপরনক বার রাপরগ এাআ পলাগগপরন াঅভযা এডগভন যাপরনর ডথপরক াআপরভজ ডমাগ কযফ এফাং তা াঅভাপরদয াাআপরট ডদখাফ চরন কাজ রর কগয- েথপরভ গনপরবা সলাাআডায এয ওপরয়ফাাআপরট মান এফাং jQuery Plugin ডাউনপররাড করন

ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom Version 10

gt

াঅভযা পলাগগপরনয ডডায ততগয কযরাভ

পলাগগন গরপরসট ডদখাপরচছ bdquoLitons Nivo Plugin‟ াঅভাপরদয েথভ কাজ পরচছ custom post

type ওয়াডডপরে পাাংনাগরগট একগট নতন কাসটভ ডজ ততগয কযপরত custom post type

ফযফহরত পরফ ডমখাপরন একগট াআপরভজ থাকপরফ াঅভযা রধ টাাআপরটর ডনভ এফাং াআপরভজ াঅপররাডায গপরপরফ গপচায াআপরভজ পাাংনাগরগট ফযফায কযফ function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_function 600 280 true)

61

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

add_action(init np_init)

উপরযয ডকাপরড np_init() পাাংনগট রক কপরযগি মা ডডায যান কযায াঅপরগ যান পরফ াঅয এজনয register_post_type() পাাংনপরক এয যাযাগভটায গদপরয় np_init() পাাংপরনয ডবতপরয মি কপরযগি এটা মগদ না কযতাভ তাপরর ldquoHeaders already sentrdquo ডভপরজ ডদখাত এাআ ডভপরজগটয াপরথ াপরনপরকাআ গযগচত াঅা কগয register_post_type() পাাংন গদপরয় াঅভযা াআপরভজ মি এফাং ভযাপরনজ কযফ ভরত াঅভযা একগট নতন custom post type ডমাগ কপরযগি np_images নাভ গদপরয় নতন custom post type ডক ডগটাং বযার গপরপরফ াঅযগপরভনট া কপরযগি $args ডবগযপরয়ফরগট ট ডরপরবর ডভন ততগয কপরয াঅপরগাআ ডদপরখগি পলাগগনগট এগকটপরবট কযপরর াঅভযা গনপরচয ভত ডদখপরত াফ-

এফায গিে এফাং সটাাআরীট ডক মি কযফ- add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

এফায রক কযা পাাংনগপররা গডপরিয়ায কগয- function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__) array( jquery ))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

62

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

উপরযয ডকাডগপররা নতন কপরয ফিডনা কযায গকি ডনাআ াঅপরগাআ wp_enqueue_style() এফাং wp_enqueue_script() মপপরকড ফরা পরয়পরি নতন াঅপরযকগট পাাআর ততগয করন একাআ গডপরযকটগযপরত scriptjs এফাং গনপরচয ডকাডটক গদন- jQuery(document)ready(function($)

$(slider)nivoSlider()

)

াআপরভজপরক গযাাআজ করন- add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

াঅভযা এাআ পলাগগনগটপরক উাআপরজট গপরপরফও ফযফায কযফ ডগট পরয ডদখফ াঅপরযকগট গজগন মগদ গথপরভ না ডদয়া থাপরক ডজনয থামবপরনাআর াপরাটড গদপরয় গদন- add_theme_support( post-thumbnails )

এফায ওয়াডডপরেপরয কাপরযনট ডাসট কপরয়যী কযায ডকাড াঅয $result ডবগযপরয়ফপরর ডমফ ltdivgt টযাগ ফযফায কযা পরয়পরি তা jQuery Plugin গট একসিাকট কপরয indexhtml ডজগটয ডভাআন সলাাআডায ডকাডগট ডদখন একাআ াঅপরি রধ ডখানকায ltdivgt টযাগ গপররাপরক কগ কপরয এাআ পলাগগপরন ফযফায কযা পরয়পরি এফায টডপরকাড গদন- add_shortcode(np-shortcode np_function)

এাআ টডপরকাড গএাআচগ পাাংনপরক রক কযপরফ এফাং এয ভধয ডথপরক সলাাআডপরায কনপরটনট ডক গযটানড কযপরফ াঅভাপরদয টডপরকাড পরচছ [np-shortcode] াঅভযা পলাগগপরন মাাআ এফাং একগট িগফ মি কগয গপচাযড াআপরভজ গপরপরফ গনপরচ ডদখন-

63

াঅগভ াঅপরযকগট ডজ ততগয কপরযগি ডমখাপরন টডপরকাড গদপরয়গি

াঅউটট ডজ ডদগখ এফায-

64

পরয় ডগর াঅভাপরদয সলাাআডায পলাগগন পরযা ডকাডগট গনপরচ গদরাভ- ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

65

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

66

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

এফায াঅগন মগদ উাআপরজট গপরপরফ ফযফায কযপরত চান তাপরর গনপরচয ডকাডটক গদন- class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

67

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

echo $after_widget

াঅপরযা রগট কাজ কযপরত পরফ াঅনাপরক এক াআপরভজ াাআজ উাআপরজট এয জনয গঠক কপরয গদপরত পরফ- add_image_size(np_widget 180 100 true)

াঅপরযকগট র উাআপরজট এযাকন রক ডমাগ কযা add_action(widgets_init np_widgets_init)

উাআপরজট পরযা ডকাড াঅফায গদরাভ- ltphp

Plugin Name Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Ciprian Turcu

Version 10

68

class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

69

echo $after_widget

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

70

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(widgets_init np_widgets_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

71

পলাগগন গনপরয় এত ডিাট গযপরয ডরখা মভফ নয় এজনযাআ ভপরন য় পলাগগন গনপরয় ডকউ ডরপরখন না কাযন এখাপরন এত গফলয় াঅপরি মা াঅপররাচনা কযপরত ডগপরর ৫০০ ডজ ায পরয় মাপরফ ডফাোয সগফধাপরথড াঅগভ মথামভফ উদাযন গদপরয় ডফাোপরনায ডচষটা কপরযগি াঅগভ এখাপরন টাপরগডট কপরযগি মাযা টকটাক জাপরন পলাগগন মপপরকড এডবানস ডরপরবপররয নয় কাযন তাযা জাপরনন াঅভায উপরেশয গির মাযা জানপরত চায় তাপরদযপরক জানাপরনা এখাপরন ডমফ গফলয় াঅপররাচনা কযা পরয়পরি তা ডভাটাভগট ভাপরনয একগট পলাগগন ফানাপরনায জনয মপরথষট তপরফ ভাপরনাননয়পরনয জনয াঅনাপরক গনপরজাআ খাপরজ গনপরত পরফ াঅনায জনয ডকানটা বার পরফ াঅগভ রধ গদক গনপরদডনা গদরাভ ভাতর এাআ ফাআগট রধভাতর ওয়াডডপরে রেপরয জনয ডরখা াপরনক বর ভরাগনত থাকপরত াপরয াঅনাযা কষভাসনদয দগষটপরত ডদখপরফন াঅগভ ডচষটা কপরযগি মতটা জ কপরয ডরখা মায় াপরনক ভয় ডদখা মায় ডম খফ ডিাট খাপরটা গফলয় গনপরয় াপরনপরকাআ নক কপরযন এটা গতয রাঃখজনক াঅনাযা গগপরর একট খাজপররাআ ভাধান াপরফন াঅপরগ গনপরজ ডচষটা করন তায পরয ানযপরক ভাধাপরনয জনয গজজঞাা করন াঅভায জনয ডদায়া কযপরফন বাপররা রাগপরর জানাপরফন খাযা রাগপররও জানাপরফন তাপররাআ াঅভায গযশরভ সবাথডক পরফ ভতাভত জাগনপরয় াঅভাপরক ডভাআর কযপরত াপরযন litonice09gmailcom |

72

Page 38: Wordpress Plugin Development

39

Nonce URL ততগয এফায চরন াঅপরগয উদাযন ডথপরক Nonce URL ততগয কগয একগট ডাসট গডগরট কযায জনয wp_nonce_url() পাাংন ফযফায কযা য় ltphp

$url = wp_nonce_url( $url $action )

gt

েথভ যাযাগভটায $url পরচছ গসটরাং URL এপরডর এয মাপরক াঅগন কপরয়যী গসটরাং এয Nonce কযপরত চান াফযফহরত পলাগগপরনয গডগরট গরঙক এযকভ থাপরক- httpexamplecomwp-admineditphppage= liton

_utagsampliton_action=deleteampid=6

এখাপরন ডদখন যাযাগভটায liton_action এফাং এয টযাগ াঅাআগড গিতীয় যাযাগভটায পরচছ $action একগট গসটরাং মা াঅগন একগট াফপরজকট এয জনয একগট action ততগয কযপরফন উপরয ডদখরাভ delete এযাকন এয টযাগ াঅাআগড 6 সতযাাং $action যাযাগভটায পরত াপরয bdquoliton_utags-delete_tag6‟ গনপরচ ফাসতফ উদাযন ডদগখ- ltphp

$delete_url = add_query_arg(array( liton _action=gtdeleteid=gt$id) )

$nonced_url = wp_nonce_url( $delete_url bdquoliton _utags-delete_tag$id )

gt

lta href=ltphp echo $nonced_url gtgtdeleteltagt

এাআ টযাগগট পরফ গডগরট গরঙক এখাপরন add_query_arg() পাাংন ফযফায কযা পরয়পরি মা কাপরযনট URL ডক এযাপরয যাযাগভটায এয ভপরধয যাপরখ ানযবাপরফ ফরপরর এগট ডমাগ কপরয এযকভাঃ liton_action=deleteampid=6 amp liton_action=deleteampid=6

Nonce Form ততগয Nonce পভডপরকও ডোপরটকট কপরয wp_nonce_field() পাাংপরনয ভাধযপরভ ltphp

wp_nonce_field( $action $name $referer $echo ) gt

$action ( string) (optional) - action নাভ াআউগনক identifier optional

গকনত recommended $name (string) (optional) ndash গপরডন গপলড পভড ডবগযপরয়ফর নাভ $referer (boolean) (optional) ndash গডপলট গপরপরফ true থাপরক ডমখাপরন গপলড

ডবগরপরডন এয দযকায য়

40

$echo (boolean) (optional) - গডপলট গপরপরফ true থাপরক ডমখাপরন াঅউটট ডদখাপরনায ফা গপরডন পভড গপলড গযটানড কযায জনয দযকায য়

পপরভড াঅনায action এয নাভ গদন ltform method=postgt

lt-- some inputs here --gt

ltphp wp_nonce_field(name_of_my_actionname_of_nonce_field) gt

ltformgt

াঅভযা একগট পলাগগন ফানাপরফা ডমখাপরন াফযফরত টযাগগপররাপরক াঅভযা ভযানয়াগর গডগরট ফা গযপরনভ কযপরত াযফ এগট একট ফড় গকনত াপরনক গফলয়াআ াঅপরগাআ াঅপররাচনা কযা পরয়পরি ডদখপররাআ ফেপরত াযপরফন একগট ফাসতফধভডী উদাযন গনপরচ গদরাভ- ltphp

Plugin Name Liton Unused Tags

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add an entry for our option page to the Posts menu

add_action(admin_menu liton_utags_add_page)

function liton_utags_add_page()

add_posts_page( Unused Tags Unused Tagsmanage_optionsliton_utags

liton_utags_option_page )

Catch any liton_action parameter in query string

add_action( admin_init liton_utags_do_action )

Proceed to requested liton_action if applicable

function liton_utags_do_action()

if( isset( $_REQUEST[liton_action] ) )

return

if( current_user_can( manage_options ) )

wp_die( Insufficient privileges )

41

$id = $_REQUEST[id]

$action = $_REQUEST[liton_action]

if( $action == done )

add_action( admin_notices liton_utags_message )

return

check_admin_referer( liton_utags-$action_tag$id )

switch( $action )

case rename

$newtag = array( name =gt $_POST[name] slug =gt

$_POST[name] )

wp_update_term( $id post_tag $newtag )

break

case delete

wp_delete_term( $id post_tag )

break

wp_redirect( add_query_arg( array( liton_action =gt done )

) )

Admin notice

function liton_utags_message()

echo ltdiv class=updatedgtltpgtAction

completedltpgtltdivgt

Draw the tag management page

function liton_utags_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtUnused Tagslth2gt

ltphp

if( $tags = liton_utags_find_orphans() )

echo ltpgtYou currently have count( $tags ) unused

tagsltpgt

echo ltolgt

foreach( $tags as $tag )

42

$id = $tag-gtterm_id

$name = esc_attr( $tag-gtname )

$delete_url= add_query_arg(

array(liton_action=gtdeleteid=gt$id) )

$nonced_url= wp_nonce_url( $delete_url

liton_utags-delete_tag$id )

gt

ltligt

ltform action= method=postgt

ltphp wp_nonce_field( liton_utags-rename_tag$id )

gt

ltinput type=hidden name=liton_action

value=rename gt

ltinput type=hidden name=id value=ltphp echo

$id gt gt

ltinput type=text name=name value=ltphp echo

$name gt gt

ltinput type=submit value=Rename gt or

lta href=ltphp echo $nonced_url gtgtdeleteltagt

this tag

ltformgt

ltligt

ltphp

else gt

ltpgtYou have no unused tagsltpgt

ltphp endif gt

ltolgt

ltdivgt

ltphp

Find unused tags return them in an array

function liton_utags_find_orphans()

global $wpdb

$sql = SELECT termsterm_id termsname FROM

$wpdb-gtterms terms

INNER JOIN $wpdb-gtterm_taxonomy taxo

ON termsterm_id=taxoterm_id

WHERE taxotaxonomy = post_tag

43

AND taxocount=0

return $wpdb-gtget_results( $sql )

gt

ডযাপরফাপরডড এাআ পলাগগপরনয ডভন াওয়া মাপরফ ডাসট এয াফপরভন গপরপরফ গনপরচ ডদখন-

এফায পলাগগন ডভনপরত গিক কপরয ডদগখ পলাগগপরনয ডবতপরযয কাজ-

উপরয ডদখন াঅগভ একগট টযাগ ততগয কপরযগিরাভ l i নাপরভ এগট এখাপরন ডদখাপরচছ াঅগভ চাাআপরর এগট এগডট ফা গডগরট কযপরত াগয এফায গডগরট গরঙক এ ভাউপরয কাডয ডযপরখ গনপরচ গরঙক ডদখন ফা গডগরট করন একগট টযাগ াঅভায এখাপরন URL গট এযকভ httplocalhostdev-litonwp-

admineditphppage=liton_utagsampliton_action=doneampid=4amp_wpnonce=30a44b7

986

এখাপরন াঅগভ liton_action=done ফযফায কপরযগি Nonces এয পাাংনগপররায নাভ গনপরচ গদরাভ াঅনাযা ডদপরখ গনপরফন াআনটাযপরনট ডথপরক wp_nonce_field()

wp_nonce_url()

wp_verify_nonce()

wp_create_nonce()

44

check_admin_referer()

check_ajax_referer()

ডাটাপরফ াঅনাযা ডমপরত গএাআচগ গনপরয় কাজ কপরযন এগকউএর ডাটাপরফ এয াপরথ ফাাআ কভপরফী গযগচত এয গনটযাকস গপররা ডভাটাভগট ফায জানা একাআ বাপরফ াপরনপরকাআ ওয়াডডপরেপরও ডাটাপরফ ডকাড গরপরখন এটা ডকাগডাং এয জনয খাযা গদক াঅগভ নযভার গএাআচগ- এগকউএর ডকাড এয উদাযন গদগচছ- ltphp

$sql=rdquoINSERT INTO $wpdb-gtposts(post_title) VALUES(bdquo$title‟)rdquo

$wpdb-gtquery($sql) gt

এফায ওয়াডডপরেপরয সটযানডাডড ডকাগডাং গপরসটভ ডদখন- ltphp

$wpdb-gtinsert($wpdb-gtposts

array(bdquopost_title‟ =gt $title)

array(bdquos‟)

)

gt

ডাটাপরফ গগকউয কযায জনয াঅপরডট াাপরযন ডদখাফ- গনপরচয ডকাডগট খাযা েযাকগট ltphp

$wpdb-gtquery(ldquoUPDATE $wpdb-gtposts SET post_title=‟$newTitle‟ WHERE

ID=$my_idrdquo )

gt

উপরযয ভত কপরয না গরপরখ গনপরচয ভত কপরয গরখন- ltphp

$wpdb-gtupdate($wpdb-gtposts

Array(bdquopost_title‟ =gt‟$newTitle‟)

Array(bdquoID‟ =gt$my_id

)

gt

ানর বাপরফ ানযানয াাপরযন গপররা গরখপরফন

45

াধযায়- াঅটাঃ ডরাকারাাআপরজন এফাং Set t i ngs API

ডরাকারাাআপরজন ডরাকারাাআপরজন একগট গরতবনড গফলয় এয পাাংনগপররা র- load_theme_textdomain()

load_plugin_textdomain()

উদাযন- ltphp $var=__(bdquoHello‟‟domain‟) gt

ltphp _e(bdquoHello‟‟domain‟) gt

গফসতাগযত গনপরচয গরপরঙক ডদখন- httpcodexwordpressorgI18n_for_WordPress_Developers

ডগটাং API

ডগটাং API পরচছ াঅগন গকি ান ততগয কযপরফন মা াআনটাযনার বাপরফ াঅনায পলাগগপরন এপলাাআ পরফ মখন াঅগন াআউজায- গডপাাআন ান ততগয কযপরফন াঅনায পলাগগপরনয জনয তখন Settings

API ndashএ াঅনায ডকাড মতটা ারন জ করন Settings API াঅনায ডম কাজগপররা handle কপরয-

ওয়াডডপরেপরক জাগনপরয় ডদয় ডম াঅগন গনজসব ান ফযফায কযপরফন াঅনায াআনটপরক পাাংপরনয ভপরধয উপরেখ কযপরফ ডফগয বাগ ান ডজ গনপরজাআ ততগয কযপরফ $_POST ডাটা গপররাপরক ভগনটয কপরয ান ততগয এফাং াঅপরডট কপরয(মগদ েপরয়াজন য়)

Settings API পাাংন Settings API পাাংপরন গতনগট ডসট থাপরক- ১ েথপরভ ওয়াডডপরেপরক ফপরর ডম াঅগন নতন ডগটাং ফযফায কযপরফন াঅনায পলাগগপরনয জনয ২ এয পরয ডগটাং গডপাাআন করন (text areas input boxes and any

HTML form element) এফাং এপরদযপরক একাপরথ রে কপরয যাপরখ ৩ ওয়াডডপরেপরক াঅনায ডগটাং actual form এ ডদখাপরনায জনয ফপরর

46

এফায াঅভযা একগট পলাগগন ফানাপরফা Administration Page ndashএ ডযপাপরযনস গপরপরফ ডদখপরত াপরযন- httpcodexwordpressorgAdding_Administration_Menus

httpcodexwordpressorgFunction_Referenceadd_options_page

httpcodexwordpressorgAction_ReferenceActions_Run_During_an_Admin_P

age_Request

পলাগগপরনয এডগভন ডজ পরফ এযকভ- httpexamplecomwp-adminoptions-generalphppage=liton_myplugin

েথপরভ াঅভযা ডভন ততগয কযফ াঅপরগয ভত কপরয- Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

এফায ান ডজ এ পভড গনপরয় গকি ডগটাং ডদফ function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

উপরযয ডকাপরড াঅভযা একগট পপরভডয ভপরধয রধ াফগভট ফাটন এফাং My Plugin নাপরভ ডজ ততগয কপরযগি ডযাপরফাপরডড ডদখন-

47

ডগটাং এয াফ ডভন গপরপরফ My Plugin াঅপরি এফাং My Plugin ডত গিক কযপরর াঅভযা উপরযয ডজ ততগয কপরযগি ডমখাপরন াফগভট ফাটনগট ডদখাপরচছ এফায গতনগট যাযাগভটায ডযগজসটায কযফ- ltphp

register_setting( liton _myplugin_options liton _myplugin_options liton

_myplugin_validate_options)

gt

েথভগট ডগটাং রেপরয নাভ গিতীয়গট ান নাভ মা াঅভযা get_option() পাাংন গদপরয়ও ডপরত াগয ততীয়গট করফযাক পাাংন এগট একগট গসটরাং ডযপাপরযনস পাাংন এখাপরন াঅভযা নাভ

48

গদপরয়গি liton _myplugin_validate_options মা া কযপরফ পপরভডয কর ডব ডগটাং াঅভযা এটা পরয গডপাাআন কযফ

ডগটাং গডপাাআন ডকন add_settings_field() এফাং add_settings_section() পাাংন গদপরয় াঅভযা াঅভাপরদয কর ডগটাং গডপাাআন কযফ ltphp

add_settings_section( liton_myplugin_main My Plugin Settings

liton_myplugin_section_text liton _myplugin)

add_settings_field( liton _myplugin_text_string Enter text here

liton _myplugin_setting_input liton _myplugin liton _myplugin_main)

gt

add_settings_section() পাাংন গদপরয় াঅভযা ডদখাফ াঅপরর ডজ এ ডকন ডকভন ডদখাপরফ এয চাযগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ ডকন টাাআপরটর ltH3gt টযাপরগয ভপরধয করফযাক পাাংন এয নাভ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ (page= liton _myplugin এগট

URL এয াাং গপরপরফ থাকপরফ) গিতীয় যাযাগভটায add_settings_field() পপরভডয াআনট গপরপরফ ডদখাপরনা পরয়পরি এখাপরন াাচগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ পরযয গপপরলড গক গেনট কযা পরফ তা ডটকসট গপরপরফ ডদখাপরনা পরয়পরি(Enter text

here)

করফযাক পাাংন পপরভড গেনট কযপরফ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ ডগটাং ডপরজয ডকন গপলড মা add_settings_section() পাাংপরন গডপাাআন

কযা পরয়পরি ltphp

Explanations about this section

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

49

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton _myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name= liton _myplugin_options[text_string]

type=text value=$options[text_string] gt

gt

গিতীয় পাাংন ান বযার text_string ডক এযাপরযপরত ডসটায কপরয ডযপরখপরি এফায াআউজায াআনট বযাগরপরডট কযফ- ltphp

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace([^a-zA-Z]$input[text_string] )

return $valid

gt

পভডপরক ডযনডায কযফ- ltphp

Draw the options page

function liton_myplugin_options_page()

gt

ltdiv class=wrapgt

ltphp

screen_icon()

gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp

settings_fields( liton_myplugin_options)

do_settings_sections(liton_myplugin)

50

gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

settings_fields() পাাংনগট ডযপাপরযনস গপরপরফ ফযফায কযা পরয়পরি মা াঅভযা register_setting() পাাংপরন গডপরিয়ায কপরযগি do_settings_sections() পাাংনগট কর কযপরফ কর াঅউটট ডকন এফাং পভড গপলডপরক মা াঅভযা পরফড গডপাাআন কপরযগি াঅভাপরদয কাজ ডল এফায পরযা পলাগগনগট ডদখফ- ltphp

Plugin Name Settings API example

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

Draw the option page

function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save

Changes gt

ltformgtltdivgt

ltphp

51

Register and define the settings

add_action(admin_init liton_myplugin_admin_init)

function liton_myplugin_admin_init()

register_setting( liton_myplugin_options

liton_myplugin_options

liton_myplugin_validate_options )

add_settings_section( liton_myplugin_main My Plugin

Settings

liton_myplugin_section_text liton_myplugin )

add_settings_field( liton_myplugin_text_string Enter text

here

liton_myplugin_setting_input liton_myplugin

liton_myplugin_main )

Draw the section header

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton_myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name=liton_myplugin_options[text_string]

type=text value=$text_string gt

Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

return $valid

gt

52

ডদখন ডযাপরফাপরডড ডকভন ডদখায়-

পরয় ডগর াঅভাপরদয েথভ নডাাংগ পলাগগন ান ডজ াঅপরযকগট গজগন ডমটায জনয এতগকি পলাগগন URL এপরডর- httplocalhostdev-litonwp-adminoptions-

generalphppage=liton_mypluginampsettings-updated=true

াঅভায এখাপরন এযকভ ডদখাপরচছ ডটকসট ফপরকস ডকান গকি গরপরখ ডব কযায য এফাপরয াঅপরযকগট গজগন ডদখফ াঅভযা াপরনক ভয়াআ াপরনক পলাগগপরনয াআনট গপপরলড বর ডাটা াআনট কযপরর এযয ডভপরজ ডদখায় এাআ কাজগট কযফ এফায াঅভযা এখাপরন esc_attr() ফা esc_html() ফযফায কগযগন সতযাাং াঅভাপরদয গরগভপরটন থাকপরি ডবগরপরডট পাাংনগট একট এগডট কগয গনপরচয ভত কপরয Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

if( $valid[text_string] = $input[text_string] )

add_settings_error(liton_myplugin_text_stringliton_myplugin_texterror

53

Incorrect value enterederror)

return $valid

উপরয ডদখন add_settings_error() পাাংন ফযফায কপরযগি মা এযয ডচক কযপরফ পপরভডয াঅগভ একগট বর ডাটা(পরসপার কযাপরযকটায) াআনট কপরয ডদখরাভ এযয ডদখাপরচছ-

তায ভাপরন াঅভযা পর পরয়গি াঅনায পলাগগনগট এগডট কপরয ডনপরফন ডকায ডকন এফাং গপপরলডয গরসট গদরাভ াঅনাপরদয সগফধায জনয

54

CSSJS পাাআর মি কযা

াঅনায পলাগগপরন গএএ ফা জাবাগিে ডমাগ কযপরত পরত াপরয াঅগন চাাআপরর ফাগপরযয ডকান ফা াঅনায ততগয ডকান গএএ ফা জাবাগিে পাাআর ডমাগ কযপরত াপরযন তপরফ এপরকষপরতর াঅভযা ডমবাপরফ HTML এ পাাআর ডমাগ কগয ডযকভ না function liton_scripts()

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtojqueryjsrdquogtltscriptgt‟

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtoscriptjsrdquogtltscriptgt‟

add_action(bdquowp_head‟‟liton_scripts‟)

এগট মপনডরপর বর িগত গনপরচ ডদখন ওয়াডডপরেপর গকবাপরফ পাাআর মি কযপরত য়- function liton_scripts()

wp_enqueue_script(bdquojquery‟)

wp_enqueue_script(bdquotheme-scripts‟‟pathtoscriptsjs‟)

add_action(bdquowp_enqueue_script‟‟liton_scripts‟)

ানর বাপরফ াঅগন সটাাআরীট ডমাগ কযপরত াপরযন- function liton_styles()

wp_enqueue_ style (bdquocss‟)

wp_enqueue_ style (bdquotheme- styles‟pathto stylescss‟)

ডযপাপরযনস ডদখন- httpcodexwordpressorgFunction_Referencewp_enqueue_script

httpcodexwordpressorgFunction_Referencewp_enqueue_style

টডপরকাড টডপরকাড পরচছ ওয়াডডপরেপরয ডসপগগপক ডসপার টযাগ মা াঅগন ডাসট ফা ডপরজয ভপরধয াআনাটড কপরয ানয ডকান কনপরটনটপরক ওপরয়ফাাআপরটয ভপরধয গযপরপল কযপরত াযপরফন মগদ াঅগন গযারাগয টাাআপরয ডকান পলাগগন ফযফায কপরয থাপরকন তাপরর াঅনায ধাযনা থাকায কথা মাাআ ডাক াঅগভ কপরয়কগট উদাযি ডদখাফ

55

েথপরভ একগট পলাগগন ততগয কযফ ডমখাপরন add_shortcode() নাপরভয একগট পাাংন থাকপরফ এগট রগট যাযাগভটায েন কপরয েথভগট টডপরকাপরডয নাভ গিতীয়গট ডম পাাংনপরক কর কযপরফন ডগট াঅভযা একগট উদাযন ডদগখ- ltphp

Plugin Name Liton Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(litonhi)

function hi()

echo Hello World

gt

উপরয ডদখন খফ ডিাট গকনত াঅগন চাাআপরর এয ফযফায াপরনক গফসতত কযপরত াপরযন এখাপরন টডপরকাড নাভ পরচছ liton াঅয এগটপরক ডরখা য় এবাপরফ [liton] াঅভযা ডাপরসটয ভপরধয াআনাটড কপরয ডদগখ াঅউটট ডকভন ডদখায়-

এফায াঅউটট ডদগখ-

56

াঅভাপরদয ততগয কযা টডপরকাড পরবাপরফাআ কাজ কযপরি াঅপরযকগট উদাযন ডদখফ াঅনাযা াপরনপরকাআ গগর এডপরনস গনপরয় কাজ কপরযন াঅনাযা াপরনপরকাআ এডপরনস এয জনয পলাগগন ফযফায কপরযন গকনত চাাআপররাআ এাআ কাজগট াঅনাযা গনপরজয ভত কপরয াগজপরয় গনপরত াপরযন গগপররয কাপরি ফ ডাসট বযার ায়না াঅনাযা মাযা একসাটড াঅপরিন তাযা এটা বার কপরয জাপরনন তাাআ াপরনপরকাআ গগপররয ডকাড ফ ডপরজ ডদখাপরত চান না এজনয পলাগগন ফযফায কপরয রাব য়না কাযন পলাগগপরন জায়গা গপকসড থাপরক এপরত কপরয াঅগনডাং ও কভ য় াঅনাযা টডপরকাড ফযফায কপরয ডমপরকান জায়গায় এড ডদখাপরত াপরযন গনপরচ াঅগভ রগট টডপরকাড ততগয কপরযগি র‟ধযপরনয এড ডদখাপরনায জনয ltphp

Plugin Name Liton Adsense Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(adsense_468adsense_468_60)

add_shortcode(adsense_250adsense_250_250)

function adsense_468_60($atts)

return ltscript type=textjavascriptgtlt--

57

google_ad_client = ca-pub-0956247412222369

468x60 created 101510

google_ad_slot = 4372705450

google_ad_width = 468

google_ad_height = 60

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

function adsense_250_250($atts)

return ltscript type=textjavascriptgtlt--

google_ad_client = ca-pub-0956247412222369

250x250 created 81809

google_ad_slot = 9368091893

google_ad_width = 250

google_ad_height = 250

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

gt

একগট টডপরকাড ফযানায টাাআপরয জনয এফাং াঅপরযকগট ২৫০২৫০ াাআপরজয এফায ডাপরসট ডমপরকান একগট টডপরকাড াআনাটড করন ডমখাপরন াঅনায ডদখাপরনায েপরয়াজন ভপরন কপরযন াঅগভ রগট ডকাড ডটসট কপরয ডদখরাভ-

58

এফায াাআপরটয াঅউটট ডদগখ-

রগট এডাআ ডদখাপরচছ াঅপরযা াপরনক কাপরজ াঅগন টডপরকাড ফযফায কযপরত াপরযন ডযপাপরযনসাঃ httpcodexwordpressorgShortcode_API

59

াধযায়- নয়াঃ পলাগগন উদাযন

ওয়াডডপরেপরয ডডটটাাআভকপরভনট নামবায ফাাংরা কযায পলাগগন াঅভাপরক কপরয়কজন ফপররগিপররন ওয়াডডপরেপরয গডপলট ডডটটাাআভকপরভনট নামবায ফাাংরা য়না রযাাংগপরয়জ ফাাংরা কযায যও ডডটটাাআভকপরভনট নামবায গপররা াআাংপরযগজ ডথপরক মায় গনপরচয পলাগগনগট ফযফায কপরয ডদখপরত াপরযন- ltphp

Plugin Name Liton Bangla datetimecomment number

Plugin URI httpliton-onlinecomplugins

Description Bangla datetimecomment number

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

This function converts all english numbers to bangla number

function make_bangla_number($str)

$engNumber = array(1234567890)

$bangNumber = array( ১ ২ ৩ ৪ ৫ ৬ ৭ ৮ ৯ ০ ) $converted = str_replace($engNumber $bangNumber $str)

return $converted

add_filter( get_the_time make_bangla_number )

add_filter( the_date make_bangla_number )

add_filter( get_the_date make_bangla_number )

add_filter( comments_number make_bangla_number )

add_filter( get_comment_date make_bangla_number )

add_filter( get_comment_time make_bangla_number )

gt

60

সলাাআডায পলাগগন াঅভযা এাআ ফাআপরয়য কর গটউপরটাগযয়াপরর মা মা গখরাভ তা এফায একগট নডাাংগ পলাগগপরনয এপলাাআ কযফ সলাাআডায পলাগগন মপপরকড াঅভযা ফাাআ জাগন একগট ওপরয়ফাাআপরটয ডচাযা ারপরট ডদয় একগট সলাাআডায াপরনক ডাাআনাগভক ভপরন য় ডদখপরতও াপরনক বার রাপরগ এাআ পলাগগপরন াঅভযা এডগভন যাপরনর ডথপরক াআপরভজ ডমাগ কযফ এফাং তা াঅভাপরদয াাআপরট ডদখাফ চরন কাজ রর কগয- েথপরভ গনপরবা সলাাআডায এয ওপরয়ফাাআপরট মান এফাং jQuery Plugin ডাউনপররাড করন

ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom Version 10

gt

াঅভযা পলাগগপরনয ডডায ততগয কযরাভ

পলাগগন গরপরসট ডদখাপরচছ bdquoLitons Nivo Plugin‟ াঅভাপরদয েথভ কাজ পরচছ custom post

type ওয়াডডপরে পাাংনাগরগট একগট নতন কাসটভ ডজ ততগয কযপরত custom post type

ফযফহরত পরফ ডমখাপরন একগট াআপরভজ থাকপরফ াঅভযা রধ টাাআপরটর ডনভ এফাং াআপরভজ াঅপররাডায গপরপরফ গপচায াআপরভজ পাাংনাগরগট ফযফায কযফ function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_function 600 280 true)

61

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

add_action(init np_init)

উপরযয ডকাপরড np_init() পাাংনগট রক কপরযগি মা ডডায যান কযায াঅপরগ যান পরফ াঅয এজনয register_post_type() পাাংনপরক এয যাযাগভটায গদপরয় np_init() পাাংপরনয ডবতপরয মি কপরযগি এটা মগদ না কযতাভ তাপরর ldquoHeaders already sentrdquo ডভপরজ ডদখাত এাআ ডভপরজগটয াপরথ াপরনপরকাআ গযগচত াঅা কগয register_post_type() পাাংন গদপরয় াঅভযা াআপরভজ মি এফাং ভযাপরনজ কযফ ভরত াঅভযা একগট নতন custom post type ডমাগ কপরযগি np_images নাভ গদপরয় নতন custom post type ডক ডগটাং বযার গপরপরফ াঅযগপরভনট া কপরযগি $args ডবগযপরয়ফরগট ট ডরপরবর ডভন ততগয কপরয াঅপরগাআ ডদপরখগি পলাগগনগট এগকটপরবট কযপরর াঅভযা গনপরচয ভত ডদখপরত াফ-

এফায গিে এফাং সটাাআরীট ডক মি কযফ- add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

এফায রক কযা পাাংনগপররা গডপরিয়ায কগয- function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__) array( jquery ))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

62

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

উপরযয ডকাডগপররা নতন কপরয ফিডনা কযায গকি ডনাআ াঅপরগাআ wp_enqueue_style() এফাং wp_enqueue_script() মপপরকড ফরা পরয়পরি নতন াঅপরযকগট পাাআর ততগয করন একাআ গডপরযকটগযপরত scriptjs এফাং গনপরচয ডকাডটক গদন- jQuery(document)ready(function($)

$(slider)nivoSlider()

)

াআপরভজপরক গযাাআজ করন- add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

াঅভযা এাআ পলাগগনগটপরক উাআপরজট গপরপরফও ফযফায কযফ ডগট পরয ডদখফ াঅপরযকগট গজগন মগদ গথপরভ না ডদয়া থাপরক ডজনয থামবপরনাআর াপরাটড গদপরয় গদন- add_theme_support( post-thumbnails )

এফায ওয়াডডপরেপরয কাপরযনট ডাসট কপরয়যী কযায ডকাড াঅয $result ডবগযপরয়ফপরর ডমফ ltdivgt টযাগ ফযফায কযা পরয়পরি তা jQuery Plugin গট একসিাকট কপরয indexhtml ডজগটয ডভাআন সলাাআডায ডকাডগট ডদখন একাআ াঅপরি রধ ডখানকায ltdivgt টযাগ গপররাপরক কগ কপরয এাআ পলাগগপরন ফযফায কযা পরয়পরি এফায টডপরকাড গদন- add_shortcode(np-shortcode np_function)

এাআ টডপরকাড গএাআচগ পাাংনপরক রক কযপরফ এফাং এয ভধয ডথপরক সলাাআডপরায কনপরটনট ডক গযটানড কযপরফ াঅভাপরদয টডপরকাড পরচছ [np-shortcode] াঅভযা পলাগগপরন মাাআ এফাং একগট িগফ মি কগয গপচাযড াআপরভজ গপরপরফ গনপরচ ডদখন-

63

াঅগভ াঅপরযকগট ডজ ততগয কপরযগি ডমখাপরন টডপরকাড গদপরয়গি

াঅউটট ডজ ডদগখ এফায-

64

পরয় ডগর াঅভাপরদয সলাাআডায পলাগগন পরযা ডকাডগট গনপরচ গদরাভ- ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

65

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

66

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

এফায াঅগন মগদ উাআপরজট গপরপরফ ফযফায কযপরত চান তাপরর গনপরচয ডকাডটক গদন- class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

67

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

echo $after_widget

াঅপরযা রগট কাজ কযপরত পরফ াঅনাপরক এক াআপরভজ াাআজ উাআপরজট এয জনয গঠক কপরয গদপরত পরফ- add_image_size(np_widget 180 100 true)

াঅপরযকগট র উাআপরজট এযাকন রক ডমাগ কযা add_action(widgets_init np_widgets_init)

উাআপরজট পরযা ডকাড াঅফায গদরাভ- ltphp

Plugin Name Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Ciprian Turcu

Version 10

68

class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

69

echo $after_widget

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

70

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(widgets_init np_widgets_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

71

পলাগগন গনপরয় এত ডিাট গযপরয ডরখা মভফ নয় এজনযাআ ভপরন য় পলাগগন গনপরয় ডকউ ডরপরখন না কাযন এখাপরন এত গফলয় াঅপরি মা াঅপররাচনা কযপরত ডগপরর ৫০০ ডজ ায পরয় মাপরফ ডফাোয সগফধাপরথড াঅগভ মথামভফ উদাযন গদপরয় ডফাোপরনায ডচষটা কপরযগি াঅগভ এখাপরন টাপরগডট কপরযগি মাযা টকটাক জাপরন পলাগগন মপপরকড এডবানস ডরপরবপররয নয় কাযন তাযা জাপরনন াঅভায উপরেশয গির মাযা জানপরত চায় তাপরদযপরক জানাপরনা এখাপরন ডমফ গফলয় াঅপররাচনা কযা পরয়পরি তা ডভাটাভগট ভাপরনয একগট পলাগগন ফানাপরনায জনয মপরথষট তপরফ ভাপরনাননয়পরনয জনয াঅনাপরক গনপরজাআ খাপরজ গনপরত পরফ াঅনায জনয ডকানটা বার পরফ াঅগভ রধ গদক গনপরদডনা গদরাভ ভাতর এাআ ফাআগট রধভাতর ওয়াডডপরে রেপরয জনয ডরখা াপরনক বর ভরাগনত থাকপরত াপরয াঅনাযা কষভাসনদয দগষটপরত ডদখপরফন াঅগভ ডচষটা কপরযগি মতটা জ কপরয ডরখা মায় াপরনক ভয় ডদখা মায় ডম খফ ডিাট খাপরটা গফলয় গনপরয় াপরনপরকাআ নক কপরযন এটা গতয রাঃখজনক াঅনাযা গগপরর একট খাজপররাআ ভাধান াপরফন াঅপরগ গনপরজ ডচষটা করন তায পরয ানযপরক ভাধাপরনয জনয গজজঞাা করন াঅভায জনয ডদায়া কযপরফন বাপররা রাগপরর জানাপরফন খাযা রাগপররও জানাপরফন তাপররাআ াঅভায গযশরভ সবাথডক পরফ ভতাভত জাগনপরয় াঅভাপরক ডভাআর কযপরত াপরযন litonice09gmailcom |

72

Page 39: Wordpress Plugin Development

40

$echo (boolean) (optional) - গডপলট গপরপরফ true থাপরক ডমখাপরন াঅউটট ডদখাপরনায ফা গপরডন পভড গপলড গযটানড কযায জনয দযকায য়

পপরভড াঅনায action এয নাভ গদন ltform method=postgt

lt-- some inputs here --gt

ltphp wp_nonce_field(name_of_my_actionname_of_nonce_field) gt

ltformgt

াঅভযা একগট পলাগগন ফানাপরফা ডমখাপরন াফযফরত টযাগগপররাপরক াঅভযা ভযানয়াগর গডগরট ফা গযপরনভ কযপরত াযফ এগট একট ফড় গকনত াপরনক গফলয়াআ াঅপরগাআ াঅপররাচনা কযা পরয়পরি ডদখপররাআ ফেপরত াযপরফন একগট ফাসতফধভডী উদাযন গনপরচ গদরাভ- ltphp

Plugin Name Liton Unused Tags

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add an entry for our option page to the Posts menu

add_action(admin_menu liton_utags_add_page)

function liton_utags_add_page()

add_posts_page( Unused Tags Unused Tagsmanage_optionsliton_utags

liton_utags_option_page )

Catch any liton_action parameter in query string

add_action( admin_init liton_utags_do_action )

Proceed to requested liton_action if applicable

function liton_utags_do_action()

if( isset( $_REQUEST[liton_action] ) )

return

if( current_user_can( manage_options ) )

wp_die( Insufficient privileges )

41

$id = $_REQUEST[id]

$action = $_REQUEST[liton_action]

if( $action == done )

add_action( admin_notices liton_utags_message )

return

check_admin_referer( liton_utags-$action_tag$id )

switch( $action )

case rename

$newtag = array( name =gt $_POST[name] slug =gt

$_POST[name] )

wp_update_term( $id post_tag $newtag )

break

case delete

wp_delete_term( $id post_tag )

break

wp_redirect( add_query_arg( array( liton_action =gt done )

) )

Admin notice

function liton_utags_message()

echo ltdiv class=updatedgtltpgtAction

completedltpgtltdivgt

Draw the tag management page

function liton_utags_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtUnused Tagslth2gt

ltphp

if( $tags = liton_utags_find_orphans() )

echo ltpgtYou currently have count( $tags ) unused

tagsltpgt

echo ltolgt

foreach( $tags as $tag )

42

$id = $tag-gtterm_id

$name = esc_attr( $tag-gtname )

$delete_url= add_query_arg(

array(liton_action=gtdeleteid=gt$id) )

$nonced_url= wp_nonce_url( $delete_url

liton_utags-delete_tag$id )

gt

ltligt

ltform action= method=postgt

ltphp wp_nonce_field( liton_utags-rename_tag$id )

gt

ltinput type=hidden name=liton_action

value=rename gt

ltinput type=hidden name=id value=ltphp echo

$id gt gt

ltinput type=text name=name value=ltphp echo

$name gt gt

ltinput type=submit value=Rename gt or

lta href=ltphp echo $nonced_url gtgtdeleteltagt

this tag

ltformgt

ltligt

ltphp

else gt

ltpgtYou have no unused tagsltpgt

ltphp endif gt

ltolgt

ltdivgt

ltphp

Find unused tags return them in an array

function liton_utags_find_orphans()

global $wpdb

$sql = SELECT termsterm_id termsname FROM

$wpdb-gtterms terms

INNER JOIN $wpdb-gtterm_taxonomy taxo

ON termsterm_id=taxoterm_id

WHERE taxotaxonomy = post_tag

43

AND taxocount=0

return $wpdb-gtget_results( $sql )

gt

ডযাপরফাপরডড এাআ পলাগগপরনয ডভন াওয়া মাপরফ ডাসট এয াফপরভন গপরপরফ গনপরচ ডদখন-

এফায পলাগগন ডভনপরত গিক কপরয ডদগখ পলাগগপরনয ডবতপরযয কাজ-

উপরয ডদখন াঅগভ একগট টযাগ ততগয কপরযগিরাভ l i নাপরভ এগট এখাপরন ডদখাপরচছ াঅগভ চাাআপরর এগট এগডট ফা গডগরট কযপরত াগয এফায গডগরট গরঙক এ ভাউপরয কাডয ডযপরখ গনপরচ গরঙক ডদখন ফা গডগরট করন একগট টযাগ াঅভায এখাপরন URL গট এযকভ httplocalhostdev-litonwp-

admineditphppage=liton_utagsampliton_action=doneampid=4amp_wpnonce=30a44b7

986

এখাপরন াঅগভ liton_action=done ফযফায কপরযগি Nonces এয পাাংনগপররায নাভ গনপরচ গদরাভ াঅনাযা ডদপরখ গনপরফন াআনটাযপরনট ডথপরক wp_nonce_field()

wp_nonce_url()

wp_verify_nonce()

wp_create_nonce()

44

check_admin_referer()

check_ajax_referer()

ডাটাপরফ াঅনাযা ডমপরত গএাআচগ গনপরয় কাজ কপরযন এগকউএর ডাটাপরফ এয াপরথ ফাাআ কভপরফী গযগচত এয গনটযাকস গপররা ডভাটাভগট ফায জানা একাআ বাপরফ াপরনপরকাআ ওয়াডডপরেপরও ডাটাপরফ ডকাড গরপরখন এটা ডকাগডাং এয জনয খাযা গদক াঅগভ নযভার গএাআচগ- এগকউএর ডকাড এয উদাযন গদগচছ- ltphp

$sql=rdquoINSERT INTO $wpdb-gtposts(post_title) VALUES(bdquo$title‟)rdquo

$wpdb-gtquery($sql) gt

এফায ওয়াডডপরেপরয সটযানডাডড ডকাগডাং গপরসটভ ডদখন- ltphp

$wpdb-gtinsert($wpdb-gtposts

array(bdquopost_title‟ =gt $title)

array(bdquos‟)

)

gt

ডাটাপরফ গগকউয কযায জনয াঅপরডট াাপরযন ডদখাফ- গনপরচয ডকাডগট খাযা েযাকগট ltphp

$wpdb-gtquery(ldquoUPDATE $wpdb-gtposts SET post_title=‟$newTitle‟ WHERE

ID=$my_idrdquo )

gt

উপরযয ভত কপরয না গরপরখ গনপরচয ভত কপরয গরখন- ltphp

$wpdb-gtupdate($wpdb-gtposts

Array(bdquopost_title‟ =gt‟$newTitle‟)

Array(bdquoID‟ =gt$my_id

)

gt

ানর বাপরফ ানযানয াাপরযন গপররা গরখপরফন

45

াধযায়- াঅটাঃ ডরাকারাাআপরজন এফাং Set t i ngs API

ডরাকারাাআপরজন ডরাকারাাআপরজন একগট গরতবনড গফলয় এয পাাংনগপররা র- load_theme_textdomain()

load_plugin_textdomain()

উদাযন- ltphp $var=__(bdquoHello‟‟domain‟) gt

ltphp _e(bdquoHello‟‟domain‟) gt

গফসতাগযত গনপরচয গরপরঙক ডদখন- httpcodexwordpressorgI18n_for_WordPress_Developers

ডগটাং API

ডগটাং API পরচছ াঅগন গকি ান ততগয কযপরফন মা াআনটাযনার বাপরফ াঅনায পলাগগপরন এপলাাআ পরফ মখন াঅগন াআউজায- গডপাাআন ান ততগয কযপরফন াঅনায পলাগগপরনয জনয তখন Settings

API ndashএ াঅনায ডকাড মতটা ারন জ করন Settings API াঅনায ডম কাজগপররা handle কপরয-

ওয়াডডপরেপরক জাগনপরয় ডদয় ডম াঅগন গনজসব ান ফযফায কযপরফন াঅনায াআনটপরক পাাংপরনয ভপরধয উপরেখ কযপরফ ডফগয বাগ ান ডজ গনপরজাআ ততগয কযপরফ $_POST ডাটা গপররাপরক ভগনটয কপরয ান ততগয এফাং াঅপরডট কপরয(মগদ েপরয়াজন য়)

Settings API পাাংন Settings API পাাংপরন গতনগট ডসট থাপরক- ১ েথপরভ ওয়াডডপরেপরক ফপরর ডম াঅগন নতন ডগটাং ফযফায কযপরফন াঅনায পলাগগপরনয জনয ২ এয পরয ডগটাং গডপাাআন করন (text areas input boxes and any

HTML form element) এফাং এপরদযপরক একাপরথ রে কপরয যাপরখ ৩ ওয়াডডপরেপরক াঅনায ডগটাং actual form এ ডদখাপরনায জনয ফপরর

46

এফায াঅভযা একগট পলাগগন ফানাপরফা Administration Page ndashএ ডযপাপরযনস গপরপরফ ডদখপরত াপরযন- httpcodexwordpressorgAdding_Administration_Menus

httpcodexwordpressorgFunction_Referenceadd_options_page

httpcodexwordpressorgAction_ReferenceActions_Run_During_an_Admin_P

age_Request

পলাগগপরনয এডগভন ডজ পরফ এযকভ- httpexamplecomwp-adminoptions-generalphppage=liton_myplugin

েথপরভ াঅভযা ডভন ততগয কযফ াঅপরগয ভত কপরয- Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

এফায ান ডজ এ পভড গনপরয় গকি ডগটাং ডদফ function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

উপরযয ডকাপরড াঅভযা একগট পপরভডয ভপরধয রধ াফগভট ফাটন এফাং My Plugin নাপরভ ডজ ততগয কপরযগি ডযাপরফাপরডড ডদখন-

47

ডগটাং এয াফ ডভন গপরপরফ My Plugin াঅপরি এফাং My Plugin ডত গিক কযপরর াঅভযা উপরযয ডজ ততগয কপরযগি ডমখাপরন াফগভট ফাটনগট ডদখাপরচছ এফায গতনগট যাযাগভটায ডযগজসটায কযফ- ltphp

register_setting( liton _myplugin_options liton _myplugin_options liton

_myplugin_validate_options)

gt

েথভগট ডগটাং রেপরয নাভ গিতীয়গট ান নাভ মা াঅভযা get_option() পাাংন গদপরয়ও ডপরত াগয ততীয়গট করফযাক পাাংন এগট একগট গসটরাং ডযপাপরযনস পাাংন এখাপরন াঅভযা নাভ

48

গদপরয়গি liton _myplugin_validate_options মা া কযপরফ পপরভডয কর ডব ডগটাং াঅভযা এটা পরয গডপাাআন কযফ

ডগটাং গডপাাআন ডকন add_settings_field() এফাং add_settings_section() পাাংন গদপরয় াঅভযা াঅভাপরদয কর ডগটাং গডপাাআন কযফ ltphp

add_settings_section( liton_myplugin_main My Plugin Settings

liton_myplugin_section_text liton _myplugin)

add_settings_field( liton _myplugin_text_string Enter text here

liton _myplugin_setting_input liton _myplugin liton _myplugin_main)

gt

add_settings_section() পাাংন গদপরয় াঅভযা ডদখাফ াঅপরর ডজ এ ডকন ডকভন ডদখাপরফ এয চাযগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ ডকন টাাআপরটর ltH3gt টযাপরগয ভপরধয করফযাক পাাংন এয নাভ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ (page= liton _myplugin এগট

URL এয াাং গপরপরফ থাকপরফ) গিতীয় যাযাগভটায add_settings_field() পপরভডয াআনট গপরপরফ ডদখাপরনা পরয়পরি এখাপরন াাচগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ পরযয গপপরলড গক গেনট কযা পরফ তা ডটকসট গপরপরফ ডদখাপরনা পরয়পরি(Enter text

here)

করফযাক পাাংন পপরভড গেনট কযপরফ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ ডগটাং ডপরজয ডকন গপলড মা add_settings_section() পাাংপরন গডপাাআন

কযা পরয়পরি ltphp

Explanations about this section

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

49

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton _myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name= liton _myplugin_options[text_string]

type=text value=$options[text_string] gt

gt

গিতীয় পাাংন ান বযার text_string ডক এযাপরযপরত ডসটায কপরয ডযপরখপরি এফায াআউজায াআনট বযাগরপরডট কযফ- ltphp

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace([^a-zA-Z]$input[text_string] )

return $valid

gt

পভডপরক ডযনডায কযফ- ltphp

Draw the options page

function liton_myplugin_options_page()

gt

ltdiv class=wrapgt

ltphp

screen_icon()

gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp

settings_fields( liton_myplugin_options)

do_settings_sections(liton_myplugin)

50

gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

settings_fields() পাাংনগট ডযপাপরযনস গপরপরফ ফযফায কযা পরয়পরি মা াঅভযা register_setting() পাাংপরন গডপরিয়ায কপরযগি do_settings_sections() পাাংনগট কর কযপরফ কর াঅউটট ডকন এফাং পভড গপলডপরক মা াঅভযা পরফড গডপাাআন কপরযগি াঅভাপরদয কাজ ডল এফায পরযা পলাগগনগট ডদখফ- ltphp

Plugin Name Settings API example

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

Draw the option page

function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save

Changes gt

ltformgtltdivgt

ltphp

51

Register and define the settings

add_action(admin_init liton_myplugin_admin_init)

function liton_myplugin_admin_init()

register_setting( liton_myplugin_options

liton_myplugin_options

liton_myplugin_validate_options )

add_settings_section( liton_myplugin_main My Plugin

Settings

liton_myplugin_section_text liton_myplugin )

add_settings_field( liton_myplugin_text_string Enter text

here

liton_myplugin_setting_input liton_myplugin

liton_myplugin_main )

Draw the section header

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton_myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name=liton_myplugin_options[text_string]

type=text value=$text_string gt

Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

return $valid

gt

52

ডদখন ডযাপরফাপরডড ডকভন ডদখায়-

পরয় ডগর াঅভাপরদয েথভ নডাাংগ পলাগগন ান ডজ াঅপরযকগট গজগন ডমটায জনয এতগকি পলাগগন URL এপরডর- httplocalhostdev-litonwp-adminoptions-

generalphppage=liton_mypluginampsettings-updated=true

াঅভায এখাপরন এযকভ ডদখাপরচছ ডটকসট ফপরকস ডকান গকি গরপরখ ডব কযায য এফাপরয াঅপরযকগট গজগন ডদখফ াঅভযা াপরনক ভয়াআ াপরনক পলাগগপরনয াআনট গপপরলড বর ডাটা াআনট কযপরর এযয ডভপরজ ডদখায় এাআ কাজগট কযফ এফায াঅভযা এখাপরন esc_attr() ফা esc_html() ফযফায কগযগন সতযাাং াঅভাপরদয গরগভপরটন থাকপরি ডবগরপরডট পাাংনগট একট এগডট কগয গনপরচয ভত কপরয Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

if( $valid[text_string] = $input[text_string] )

add_settings_error(liton_myplugin_text_stringliton_myplugin_texterror

53

Incorrect value enterederror)

return $valid

উপরয ডদখন add_settings_error() পাাংন ফযফায কপরযগি মা এযয ডচক কযপরফ পপরভডয াঅগভ একগট বর ডাটা(পরসপার কযাপরযকটায) াআনট কপরয ডদখরাভ এযয ডদখাপরচছ-

তায ভাপরন াঅভযা পর পরয়গি াঅনায পলাগগনগট এগডট কপরয ডনপরফন ডকায ডকন এফাং গপপরলডয গরসট গদরাভ াঅনাপরদয সগফধায জনয

54

CSSJS পাাআর মি কযা

াঅনায পলাগগপরন গএএ ফা জাবাগিে ডমাগ কযপরত পরত াপরয াঅগন চাাআপরর ফাগপরযয ডকান ফা াঅনায ততগয ডকান গএএ ফা জাবাগিে পাাআর ডমাগ কযপরত াপরযন তপরফ এপরকষপরতর াঅভযা ডমবাপরফ HTML এ পাাআর ডমাগ কগয ডযকভ না function liton_scripts()

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtojqueryjsrdquogtltscriptgt‟

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtoscriptjsrdquogtltscriptgt‟

add_action(bdquowp_head‟‟liton_scripts‟)

এগট মপনডরপর বর িগত গনপরচ ডদখন ওয়াডডপরেপর গকবাপরফ পাাআর মি কযপরত য়- function liton_scripts()

wp_enqueue_script(bdquojquery‟)

wp_enqueue_script(bdquotheme-scripts‟‟pathtoscriptsjs‟)

add_action(bdquowp_enqueue_script‟‟liton_scripts‟)

ানর বাপরফ াঅগন সটাাআরীট ডমাগ কযপরত াপরযন- function liton_styles()

wp_enqueue_ style (bdquocss‟)

wp_enqueue_ style (bdquotheme- styles‟pathto stylescss‟)

ডযপাপরযনস ডদখন- httpcodexwordpressorgFunction_Referencewp_enqueue_script

httpcodexwordpressorgFunction_Referencewp_enqueue_style

টডপরকাড টডপরকাড পরচছ ওয়াডডপরেপরয ডসপগগপক ডসপার টযাগ মা াঅগন ডাসট ফা ডপরজয ভপরধয াআনাটড কপরয ানয ডকান কনপরটনটপরক ওপরয়ফাাআপরটয ভপরধয গযপরপল কযপরত াযপরফন মগদ াঅগন গযারাগয টাাআপরয ডকান পলাগগন ফযফায কপরয থাপরকন তাপরর াঅনায ধাযনা থাকায কথা মাাআ ডাক াঅগভ কপরয়কগট উদাযি ডদখাফ

55

েথপরভ একগট পলাগগন ততগয কযফ ডমখাপরন add_shortcode() নাপরভয একগট পাাংন থাকপরফ এগট রগট যাযাগভটায েন কপরয েথভগট টডপরকাপরডয নাভ গিতীয়গট ডম পাাংনপরক কর কযপরফন ডগট াঅভযা একগট উদাযন ডদগখ- ltphp

Plugin Name Liton Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(litonhi)

function hi()

echo Hello World

gt

উপরয ডদখন খফ ডিাট গকনত াঅগন চাাআপরর এয ফযফায াপরনক গফসতত কযপরত াপরযন এখাপরন টডপরকাড নাভ পরচছ liton াঅয এগটপরক ডরখা য় এবাপরফ [liton] াঅভযা ডাপরসটয ভপরধয াআনাটড কপরয ডদগখ াঅউটট ডকভন ডদখায়-

এফায াঅউটট ডদগখ-

56

াঅভাপরদয ততগয কযা টডপরকাড পরবাপরফাআ কাজ কযপরি াঅপরযকগট উদাযন ডদখফ াঅনাযা াপরনপরকাআ গগর এডপরনস গনপরয় কাজ কপরযন াঅনাযা াপরনপরকাআ এডপরনস এয জনয পলাগগন ফযফায কপরযন গকনত চাাআপররাআ এাআ কাজগট াঅনাযা গনপরজয ভত কপরয াগজপরয় গনপরত াপরযন গগপররয কাপরি ফ ডাসট বযার ায়না াঅনাযা মাযা একসাটড াঅপরিন তাযা এটা বার কপরয জাপরনন তাাআ াপরনপরকাআ গগপররয ডকাড ফ ডপরজ ডদখাপরত চান না এজনয পলাগগন ফযফায কপরয রাব য়না কাযন পলাগগপরন জায়গা গপকসড থাপরক এপরত কপরয াঅগনডাং ও কভ য় াঅনাযা টডপরকাড ফযফায কপরয ডমপরকান জায়গায় এড ডদখাপরত াপরযন গনপরচ াঅগভ রগট টডপরকাড ততগয কপরযগি র‟ধযপরনয এড ডদখাপরনায জনয ltphp

Plugin Name Liton Adsense Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(adsense_468adsense_468_60)

add_shortcode(adsense_250adsense_250_250)

function adsense_468_60($atts)

return ltscript type=textjavascriptgtlt--

57

google_ad_client = ca-pub-0956247412222369

468x60 created 101510

google_ad_slot = 4372705450

google_ad_width = 468

google_ad_height = 60

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

function adsense_250_250($atts)

return ltscript type=textjavascriptgtlt--

google_ad_client = ca-pub-0956247412222369

250x250 created 81809

google_ad_slot = 9368091893

google_ad_width = 250

google_ad_height = 250

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

gt

একগট টডপরকাড ফযানায টাাআপরয জনয এফাং াঅপরযকগট ২৫০২৫০ াাআপরজয এফায ডাপরসট ডমপরকান একগট টডপরকাড াআনাটড করন ডমখাপরন াঅনায ডদখাপরনায েপরয়াজন ভপরন কপরযন াঅগভ রগট ডকাড ডটসট কপরয ডদখরাভ-

58

এফায াাআপরটয াঅউটট ডদগখ-

রগট এডাআ ডদখাপরচছ াঅপরযা াপরনক কাপরজ াঅগন টডপরকাড ফযফায কযপরত াপরযন ডযপাপরযনসাঃ httpcodexwordpressorgShortcode_API

59

াধযায়- নয়াঃ পলাগগন উদাযন

ওয়াডডপরেপরয ডডটটাাআভকপরভনট নামবায ফাাংরা কযায পলাগগন াঅভাপরক কপরয়কজন ফপররগিপররন ওয়াডডপরেপরয গডপলট ডডটটাাআভকপরভনট নামবায ফাাংরা য়না রযাাংগপরয়জ ফাাংরা কযায যও ডডটটাাআভকপরভনট নামবায গপররা াআাংপরযগজ ডথপরক মায় গনপরচয পলাগগনগট ফযফায কপরয ডদখপরত াপরযন- ltphp

Plugin Name Liton Bangla datetimecomment number

Plugin URI httpliton-onlinecomplugins

Description Bangla datetimecomment number

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

This function converts all english numbers to bangla number

function make_bangla_number($str)

$engNumber = array(1234567890)

$bangNumber = array( ১ ২ ৩ ৪ ৫ ৬ ৭ ৮ ৯ ০ ) $converted = str_replace($engNumber $bangNumber $str)

return $converted

add_filter( get_the_time make_bangla_number )

add_filter( the_date make_bangla_number )

add_filter( get_the_date make_bangla_number )

add_filter( comments_number make_bangla_number )

add_filter( get_comment_date make_bangla_number )

add_filter( get_comment_time make_bangla_number )

gt

60

সলাাআডায পলাগগন াঅভযা এাআ ফাআপরয়য কর গটউপরটাগযয়াপরর মা মা গখরাভ তা এফায একগট নডাাংগ পলাগগপরনয এপলাাআ কযফ সলাাআডায পলাগগন মপপরকড াঅভযা ফাাআ জাগন একগট ওপরয়ফাাআপরটয ডচাযা ারপরট ডদয় একগট সলাাআডায াপরনক ডাাআনাগভক ভপরন য় ডদখপরতও াপরনক বার রাপরগ এাআ পলাগগপরন াঅভযা এডগভন যাপরনর ডথপরক াআপরভজ ডমাগ কযফ এফাং তা াঅভাপরদয াাআপরট ডদখাফ চরন কাজ রর কগয- েথপরভ গনপরবা সলাাআডায এয ওপরয়ফাাআপরট মান এফাং jQuery Plugin ডাউনপররাড করন

ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom Version 10

gt

াঅভযা পলাগগপরনয ডডায ততগয কযরাভ

পলাগগন গরপরসট ডদখাপরচছ bdquoLitons Nivo Plugin‟ াঅভাপরদয েথভ কাজ পরচছ custom post

type ওয়াডডপরে পাাংনাগরগট একগট নতন কাসটভ ডজ ততগয কযপরত custom post type

ফযফহরত পরফ ডমখাপরন একগট াআপরভজ থাকপরফ াঅভযা রধ টাাআপরটর ডনভ এফাং াআপরভজ াঅপররাডায গপরপরফ গপচায াআপরভজ পাাংনাগরগট ফযফায কযফ function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_function 600 280 true)

61

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

add_action(init np_init)

উপরযয ডকাপরড np_init() পাাংনগট রক কপরযগি মা ডডায যান কযায াঅপরগ যান পরফ াঅয এজনয register_post_type() পাাংনপরক এয যাযাগভটায গদপরয় np_init() পাাংপরনয ডবতপরয মি কপরযগি এটা মগদ না কযতাভ তাপরর ldquoHeaders already sentrdquo ডভপরজ ডদখাত এাআ ডভপরজগটয াপরথ াপরনপরকাআ গযগচত াঅা কগয register_post_type() পাাংন গদপরয় াঅভযা াআপরভজ মি এফাং ভযাপরনজ কযফ ভরত াঅভযা একগট নতন custom post type ডমাগ কপরযগি np_images নাভ গদপরয় নতন custom post type ডক ডগটাং বযার গপরপরফ াঅযগপরভনট া কপরযগি $args ডবগযপরয়ফরগট ট ডরপরবর ডভন ততগয কপরয াঅপরগাআ ডদপরখগি পলাগগনগট এগকটপরবট কযপরর াঅভযা গনপরচয ভত ডদখপরত াফ-

এফায গিে এফাং সটাাআরীট ডক মি কযফ- add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

এফায রক কযা পাাংনগপররা গডপরিয়ায কগয- function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__) array( jquery ))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

62

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

উপরযয ডকাডগপররা নতন কপরয ফিডনা কযায গকি ডনাআ াঅপরগাআ wp_enqueue_style() এফাং wp_enqueue_script() মপপরকড ফরা পরয়পরি নতন াঅপরযকগট পাাআর ততগয করন একাআ গডপরযকটগযপরত scriptjs এফাং গনপরচয ডকাডটক গদন- jQuery(document)ready(function($)

$(slider)nivoSlider()

)

াআপরভজপরক গযাাআজ করন- add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

াঅভযা এাআ পলাগগনগটপরক উাআপরজট গপরপরফও ফযফায কযফ ডগট পরয ডদখফ াঅপরযকগট গজগন মগদ গথপরভ না ডদয়া থাপরক ডজনয থামবপরনাআর াপরাটড গদপরয় গদন- add_theme_support( post-thumbnails )

এফায ওয়াডডপরেপরয কাপরযনট ডাসট কপরয়যী কযায ডকাড াঅয $result ডবগযপরয়ফপরর ডমফ ltdivgt টযাগ ফযফায কযা পরয়পরি তা jQuery Plugin গট একসিাকট কপরয indexhtml ডজগটয ডভাআন সলাাআডায ডকাডগট ডদখন একাআ াঅপরি রধ ডখানকায ltdivgt টযাগ গপররাপরক কগ কপরয এাআ পলাগগপরন ফযফায কযা পরয়পরি এফায টডপরকাড গদন- add_shortcode(np-shortcode np_function)

এাআ টডপরকাড গএাআচগ পাাংনপরক রক কযপরফ এফাং এয ভধয ডথপরক সলাাআডপরায কনপরটনট ডক গযটানড কযপরফ াঅভাপরদয টডপরকাড পরচছ [np-shortcode] াঅভযা পলাগগপরন মাাআ এফাং একগট িগফ মি কগয গপচাযড াআপরভজ গপরপরফ গনপরচ ডদখন-

63

াঅগভ াঅপরযকগট ডজ ততগয কপরযগি ডমখাপরন টডপরকাড গদপরয়গি

াঅউটট ডজ ডদগখ এফায-

64

পরয় ডগর াঅভাপরদয সলাাআডায পলাগগন পরযা ডকাডগট গনপরচ গদরাভ- ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

65

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

66

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

এফায াঅগন মগদ উাআপরজট গপরপরফ ফযফায কযপরত চান তাপরর গনপরচয ডকাডটক গদন- class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

67

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

echo $after_widget

াঅপরযা রগট কাজ কযপরত পরফ াঅনাপরক এক াআপরভজ াাআজ উাআপরজট এয জনয গঠক কপরয গদপরত পরফ- add_image_size(np_widget 180 100 true)

াঅপরযকগট র উাআপরজট এযাকন রক ডমাগ কযা add_action(widgets_init np_widgets_init)

উাআপরজট পরযা ডকাড াঅফায গদরাভ- ltphp

Plugin Name Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Ciprian Turcu

Version 10

68

class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

69

echo $after_widget

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

70

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(widgets_init np_widgets_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

71

পলাগগন গনপরয় এত ডিাট গযপরয ডরখা মভফ নয় এজনযাআ ভপরন য় পলাগগন গনপরয় ডকউ ডরপরখন না কাযন এখাপরন এত গফলয় াঅপরি মা াঅপররাচনা কযপরত ডগপরর ৫০০ ডজ ায পরয় মাপরফ ডফাোয সগফধাপরথড াঅগভ মথামভফ উদাযন গদপরয় ডফাোপরনায ডচষটা কপরযগি াঅগভ এখাপরন টাপরগডট কপরযগি মাযা টকটাক জাপরন পলাগগন মপপরকড এডবানস ডরপরবপররয নয় কাযন তাযা জাপরনন াঅভায উপরেশয গির মাযা জানপরত চায় তাপরদযপরক জানাপরনা এখাপরন ডমফ গফলয় াঅপররাচনা কযা পরয়পরি তা ডভাটাভগট ভাপরনয একগট পলাগগন ফানাপরনায জনয মপরথষট তপরফ ভাপরনাননয়পরনয জনয াঅনাপরক গনপরজাআ খাপরজ গনপরত পরফ াঅনায জনয ডকানটা বার পরফ াঅগভ রধ গদক গনপরদডনা গদরাভ ভাতর এাআ ফাআগট রধভাতর ওয়াডডপরে রেপরয জনয ডরখা াপরনক বর ভরাগনত থাকপরত াপরয াঅনাযা কষভাসনদয দগষটপরত ডদখপরফন াঅগভ ডচষটা কপরযগি মতটা জ কপরয ডরখা মায় াপরনক ভয় ডদখা মায় ডম খফ ডিাট খাপরটা গফলয় গনপরয় াপরনপরকাআ নক কপরযন এটা গতয রাঃখজনক াঅনাযা গগপরর একট খাজপররাআ ভাধান াপরফন াঅপরগ গনপরজ ডচষটা করন তায পরয ানযপরক ভাধাপরনয জনয গজজঞাা করন াঅভায জনয ডদায়া কযপরফন বাপররা রাগপরর জানাপরফন খাযা রাগপররও জানাপরফন তাপররাআ াঅভায গযশরভ সবাথডক পরফ ভতাভত জাগনপরয় াঅভাপরক ডভাআর কযপরত াপরযন litonice09gmailcom |

72

Page 40: Wordpress Plugin Development

41

$id = $_REQUEST[id]

$action = $_REQUEST[liton_action]

if( $action == done )

add_action( admin_notices liton_utags_message )

return

check_admin_referer( liton_utags-$action_tag$id )

switch( $action )

case rename

$newtag = array( name =gt $_POST[name] slug =gt

$_POST[name] )

wp_update_term( $id post_tag $newtag )

break

case delete

wp_delete_term( $id post_tag )

break

wp_redirect( add_query_arg( array( liton_action =gt done )

) )

Admin notice

function liton_utags_message()

echo ltdiv class=updatedgtltpgtAction

completedltpgtltdivgt

Draw the tag management page

function liton_utags_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtUnused Tagslth2gt

ltphp

if( $tags = liton_utags_find_orphans() )

echo ltpgtYou currently have count( $tags ) unused

tagsltpgt

echo ltolgt

foreach( $tags as $tag )

42

$id = $tag-gtterm_id

$name = esc_attr( $tag-gtname )

$delete_url= add_query_arg(

array(liton_action=gtdeleteid=gt$id) )

$nonced_url= wp_nonce_url( $delete_url

liton_utags-delete_tag$id )

gt

ltligt

ltform action= method=postgt

ltphp wp_nonce_field( liton_utags-rename_tag$id )

gt

ltinput type=hidden name=liton_action

value=rename gt

ltinput type=hidden name=id value=ltphp echo

$id gt gt

ltinput type=text name=name value=ltphp echo

$name gt gt

ltinput type=submit value=Rename gt or

lta href=ltphp echo $nonced_url gtgtdeleteltagt

this tag

ltformgt

ltligt

ltphp

else gt

ltpgtYou have no unused tagsltpgt

ltphp endif gt

ltolgt

ltdivgt

ltphp

Find unused tags return them in an array

function liton_utags_find_orphans()

global $wpdb

$sql = SELECT termsterm_id termsname FROM

$wpdb-gtterms terms

INNER JOIN $wpdb-gtterm_taxonomy taxo

ON termsterm_id=taxoterm_id

WHERE taxotaxonomy = post_tag

43

AND taxocount=0

return $wpdb-gtget_results( $sql )

gt

ডযাপরফাপরডড এাআ পলাগগপরনয ডভন াওয়া মাপরফ ডাসট এয াফপরভন গপরপরফ গনপরচ ডদখন-

এফায পলাগগন ডভনপরত গিক কপরয ডদগখ পলাগগপরনয ডবতপরযয কাজ-

উপরয ডদখন াঅগভ একগট টযাগ ততগয কপরযগিরাভ l i নাপরভ এগট এখাপরন ডদখাপরচছ াঅগভ চাাআপরর এগট এগডট ফা গডগরট কযপরত াগয এফায গডগরট গরঙক এ ভাউপরয কাডয ডযপরখ গনপরচ গরঙক ডদখন ফা গডগরট করন একগট টযাগ াঅভায এখাপরন URL গট এযকভ httplocalhostdev-litonwp-

admineditphppage=liton_utagsampliton_action=doneampid=4amp_wpnonce=30a44b7

986

এখাপরন াঅগভ liton_action=done ফযফায কপরযগি Nonces এয পাাংনগপররায নাভ গনপরচ গদরাভ াঅনাযা ডদপরখ গনপরফন াআনটাযপরনট ডথপরক wp_nonce_field()

wp_nonce_url()

wp_verify_nonce()

wp_create_nonce()

44

check_admin_referer()

check_ajax_referer()

ডাটাপরফ াঅনাযা ডমপরত গএাআচগ গনপরয় কাজ কপরযন এগকউএর ডাটাপরফ এয াপরথ ফাাআ কভপরফী গযগচত এয গনটযাকস গপররা ডভাটাভগট ফায জানা একাআ বাপরফ াপরনপরকাআ ওয়াডডপরেপরও ডাটাপরফ ডকাড গরপরখন এটা ডকাগডাং এয জনয খাযা গদক াঅগভ নযভার গএাআচগ- এগকউএর ডকাড এয উদাযন গদগচছ- ltphp

$sql=rdquoINSERT INTO $wpdb-gtposts(post_title) VALUES(bdquo$title‟)rdquo

$wpdb-gtquery($sql) gt

এফায ওয়াডডপরেপরয সটযানডাডড ডকাগডাং গপরসটভ ডদখন- ltphp

$wpdb-gtinsert($wpdb-gtposts

array(bdquopost_title‟ =gt $title)

array(bdquos‟)

)

gt

ডাটাপরফ গগকউয কযায জনয াঅপরডট াাপরযন ডদখাফ- গনপরচয ডকাডগট খাযা েযাকগট ltphp

$wpdb-gtquery(ldquoUPDATE $wpdb-gtposts SET post_title=‟$newTitle‟ WHERE

ID=$my_idrdquo )

gt

উপরযয ভত কপরয না গরপরখ গনপরচয ভত কপরয গরখন- ltphp

$wpdb-gtupdate($wpdb-gtposts

Array(bdquopost_title‟ =gt‟$newTitle‟)

Array(bdquoID‟ =gt$my_id

)

gt

ানর বাপরফ ানযানয াাপরযন গপররা গরখপরফন

45

াধযায়- াঅটাঃ ডরাকারাাআপরজন এফাং Set t i ngs API

ডরাকারাাআপরজন ডরাকারাাআপরজন একগট গরতবনড গফলয় এয পাাংনগপররা র- load_theme_textdomain()

load_plugin_textdomain()

উদাযন- ltphp $var=__(bdquoHello‟‟domain‟) gt

ltphp _e(bdquoHello‟‟domain‟) gt

গফসতাগযত গনপরচয গরপরঙক ডদখন- httpcodexwordpressorgI18n_for_WordPress_Developers

ডগটাং API

ডগটাং API পরচছ াঅগন গকি ান ততগয কযপরফন মা াআনটাযনার বাপরফ াঅনায পলাগগপরন এপলাাআ পরফ মখন াঅগন াআউজায- গডপাাআন ান ততগয কযপরফন াঅনায পলাগগপরনয জনয তখন Settings

API ndashএ াঅনায ডকাড মতটা ারন জ করন Settings API াঅনায ডম কাজগপররা handle কপরয-

ওয়াডডপরেপরক জাগনপরয় ডদয় ডম াঅগন গনজসব ান ফযফায কযপরফন াঅনায াআনটপরক পাাংপরনয ভপরধয উপরেখ কযপরফ ডফগয বাগ ান ডজ গনপরজাআ ততগয কযপরফ $_POST ডাটা গপররাপরক ভগনটয কপরয ান ততগয এফাং াঅপরডট কপরয(মগদ েপরয়াজন য়)

Settings API পাাংন Settings API পাাংপরন গতনগট ডসট থাপরক- ১ েথপরভ ওয়াডডপরেপরক ফপরর ডম াঅগন নতন ডগটাং ফযফায কযপরফন াঅনায পলাগগপরনয জনয ২ এয পরয ডগটাং গডপাাআন করন (text areas input boxes and any

HTML form element) এফাং এপরদযপরক একাপরথ রে কপরয যাপরখ ৩ ওয়াডডপরেপরক াঅনায ডগটাং actual form এ ডদখাপরনায জনয ফপরর

46

এফায াঅভযা একগট পলাগগন ফানাপরফা Administration Page ndashএ ডযপাপরযনস গপরপরফ ডদখপরত াপরযন- httpcodexwordpressorgAdding_Administration_Menus

httpcodexwordpressorgFunction_Referenceadd_options_page

httpcodexwordpressorgAction_ReferenceActions_Run_During_an_Admin_P

age_Request

পলাগগপরনয এডগভন ডজ পরফ এযকভ- httpexamplecomwp-adminoptions-generalphppage=liton_myplugin

েথপরভ াঅভযা ডভন ততগয কযফ াঅপরগয ভত কপরয- Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

এফায ান ডজ এ পভড গনপরয় গকি ডগটাং ডদফ function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

উপরযয ডকাপরড াঅভযা একগট পপরভডয ভপরধয রধ াফগভট ফাটন এফাং My Plugin নাপরভ ডজ ততগয কপরযগি ডযাপরফাপরডড ডদখন-

47

ডগটাং এয াফ ডভন গপরপরফ My Plugin াঅপরি এফাং My Plugin ডত গিক কযপরর াঅভযা উপরযয ডজ ততগয কপরযগি ডমখাপরন াফগভট ফাটনগট ডদখাপরচছ এফায গতনগট যাযাগভটায ডযগজসটায কযফ- ltphp

register_setting( liton _myplugin_options liton _myplugin_options liton

_myplugin_validate_options)

gt

েথভগট ডগটাং রেপরয নাভ গিতীয়গট ান নাভ মা াঅভযা get_option() পাাংন গদপরয়ও ডপরত াগয ততীয়গট করফযাক পাাংন এগট একগট গসটরাং ডযপাপরযনস পাাংন এখাপরন াঅভযা নাভ

48

গদপরয়গি liton _myplugin_validate_options মা া কযপরফ পপরভডয কর ডব ডগটাং াঅভযা এটা পরয গডপাাআন কযফ

ডগটাং গডপাাআন ডকন add_settings_field() এফাং add_settings_section() পাাংন গদপরয় াঅভযা াঅভাপরদয কর ডগটাং গডপাাআন কযফ ltphp

add_settings_section( liton_myplugin_main My Plugin Settings

liton_myplugin_section_text liton _myplugin)

add_settings_field( liton _myplugin_text_string Enter text here

liton _myplugin_setting_input liton _myplugin liton _myplugin_main)

gt

add_settings_section() পাাংন গদপরয় াঅভযা ডদখাফ াঅপরর ডজ এ ডকন ডকভন ডদখাপরফ এয চাযগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ ডকন টাাআপরটর ltH3gt টযাপরগয ভপরধয করফযাক পাাংন এয নাভ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ (page= liton _myplugin এগট

URL এয াাং গপরপরফ থাকপরফ) গিতীয় যাযাগভটায add_settings_field() পপরভডয াআনট গপরপরফ ডদখাপরনা পরয়পরি এখাপরন াাচগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ পরযয গপপরলড গক গেনট কযা পরফ তা ডটকসট গপরপরফ ডদখাপরনা পরয়পরি(Enter text

here)

করফযাক পাাংন পপরভড গেনট কযপরফ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ ডগটাং ডপরজয ডকন গপলড মা add_settings_section() পাাংপরন গডপাাআন

কযা পরয়পরি ltphp

Explanations about this section

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

49

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton _myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name= liton _myplugin_options[text_string]

type=text value=$options[text_string] gt

gt

গিতীয় পাাংন ান বযার text_string ডক এযাপরযপরত ডসটায কপরয ডযপরখপরি এফায াআউজায াআনট বযাগরপরডট কযফ- ltphp

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace([^a-zA-Z]$input[text_string] )

return $valid

gt

পভডপরক ডযনডায কযফ- ltphp

Draw the options page

function liton_myplugin_options_page()

gt

ltdiv class=wrapgt

ltphp

screen_icon()

gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp

settings_fields( liton_myplugin_options)

do_settings_sections(liton_myplugin)

50

gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

settings_fields() পাাংনগট ডযপাপরযনস গপরপরফ ফযফায কযা পরয়পরি মা াঅভযা register_setting() পাাংপরন গডপরিয়ায কপরযগি do_settings_sections() পাাংনগট কর কযপরফ কর াঅউটট ডকন এফাং পভড গপলডপরক মা াঅভযা পরফড গডপাাআন কপরযগি াঅভাপরদয কাজ ডল এফায পরযা পলাগগনগট ডদখফ- ltphp

Plugin Name Settings API example

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

Draw the option page

function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save

Changes gt

ltformgtltdivgt

ltphp

51

Register and define the settings

add_action(admin_init liton_myplugin_admin_init)

function liton_myplugin_admin_init()

register_setting( liton_myplugin_options

liton_myplugin_options

liton_myplugin_validate_options )

add_settings_section( liton_myplugin_main My Plugin

Settings

liton_myplugin_section_text liton_myplugin )

add_settings_field( liton_myplugin_text_string Enter text

here

liton_myplugin_setting_input liton_myplugin

liton_myplugin_main )

Draw the section header

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton_myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name=liton_myplugin_options[text_string]

type=text value=$text_string gt

Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

return $valid

gt

52

ডদখন ডযাপরফাপরডড ডকভন ডদখায়-

পরয় ডগর াঅভাপরদয েথভ নডাাংগ পলাগগন ান ডজ াঅপরযকগট গজগন ডমটায জনয এতগকি পলাগগন URL এপরডর- httplocalhostdev-litonwp-adminoptions-

generalphppage=liton_mypluginampsettings-updated=true

াঅভায এখাপরন এযকভ ডদখাপরচছ ডটকসট ফপরকস ডকান গকি গরপরখ ডব কযায য এফাপরয াঅপরযকগট গজগন ডদখফ াঅভযা াপরনক ভয়াআ াপরনক পলাগগপরনয াআনট গপপরলড বর ডাটা াআনট কযপরর এযয ডভপরজ ডদখায় এাআ কাজগট কযফ এফায াঅভযা এখাপরন esc_attr() ফা esc_html() ফযফায কগযগন সতযাাং াঅভাপরদয গরগভপরটন থাকপরি ডবগরপরডট পাাংনগট একট এগডট কগয গনপরচয ভত কপরয Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

if( $valid[text_string] = $input[text_string] )

add_settings_error(liton_myplugin_text_stringliton_myplugin_texterror

53

Incorrect value enterederror)

return $valid

উপরয ডদখন add_settings_error() পাাংন ফযফায কপরযগি মা এযয ডচক কযপরফ পপরভডয াঅগভ একগট বর ডাটা(পরসপার কযাপরযকটায) াআনট কপরয ডদখরাভ এযয ডদখাপরচছ-

তায ভাপরন াঅভযা পর পরয়গি াঅনায পলাগগনগট এগডট কপরয ডনপরফন ডকায ডকন এফাং গপপরলডয গরসট গদরাভ াঅনাপরদয সগফধায জনয

54

CSSJS পাাআর মি কযা

াঅনায পলাগগপরন গএএ ফা জাবাগিে ডমাগ কযপরত পরত াপরয াঅগন চাাআপরর ফাগপরযয ডকান ফা াঅনায ততগয ডকান গএএ ফা জাবাগিে পাাআর ডমাগ কযপরত াপরযন তপরফ এপরকষপরতর াঅভযা ডমবাপরফ HTML এ পাাআর ডমাগ কগয ডযকভ না function liton_scripts()

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtojqueryjsrdquogtltscriptgt‟

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtoscriptjsrdquogtltscriptgt‟

add_action(bdquowp_head‟‟liton_scripts‟)

এগট মপনডরপর বর িগত গনপরচ ডদখন ওয়াডডপরেপর গকবাপরফ পাাআর মি কযপরত য়- function liton_scripts()

wp_enqueue_script(bdquojquery‟)

wp_enqueue_script(bdquotheme-scripts‟‟pathtoscriptsjs‟)

add_action(bdquowp_enqueue_script‟‟liton_scripts‟)

ানর বাপরফ াঅগন সটাাআরীট ডমাগ কযপরত াপরযন- function liton_styles()

wp_enqueue_ style (bdquocss‟)

wp_enqueue_ style (bdquotheme- styles‟pathto stylescss‟)

ডযপাপরযনস ডদখন- httpcodexwordpressorgFunction_Referencewp_enqueue_script

httpcodexwordpressorgFunction_Referencewp_enqueue_style

টডপরকাড টডপরকাড পরচছ ওয়াডডপরেপরয ডসপগগপক ডসপার টযাগ মা াঅগন ডাসট ফা ডপরজয ভপরধয াআনাটড কপরয ানয ডকান কনপরটনটপরক ওপরয়ফাাআপরটয ভপরধয গযপরপল কযপরত াযপরফন মগদ াঅগন গযারাগয টাাআপরয ডকান পলাগগন ফযফায কপরয থাপরকন তাপরর াঅনায ধাযনা থাকায কথা মাাআ ডাক াঅগভ কপরয়কগট উদাযি ডদখাফ

55

েথপরভ একগট পলাগগন ততগয কযফ ডমখাপরন add_shortcode() নাপরভয একগট পাাংন থাকপরফ এগট রগট যাযাগভটায েন কপরয েথভগট টডপরকাপরডয নাভ গিতীয়গট ডম পাাংনপরক কর কযপরফন ডগট াঅভযা একগট উদাযন ডদগখ- ltphp

Plugin Name Liton Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(litonhi)

function hi()

echo Hello World

gt

উপরয ডদখন খফ ডিাট গকনত াঅগন চাাআপরর এয ফযফায াপরনক গফসতত কযপরত াপরযন এখাপরন টডপরকাড নাভ পরচছ liton াঅয এগটপরক ডরখা য় এবাপরফ [liton] াঅভযা ডাপরসটয ভপরধয াআনাটড কপরয ডদগখ াঅউটট ডকভন ডদখায়-

এফায াঅউটট ডদগখ-

56

াঅভাপরদয ততগয কযা টডপরকাড পরবাপরফাআ কাজ কযপরি াঅপরযকগট উদাযন ডদখফ াঅনাযা াপরনপরকাআ গগর এডপরনস গনপরয় কাজ কপরযন াঅনাযা াপরনপরকাআ এডপরনস এয জনয পলাগগন ফযফায কপরযন গকনত চাাআপররাআ এাআ কাজগট াঅনাযা গনপরজয ভত কপরয াগজপরয় গনপরত াপরযন গগপররয কাপরি ফ ডাসট বযার ায়না াঅনাযা মাযা একসাটড াঅপরিন তাযা এটা বার কপরয জাপরনন তাাআ াপরনপরকাআ গগপররয ডকাড ফ ডপরজ ডদখাপরত চান না এজনয পলাগগন ফযফায কপরয রাব য়না কাযন পলাগগপরন জায়গা গপকসড থাপরক এপরত কপরয াঅগনডাং ও কভ য় াঅনাযা টডপরকাড ফযফায কপরয ডমপরকান জায়গায় এড ডদখাপরত াপরযন গনপরচ াঅগভ রগট টডপরকাড ততগয কপরযগি র‟ধযপরনয এড ডদখাপরনায জনয ltphp

Plugin Name Liton Adsense Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(adsense_468adsense_468_60)

add_shortcode(adsense_250adsense_250_250)

function adsense_468_60($atts)

return ltscript type=textjavascriptgtlt--

57

google_ad_client = ca-pub-0956247412222369

468x60 created 101510

google_ad_slot = 4372705450

google_ad_width = 468

google_ad_height = 60

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

function adsense_250_250($atts)

return ltscript type=textjavascriptgtlt--

google_ad_client = ca-pub-0956247412222369

250x250 created 81809

google_ad_slot = 9368091893

google_ad_width = 250

google_ad_height = 250

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

gt

একগট টডপরকাড ফযানায টাাআপরয জনয এফাং াঅপরযকগট ২৫০২৫০ াাআপরজয এফায ডাপরসট ডমপরকান একগট টডপরকাড াআনাটড করন ডমখাপরন াঅনায ডদখাপরনায েপরয়াজন ভপরন কপরযন াঅগভ রগট ডকাড ডটসট কপরয ডদখরাভ-

58

এফায াাআপরটয াঅউটট ডদগখ-

রগট এডাআ ডদখাপরচছ াঅপরযা াপরনক কাপরজ াঅগন টডপরকাড ফযফায কযপরত াপরযন ডযপাপরযনসাঃ httpcodexwordpressorgShortcode_API

59

াধযায়- নয়াঃ পলাগগন উদাযন

ওয়াডডপরেপরয ডডটটাাআভকপরভনট নামবায ফাাংরা কযায পলাগগন াঅভাপরক কপরয়কজন ফপররগিপররন ওয়াডডপরেপরয গডপলট ডডটটাাআভকপরভনট নামবায ফাাংরা য়না রযাাংগপরয়জ ফাাংরা কযায যও ডডটটাাআভকপরভনট নামবায গপররা াআাংপরযগজ ডথপরক মায় গনপরচয পলাগগনগট ফযফায কপরয ডদখপরত াপরযন- ltphp

Plugin Name Liton Bangla datetimecomment number

Plugin URI httpliton-onlinecomplugins

Description Bangla datetimecomment number

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

This function converts all english numbers to bangla number

function make_bangla_number($str)

$engNumber = array(1234567890)

$bangNumber = array( ১ ২ ৩ ৪ ৫ ৬ ৭ ৮ ৯ ০ ) $converted = str_replace($engNumber $bangNumber $str)

return $converted

add_filter( get_the_time make_bangla_number )

add_filter( the_date make_bangla_number )

add_filter( get_the_date make_bangla_number )

add_filter( comments_number make_bangla_number )

add_filter( get_comment_date make_bangla_number )

add_filter( get_comment_time make_bangla_number )

gt

60

সলাাআডায পলাগগন াঅভযা এাআ ফাআপরয়য কর গটউপরটাগযয়াপরর মা মা গখরাভ তা এফায একগট নডাাংগ পলাগগপরনয এপলাাআ কযফ সলাাআডায পলাগগন মপপরকড াঅভযা ফাাআ জাগন একগট ওপরয়ফাাআপরটয ডচাযা ারপরট ডদয় একগট সলাাআডায াপরনক ডাাআনাগভক ভপরন য় ডদখপরতও াপরনক বার রাপরগ এাআ পলাগগপরন াঅভযা এডগভন যাপরনর ডথপরক াআপরভজ ডমাগ কযফ এফাং তা াঅভাপরদয াাআপরট ডদখাফ চরন কাজ রর কগয- েথপরভ গনপরবা সলাাআডায এয ওপরয়ফাাআপরট মান এফাং jQuery Plugin ডাউনপররাড করন

ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom Version 10

gt

াঅভযা পলাগগপরনয ডডায ততগয কযরাভ

পলাগগন গরপরসট ডদখাপরচছ bdquoLitons Nivo Plugin‟ াঅভাপরদয েথভ কাজ পরচছ custom post

type ওয়াডডপরে পাাংনাগরগট একগট নতন কাসটভ ডজ ততগয কযপরত custom post type

ফযফহরত পরফ ডমখাপরন একগট াআপরভজ থাকপরফ াঅভযা রধ টাাআপরটর ডনভ এফাং াআপরভজ াঅপররাডায গপরপরফ গপচায াআপরভজ পাাংনাগরগট ফযফায কযফ function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_function 600 280 true)

61

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

add_action(init np_init)

উপরযয ডকাপরড np_init() পাাংনগট রক কপরযগি মা ডডায যান কযায াঅপরগ যান পরফ াঅয এজনয register_post_type() পাাংনপরক এয যাযাগভটায গদপরয় np_init() পাাংপরনয ডবতপরয মি কপরযগি এটা মগদ না কযতাভ তাপরর ldquoHeaders already sentrdquo ডভপরজ ডদখাত এাআ ডভপরজগটয াপরথ াপরনপরকাআ গযগচত াঅা কগয register_post_type() পাাংন গদপরয় াঅভযা াআপরভজ মি এফাং ভযাপরনজ কযফ ভরত াঅভযা একগট নতন custom post type ডমাগ কপরযগি np_images নাভ গদপরয় নতন custom post type ডক ডগটাং বযার গপরপরফ াঅযগপরভনট া কপরযগি $args ডবগযপরয়ফরগট ট ডরপরবর ডভন ততগয কপরয াঅপরগাআ ডদপরখগি পলাগগনগট এগকটপরবট কযপরর াঅভযা গনপরচয ভত ডদখপরত াফ-

এফায গিে এফাং সটাাআরীট ডক মি কযফ- add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

এফায রক কযা পাাংনগপররা গডপরিয়ায কগয- function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__) array( jquery ))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

62

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

উপরযয ডকাডগপররা নতন কপরয ফিডনা কযায গকি ডনাআ াঅপরগাআ wp_enqueue_style() এফাং wp_enqueue_script() মপপরকড ফরা পরয়পরি নতন াঅপরযকগট পাাআর ততগয করন একাআ গডপরযকটগযপরত scriptjs এফাং গনপরচয ডকাডটক গদন- jQuery(document)ready(function($)

$(slider)nivoSlider()

)

াআপরভজপরক গযাাআজ করন- add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

াঅভযা এাআ পলাগগনগটপরক উাআপরজট গপরপরফও ফযফায কযফ ডগট পরয ডদখফ াঅপরযকগট গজগন মগদ গথপরভ না ডদয়া থাপরক ডজনয থামবপরনাআর াপরাটড গদপরয় গদন- add_theme_support( post-thumbnails )

এফায ওয়াডডপরেপরয কাপরযনট ডাসট কপরয়যী কযায ডকাড াঅয $result ডবগযপরয়ফপরর ডমফ ltdivgt টযাগ ফযফায কযা পরয়পরি তা jQuery Plugin গট একসিাকট কপরয indexhtml ডজগটয ডভাআন সলাাআডায ডকাডগট ডদখন একাআ াঅপরি রধ ডখানকায ltdivgt টযাগ গপররাপরক কগ কপরয এাআ পলাগগপরন ফযফায কযা পরয়পরি এফায টডপরকাড গদন- add_shortcode(np-shortcode np_function)

এাআ টডপরকাড গএাআচগ পাাংনপরক রক কযপরফ এফাং এয ভধয ডথপরক সলাাআডপরায কনপরটনট ডক গযটানড কযপরফ াঅভাপরদয টডপরকাড পরচছ [np-shortcode] াঅভযা পলাগগপরন মাাআ এফাং একগট িগফ মি কগয গপচাযড াআপরভজ গপরপরফ গনপরচ ডদখন-

63

াঅগভ াঅপরযকগট ডজ ততগয কপরযগি ডমখাপরন টডপরকাড গদপরয়গি

াঅউটট ডজ ডদগখ এফায-

64

পরয় ডগর াঅভাপরদয সলাাআডায পলাগগন পরযা ডকাডগট গনপরচ গদরাভ- ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

65

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

66

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

এফায াঅগন মগদ উাআপরজট গপরপরফ ফযফায কযপরত চান তাপরর গনপরচয ডকাডটক গদন- class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

67

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

echo $after_widget

াঅপরযা রগট কাজ কযপরত পরফ াঅনাপরক এক াআপরভজ াাআজ উাআপরজট এয জনয গঠক কপরয গদপরত পরফ- add_image_size(np_widget 180 100 true)

াঅপরযকগট র উাআপরজট এযাকন রক ডমাগ কযা add_action(widgets_init np_widgets_init)

উাআপরজট পরযা ডকাড াঅফায গদরাভ- ltphp

Plugin Name Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Ciprian Turcu

Version 10

68

class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

69

echo $after_widget

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

70

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(widgets_init np_widgets_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

71

পলাগগন গনপরয় এত ডিাট গযপরয ডরখা মভফ নয় এজনযাআ ভপরন য় পলাগগন গনপরয় ডকউ ডরপরখন না কাযন এখাপরন এত গফলয় াঅপরি মা াঅপররাচনা কযপরত ডগপরর ৫০০ ডজ ায পরয় মাপরফ ডফাোয সগফধাপরথড াঅগভ মথামভফ উদাযন গদপরয় ডফাোপরনায ডচষটা কপরযগি াঅগভ এখাপরন টাপরগডট কপরযগি মাযা টকটাক জাপরন পলাগগন মপপরকড এডবানস ডরপরবপররয নয় কাযন তাযা জাপরনন াঅভায উপরেশয গির মাযা জানপরত চায় তাপরদযপরক জানাপরনা এখাপরন ডমফ গফলয় াঅপররাচনা কযা পরয়পরি তা ডভাটাভগট ভাপরনয একগট পলাগগন ফানাপরনায জনয মপরথষট তপরফ ভাপরনাননয়পরনয জনয াঅনাপরক গনপরজাআ খাপরজ গনপরত পরফ াঅনায জনয ডকানটা বার পরফ াঅগভ রধ গদক গনপরদডনা গদরাভ ভাতর এাআ ফাআগট রধভাতর ওয়াডডপরে রেপরয জনয ডরখা াপরনক বর ভরাগনত থাকপরত াপরয াঅনাযা কষভাসনদয দগষটপরত ডদখপরফন াঅগভ ডচষটা কপরযগি মতটা জ কপরয ডরখা মায় াপরনক ভয় ডদখা মায় ডম খফ ডিাট খাপরটা গফলয় গনপরয় াপরনপরকাআ নক কপরযন এটা গতয রাঃখজনক াঅনাযা গগপরর একট খাজপররাআ ভাধান াপরফন াঅপরগ গনপরজ ডচষটা করন তায পরয ানযপরক ভাধাপরনয জনয গজজঞাা করন াঅভায জনয ডদায়া কযপরফন বাপররা রাগপরর জানাপরফন খাযা রাগপররও জানাপরফন তাপররাআ াঅভায গযশরভ সবাথডক পরফ ভতাভত জাগনপরয় াঅভাপরক ডভাআর কযপরত াপরযন litonice09gmailcom |

72

Page 41: Wordpress Plugin Development

42

$id = $tag-gtterm_id

$name = esc_attr( $tag-gtname )

$delete_url= add_query_arg(

array(liton_action=gtdeleteid=gt$id) )

$nonced_url= wp_nonce_url( $delete_url

liton_utags-delete_tag$id )

gt

ltligt

ltform action= method=postgt

ltphp wp_nonce_field( liton_utags-rename_tag$id )

gt

ltinput type=hidden name=liton_action

value=rename gt

ltinput type=hidden name=id value=ltphp echo

$id gt gt

ltinput type=text name=name value=ltphp echo

$name gt gt

ltinput type=submit value=Rename gt or

lta href=ltphp echo $nonced_url gtgtdeleteltagt

this tag

ltformgt

ltligt

ltphp

else gt

ltpgtYou have no unused tagsltpgt

ltphp endif gt

ltolgt

ltdivgt

ltphp

Find unused tags return them in an array

function liton_utags_find_orphans()

global $wpdb

$sql = SELECT termsterm_id termsname FROM

$wpdb-gtterms terms

INNER JOIN $wpdb-gtterm_taxonomy taxo

ON termsterm_id=taxoterm_id

WHERE taxotaxonomy = post_tag

43

AND taxocount=0

return $wpdb-gtget_results( $sql )

gt

ডযাপরফাপরডড এাআ পলাগগপরনয ডভন াওয়া মাপরফ ডাসট এয াফপরভন গপরপরফ গনপরচ ডদখন-

এফায পলাগগন ডভনপরত গিক কপরয ডদগখ পলাগগপরনয ডবতপরযয কাজ-

উপরয ডদখন াঅগভ একগট টযাগ ততগয কপরযগিরাভ l i নাপরভ এগট এখাপরন ডদখাপরচছ াঅগভ চাাআপরর এগট এগডট ফা গডগরট কযপরত াগয এফায গডগরট গরঙক এ ভাউপরয কাডয ডযপরখ গনপরচ গরঙক ডদখন ফা গডগরট করন একগট টযাগ াঅভায এখাপরন URL গট এযকভ httplocalhostdev-litonwp-

admineditphppage=liton_utagsampliton_action=doneampid=4amp_wpnonce=30a44b7

986

এখাপরন াঅগভ liton_action=done ফযফায কপরযগি Nonces এয পাাংনগপররায নাভ গনপরচ গদরাভ াঅনাযা ডদপরখ গনপরফন াআনটাযপরনট ডথপরক wp_nonce_field()

wp_nonce_url()

wp_verify_nonce()

wp_create_nonce()

44

check_admin_referer()

check_ajax_referer()

ডাটাপরফ াঅনাযা ডমপরত গএাআচগ গনপরয় কাজ কপরযন এগকউএর ডাটাপরফ এয াপরথ ফাাআ কভপরফী গযগচত এয গনটযাকস গপররা ডভাটাভগট ফায জানা একাআ বাপরফ াপরনপরকাআ ওয়াডডপরেপরও ডাটাপরফ ডকাড গরপরখন এটা ডকাগডাং এয জনয খাযা গদক াঅগভ নযভার গএাআচগ- এগকউএর ডকাড এয উদাযন গদগচছ- ltphp

$sql=rdquoINSERT INTO $wpdb-gtposts(post_title) VALUES(bdquo$title‟)rdquo

$wpdb-gtquery($sql) gt

এফায ওয়াডডপরেপরয সটযানডাডড ডকাগডাং গপরসটভ ডদখন- ltphp

$wpdb-gtinsert($wpdb-gtposts

array(bdquopost_title‟ =gt $title)

array(bdquos‟)

)

gt

ডাটাপরফ গগকউয কযায জনয াঅপরডট াাপরযন ডদখাফ- গনপরচয ডকাডগট খাযা েযাকগট ltphp

$wpdb-gtquery(ldquoUPDATE $wpdb-gtposts SET post_title=‟$newTitle‟ WHERE

ID=$my_idrdquo )

gt

উপরযয ভত কপরয না গরপরখ গনপরচয ভত কপরয গরখন- ltphp

$wpdb-gtupdate($wpdb-gtposts

Array(bdquopost_title‟ =gt‟$newTitle‟)

Array(bdquoID‟ =gt$my_id

)

gt

ানর বাপরফ ানযানয াাপরযন গপররা গরখপরফন

45

াধযায়- াঅটাঃ ডরাকারাাআপরজন এফাং Set t i ngs API

ডরাকারাাআপরজন ডরাকারাাআপরজন একগট গরতবনড গফলয় এয পাাংনগপররা র- load_theme_textdomain()

load_plugin_textdomain()

উদাযন- ltphp $var=__(bdquoHello‟‟domain‟) gt

ltphp _e(bdquoHello‟‟domain‟) gt

গফসতাগযত গনপরচয গরপরঙক ডদখন- httpcodexwordpressorgI18n_for_WordPress_Developers

ডগটাং API

ডগটাং API পরচছ াঅগন গকি ান ততগয কযপরফন মা াআনটাযনার বাপরফ াঅনায পলাগগপরন এপলাাআ পরফ মখন াঅগন াআউজায- গডপাাআন ান ততগয কযপরফন াঅনায পলাগগপরনয জনয তখন Settings

API ndashএ াঅনায ডকাড মতটা ারন জ করন Settings API াঅনায ডম কাজগপররা handle কপরয-

ওয়াডডপরেপরক জাগনপরয় ডদয় ডম াঅগন গনজসব ান ফযফায কযপরফন াঅনায াআনটপরক পাাংপরনয ভপরধয উপরেখ কযপরফ ডফগয বাগ ান ডজ গনপরজাআ ততগয কযপরফ $_POST ডাটা গপররাপরক ভগনটয কপরয ান ততগয এফাং াঅপরডট কপরয(মগদ েপরয়াজন য়)

Settings API পাাংন Settings API পাাংপরন গতনগট ডসট থাপরক- ১ েথপরভ ওয়াডডপরেপরক ফপরর ডম াঅগন নতন ডগটাং ফযফায কযপরফন াঅনায পলাগগপরনয জনয ২ এয পরয ডগটাং গডপাাআন করন (text areas input boxes and any

HTML form element) এফাং এপরদযপরক একাপরথ রে কপরয যাপরখ ৩ ওয়াডডপরেপরক াঅনায ডগটাং actual form এ ডদখাপরনায জনয ফপরর

46

এফায াঅভযা একগট পলাগগন ফানাপরফা Administration Page ndashএ ডযপাপরযনস গপরপরফ ডদখপরত াপরযন- httpcodexwordpressorgAdding_Administration_Menus

httpcodexwordpressorgFunction_Referenceadd_options_page

httpcodexwordpressorgAction_ReferenceActions_Run_During_an_Admin_P

age_Request

পলাগগপরনয এডগভন ডজ পরফ এযকভ- httpexamplecomwp-adminoptions-generalphppage=liton_myplugin

েথপরভ াঅভযা ডভন ততগয কযফ াঅপরগয ভত কপরয- Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

এফায ান ডজ এ পভড গনপরয় গকি ডগটাং ডদফ function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

উপরযয ডকাপরড াঅভযা একগট পপরভডয ভপরধয রধ াফগভট ফাটন এফাং My Plugin নাপরভ ডজ ততগয কপরযগি ডযাপরফাপরডড ডদখন-

47

ডগটাং এয াফ ডভন গপরপরফ My Plugin াঅপরি এফাং My Plugin ডত গিক কযপরর াঅভযা উপরযয ডজ ততগয কপরযগি ডমখাপরন াফগভট ফাটনগট ডদখাপরচছ এফায গতনগট যাযাগভটায ডযগজসটায কযফ- ltphp

register_setting( liton _myplugin_options liton _myplugin_options liton

_myplugin_validate_options)

gt

েথভগট ডগটাং রেপরয নাভ গিতীয়গট ান নাভ মা াঅভযা get_option() পাাংন গদপরয়ও ডপরত াগয ততীয়গট করফযাক পাাংন এগট একগট গসটরাং ডযপাপরযনস পাাংন এখাপরন াঅভযা নাভ

48

গদপরয়গি liton _myplugin_validate_options মা া কযপরফ পপরভডয কর ডব ডগটাং াঅভযা এটা পরয গডপাাআন কযফ

ডগটাং গডপাাআন ডকন add_settings_field() এফাং add_settings_section() পাাংন গদপরয় াঅভযা াঅভাপরদয কর ডগটাং গডপাাআন কযফ ltphp

add_settings_section( liton_myplugin_main My Plugin Settings

liton_myplugin_section_text liton _myplugin)

add_settings_field( liton _myplugin_text_string Enter text here

liton _myplugin_setting_input liton _myplugin liton _myplugin_main)

gt

add_settings_section() পাাংন গদপরয় াঅভযা ডদখাফ াঅপরর ডজ এ ডকন ডকভন ডদখাপরফ এয চাযগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ ডকন টাাআপরটর ltH3gt টযাপরগয ভপরধয করফযাক পাাংন এয নাভ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ (page= liton _myplugin এগট

URL এয াাং গপরপরফ থাকপরফ) গিতীয় যাযাগভটায add_settings_field() পপরভডয াআনট গপরপরফ ডদখাপরনা পরয়পরি এখাপরন াাচগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ পরযয গপপরলড গক গেনট কযা পরফ তা ডটকসট গপরপরফ ডদখাপরনা পরয়পরি(Enter text

here)

করফযাক পাাংন পপরভড গেনট কযপরফ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ ডগটাং ডপরজয ডকন গপলড মা add_settings_section() পাাংপরন গডপাাআন

কযা পরয়পরি ltphp

Explanations about this section

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

49

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton _myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name= liton _myplugin_options[text_string]

type=text value=$options[text_string] gt

gt

গিতীয় পাাংন ান বযার text_string ডক এযাপরযপরত ডসটায কপরয ডযপরখপরি এফায াআউজায াআনট বযাগরপরডট কযফ- ltphp

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace([^a-zA-Z]$input[text_string] )

return $valid

gt

পভডপরক ডযনডায কযফ- ltphp

Draw the options page

function liton_myplugin_options_page()

gt

ltdiv class=wrapgt

ltphp

screen_icon()

gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp

settings_fields( liton_myplugin_options)

do_settings_sections(liton_myplugin)

50

gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

settings_fields() পাাংনগট ডযপাপরযনস গপরপরফ ফযফায কযা পরয়পরি মা াঅভযা register_setting() পাাংপরন গডপরিয়ায কপরযগি do_settings_sections() পাাংনগট কর কযপরফ কর াঅউটট ডকন এফাং পভড গপলডপরক মা াঅভযা পরফড গডপাাআন কপরযগি াঅভাপরদয কাজ ডল এফায পরযা পলাগগনগট ডদখফ- ltphp

Plugin Name Settings API example

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

Draw the option page

function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save

Changes gt

ltformgtltdivgt

ltphp

51

Register and define the settings

add_action(admin_init liton_myplugin_admin_init)

function liton_myplugin_admin_init()

register_setting( liton_myplugin_options

liton_myplugin_options

liton_myplugin_validate_options )

add_settings_section( liton_myplugin_main My Plugin

Settings

liton_myplugin_section_text liton_myplugin )

add_settings_field( liton_myplugin_text_string Enter text

here

liton_myplugin_setting_input liton_myplugin

liton_myplugin_main )

Draw the section header

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton_myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name=liton_myplugin_options[text_string]

type=text value=$text_string gt

Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

return $valid

gt

52

ডদখন ডযাপরফাপরডড ডকভন ডদখায়-

পরয় ডগর াঅভাপরদয েথভ নডাাংগ পলাগগন ান ডজ াঅপরযকগট গজগন ডমটায জনয এতগকি পলাগগন URL এপরডর- httplocalhostdev-litonwp-adminoptions-

generalphppage=liton_mypluginampsettings-updated=true

াঅভায এখাপরন এযকভ ডদখাপরচছ ডটকসট ফপরকস ডকান গকি গরপরখ ডব কযায য এফাপরয াঅপরযকগট গজগন ডদখফ াঅভযা াপরনক ভয়াআ াপরনক পলাগগপরনয াআনট গপপরলড বর ডাটা াআনট কযপরর এযয ডভপরজ ডদখায় এাআ কাজগট কযফ এফায াঅভযা এখাপরন esc_attr() ফা esc_html() ফযফায কগযগন সতযাাং াঅভাপরদয গরগভপরটন থাকপরি ডবগরপরডট পাাংনগট একট এগডট কগয গনপরচয ভত কপরয Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

if( $valid[text_string] = $input[text_string] )

add_settings_error(liton_myplugin_text_stringliton_myplugin_texterror

53

Incorrect value enterederror)

return $valid

উপরয ডদখন add_settings_error() পাাংন ফযফায কপরযগি মা এযয ডচক কযপরফ পপরভডয াঅগভ একগট বর ডাটা(পরসপার কযাপরযকটায) াআনট কপরয ডদখরাভ এযয ডদখাপরচছ-

তায ভাপরন াঅভযা পর পরয়গি াঅনায পলাগগনগট এগডট কপরয ডনপরফন ডকায ডকন এফাং গপপরলডয গরসট গদরাভ াঅনাপরদয সগফধায জনয

54

CSSJS পাাআর মি কযা

াঅনায পলাগগপরন গএএ ফা জাবাগিে ডমাগ কযপরত পরত াপরয াঅগন চাাআপরর ফাগপরযয ডকান ফা াঅনায ততগয ডকান গএএ ফা জাবাগিে পাাআর ডমাগ কযপরত াপরযন তপরফ এপরকষপরতর াঅভযা ডমবাপরফ HTML এ পাাআর ডমাগ কগয ডযকভ না function liton_scripts()

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtojqueryjsrdquogtltscriptgt‟

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtoscriptjsrdquogtltscriptgt‟

add_action(bdquowp_head‟‟liton_scripts‟)

এগট মপনডরপর বর িগত গনপরচ ডদখন ওয়াডডপরেপর গকবাপরফ পাাআর মি কযপরত য়- function liton_scripts()

wp_enqueue_script(bdquojquery‟)

wp_enqueue_script(bdquotheme-scripts‟‟pathtoscriptsjs‟)

add_action(bdquowp_enqueue_script‟‟liton_scripts‟)

ানর বাপরফ াঅগন সটাাআরীট ডমাগ কযপরত াপরযন- function liton_styles()

wp_enqueue_ style (bdquocss‟)

wp_enqueue_ style (bdquotheme- styles‟pathto stylescss‟)

ডযপাপরযনস ডদখন- httpcodexwordpressorgFunction_Referencewp_enqueue_script

httpcodexwordpressorgFunction_Referencewp_enqueue_style

টডপরকাড টডপরকাড পরচছ ওয়াডডপরেপরয ডসপগগপক ডসপার টযাগ মা াঅগন ডাসট ফা ডপরজয ভপরধয াআনাটড কপরয ানয ডকান কনপরটনটপরক ওপরয়ফাাআপরটয ভপরধয গযপরপল কযপরত াযপরফন মগদ াঅগন গযারাগয টাাআপরয ডকান পলাগগন ফযফায কপরয থাপরকন তাপরর াঅনায ধাযনা থাকায কথা মাাআ ডাক াঅগভ কপরয়কগট উদাযি ডদখাফ

55

েথপরভ একগট পলাগগন ততগয কযফ ডমখাপরন add_shortcode() নাপরভয একগট পাাংন থাকপরফ এগট রগট যাযাগভটায েন কপরয েথভগট টডপরকাপরডয নাভ গিতীয়গট ডম পাাংনপরক কর কযপরফন ডগট াঅভযা একগট উদাযন ডদগখ- ltphp

Plugin Name Liton Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(litonhi)

function hi()

echo Hello World

gt

উপরয ডদখন খফ ডিাট গকনত াঅগন চাাআপরর এয ফযফায াপরনক গফসতত কযপরত াপরযন এখাপরন টডপরকাড নাভ পরচছ liton াঅয এগটপরক ডরখা য় এবাপরফ [liton] াঅভযা ডাপরসটয ভপরধয াআনাটড কপরয ডদগখ াঅউটট ডকভন ডদখায়-

এফায াঅউটট ডদগখ-

56

াঅভাপরদয ততগয কযা টডপরকাড পরবাপরফাআ কাজ কযপরি াঅপরযকগট উদাযন ডদখফ াঅনাযা াপরনপরকাআ গগর এডপরনস গনপরয় কাজ কপরযন াঅনাযা াপরনপরকাআ এডপরনস এয জনয পলাগগন ফযফায কপরযন গকনত চাাআপররাআ এাআ কাজগট াঅনাযা গনপরজয ভত কপরয াগজপরয় গনপরত াপরযন গগপররয কাপরি ফ ডাসট বযার ায়না াঅনাযা মাযা একসাটড াঅপরিন তাযা এটা বার কপরয জাপরনন তাাআ াপরনপরকাআ গগপররয ডকাড ফ ডপরজ ডদখাপরত চান না এজনয পলাগগন ফযফায কপরয রাব য়না কাযন পলাগগপরন জায়গা গপকসড থাপরক এপরত কপরয াঅগনডাং ও কভ য় াঅনাযা টডপরকাড ফযফায কপরয ডমপরকান জায়গায় এড ডদখাপরত াপরযন গনপরচ াঅগভ রগট টডপরকাড ততগয কপরযগি র‟ধযপরনয এড ডদখাপরনায জনয ltphp

Plugin Name Liton Adsense Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(adsense_468adsense_468_60)

add_shortcode(adsense_250adsense_250_250)

function adsense_468_60($atts)

return ltscript type=textjavascriptgtlt--

57

google_ad_client = ca-pub-0956247412222369

468x60 created 101510

google_ad_slot = 4372705450

google_ad_width = 468

google_ad_height = 60

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

function adsense_250_250($atts)

return ltscript type=textjavascriptgtlt--

google_ad_client = ca-pub-0956247412222369

250x250 created 81809

google_ad_slot = 9368091893

google_ad_width = 250

google_ad_height = 250

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

gt

একগট টডপরকাড ফযানায টাাআপরয জনয এফাং াঅপরযকগট ২৫০২৫০ াাআপরজয এফায ডাপরসট ডমপরকান একগট টডপরকাড াআনাটড করন ডমখাপরন াঅনায ডদখাপরনায েপরয়াজন ভপরন কপরযন াঅগভ রগট ডকাড ডটসট কপরয ডদখরাভ-

58

এফায াাআপরটয াঅউটট ডদগখ-

রগট এডাআ ডদখাপরচছ াঅপরযা াপরনক কাপরজ াঅগন টডপরকাড ফযফায কযপরত াপরযন ডযপাপরযনসাঃ httpcodexwordpressorgShortcode_API

59

াধযায়- নয়াঃ পলাগগন উদাযন

ওয়াডডপরেপরয ডডটটাাআভকপরভনট নামবায ফাাংরা কযায পলাগগন াঅভাপরক কপরয়কজন ফপররগিপররন ওয়াডডপরেপরয গডপলট ডডটটাাআভকপরভনট নামবায ফাাংরা য়না রযাাংগপরয়জ ফাাংরা কযায যও ডডটটাাআভকপরভনট নামবায গপররা াআাংপরযগজ ডথপরক মায় গনপরচয পলাগগনগট ফযফায কপরয ডদখপরত াপরযন- ltphp

Plugin Name Liton Bangla datetimecomment number

Plugin URI httpliton-onlinecomplugins

Description Bangla datetimecomment number

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

This function converts all english numbers to bangla number

function make_bangla_number($str)

$engNumber = array(1234567890)

$bangNumber = array( ১ ২ ৩ ৪ ৫ ৬ ৭ ৮ ৯ ০ ) $converted = str_replace($engNumber $bangNumber $str)

return $converted

add_filter( get_the_time make_bangla_number )

add_filter( the_date make_bangla_number )

add_filter( get_the_date make_bangla_number )

add_filter( comments_number make_bangla_number )

add_filter( get_comment_date make_bangla_number )

add_filter( get_comment_time make_bangla_number )

gt

60

সলাাআডায পলাগগন াঅভযা এাআ ফাআপরয়য কর গটউপরটাগযয়াপরর মা মা গখরাভ তা এফায একগট নডাাংগ পলাগগপরনয এপলাাআ কযফ সলাাআডায পলাগগন মপপরকড াঅভযা ফাাআ জাগন একগট ওপরয়ফাাআপরটয ডচাযা ারপরট ডদয় একগট সলাাআডায াপরনক ডাাআনাগভক ভপরন য় ডদখপরতও াপরনক বার রাপরগ এাআ পলাগগপরন াঅভযা এডগভন যাপরনর ডথপরক াআপরভজ ডমাগ কযফ এফাং তা াঅভাপরদয াাআপরট ডদখাফ চরন কাজ রর কগয- েথপরভ গনপরবা সলাাআডায এয ওপরয়ফাাআপরট মান এফাং jQuery Plugin ডাউনপররাড করন

ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom Version 10

gt

াঅভযা পলাগগপরনয ডডায ততগয কযরাভ

পলাগগন গরপরসট ডদখাপরচছ bdquoLitons Nivo Plugin‟ াঅভাপরদয েথভ কাজ পরচছ custom post

type ওয়াডডপরে পাাংনাগরগট একগট নতন কাসটভ ডজ ততগয কযপরত custom post type

ফযফহরত পরফ ডমখাপরন একগট াআপরভজ থাকপরফ াঅভযা রধ টাাআপরটর ডনভ এফাং াআপরভজ াঅপররাডায গপরপরফ গপচায াআপরভজ পাাংনাগরগট ফযফায কযফ function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_function 600 280 true)

61

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

add_action(init np_init)

উপরযয ডকাপরড np_init() পাাংনগট রক কপরযগি মা ডডায যান কযায াঅপরগ যান পরফ াঅয এজনয register_post_type() পাাংনপরক এয যাযাগভটায গদপরয় np_init() পাাংপরনয ডবতপরয মি কপরযগি এটা মগদ না কযতাভ তাপরর ldquoHeaders already sentrdquo ডভপরজ ডদখাত এাআ ডভপরজগটয াপরথ াপরনপরকাআ গযগচত াঅা কগয register_post_type() পাাংন গদপরয় াঅভযা াআপরভজ মি এফাং ভযাপরনজ কযফ ভরত াঅভযা একগট নতন custom post type ডমাগ কপরযগি np_images নাভ গদপরয় নতন custom post type ডক ডগটাং বযার গপরপরফ াঅযগপরভনট া কপরযগি $args ডবগযপরয়ফরগট ট ডরপরবর ডভন ততগয কপরয াঅপরগাআ ডদপরখগি পলাগগনগট এগকটপরবট কযপরর াঅভযা গনপরচয ভত ডদখপরত াফ-

এফায গিে এফাং সটাাআরীট ডক মি কযফ- add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

এফায রক কযা পাাংনগপররা গডপরিয়ায কগয- function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__) array( jquery ))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

62

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

উপরযয ডকাডগপররা নতন কপরয ফিডনা কযায গকি ডনাআ াঅপরগাআ wp_enqueue_style() এফাং wp_enqueue_script() মপপরকড ফরা পরয়পরি নতন াঅপরযকগট পাাআর ততগয করন একাআ গডপরযকটগযপরত scriptjs এফাং গনপরচয ডকাডটক গদন- jQuery(document)ready(function($)

$(slider)nivoSlider()

)

াআপরভজপরক গযাাআজ করন- add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

াঅভযা এাআ পলাগগনগটপরক উাআপরজট গপরপরফও ফযফায কযফ ডগট পরয ডদখফ াঅপরযকগট গজগন মগদ গথপরভ না ডদয়া থাপরক ডজনয থামবপরনাআর াপরাটড গদপরয় গদন- add_theme_support( post-thumbnails )

এফায ওয়াডডপরেপরয কাপরযনট ডাসট কপরয়যী কযায ডকাড াঅয $result ডবগযপরয়ফপরর ডমফ ltdivgt টযাগ ফযফায কযা পরয়পরি তা jQuery Plugin গট একসিাকট কপরয indexhtml ডজগটয ডভাআন সলাাআডায ডকাডগট ডদখন একাআ াঅপরি রধ ডখানকায ltdivgt টযাগ গপররাপরক কগ কপরয এাআ পলাগগপরন ফযফায কযা পরয়পরি এফায টডপরকাড গদন- add_shortcode(np-shortcode np_function)

এাআ টডপরকাড গএাআচগ পাাংনপরক রক কযপরফ এফাং এয ভধয ডথপরক সলাাআডপরায কনপরটনট ডক গযটানড কযপরফ াঅভাপরদয টডপরকাড পরচছ [np-shortcode] াঅভযা পলাগগপরন মাাআ এফাং একগট িগফ মি কগয গপচাযড াআপরভজ গপরপরফ গনপরচ ডদখন-

63

াঅগভ াঅপরযকগট ডজ ততগয কপরযগি ডমখাপরন টডপরকাড গদপরয়গি

াঅউটট ডজ ডদগখ এফায-

64

পরয় ডগর াঅভাপরদয সলাাআডায পলাগগন পরযা ডকাডগট গনপরচ গদরাভ- ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

65

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

66

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

এফায াঅগন মগদ উাআপরজট গপরপরফ ফযফায কযপরত চান তাপরর গনপরচয ডকাডটক গদন- class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

67

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

echo $after_widget

াঅপরযা রগট কাজ কযপরত পরফ াঅনাপরক এক াআপরভজ াাআজ উাআপরজট এয জনয গঠক কপরয গদপরত পরফ- add_image_size(np_widget 180 100 true)

াঅপরযকগট র উাআপরজট এযাকন রক ডমাগ কযা add_action(widgets_init np_widgets_init)

উাআপরজট পরযা ডকাড াঅফায গদরাভ- ltphp

Plugin Name Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Ciprian Turcu

Version 10

68

class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

69

echo $after_widget

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

70

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(widgets_init np_widgets_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

71

পলাগগন গনপরয় এত ডিাট গযপরয ডরখা মভফ নয় এজনযাআ ভপরন য় পলাগগন গনপরয় ডকউ ডরপরখন না কাযন এখাপরন এত গফলয় াঅপরি মা াঅপররাচনা কযপরত ডগপরর ৫০০ ডজ ায পরয় মাপরফ ডফাোয সগফধাপরথড াঅগভ মথামভফ উদাযন গদপরয় ডফাোপরনায ডচষটা কপরযগি াঅগভ এখাপরন টাপরগডট কপরযগি মাযা টকটাক জাপরন পলাগগন মপপরকড এডবানস ডরপরবপররয নয় কাযন তাযা জাপরনন াঅভায উপরেশয গির মাযা জানপরত চায় তাপরদযপরক জানাপরনা এখাপরন ডমফ গফলয় াঅপররাচনা কযা পরয়পরি তা ডভাটাভগট ভাপরনয একগট পলাগগন ফানাপরনায জনয মপরথষট তপরফ ভাপরনাননয়পরনয জনয াঅনাপরক গনপরজাআ খাপরজ গনপরত পরফ াঅনায জনয ডকানটা বার পরফ াঅগভ রধ গদক গনপরদডনা গদরাভ ভাতর এাআ ফাআগট রধভাতর ওয়াডডপরে রেপরয জনয ডরখা াপরনক বর ভরাগনত থাকপরত াপরয াঅনাযা কষভাসনদয দগষটপরত ডদখপরফন াঅগভ ডচষটা কপরযগি মতটা জ কপরয ডরখা মায় াপরনক ভয় ডদখা মায় ডম খফ ডিাট খাপরটা গফলয় গনপরয় াপরনপরকাআ নক কপরযন এটা গতয রাঃখজনক াঅনাযা গগপরর একট খাজপররাআ ভাধান াপরফন াঅপরগ গনপরজ ডচষটা করন তায পরয ানযপরক ভাধাপরনয জনয গজজঞাা করন াঅভায জনয ডদায়া কযপরফন বাপররা রাগপরর জানাপরফন খাযা রাগপররও জানাপরফন তাপররাআ াঅভায গযশরভ সবাথডক পরফ ভতাভত জাগনপরয় াঅভাপরক ডভাআর কযপরত াপরযন litonice09gmailcom |

72

Page 42: Wordpress Plugin Development

43

AND taxocount=0

return $wpdb-gtget_results( $sql )

gt

ডযাপরফাপরডড এাআ পলাগগপরনয ডভন াওয়া মাপরফ ডাসট এয াফপরভন গপরপরফ গনপরচ ডদখন-

এফায পলাগগন ডভনপরত গিক কপরয ডদগখ পলাগগপরনয ডবতপরযয কাজ-

উপরয ডদখন াঅগভ একগট টযাগ ততগয কপরযগিরাভ l i নাপরভ এগট এখাপরন ডদখাপরচছ াঅগভ চাাআপরর এগট এগডট ফা গডগরট কযপরত াগয এফায গডগরট গরঙক এ ভাউপরয কাডয ডযপরখ গনপরচ গরঙক ডদখন ফা গডগরট করন একগট টযাগ াঅভায এখাপরন URL গট এযকভ httplocalhostdev-litonwp-

admineditphppage=liton_utagsampliton_action=doneampid=4amp_wpnonce=30a44b7

986

এখাপরন াঅগভ liton_action=done ফযফায কপরযগি Nonces এয পাাংনগপররায নাভ গনপরচ গদরাভ াঅনাযা ডদপরখ গনপরফন াআনটাযপরনট ডথপরক wp_nonce_field()

wp_nonce_url()

wp_verify_nonce()

wp_create_nonce()

44

check_admin_referer()

check_ajax_referer()

ডাটাপরফ াঅনাযা ডমপরত গএাআচগ গনপরয় কাজ কপরযন এগকউএর ডাটাপরফ এয াপরথ ফাাআ কভপরফী গযগচত এয গনটযাকস গপররা ডভাটাভগট ফায জানা একাআ বাপরফ াপরনপরকাআ ওয়াডডপরেপরও ডাটাপরফ ডকাড গরপরখন এটা ডকাগডাং এয জনয খাযা গদক াঅগভ নযভার গএাআচগ- এগকউএর ডকাড এয উদাযন গদগচছ- ltphp

$sql=rdquoINSERT INTO $wpdb-gtposts(post_title) VALUES(bdquo$title‟)rdquo

$wpdb-gtquery($sql) gt

এফায ওয়াডডপরেপরয সটযানডাডড ডকাগডাং গপরসটভ ডদখন- ltphp

$wpdb-gtinsert($wpdb-gtposts

array(bdquopost_title‟ =gt $title)

array(bdquos‟)

)

gt

ডাটাপরফ গগকউয কযায জনয াঅপরডট াাপরযন ডদখাফ- গনপরচয ডকাডগট খাযা েযাকগট ltphp

$wpdb-gtquery(ldquoUPDATE $wpdb-gtposts SET post_title=‟$newTitle‟ WHERE

ID=$my_idrdquo )

gt

উপরযয ভত কপরয না গরপরখ গনপরচয ভত কপরয গরখন- ltphp

$wpdb-gtupdate($wpdb-gtposts

Array(bdquopost_title‟ =gt‟$newTitle‟)

Array(bdquoID‟ =gt$my_id

)

gt

ানর বাপরফ ানযানয াাপরযন গপররা গরখপরফন

45

াধযায়- াঅটাঃ ডরাকারাাআপরজন এফাং Set t i ngs API

ডরাকারাাআপরজন ডরাকারাাআপরজন একগট গরতবনড গফলয় এয পাাংনগপররা র- load_theme_textdomain()

load_plugin_textdomain()

উদাযন- ltphp $var=__(bdquoHello‟‟domain‟) gt

ltphp _e(bdquoHello‟‟domain‟) gt

গফসতাগযত গনপরচয গরপরঙক ডদখন- httpcodexwordpressorgI18n_for_WordPress_Developers

ডগটাং API

ডগটাং API পরচছ াঅগন গকি ান ততগয কযপরফন মা াআনটাযনার বাপরফ াঅনায পলাগগপরন এপলাাআ পরফ মখন াঅগন াআউজায- গডপাাআন ান ততগয কযপরফন াঅনায পলাগগপরনয জনয তখন Settings

API ndashএ াঅনায ডকাড মতটা ারন জ করন Settings API াঅনায ডম কাজগপররা handle কপরয-

ওয়াডডপরেপরক জাগনপরয় ডদয় ডম াঅগন গনজসব ান ফযফায কযপরফন াঅনায াআনটপরক পাাংপরনয ভপরধয উপরেখ কযপরফ ডফগয বাগ ান ডজ গনপরজাআ ততগয কযপরফ $_POST ডাটা গপররাপরক ভগনটয কপরয ান ততগয এফাং াঅপরডট কপরয(মগদ েপরয়াজন য়)

Settings API পাাংন Settings API পাাংপরন গতনগট ডসট থাপরক- ১ েথপরভ ওয়াডডপরেপরক ফপরর ডম াঅগন নতন ডগটাং ফযফায কযপরফন াঅনায পলাগগপরনয জনয ২ এয পরয ডগটাং গডপাাআন করন (text areas input boxes and any

HTML form element) এফাং এপরদযপরক একাপরথ রে কপরয যাপরখ ৩ ওয়াডডপরেপরক াঅনায ডগটাং actual form এ ডদখাপরনায জনয ফপরর

46

এফায াঅভযা একগট পলাগগন ফানাপরফা Administration Page ndashএ ডযপাপরযনস গপরপরফ ডদখপরত াপরযন- httpcodexwordpressorgAdding_Administration_Menus

httpcodexwordpressorgFunction_Referenceadd_options_page

httpcodexwordpressorgAction_ReferenceActions_Run_During_an_Admin_P

age_Request

পলাগগপরনয এডগভন ডজ পরফ এযকভ- httpexamplecomwp-adminoptions-generalphppage=liton_myplugin

েথপরভ াঅভযা ডভন ততগয কযফ াঅপরগয ভত কপরয- Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

এফায ান ডজ এ পভড গনপরয় গকি ডগটাং ডদফ function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

উপরযয ডকাপরড াঅভযা একগট পপরভডয ভপরধয রধ াফগভট ফাটন এফাং My Plugin নাপরভ ডজ ততগয কপরযগি ডযাপরফাপরডড ডদখন-

47

ডগটাং এয াফ ডভন গপরপরফ My Plugin াঅপরি এফাং My Plugin ডত গিক কযপরর াঅভযা উপরযয ডজ ততগয কপরযগি ডমখাপরন াফগভট ফাটনগট ডদখাপরচছ এফায গতনগট যাযাগভটায ডযগজসটায কযফ- ltphp

register_setting( liton _myplugin_options liton _myplugin_options liton

_myplugin_validate_options)

gt

েথভগট ডগটাং রেপরয নাভ গিতীয়গট ান নাভ মা াঅভযা get_option() পাাংন গদপরয়ও ডপরত াগয ততীয়গট করফযাক পাাংন এগট একগট গসটরাং ডযপাপরযনস পাাংন এখাপরন াঅভযা নাভ

48

গদপরয়গি liton _myplugin_validate_options মা া কযপরফ পপরভডয কর ডব ডগটাং াঅভযা এটা পরয গডপাাআন কযফ

ডগটাং গডপাাআন ডকন add_settings_field() এফাং add_settings_section() পাাংন গদপরয় াঅভযা াঅভাপরদয কর ডগটাং গডপাাআন কযফ ltphp

add_settings_section( liton_myplugin_main My Plugin Settings

liton_myplugin_section_text liton _myplugin)

add_settings_field( liton _myplugin_text_string Enter text here

liton _myplugin_setting_input liton _myplugin liton _myplugin_main)

gt

add_settings_section() পাাংন গদপরয় াঅভযা ডদখাফ াঅপরর ডজ এ ডকন ডকভন ডদখাপরফ এয চাযগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ ডকন টাাআপরটর ltH3gt টযাপরগয ভপরধয করফযাক পাাংন এয নাভ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ (page= liton _myplugin এগট

URL এয াাং গপরপরফ থাকপরফ) গিতীয় যাযাগভটায add_settings_field() পপরভডয াআনট গপরপরফ ডদখাপরনা পরয়পরি এখাপরন াাচগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ পরযয গপপরলড গক গেনট কযা পরফ তা ডটকসট গপরপরফ ডদখাপরনা পরয়পরি(Enter text

here)

করফযাক পাাংন পপরভড গেনট কযপরফ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ ডগটাং ডপরজয ডকন গপলড মা add_settings_section() পাাংপরন গডপাাআন

কযা পরয়পরি ltphp

Explanations about this section

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

49

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton _myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name= liton _myplugin_options[text_string]

type=text value=$options[text_string] gt

gt

গিতীয় পাাংন ান বযার text_string ডক এযাপরযপরত ডসটায কপরয ডযপরখপরি এফায াআউজায াআনট বযাগরপরডট কযফ- ltphp

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace([^a-zA-Z]$input[text_string] )

return $valid

gt

পভডপরক ডযনডায কযফ- ltphp

Draw the options page

function liton_myplugin_options_page()

gt

ltdiv class=wrapgt

ltphp

screen_icon()

gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp

settings_fields( liton_myplugin_options)

do_settings_sections(liton_myplugin)

50

gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

settings_fields() পাাংনগট ডযপাপরযনস গপরপরফ ফযফায কযা পরয়পরি মা াঅভযা register_setting() পাাংপরন গডপরিয়ায কপরযগি do_settings_sections() পাাংনগট কর কযপরফ কর াঅউটট ডকন এফাং পভড গপলডপরক মা াঅভযা পরফড গডপাাআন কপরযগি াঅভাপরদয কাজ ডল এফায পরযা পলাগগনগট ডদখফ- ltphp

Plugin Name Settings API example

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

Draw the option page

function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save

Changes gt

ltformgtltdivgt

ltphp

51

Register and define the settings

add_action(admin_init liton_myplugin_admin_init)

function liton_myplugin_admin_init()

register_setting( liton_myplugin_options

liton_myplugin_options

liton_myplugin_validate_options )

add_settings_section( liton_myplugin_main My Plugin

Settings

liton_myplugin_section_text liton_myplugin )

add_settings_field( liton_myplugin_text_string Enter text

here

liton_myplugin_setting_input liton_myplugin

liton_myplugin_main )

Draw the section header

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton_myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name=liton_myplugin_options[text_string]

type=text value=$text_string gt

Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

return $valid

gt

52

ডদখন ডযাপরফাপরডড ডকভন ডদখায়-

পরয় ডগর াঅভাপরদয েথভ নডাাংগ পলাগগন ান ডজ াঅপরযকগট গজগন ডমটায জনয এতগকি পলাগগন URL এপরডর- httplocalhostdev-litonwp-adminoptions-

generalphppage=liton_mypluginampsettings-updated=true

াঅভায এখাপরন এযকভ ডদখাপরচছ ডটকসট ফপরকস ডকান গকি গরপরখ ডব কযায য এফাপরয াঅপরযকগট গজগন ডদখফ াঅভযা াপরনক ভয়াআ াপরনক পলাগগপরনয াআনট গপপরলড বর ডাটা াআনট কযপরর এযয ডভপরজ ডদখায় এাআ কাজগট কযফ এফায াঅভযা এখাপরন esc_attr() ফা esc_html() ফযফায কগযগন সতযাাং াঅভাপরদয গরগভপরটন থাকপরি ডবগরপরডট পাাংনগট একট এগডট কগয গনপরচয ভত কপরয Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

if( $valid[text_string] = $input[text_string] )

add_settings_error(liton_myplugin_text_stringliton_myplugin_texterror

53

Incorrect value enterederror)

return $valid

উপরয ডদখন add_settings_error() পাাংন ফযফায কপরযগি মা এযয ডচক কযপরফ পপরভডয াঅগভ একগট বর ডাটা(পরসপার কযাপরযকটায) াআনট কপরয ডদখরাভ এযয ডদখাপরচছ-

তায ভাপরন াঅভযা পর পরয়গি াঅনায পলাগগনগট এগডট কপরয ডনপরফন ডকায ডকন এফাং গপপরলডয গরসট গদরাভ াঅনাপরদয সগফধায জনয

54

CSSJS পাাআর মি কযা

াঅনায পলাগগপরন গএএ ফা জাবাগিে ডমাগ কযপরত পরত াপরয াঅগন চাাআপরর ফাগপরযয ডকান ফা াঅনায ততগয ডকান গএএ ফা জাবাগিে পাাআর ডমাগ কযপরত াপরযন তপরফ এপরকষপরতর াঅভযা ডমবাপরফ HTML এ পাাআর ডমাগ কগয ডযকভ না function liton_scripts()

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtojqueryjsrdquogtltscriptgt‟

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtoscriptjsrdquogtltscriptgt‟

add_action(bdquowp_head‟‟liton_scripts‟)

এগট মপনডরপর বর িগত গনপরচ ডদখন ওয়াডডপরেপর গকবাপরফ পাাআর মি কযপরত য়- function liton_scripts()

wp_enqueue_script(bdquojquery‟)

wp_enqueue_script(bdquotheme-scripts‟‟pathtoscriptsjs‟)

add_action(bdquowp_enqueue_script‟‟liton_scripts‟)

ানর বাপরফ াঅগন সটাাআরীট ডমাগ কযপরত াপরযন- function liton_styles()

wp_enqueue_ style (bdquocss‟)

wp_enqueue_ style (bdquotheme- styles‟pathto stylescss‟)

ডযপাপরযনস ডদখন- httpcodexwordpressorgFunction_Referencewp_enqueue_script

httpcodexwordpressorgFunction_Referencewp_enqueue_style

টডপরকাড টডপরকাড পরচছ ওয়াডডপরেপরয ডসপগগপক ডসপার টযাগ মা াঅগন ডাসট ফা ডপরজয ভপরধয াআনাটড কপরয ানয ডকান কনপরটনটপরক ওপরয়ফাাআপরটয ভপরধয গযপরপল কযপরত াযপরফন মগদ াঅগন গযারাগয টাাআপরয ডকান পলাগগন ফযফায কপরয থাপরকন তাপরর াঅনায ধাযনা থাকায কথা মাাআ ডাক াঅগভ কপরয়কগট উদাযি ডদখাফ

55

েথপরভ একগট পলাগগন ততগয কযফ ডমখাপরন add_shortcode() নাপরভয একগট পাাংন থাকপরফ এগট রগট যাযাগভটায েন কপরয েথভগট টডপরকাপরডয নাভ গিতীয়গট ডম পাাংনপরক কর কযপরফন ডগট াঅভযা একগট উদাযন ডদগখ- ltphp

Plugin Name Liton Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(litonhi)

function hi()

echo Hello World

gt

উপরয ডদখন খফ ডিাট গকনত াঅগন চাাআপরর এয ফযফায াপরনক গফসতত কযপরত াপরযন এখাপরন টডপরকাড নাভ পরচছ liton াঅয এগটপরক ডরখা য় এবাপরফ [liton] াঅভযা ডাপরসটয ভপরধয াআনাটড কপরয ডদগখ াঅউটট ডকভন ডদখায়-

এফায াঅউটট ডদগখ-

56

াঅভাপরদয ততগয কযা টডপরকাড পরবাপরফাআ কাজ কযপরি াঅপরযকগট উদাযন ডদখফ াঅনাযা াপরনপরকাআ গগর এডপরনস গনপরয় কাজ কপরযন াঅনাযা াপরনপরকাআ এডপরনস এয জনয পলাগগন ফযফায কপরযন গকনত চাাআপররাআ এাআ কাজগট াঅনাযা গনপরজয ভত কপরয াগজপরয় গনপরত াপরযন গগপররয কাপরি ফ ডাসট বযার ায়না াঅনাযা মাযা একসাটড াঅপরিন তাযা এটা বার কপরয জাপরনন তাাআ াপরনপরকাআ গগপররয ডকাড ফ ডপরজ ডদখাপরত চান না এজনয পলাগগন ফযফায কপরয রাব য়না কাযন পলাগগপরন জায়গা গপকসড থাপরক এপরত কপরয াঅগনডাং ও কভ য় াঅনাযা টডপরকাড ফযফায কপরয ডমপরকান জায়গায় এড ডদখাপরত াপরযন গনপরচ াঅগভ রগট টডপরকাড ততগয কপরযগি র‟ধযপরনয এড ডদখাপরনায জনয ltphp

Plugin Name Liton Adsense Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(adsense_468adsense_468_60)

add_shortcode(adsense_250adsense_250_250)

function adsense_468_60($atts)

return ltscript type=textjavascriptgtlt--

57

google_ad_client = ca-pub-0956247412222369

468x60 created 101510

google_ad_slot = 4372705450

google_ad_width = 468

google_ad_height = 60

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

function adsense_250_250($atts)

return ltscript type=textjavascriptgtlt--

google_ad_client = ca-pub-0956247412222369

250x250 created 81809

google_ad_slot = 9368091893

google_ad_width = 250

google_ad_height = 250

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

gt

একগট টডপরকাড ফযানায টাাআপরয জনয এফাং াঅপরযকগট ২৫০২৫০ াাআপরজয এফায ডাপরসট ডমপরকান একগট টডপরকাড াআনাটড করন ডমখাপরন াঅনায ডদখাপরনায েপরয়াজন ভপরন কপরযন াঅগভ রগট ডকাড ডটসট কপরয ডদখরাভ-

58

এফায াাআপরটয াঅউটট ডদগখ-

রগট এডাআ ডদখাপরচছ াঅপরযা াপরনক কাপরজ াঅগন টডপরকাড ফযফায কযপরত াপরযন ডযপাপরযনসাঃ httpcodexwordpressorgShortcode_API

59

াধযায়- নয়াঃ পলাগগন উদাযন

ওয়াডডপরেপরয ডডটটাাআভকপরভনট নামবায ফাাংরা কযায পলাগগন াঅভাপরক কপরয়কজন ফপররগিপররন ওয়াডডপরেপরয গডপলট ডডটটাাআভকপরভনট নামবায ফাাংরা য়না রযাাংগপরয়জ ফাাংরা কযায যও ডডটটাাআভকপরভনট নামবায গপররা াআাংপরযগজ ডথপরক মায় গনপরচয পলাগগনগট ফযফায কপরয ডদখপরত াপরযন- ltphp

Plugin Name Liton Bangla datetimecomment number

Plugin URI httpliton-onlinecomplugins

Description Bangla datetimecomment number

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

This function converts all english numbers to bangla number

function make_bangla_number($str)

$engNumber = array(1234567890)

$bangNumber = array( ১ ২ ৩ ৪ ৫ ৬ ৭ ৮ ৯ ০ ) $converted = str_replace($engNumber $bangNumber $str)

return $converted

add_filter( get_the_time make_bangla_number )

add_filter( the_date make_bangla_number )

add_filter( get_the_date make_bangla_number )

add_filter( comments_number make_bangla_number )

add_filter( get_comment_date make_bangla_number )

add_filter( get_comment_time make_bangla_number )

gt

60

সলাাআডায পলাগগন াঅভযা এাআ ফাআপরয়য কর গটউপরটাগযয়াপরর মা মা গখরাভ তা এফায একগট নডাাংগ পলাগগপরনয এপলাাআ কযফ সলাাআডায পলাগগন মপপরকড াঅভযা ফাাআ জাগন একগট ওপরয়ফাাআপরটয ডচাযা ারপরট ডদয় একগট সলাাআডায াপরনক ডাাআনাগভক ভপরন য় ডদখপরতও াপরনক বার রাপরগ এাআ পলাগগপরন াঅভযা এডগভন যাপরনর ডথপরক াআপরভজ ডমাগ কযফ এফাং তা াঅভাপরদয াাআপরট ডদখাফ চরন কাজ রর কগয- েথপরভ গনপরবা সলাাআডায এয ওপরয়ফাাআপরট মান এফাং jQuery Plugin ডাউনপররাড করন

ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom Version 10

gt

াঅভযা পলাগগপরনয ডডায ততগয কযরাভ

পলাগগন গরপরসট ডদখাপরচছ bdquoLitons Nivo Plugin‟ াঅভাপরদয েথভ কাজ পরচছ custom post

type ওয়াডডপরে পাাংনাগরগট একগট নতন কাসটভ ডজ ততগয কযপরত custom post type

ফযফহরত পরফ ডমখাপরন একগট াআপরভজ থাকপরফ াঅভযা রধ টাাআপরটর ডনভ এফাং াআপরভজ াঅপররাডায গপরপরফ গপচায াআপরভজ পাাংনাগরগট ফযফায কযফ function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_function 600 280 true)

61

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

add_action(init np_init)

উপরযয ডকাপরড np_init() পাাংনগট রক কপরযগি মা ডডায যান কযায াঅপরগ যান পরফ াঅয এজনয register_post_type() পাাংনপরক এয যাযাগভটায গদপরয় np_init() পাাংপরনয ডবতপরয মি কপরযগি এটা মগদ না কযতাভ তাপরর ldquoHeaders already sentrdquo ডভপরজ ডদখাত এাআ ডভপরজগটয াপরথ াপরনপরকাআ গযগচত াঅা কগয register_post_type() পাাংন গদপরয় াঅভযা াআপরভজ মি এফাং ভযাপরনজ কযফ ভরত াঅভযা একগট নতন custom post type ডমাগ কপরযগি np_images নাভ গদপরয় নতন custom post type ডক ডগটাং বযার গপরপরফ াঅযগপরভনট া কপরযগি $args ডবগযপরয়ফরগট ট ডরপরবর ডভন ততগয কপরয াঅপরগাআ ডদপরখগি পলাগগনগট এগকটপরবট কযপরর াঅভযা গনপরচয ভত ডদখপরত াফ-

এফায গিে এফাং সটাাআরীট ডক মি কযফ- add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

এফায রক কযা পাাংনগপররা গডপরিয়ায কগয- function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__) array( jquery ))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

62

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

উপরযয ডকাডগপররা নতন কপরয ফিডনা কযায গকি ডনাআ াঅপরগাআ wp_enqueue_style() এফাং wp_enqueue_script() মপপরকড ফরা পরয়পরি নতন াঅপরযকগট পাাআর ততগয করন একাআ গডপরযকটগযপরত scriptjs এফাং গনপরচয ডকাডটক গদন- jQuery(document)ready(function($)

$(slider)nivoSlider()

)

াআপরভজপরক গযাাআজ করন- add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

াঅভযা এাআ পলাগগনগটপরক উাআপরজট গপরপরফও ফযফায কযফ ডগট পরয ডদখফ াঅপরযকগট গজগন মগদ গথপরভ না ডদয়া থাপরক ডজনয থামবপরনাআর াপরাটড গদপরয় গদন- add_theme_support( post-thumbnails )

এফায ওয়াডডপরেপরয কাপরযনট ডাসট কপরয়যী কযায ডকাড াঅয $result ডবগযপরয়ফপরর ডমফ ltdivgt টযাগ ফযফায কযা পরয়পরি তা jQuery Plugin গট একসিাকট কপরয indexhtml ডজগটয ডভাআন সলাাআডায ডকাডগট ডদখন একাআ াঅপরি রধ ডখানকায ltdivgt টযাগ গপররাপরক কগ কপরয এাআ পলাগগপরন ফযফায কযা পরয়পরি এফায টডপরকাড গদন- add_shortcode(np-shortcode np_function)

এাআ টডপরকাড গএাআচগ পাাংনপরক রক কযপরফ এফাং এয ভধয ডথপরক সলাাআডপরায কনপরটনট ডক গযটানড কযপরফ াঅভাপরদয টডপরকাড পরচছ [np-shortcode] াঅভযা পলাগগপরন মাাআ এফাং একগট িগফ মি কগয গপচাযড াআপরভজ গপরপরফ গনপরচ ডদখন-

63

াঅগভ াঅপরযকগট ডজ ততগয কপরযগি ডমখাপরন টডপরকাড গদপরয়গি

াঅউটট ডজ ডদগখ এফায-

64

পরয় ডগর াঅভাপরদয সলাাআডায পলাগগন পরযা ডকাডগট গনপরচ গদরাভ- ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

65

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

66

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

এফায াঅগন মগদ উাআপরজট গপরপরফ ফযফায কযপরত চান তাপরর গনপরচয ডকাডটক গদন- class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

67

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

echo $after_widget

াঅপরযা রগট কাজ কযপরত পরফ াঅনাপরক এক াআপরভজ াাআজ উাআপরজট এয জনয গঠক কপরয গদপরত পরফ- add_image_size(np_widget 180 100 true)

াঅপরযকগট র উাআপরজট এযাকন রক ডমাগ কযা add_action(widgets_init np_widgets_init)

উাআপরজট পরযা ডকাড াঅফায গদরাভ- ltphp

Plugin Name Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Ciprian Turcu

Version 10

68

class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

69

echo $after_widget

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

70

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(widgets_init np_widgets_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

71

পলাগগন গনপরয় এত ডিাট গযপরয ডরখা মভফ নয় এজনযাআ ভপরন য় পলাগগন গনপরয় ডকউ ডরপরখন না কাযন এখাপরন এত গফলয় াঅপরি মা াঅপররাচনা কযপরত ডগপরর ৫০০ ডজ ায পরয় মাপরফ ডফাোয সগফধাপরথড াঅগভ মথামভফ উদাযন গদপরয় ডফাোপরনায ডচষটা কপরযগি াঅগভ এখাপরন টাপরগডট কপরযগি মাযা টকটাক জাপরন পলাগগন মপপরকড এডবানস ডরপরবপররয নয় কাযন তাযা জাপরনন াঅভায উপরেশয গির মাযা জানপরত চায় তাপরদযপরক জানাপরনা এখাপরন ডমফ গফলয় াঅপররাচনা কযা পরয়পরি তা ডভাটাভগট ভাপরনয একগট পলাগগন ফানাপরনায জনয মপরথষট তপরফ ভাপরনাননয়পরনয জনয াঅনাপরক গনপরজাআ খাপরজ গনপরত পরফ াঅনায জনয ডকানটা বার পরফ াঅগভ রধ গদক গনপরদডনা গদরাভ ভাতর এাআ ফাআগট রধভাতর ওয়াডডপরে রেপরয জনয ডরখা াপরনক বর ভরাগনত থাকপরত াপরয াঅনাযা কষভাসনদয দগষটপরত ডদখপরফন াঅগভ ডচষটা কপরযগি মতটা জ কপরয ডরখা মায় াপরনক ভয় ডদখা মায় ডম খফ ডিাট খাপরটা গফলয় গনপরয় াপরনপরকাআ নক কপরযন এটা গতয রাঃখজনক াঅনাযা গগপরর একট খাজপররাআ ভাধান াপরফন াঅপরগ গনপরজ ডচষটা করন তায পরয ানযপরক ভাধাপরনয জনয গজজঞাা করন াঅভায জনয ডদায়া কযপরফন বাপররা রাগপরর জানাপরফন খাযা রাগপররও জানাপরফন তাপররাআ াঅভায গযশরভ সবাথডক পরফ ভতাভত জাগনপরয় াঅভাপরক ডভাআর কযপরত াপরযন litonice09gmailcom |

72

Page 43: Wordpress Plugin Development

44

check_admin_referer()

check_ajax_referer()

ডাটাপরফ াঅনাযা ডমপরত গএাআচগ গনপরয় কাজ কপরযন এগকউএর ডাটাপরফ এয াপরথ ফাাআ কভপরফী গযগচত এয গনটযাকস গপররা ডভাটাভগট ফায জানা একাআ বাপরফ াপরনপরকাআ ওয়াডডপরেপরও ডাটাপরফ ডকাড গরপরখন এটা ডকাগডাং এয জনয খাযা গদক াঅগভ নযভার গএাআচগ- এগকউএর ডকাড এয উদাযন গদগচছ- ltphp

$sql=rdquoINSERT INTO $wpdb-gtposts(post_title) VALUES(bdquo$title‟)rdquo

$wpdb-gtquery($sql) gt

এফায ওয়াডডপরেপরয সটযানডাডড ডকাগডাং গপরসটভ ডদখন- ltphp

$wpdb-gtinsert($wpdb-gtposts

array(bdquopost_title‟ =gt $title)

array(bdquos‟)

)

gt

ডাটাপরফ গগকউয কযায জনয াঅপরডট াাপরযন ডদখাফ- গনপরচয ডকাডগট খাযা েযাকগট ltphp

$wpdb-gtquery(ldquoUPDATE $wpdb-gtposts SET post_title=‟$newTitle‟ WHERE

ID=$my_idrdquo )

gt

উপরযয ভত কপরয না গরপরখ গনপরচয ভত কপরয গরখন- ltphp

$wpdb-gtupdate($wpdb-gtposts

Array(bdquopost_title‟ =gt‟$newTitle‟)

Array(bdquoID‟ =gt$my_id

)

gt

ানর বাপরফ ানযানয াাপরযন গপররা গরখপরফন

45

াধযায়- াঅটাঃ ডরাকারাাআপরজন এফাং Set t i ngs API

ডরাকারাাআপরজন ডরাকারাাআপরজন একগট গরতবনড গফলয় এয পাাংনগপররা র- load_theme_textdomain()

load_plugin_textdomain()

উদাযন- ltphp $var=__(bdquoHello‟‟domain‟) gt

ltphp _e(bdquoHello‟‟domain‟) gt

গফসতাগযত গনপরচয গরপরঙক ডদখন- httpcodexwordpressorgI18n_for_WordPress_Developers

ডগটাং API

ডগটাং API পরচছ াঅগন গকি ান ততগয কযপরফন মা াআনটাযনার বাপরফ াঅনায পলাগগপরন এপলাাআ পরফ মখন াঅগন াআউজায- গডপাাআন ান ততগয কযপরফন াঅনায পলাগগপরনয জনয তখন Settings

API ndashএ াঅনায ডকাড মতটা ারন জ করন Settings API াঅনায ডম কাজগপররা handle কপরয-

ওয়াডডপরেপরক জাগনপরয় ডদয় ডম াঅগন গনজসব ান ফযফায কযপরফন াঅনায াআনটপরক পাাংপরনয ভপরধয উপরেখ কযপরফ ডফগয বাগ ান ডজ গনপরজাআ ততগয কযপরফ $_POST ডাটা গপররাপরক ভগনটয কপরয ান ততগয এফাং াঅপরডট কপরয(মগদ েপরয়াজন য়)

Settings API পাাংন Settings API পাাংপরন গতনগট ডসট থাপরক- ১ েথপরভ ওয়াডডপরেপরক ফপরর ডম াঅগন নতন ডগটাং ফযফায কযপরফন াঅনায পলাগগপরনয জনয ২ এয পরয ডগটাং গডপাাআন করন (text areas input boxes and any

HTML form element) এফাং এপরদযপরক একাপরথ রে কপরয যাপরখ ৩ ওয়াডডপরেপরক াঅনায ডগটাং actual form এ ডদখাপরনায জনয ফপরর

46

এফায াঅভযা একগট পলাগগন ফানাপরফা Administration Page ndashএ ডযপাপরযনস গপরপরফ ডদখপরত াপরযন- httpcodexwordpressorgAdding_Administration_Menus

httpcodexwordpressorgFunction_Referenceadd_options_page

httpcodexwordpressorgAction_ReferenceActions_Run_During_an_Admin_P

age_Request

পলাগগপরনয এডগভন ডজ পরফ এযকভ- httpexamplecomwp-adminoptions-generalphppage=liton_myplugin

েথপরভ াঅভযা ডভন ততগয কযফ াঅপরগয ভত কপরয- Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

এফায ান ডজ এ পভড গনপরয় গকি ডগটাং ডদফ function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

উপরযয ডকাপরড াঅভযা একগট পপরভডয ভপরধয রধ াফগভট ফাটন এফাং My Plugin নাপরভ ডজ ততগয কপরযগি ডযাপরফাপরডড ডদখন-

47

ডগটাং এয াফ ডভন গপরপরফ My Plugin াঅপরি এফাং My Plugin ডত গিক কযপরর াঅভযা উপরযয ডজ ততগয কপরযগি ডমখাপরন াফগভট ফাটনগট ডদখাপরচছ এফায গতনগট যাযাগভটায ডযগজসটায কযফ- ltphp

register_setting( liton _myplugin_options liton _myplugin_options liton

_myplugin_validate_options)

gt

েথভগট ডগটাং রেপরয নাভ গিতীয়গট ান নাভ মা াঅভযা get_option() পাাংন গদপরয়ও ডপরত াগয ততীয়গট করফযাক পাাংন এগট একগট গসটরাং ডযপাপরযনস পাাংন এখাপরন াঅভযা নাভ

48

গদপরয়গি liton _myplugin_validate_options মা া কযপরফ পপরভডয কর ডব ডগটাং াঅভযা এটা পরয গডপাাআন কযফ

ডগটাং গডপাাআন ডকন add_settings_field() এফাং add_settings_section() পাাংন গদপরয় াঅভযা াঅভাপরদয কর ডগটাং গডপাাআন কযফ ltphp

add_settings_section( liton_myplugin_main My Plugin Settings

liton_myplugin_section_text liton _myplugin)

add_settings_field( liton _myplugin_text_string Enter text here

liton _myplugin_setting_input liton _myplugin liton _myplugin_main)

gt

add_settings_section() পাাংন গদপরয় াঅভযা ডদখাফ াঅপরর ডজ এ ডকন ডকভন ডদখাপরফ এয চাযগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ ডকন টাাআপরটর ltH3gt টযাপরগয ভপরধয করফযাক পাাংন এয নাভ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ (page= liton _myplugin এগট

URL এয াাং গপরপরফ থাকপরফ) গিতীয় যাযাগভটায add_settings_field() পপরভডয াআনট গপরপরফ ডদখাপরনা পরয়পরি এখাপরন াাচগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ পরযয গপপরলড গক গেনট কযা পরফ তা ডটকসট গপরপরফ ডদখাপরনা পরয়পরি(Enter text

here)

করফযাক পাাংন পপরভড গেনট কযপরফ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ ডগটাং ডপরজয ডকন গপলড মা add_settings_section() পাাংপরন গডপাাআন

কযা পরয়পরি ltphp

Explanations about this section

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

49

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton _myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name= liton _myplugin_options[text_string]

type=text value=$options[text_string] gt

gt

গিতীয় পাাংন ান বযার text_string ডক এযাপরযপরত ডসটায কপরয ডযপরখপরি এফায াআউজায াআনট বযাগরপরডট কযফ- ltphp

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace([^a-zA-Z]$input[text_string] )

return $valid

gt

পভডপরক ডযনডায কযফ- ltphp

Draw the options page

function liton_myplugin_options_page()

gt

ltdiv class=wrapgt

ltphp

screen_icon()

gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp

settings_fields( liton_myplugin_options)

do_settings_sections(liton_myplugin)

50

gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

settings_fields() পাাংনগট ডযপাপরযনস গপরপরফ ফযফায কযা পরয়পরি মা াঅভযা register_setting() পাাংপরন গডপরিয়ায কপরযগি do_settings_sections() পাাংনগট কর কযপরফ কর াঅউটট ডকন এফাং পভড গপলডপরক মা াঅভযা পরফড গডপাাআন কপরযগি াঅভাপরদয কাজ ডল এফায পরযা পলাগগনগট ডদখফ- ltphp

Plugin Name Settings API example

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

Draw the option page

function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save

Changes gt

ltformgtltdivgt

ltphp

51

Register and define the settings

add_action(admin_init liton_myplugin_admin_init)

function liton_myplugin_admin_init()

register_setting( liton_myplugin_options

liton_myplugin_options

liton_myplugin_validate_options )

add_settings_section( liton_myplugin_main My Plugin

Settings

liton_myplugin_section_text liton_myplugin )

add_settings_field( liton_myplugin_text_string Enter text

here

liton_myplugin_setting_input liton_myplugin

liton_myplugin_main )

Draw the section header

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton_myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name=liton_myplugin_options[text_string]

type=text value=$text_string gt

Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

return $valid

gt

52

ডদখন ডযাপরফাপরডড ডকভন ডদখায়-

পরয় ডগর াঅভাপরদয েথভ নডাাংগ পলাগগন ান ডজ াঅপরযকগট গজগন ডমটায জনয এতগকি পলাগগন URL এপরডর- httplocalhostdev-litonwp-adminoptions-

generalphppage=liton_mypluginampsettings-updated=true

াঅভায এখাপরন এযকভ ডদখাপরচছ ডটকসট ফপরকস ডকান গকি গরপরখ ডব কযায য এফাপরয াঅপরযকগট গজগন ডদখফ াঅভযা াপরনক ভয়াআ াপরনক পলাগগপরনয াআনট গপপরলড বর ডাটা াআনট কযপরর এযয ডভপরজ ডদখায় এাআ কাজগট কযফ এফায াঅভযা এখাপরন esc_attr() ফা esc_html() ফযফায কগযগন সতযাাং াঅভাপরদয গরগভপরটন থাকপরি ডবগরপরডট পাাংনগট একট এগডট কগয গনপরচয ভত কপরয Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

if( $valid[text_string] = $input[text_string] )

add_settings_error(liton_myplugin_text_stringliton_myplugin_texterror

53

Incorrect value enterederror)

return $valid

উপরয ডদখন add_settings_error() পাাংন ফযফায কপরযগি মা এযয ডচক কযপরফ পপরভডয াঅগভ একগট বর ডাটা(পরসপার কযাপরযকটায) াআনট কপরয ডদখরাভ এযয ডদখাপরচছ-

তায ভাপরন াঅভযা পর পরয়গি াঅনায পলাগগনগট এগডট কপরয ডনপরফন ডকায ডকন এফাং গপপরলডয গরসট গদরাভ াঅনাপরদয সগফধায জনয

54

CSSJS পাাআর মি কযা

াঅনায পলাগগপরন গএএ ফা জাবাগিে ডমাগ কযপরত পরত াপরয াঅগন চাাআপরর ফাগপরযয ডকান ফা াঅনায ততগয ডকান গএএ ফা জাবাগিে পাাআর ডমাগ কযপরত াপরযন তপরফ এপরকষপরতর াঅভযা ডমবাপরফ HTML এ পাাআর ডমাগ কগয ডযকভ না function liton_scripts()

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtojqueryjsrdquogtltscriptgt‟

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtoscriptjsrdquogtltscriptgt‟

add_action(bdquowp_head‟‟liton_scripts‟)

এগট মপনডরপর বর িগত গনপরচ ডদখন ওয়াডডপরেপর গকবাপরফ পাাআর মি কযপরত য়- function liton_scripts()

wp_enqueue_script(bdquojquery‟)

wp_enqueue_script(bdquotheme-scripts‟‟pathtoscriptsjs‟)

add_action(bdquowp_enqueue_script‟‟liton_scripts‟)

ানর বাপরফ াঅগন সটাাআরীট ডমাগ কযপরত াপরযন- function liton_styles()

wp_enqueue_ style (bdquocss‟)

wp_enqueue_ style (bdquotheme- styles‟pathto stylescss‟)

ডযপাপরযনস ডদখন- httpcodexwordpressorgFunction_Referencewp_enqueue_script

httpcodexwordpressorgFunction_Referencewp_enqueue_style

টডপরকাড টডপরকাড পরচছ ওয়াডডপরেপরয ডসপগগপক ডসপার টযাগ মা াঅগন ডাসট ফা ডপরজয ভপরধয াআনাটড কপরয ানয ডকান কনপরটনটপরক ওপরয়ফাাআপরটয ভপরধয গযপরপল কযপরত াযপরফন মগদ াঅগন গযারাগয টাাআপরয ডকান পলাগগন ফযফায কপরয থাপরকন তাপরর াঅনায ধাযনা থাকায কথা মাাআ ডাক াঅগভ কপরয়কগট উদাযি ডদখাফ

55

েথপরভ একগট পলাগগন ততগয কযফ ডমখাপরন add_shortcode() নাপরভয একগট পাাংন থাকপরফ এগট রগট যাযাগভটায েন কপরয েথভগট টডপরকাপরডয নাভ গিতীয়গট ডম পাাংনপরক কর কযপরফন ডগট াঅভযা একগট উদাযন ডদগখ- ltphp

Plugin Name Liton Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(litonhi)

function hi()

echo Hello World

gt

উপরয ডদখন খফ ডিাট গকনত াঅগন চাাআপরর এয ফযফায াপরনক গফসতত কযপরত াপরযন এখাপরন টডপরকাড নাভ পরচছ liton াঅয এগটপরক ডরখা য় এবাপরফ [liton] াঅভযা ডাপরসটয ভপরধয াআনাটড কপরয ডদগখ াঅউটট ডকভন ডদখায়-

এফায াঅউটট ডদগখ-

56

াঅভাপরদয ততগয কযা টডপরকাড পরবাপরফাআ কাজ কযপরি াঅপরযকগট উদাযন ডদখফ াঅনাযা াপরনপরকাআ গগর এডপরনস গনপরয় কাজ কপরযন াঅনাযা াপরনপরকাআ এডপরনস এয জনয পলাগগন ফযফায কপরযন গকনত চাাআপররাআ এাআ কাজগট াঅনাযা গনপরজয ভত কপরয াগজপরয় গনপরত াপরযন গগপররয কাপরি ফ ডাসট বযার ায়না াঅনাযা মাযা একসাটড াঅপরিন তাযা এটা বার কপরয জাপরনন তাাআ াপরনপরকাআ গগপররয ডকাড ফ ডপরজ ডদখাপরত চান না এজনয পলাগগন ফযফায কপরয রাব য়না কাযন পলাগগপরন জায়গা গপকসড থাপরক এপরত কপরয াঅগনডাং ও কভ য় াঅনাযা টডপরকাড ফযফায কপরয ডমপরকান জায়গায় এড ডদখাপরত াপরযন গনপরচ াঅগভ রগট টডপরকাড ততগয কপরযগি র‟ধযপরনয এড ডদখাপরনায জনয ltphp

Plugin Name Liton Adsense Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(adsense_468adsense_468_60)

add_shortcode(adsense_250adsense_250_250)

function adsense_468_60($atts)

return ltscript type=textjavascriptgtlt--

57

google_ad_client = ca-pub-0956247412222369

468x60 created 101510

google_ad_slot = 4372705450

google_ad_width = 468

google_ad_height = 60

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

function adsense_250_250($atts)

return ltscript type=textjavascriptgtlt--

google_ad_client = ca-pub-0956247412222369

250x250 created 81809

google_ad_slot = 9368091893

google_ad_width = 250

google_ad_height = 250

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

gt

একগট টডপরকাড ফযানায টাাআপরয জনয এফাং াঅপরযকগট ২৫০২৫০ াাআপরজয এফায ডাপরসট ডমপরকান একগট টডপরকাড াআনাটড করন ডমখাপরন াঅনায ডদখাপরনায েপরয়াজন ভপরন কপরযন াঅগভ রগট ডকাড ডটসট কপরয ডদখরাভ-

58

এফায াাআপরটয াঅউটট ডদগখ-

রগট এডাআ ডদখাপরচছ াঅপরযা াপরনক কাপরজ াঅগন টডপরকাড ফযফায কযপরত াপরযন ডযপাপরযনসাঃ httpcodexwordpressorgShortcode_API

59

াধযায়- নয়াঃ পলাগগন উদাযন

ওয়াডডপরেপরয ডডটটাাআভকপরভনট নামবায ফাাংরা কযায পলাগগন াঅভাপরক কপরয়কজন ফপররগিপররন ওয়াডডপরেপরয গডপলট ডডটটাাআভকপরভনট নামবায ফাাংরা য়না রযাাংগপরয়জ ফাাংরা কযায যও ডডটটাাআভকপরভনট নামবায গপররা াআাংপরযগজ ডথপরক মায় গনপরচয পলাগগনগট ফযফায কপরয ডদখপরত াপরযন- ltphp

Plugin Name Liton Bangla datetimecomment number

Plugin URI httpliton-onlinecomplugins

Description Bangla datetimecomment number

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

This function converts all english numbers to bangla number

function make_bangla_number($str)

$engNumber = array(1234567890)

$bangNumber = array( ১ ২ ৩ ৪ ৫ ৬ ৭ ৮ ৯ ০ ) $converted = str_replace($engNumber $bangNumber $str)

return $converted

add_filter( get_the_time make_bangla_number )

add_filter( the_date make_bangla_number )

add_filter( get_the_date make_bangla_number )

add_filter( comments_number make_bangla_number )

add_filter( get_comment_date make_bangla_number )

add_filter( get_comment_time make_bangla_number )

gt

60

সলাাআডায পলাগগন াঅভযা এাআ ফাআপরয়য কর গটউপরটাগযয়াপরর মা মা গখরাভ তা এফায একগট নডাাংগ পলাগগপরনয এপলাাআ কযফ সলাাআডায পলাগগন মপপরকড াঅভযা ফাাআ জাগন একগট ওপরয়ফাাআপরটয ডচাযা ারপরট ডদয় একগট সলাাআডায াপরনক ডাাআনাগভক ভপরন য় ডদখপরতও াপরনক বার রাপরগ এাআ পলাগগপরন াঅভযা এডগভন যাপরনর ডথপরক াআপরভজ ডমাগ কযফ এফাং তা াঅভাপরদয াাআপরট ডদখাফ চরন কাজ রর কগয- েথপরভ গনপরবা সলাাআডায এয ওপরয়ফাাআপরট মান এফাং jQuery Plugin ডাউনপররাড করন

ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom Version 10

gt

াঅভযা পলাগগপরনয ডডায ততগয কযরাভ

পলাগগন গরপরসট ডদখাপরচছ bdquoLitons Nivo Plugin‟ াঅভাপরদয েথভ কাজ পরচছ custom post

type ওয়াডডপরে পাাংনাগরগট একগট নতন কাসটভ ডজ ততগয কযপরত custom post type

ফযফহরত পরফ ডমখাপরন একগট াআপরভজ থাকপরফ াঅভযা রধ টাাআপরটর ডনভ এফাং াআপরভজ াঅপররাডায গপরপরফ গপচায াআপরভজ পাাংনাগরগট ফযফায কযফ function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_function 600 280 true)

61

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

add_action(init np_init)

উপরযয ডকাপরড np_init() পাাংনগট রক কপরযগি মা ডডায যান কযায াঅপরগ যান পরফ াঅয এজনয register_post_type() পাাংনপরক এয যাযাগভটায গদপরয় np_init() পাাংপরনয ডবতপরয মি কপরযগি এটা মগদ না কযতাভ তাপরর ldquoHeaders already sentrdquo ডভপরজ ডদখাত এাআ ডভপরজগটয াপরথ াপরনপরকাআ গযগচত াঅা কগয register_post_type() পাাংন গদপরয় াঅভযা াআপরভজ মি এফাং ভযাপরনজ কযফ ভরত াঅভযা একগট নতন custom post type ডমাগ কপরযগি np_images নাভ গদপরয় নতন custom post type ডক ডগটাং বযার গপরপরফ াঅযগপরভনট া কপরযগি $args ডবগযপরয়ফরগট ট ডরপরবর ডভন ততগয কপরয াঅপরগাআ ডদপরখগি পলাগগনগট এগকটপরবট কযপরর াঅভযা গনপরচয ভত ডদখপরত াফ-

এফায গিে এফাং সটাাআরীট ডক মি কযফ- add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

এফায রক কযা পাাংনগপররা গডপরিয়ায কগয- function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__) array( jquery ))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

62

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

উপরযয ডকাডগপররা নতন কপরয ফিডনা কযায গকি ডনাআ াঅপরগাআ wp_enqueue_style() এফাং wp_enqueue_script() মপপরকড ফরা পরয়পরি নতন াঅপরযকগট পাাআর ততগয করন একাআ গডপরযকটগযপরত scriptjs এফাং গনপরচয ডকাডটক গদন- jQuery(document)ready(function($)

$(slider)nivoSlider()

)

াআপরভজপরক গযাাআজ করন- add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

াঅভযা এাআ পলাগগনগটপরক উাআপরজট গপরপরফও ফযফায কযফ ডগট পরয ডদখফ াঅপরযকগট গজগন মগদ গথপরভ না ডদয়া থাপরক ডজনয থামবপরনাআর াপরাটড গদপরয় গদন- add_theme_support( post-thumbnails )

এফায ওয়াডডপরেপরয কাপরযনট ডাসট কপরয়যী কযায ডকাড াঅয $result ডবগযপরয়ফপরর ডমফ ltdivgt টযাগ ফযফায কযা পরয়পরি তা jQuery Plugin গট একসিাকট কপরয indexhtml ডজগটয ডভাআন সলাাআডায ডকাডগট ডদখন একাআ াঅপরি রধ ডখানকায ltdivgt টযাগ গপররাপরক কগ কপরয এাআ পলাগগপরন ফযফায কযা পরয়পরি এফায টডপরকাড গদন- add_shortcode(np-shortcode np_function)

এাআ টডপরকাড গএাআচগ পাাংনপরক রক কযপরফ এফাং এয ভধয ডথপরক সলাাআডপরায কনপরটনট ডক গযটানড কযপরফ াঅভাপরদয টডপরকাড পরচছ [np-shortcode] াঅভযা পলাগগপরন মাাআ এফাং একগট িগফ মি কগয গপচাযড াআপরভজ গপরপরফ গনপরচ ডদখন-

63

াঅগভ াঅপরযকগট ডজ ততগয কপরযগি ডমখাপরন টডপরকাড গদপরয়গি

াঅউটট ডজ ডদগখ এফায-

64

পরয় ডগর াঅভাপরদয সলাাআডায পলাগগন পরযা ডকাডগট গনপরচ গদরাভ- ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

65

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

66

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

এফায াঅগন মগদ উাআপরজট গপরপরফ ফযফায কযপরত চান তাপরর গনপরচয ডকাডটক গদন- class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

67

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

echo $after_widget

াঅপরযা রগট কাজ কযপরত পরফ াঅনাপরক এক াআপরভজ াাআজ উাআপরজট এয জনয গঠক কপরয গদপরত পরফ- add_image_size(np_widget 180 100 true)

াঅপরযকগট র উাআপরজট এযাকন রক ডমাগ কযা add_action(widgets_init np_widgets_init)

উাআপরজট পরযা ডকাড াঅফায গদরাভ- ltphp

Plugin Name Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Ciprian Turcu

Version 10

68

class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

69

echo $after_widget

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

70

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(widgets_init np_widgets_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

71

পলাগগন গনপরয় এত ডিাট গযপরয ডরখা মভফ নয় এজনযাআ ভপরন য় পলাগগন গনপরয় ডকউ ডরপরখন না কাযন এখাপরন এত গফলয় াঅপরি মা াঅপররাচনা কযপরত ডগপরর ৫০০ ডজ ায পরয় মাপরফ ডফাোয সগফধাপরথড াঅগভ মথামভফ উদাযন গদপরয় ডফাোপরনায ডচষটা কপরযগি াঅগভ এখাপরন টাপরগডট কপরযগি মাযা টকটাক জাপরন পলাগগন মপপরকড এডবানস ডরপরবপররয নয় কাযন তাযা জাপরনন াঅভায উপরেশয গির মাযা জানপরত চায় তাপরদযপরক জানাপরনা এখাপরন ডমফ গফলয় াঅপররাচনা কযা পরয়পরি তা ডভাটাভগট ভাপরনয একগট পলাগগন ফানাপরনায জনয মপরথষট তপরফ ভাপরনাননয়পরনয জনয াঅনাপরক গনপরজাআ খাপরজ গনপরত পরফ াঅনায জনয ডকানটা বার পরফ াঅগভ রধ গদক গনপরদডনা গদরাভ ভাতর এাআ ফাআগট রধভাতর ওয়াডডপরে রেপরয জনয ডরখা াপরনক বর ভরাগনত থাকপরত াপরয াঅনাযা কষভাসনদয দগষটপরত ডদখপরফন াঅগভ ডচষটা কপরযগি মতটা জ কপরয ডরখা মায় াপরনক ভয় ডদখা মায় ডম খফ ডিাট খাপরটা গফলয় গনপরয় াপরনপরকাআ নক কপরযন এটা গতয রাঃখজনক াঅনাযা গগপরর একট খাজপররাআ ভাধান াপরফন াঅপরগ গনপরজ ডচষটা করন তায পরয ানযপরক ভাধাপরনয জনয গজজঞাা করন াঅভায জনয ডদায়া কযপরফন বাপররা রাগপরর জানাপরফন খাযা রাগপররও জানাপরফন তাপররাআ াঅভায গযশরভ সবাথডক পরফ ভতাভত জাগনপরয় াঅভাপরক ডভাআর কযপরত াপরযন litonice09gmailcom |

72

Page 44: Wordpress Plugin Development

45

াধযায়- াঅটাঃ ডরাকারাাআপরজন এফাং Set t i ngs API

ডরাকারাাআপরজন ডরাকারাাআপরজন একগট গরতবনড গফলয় এয পাাংনগপররা র- load_theme_textdomain()

load_plugin_textdomain()

উদাযন- ltphp $var=__(bdquoHello‟‟domain‟) gt

ltphp _e(bdquoHello‟‟domain‟) gt

গফসতাগযত গনপরচয গরপরঙক ডদখন- httpcodexwordpressorgI18n_for_WordPress_Developers

ডগটাং API

ডগটাং API পরচছ াঅগন গকি ান ততগয কযপরফন মা াআনটাযনার বাপরফ াঅনায পলাগগপরন এপলাাআ পরফ মখন াঅগন াআউজায- গডপাাআন ান ততগয কযপরফন াঅনায পলাগগপরনয জনয তখন Settings

API ndashএ াঅনায ডকাড মতটা ারন জ করন Settings API াঅনায ডম কাজগপররা handle কপরয-

ওয়াডডপরেপরক জাগনপরয় ডদয় ডম াঅগন গনজসব ান ফযফায কযপরফন াঅনায াআনটপরক পাাংপরনয ভপরধয উপরেখ কযপরফ ডফগয বাগ ান ডজ গনপরজাআ ততগয কযপরফ $_POST ডাটা গপররাপরক ভগনটয কপরয ান ততগয এফাং াঅপরডট কপরয(মগদ েপরয়াজন য়)

Settings API পাাংন Settings API পাাংপরন গতনগট ডসট থাপরক- ১ েথপরভ ওয়াডডপরেপরক ফপরর ডম াঅগন নতন ডগটাং ফযফায কযপরফন াঅনায পলাগগপরনয জনয ২ এয পরয ডগটাং গডপাাআন করন (text areas input boxes and any

HTML form element) এফাং এপরদযপরক একাপরথ রে কপরয যাপরখ ৩ ওয়াডডপরেপরক াঅনায ডগটাং actual form এ ডদখাপরনায জনয ফপরর

46

এফায াঅভযা একগট পলাগগন ফানাপরফা Administration Page ndashএ ডযপাপরযনস গপরপরফ ডদখপরত াপরযন- httpcodexwordpressorgAdding_Administration_Menus

httpcodexwordpressorgFunction_Referenceadd_options_page

httpcodexwordpressorgAction_ReferenceActions_Run_During_an_Admin_P

age_Request

পলাগগপরনয এডগভন ডজ পরফ এযকভ- httpexamplecomwp-adminoptions-generalphppage=liton_myplugin

েথপরভ াঅভযা ডভন ততগয কযফ াঅপরগয ভত কপরয- Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

এফায ান ডজ এ পভড গনপরয় গকি ডগটাং ডদফ function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

উপরযয ডকাপরড াঅভযা একগট পপরভডয ভপরধয রধ াফগভট ফাটন এফাং My Plugin নাপরভ ডজ ততগয কপরযগি ডযাপরফাপরডড ডদখন-

47

ডগটাং এয াফ ডভন গপরপরফ My Plugin াঅপরি এফাং My Plugin ডত গিক কযপরর াঅভযা উপরযয ডজ ততগয কপরযগি ডমখাপরন াফগভট ফাটনগট ডদখাপরচছ এফায গতনগট যাযাগভটায ডযগজসটায কযফ- ltphp

register_setting( liton _myplugin_options liton _myplugin_options liton

_myplugin_validate_options)

gt

েথভগট ডগটাং রেপরয নাভ গিতীয়গট ান নাভ মা াঅভযা get_option() পাাংন গদপরয়ও ডপরত াগয ততীয়গট করফযাক পাাংন এগট একগট গসটরাং ডযপাপরযনস পাাংন এখাপরন াঅভযা নাভ

48

গদপরয়গি liton _myplugin_validate_options মা া কযপরফ পপরভডয কর ডব ডগটাং াঅভযা এটা পরয গডপাাআন কযফ

ডগটাং গডপাাআন ডকন add_settings_field() এফাং add_settings_section() পাাংন গদপরয় াঅভযা াঅভাপরদয কর ডগটাং গডপাাআন কযফ ltphp

add_settings_section( liton_myplugin_main My Plugin Settings

liton_myplugin_section_text liton _myplugin)

add_settings_field( liton _myplugin_text_string Enter text here

liton _myplugin_setting_input liton _myplugin liton _myplugin_main)

gt

add_settings_section() পাাংন গদপরয় াঅভযা ডদখাফ াঅপরর ডজ এ ডকন ডকভন ডদখাপরফ এয চাযগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ ডকন টাাআপরটর ltH3gt টযাপরগয ভপরধয করফযাক পাাংন এয নাভ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ (page= liton _myplugin এগট

URL এয াাং গপরপরফ থাকপরফ) গিতীয় যাযাগভটায add_settings_field() পপরভডয াআনট গপরপরফ ডদখাপরনা পরয়পরি এখাপরন াাচগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ পরযয গপপরলড গক গেনট কযা পরফ তা ডটকসট গপরপরফ ডদখাপরনা পরয়পরি(Enter text

here)

করফযাক পাাংন পপরভড গেনট কযপরফ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ ডগটাং ডপরজয ডকন গপলড মা add_settings_section() পাাংপরন গডপাাআন

কযা পরয়পরি ltphp

Explanations about this section

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

49

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton _myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name= liton _myplugin_options[text_string]

type=text value=$options[text_string] gt

gt

গিতীয় পাাংন ান বযার text_string ডক এযাপরযপরত ডসটায কপরয ডযপরখপরি এফায াআউজায াআনট বযাগরপরডট কযফ- ltphp

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace([^a-zA-Z]$input[text_string] )

return $valid

gt

পভডপরক ডযনডায কযফ- ltphp

Draw the options page

function liton_myplugin_options_page()

gt

ltdiv class=wrapgt

ltphp

screen_icon()

gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp

settings_fields( liton_myplugin_options)

do_settings_sections(liton_myplugin)

50

gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

settings_fields() পাাংনগট ডযপাপরযনস গপরপরফ ফযফায কযা পরয়পরি মা াঅভযা register_setting() পাাংপরন গডপরিয়ায কপরযগি do_settings_sections() পাাংনগট কর কযপরফ কর াঅউটট ডকন এফাং পভড গপলডপরক মা াঅভযা পরফড গডপাাআন কপরযগি াঅভাপরদয কাজ ডল এফায পরযা পলাগগনগট ডদখফ- ltphp

Plugin Name Settings API example

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

Draw the option page

function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save

Changes gt

ltformgtltdivgt

ltphp

51

Register and define the settings

add_action(admin_init liton_myplugin_admin_init)

function liton_myplugin_admin_init()

register_setting( liton_myplugin_options

liton_myplugin_options

liton_myplugin_validate_options )

add_settings_section( liton_myplugin_main My Plugin

Settings

liton_myplugin_section_text liton_myplugin )

add_settings_field( liton_myplugin_text_string Enter text

here

liton_myplugin_setting_input liton_myplugin

liton_myplugin_main )

Draw the section header

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton_myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name=liton_myplugin_options[text_string]

type=text value=$text_string gt

Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

return $valid

gt

52

ডদখন ডযাপরফাপরডড ডকভন ডদখায়-

পরয় ডগর াঅভাপরদয েথভ নডাাংগ পলাগগন ান ডজ াঅপরযকগট গজগন ডমটায জনয এতগকি পলাগগন URL এপরডর- httplocalhostdev-litonwp-adminoptions-

generalphppage=liton_mypluginampsettings-updated=true

াঅভায এখাপরন এযকভ ডদখাপরচছ ডটকসট ফপরকস ডকান গকি গরপরখ ডব কযায য এফাপরয াঅপরযকগট গজগন ডদখফ াঅভযা াপরনক ভয়াআ াপরনক পলাগগপরনয াআনট গপপরলড বর ডাটা াআনট কযপরর এযয ডভপরজ ডদখায় এাআ কাজগট কযফ এফায াঅভযা এখাপরন esc_attr() ফা esc_html() ফযফায কগযগন সতযাাং াঅভাপরদয গরগভপরটন থাকপরি ডবগরপরডট পাাংনগট একট এগডট কগয গনপরচয ভত কপরয Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

if( $valid[text_string] = $input[text_string] )

add_settings_error(liton_myplugin_text_stringliton_myplugin_texterror

53

Incorrect value enterederror)

return $valid

উপরয ডদখন add_settings_error() পাাংন ফযফায কপরযগি মা এযয ডচক কযপরফ পপরভডয াঅগভ একগট বর ডাটা(পরসপার কযাপরযকটায) াআনট কপরয ডদখরাভ এযয ডদখাপরচছ-

তায ভাপরন াঅভযা পর পরয়গি াঅনায পলাগগনগট এগডট কপরয ডনপরফন ডকায ডকন এফাং গপপরলডয গরসট গদরাভ াঅনাপরদয সগফধায জনয

54

CSSJS পাাআর মি কযা

াঅনায পলাগগপরন গএএ ফা জাবাগিে ডমাগ কযপরত পরত াপরয াঅগন চাাআপরর ফাগপরযয ডকান ফা াঅনায ততগয ডকান গএএ ফা জাবাগিে পাাআর ডমাগ কযপরত াপরযন তপরফ এপরকষপরতর াঅভযা ডমবাপরফ HTML এ পাাআর ডমাগ কগয ডযকভ না function liton_scripts()

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtojqueryjsrdquogtltscriptgt‟

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtoscriptjsrdquogtltscriptgt‟

add_action(bdquowp_head‟‟liton_scripts‟)

এগট মপনডরপর বর িগত গনপরচ ডদখন ওয়াডডপরেপর গকবাপরফ পাাআর মি কযপরত য়- function liton_scripts()

wp_enqueue_script(bdquojquery‟)

wp_enqueue_script(bdquotheme-scripts‟‟pathtoscriptsjs‟)

add_action(bdquowp_enqueue_script‟‟liton_scripts‟)

ানর বাপরফ াঅগন সটাাআরীট ডমাগ কযপরত াপরযন- function liton_styles()

wp_enqueue_ style (bdquocss‟)

wp_enqueue_ style (bdquotheme- styles‟pathto stylescss‟)

ডযপাপরযনস ডদখন- httpcodexwordpressorgFunction_Referencewp_enqueue_script

httpcodexwordpressorgFunction_Referencewp_enqueue_style

টডপরকাড টডপরকাড পরচছ ওয়াডডপরেপরয ডসপগগপক ডসপার টযাগ মা াঅগন ডাসট ফা ডপরজয ভপরধয াআনাটড কপরয ানয ডকান কনপরটনটপরক ওপরয়ফাাআপরটয ভপরধয গযপরপল কযপরত াযপরফন মগদ াঅগন গযারাগয টাাআপরয ডকান পলাগগন ফযফায কপরয থাপরকন তাপরর াঅনায ধাযনা থাকায কথা মাাআ ডাক াঅগভ কপরয়কগট উদাযি ডদখাফ

55

েথপরভ একগট পলাগগন ততগয কযফ ডমখাপরন add_shortcode() নাপরভয একগট পাাংন থাকপরফ এগট রগট যাযাগভটায েন কপরয েথভগট টডপরকাপরডয নাভ গিতীয়গট ডম পাাংনপরক কর কযপরফন ডগট াঅভযা একগট উদাযন ডদগখ- ltphp

Plugin Name Liton Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(litonhi)

function hi()

echo Hello World

gt

উপরয ডদখন খফ ডিাট গকনত াঅগন চাাআপরর এয ফযফায াপরনক গফসতত কযপরত াপরযন এখাপরন টডপরকাড নাভ পরচছ liton াঅয এগটপরক ডরখা য় এবাপরফ [liton] াঅভযা ডাপরসটয ভপরধয াআনাটড কপরয ডদগখ াঅউটট ডকভন ডদখায়-

এফায াঅউটট ডদগখ-

56

াঅভাপরদয ততগয কযা টডপরকাড পরবাপরফাআ কাজ কযপরি াঅপরযকগট উদাযন ডদখফ াঅনাযা াপরনপরকাআ গগর এডপরনস গনপরয় কাজ কপরযন াঅনাযা াপরনপরকাআ এডপরনস এয জনয পলাগগন ফযফায কপরযন গকনত চাাআপররাআ এাআ কাজগট াঅনাযা গনপরজয ভত কপরয াগজপরয় গনপরত াপরযন গগপররয কাপরি ফ ডাসট বযার ায়না াঅনাযা মাযা একসাটড াঅপরিন তাযা এটা বার কপরয জাপরনন তাাআ াপরনপরকাআ গগপররয ডকাড ফ ডপরজ ডদখাপরত চান না এজনয পলাগগন ফযফায কপরয রাব য়না কাযন পলাগগপরন জায়গা গপকসড থাপরক এপরত কপরয াঅগনডাং ও কভ য় াঅনাযা টডপরকাড ফযফায কপরয ডমপরকান জায়গায় এড ডদখাপরত াপরযন গনপরচ াঅগভ রগট টডপরকাড ততগয কপরযগি র‟ধযপরনয এড ডদখাপরনায জনয ltphp

Plugin Name Liton Adsense Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(adsense_468adsense_468_60)

add_shortcode(adsense_250adsense_250_250)

function adsense_468_60($atts)

return ltscript type=textjavascriptgtlt--

57

google_ad_client = ca-pub-0956247412222369

468x60 created 101510

google_ad_slot = 4372705450

google_ad_width = 468

google_ad_height = 60

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

function adsense_250_250($atts)

return ltscript type=textjavascriptgtlt--

google_ad_client = ca-pub-0956247412222369

250x250 created 81809

google_ad_slot = 9368091893

google_ad_width = 250

google_ad_height = 250

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

gt

একগট টডপরকাড ফযানায টাাআপরয জনয এফাং াঅপরযকগট ২৫০২৫০ াাআপরজয এফায ডাপরসট ডমপরকান একগট টডপরকাড াআনাটড করন ডমখাপরন াঅনায ডদখাপরনায েপরয়াজন ভপরন কপরযন াঅগভ রগট ডকাড ডটসট কপরয ডদখরাভ-

58

এফায াাআপরটয াঅউটট ডদগখ-

রগট এডাআ ডদখাপরচছ াঅপরযা াপরনক কাপরজ াঅগন টডপরকাড ফযফায কযপরত াপরযন ডযপাপরযনসাঃ httpcodexwordpressorgShortcode_API

59

াধযায়- নয়াঃ পলাগগন উদাযন

ওয়াডডপরেপরয ডডটটাাআভকপরভনট নামবায ফাাংরা কযায পলাগগন াঅভাপরক কপরয়কজন ফপররগিপররন ওয়াডডপরেপরয গডপলট ডডটটাাআভকপরভনট নামবায ফাাংরা য়না রযাাংগপরয়জ ফাাংরা কযায যও ডডটটাাআভকপরভনট নামবায গপররা াআাংপরযগজ ডথপরক মায় গনপরচয পলাগগনগট ফযফায কপরয ডদখপরত াপরযন- ltphp

Plugin Name Liton Bangla datetimecomment number

Plugin URI httpliton-onlinecomplugins

Description Bangla datetimecomment number

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

This function converts all english numbers to bangla number

function make_bangla_number($str)

$engNumber = array(1234567890)

$bangNumber = array( ১ ২ ৩ ৪ ৫ ৬ ৭ ৮ ৯ ০ ) $converted = str_replace($engNumber $bangNumber $str)

return $converted

add_filter( get_the_time make_bangla_number )

add_filter( the_date make_bangla_number )

add_filter( get_the_date make_bangla_number )

add_filter( comments_number make_bangla_number )

add_filter( get_comment_date make_bangla_number )

add_filter( get_comment_time make_bangla_number )

gt

60

সলাাআডায পলাগগন াঅভযা এাআ ফাআপরয়য কর গটউপরটাগযয়াপরর মা মা গখরাভ তা এফায একগট নডাাংগ পলাগগপরনয এপলাাআ কযফ সলাাআডায পলাগগন মপপরকড াঅভযা ফাাআ জাগন একগট ওপরয়ফাাআপরটয ডচাযা ারপরট ডদয় একগট সলাাআডায াপরনক ডাাআনাগভক ভপরন য় ডদখপরতও াপরনক বার রাপরগ এাআ পলাগগপরন াঅভযা এডগভন যাপরনর ডথপরক াআপরভজ ডমাগ কযফ এফাং তা াঅভাপরদয াাআপরট ডদখাফ চরন কাজ রর কগয- েথপরভ গনপরবা সলাাআডায এয ওপরয়ফাাআপরট মান এফাং jQuery Plugin ডাউনপররাড করন

ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom Version 10

gt

াঅভযা পলাগগপরনয ডডায ততগয কযরাভ

পলাগগন গরপরসট ডদখাপরচছ bdquoLitons Nivo Plugin‟ াঅভাপরদয েথভ কাজ পরচছ custom post

type ওয়াডডপরে পাাংনাগরগট একগট নতন কাসটভ ডজ ততগয কযপরত custom post type

ফযফহরত পরফ ডমখাপরন একগট াআপরভজ থাকপরফ াঅভযা রধ টাাআপরটর ডনভ এফাং াআপরভজ াঅপররাডায গপরপরফ গপচায াআপরভজ পাাংনাগরগট ফযফায কযফ function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_function 600 280 true)

61

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

add_action(init np_init)

উপরযয ডকাপরড np_init() পাাংনগট রক কপরযগি মা ডডায যান কযায াঅপরগ যান পরফ াঅয এজনয register_post_type() পাাংনপরক এয যাযাগভটায গদপরয় np_init() পাাংপরনয ডবতপরয মি কপরযগি এটা মগদ না কযতাভ তাপরর ldquoHeaders already sentrdquo ডভপরজ ডদখাত এাআ ডভপরজগটয াপরথ াপরনপরকাআ গযগচত াঅা কগয register_post_type() পাাংন গদপরয় াঅভযা াআপরভজ মি এফাং ভযাপরনজ কযফ ভরত াঅভযা একগট নতন custom post type ডমাগ কপরযগি np_images নাভ গদপরয় নতন custom post type ডক ডগটাং বযার গপরপরফ াঅযগপরভনট া কপরযগি $args ডবগযপরয়ফরগট ট ডরপরবর ডভন ততগয কপরয াঅপরগাআ ডদপরখগি পলাগগনগট এগকটপরবট কযপরর াঅভযা গনপরচয ভত ডদখপরত াফ-

এফায গিে এফাং সটাাআরীট ডক মি কযফ- add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

এফায রক কযা পাাংনগপররা গডপরিয়ায কগয- function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__) array( jquery ))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

62

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

উপরযয ডকাডগপররা নতন কপরয ফিডনা কযায গকি ডনাআ াঅপরগাআ wp_enqueue_style() এফাং wp_enqueue_script() মপপরকড ফরা পরয়পরি নতন াঅপরযকগট পাাআর ততগয করন একাআ গডপরযকটগযপরত scriptjs এফাং গনপরচয ডকাডটক গদন- jQuery(document)ready(function($)

$(slider)nivoSlider()

)

াআপরভজপরক গযাাআজ করন- add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

াঅভযা এাআ পলাগগনগটপরক উাআপরজট গপরপরফও ফযফায কযফ ডগট পরয ডদখফ াঅপরযকগট গজগন মগদ গথপরভ না ডদয়া থাপরক ডজনয থামবপরনাআর াপরাটড গদপরয় গদন- add_theme_support( post-thumbnails )

এফায ওয়াডডপরেপরয কাপরযনট ডাসট কপরয়যী কযায ডকাড াঅয $result ডবগযপরয়ফপরর ডমফ ltdivgt টযাগ ফযফায কযা পরয়পরি তা jQuery Plugin গট একসিাকট কপরয indexhtml ডজগটয ডভাআন সলাাআডায ডকাডগট ডদখন একাআ াঅপরি রধ ডখানকায ltdivgt টযাগ গপররাপরক কগ কপরয এাআ পলাগগপরন ফযফায কযা পরয়পরি এফায টডপরকাড গদন- add_shortcode(np-shortcode np_function)

এাআ টডপরকাড গএাআচগ পাাংনপরক রক কযপরফ এফাং এয ভধয ডথপরক সলাাআডপরায কনপরটনট ডক গযটানড কযপরফ াঅভাপরদয টডপরকাড পরচছ [np-shortcode] াঅভযা পলাগগপরন মাাআ এফাং একগট িগফ মি কগয গপচাযড াআপরভজ গপরপরফ গনপরচ ডদখন-

63

াঅগভ াঅপরযকগট ডজ ততগয কপরযগি ডমখাপরন টডপরকাড গদপরয়গি

াঅউটট ডজ ডদগখ এফায-

64

পরয় ডগর াঅভাপরদয সলাাআডায পলাগগন পরযা ডকাডগট গনপরচ গদরাভ- ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

65

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

66

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

এফায াঅগন মগদ উাআপরজট গপরপরফ ফযফায কযপরত চান তাপরর গনপরচয ডকাডটক গদন- class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

67

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

echo $after_widget

াঅপরযা রগট কাজ কযপরত পরফ াঅনাপরক এক াআপরভজ াাআজ উাআপরজট এয জনয গঠক কপরয গদপরত পরফ- add_image_size(np_widget 180 100 true)

াঅপরযকগট র উাআপরজট এযাকন রক ডমাগ কযা add_action(widgets_init np_widgets_init)

উাআপরজট পরযা ডকাড াঅফায গদরাভ- ltphp

Plugin Name Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Ciprian Turcu

Version 10

68

class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

69

echo $after_widget

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

70

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(widgets_init np_widgets_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

71

পলাগগন গনপরয় এত ডিাট গযপরয ডরখা মভফ নয় এজনযাআ ভপরন য় পলাগগন গনপরয় ডকউ ডরপরখন না কাযন এখাপরন এত গফলয় াঅপরি মা াঅপররাচনা কযপরত ডগপরর ৫০০ ডজ ায পরয় মাপরফ ডফাোয সগফধাপরথড াঅগভ মথামভফ উদাযন গদপরয় ডফাোপরনায ডচষটা কপরযগি াঅগভ এখাপরন টাপরগডট কপরযগি মাযা টকটাক জাপরন পলাগগন মপপরকড এডবানস ডরপরবপররয নয় কাযন তাযা জাপরনন াঅভায উপরেশয গির মাযা জানপরত চায় তাপরদযপরক জানাপরনা এখাপরন ডমফ গফলয় াঅপররাচনা কযা পরয়পরি তা ডভাটাভগট ভাপরনয একগট পলাগগন ফানাপরনায জনয মপরথষট তপরফ ভাপরনাননয়পরনয জনয াঅনাপরক গনপরজাআ খাপরজ গনপরত পরফ াঅনায জনয ডকানটা বার পরফ াঅগভ রধ গদক গনপরদডনা গদরাভ ভাতর এাআ ফাআগট রধভাতর ওয়াডডপরে রেপরয জনয ডরখা াপরনক বর ভরাগনত থাকপরত াপরয াঅনাযা কষভাসনদয দগষটপরত ডদখপরফন াঅগভ ডচষটা কপরযগি মতটা জ কপরয ডরখা মায় াপরনক ভয় ডদখা মায় ডম খফ ডিাট খাপরটা গফলয় গনপরয় াপরনপরকাআ নক কপরযন এটা গতয রাঃখজনক াঅনাযা গগপরর একট খাজপররাআ ভাধান াপরফন াঅপরগ গনপরজ ডচষটা করন তায পরয ানযপরক ভাধাপরনয জনয গজজঞাা করন াঅভায জনয ডদায়া কযপরফন বাপররা রাগপরর জানাপরফন খাযা রাগপররও জানাপরফন তাপররাআ াঅভায গযশরভ সবাথডক পরফ ভতাভত জাগনপরয় াঅভাপরক ডভাআর কযপরত াপরযন litonice09gmailcom |

72

Page 45: Wordpress Plugin Development

46

এফায াঅভযা একগট পলাগগন ফানাপরফা Administration Page ndashএ ডযপাপরযনস গপরপরফ ডদখপরত াপরযন- httpcodexwordpressorgAdding_Administration_Menus

httpcodexwordpressorgFunction_Referenceadd_options_page

httpcodexwordpressorgAction_ReferenceActions_Run_During_an_Admin_P

age_Request

পলাগগপরনয এডগভন ডজ পরফ এযকভ- httpexamplecomwp-adminoptions-generalphppage=liton_myplugin

েথপরভ াঅভযা ডভন ততগয কযফ াঅপরগয ভত কপরয- Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

এফায ান ডজ এ পভড গনপরয় গকি ডগটাং ডদফ function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

উপরযয ডকাপরড াঅভযা একগট পপরভডয ভপরধয রধ াফগভট ফাটন এফাং My Plugin নাপরভ ডজ ততগয কপরযগি ডযাপরফাপরডড ডদখন-

47

ডগটাং এয াফ ডভন গপরপরফ My Plugin াঅপরি এফাং My Plugin ডত গিক কযপরর াঅভযা উপরযয ডজ ততগয কপরযগি ডমখাপরন াফগভট ফাটনগট ডদখাপরচছ এফায গতনগট যাযাগভটায ডযগজসটায কযফ- ltphp

register_setting( liton _myplugin_options liton _myplugin_options liton

_myplugin_validate_options)

gt

েথভগট ডগটাং রেপরয নাভ গিতীয়গট ান নাভ মা াঅভযা get_option() পাাংন গদপরয়ও ডপরত াগয ততীয়গট করফযাক পাাংন এগট একগট গসটরাং ডযপাপরযনস পাাংন এখাপরন াঅভযা নাভ

48

গদপরয়গি liton _myplugin_validate_options মা া কযপরফ পপরভডয কর ডব ডগটাং াঅভযা এটা পরয গডপাাআন কযফ

ডগটাং গডপাাআন ডকন add_settings_field() এফাং add_settings_section() পাাংন গদপরয় াঅভযা াঅভাপরদয কর ডগটাং গডপাাআন কযফ ltphp

add_settings_section( liton_myplugin_main My Plugin Settings

liton_myplugin_section_text liton _myplugin)

add_settings_field( liton _myplugin_text_string Enter text here

liton _myplugin_setting_input liton _myplugin liton _myplugin_main)

gt

add_settings_section() পাাংন গদপরয় াঅভযা ডদখাফ াঅপরর ডজ এ ডকন ডকভন ডদখাপরফ এয চাযগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ ডকন টাাআপরটর ltH3gt টযাপরগয ভপরধয করফযাক পাাংন এয নাভ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ (page= liton _myplugin এগট

URL এয াাং গপরপরফ থাকপরফ) গিতীয় যাযাগভটায add_settings_field() পপরভডয াআনট গপরপরফ ডদখাপরনা পরয়পরি এখাপরন াাচগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ পরযয গপপরলড গক গেনট কযা পরফ তা ডটকসট গপরপরফ ডদখাপরনা পরয়পরি(Enter text

here)

করফযাক পাাংন পপরভড গেনট কযপরফ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ ডগটাং ডপরজয ডকন গপলড মা add_settings_section() পাাংপরন গডপাাআন

কযা পরয়পরি ltphp

Explanations about this section

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

49

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton _myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name= liton _myplugin_options[text_string]

type=text value=$options[text_string] gt

gt

গিতীয় পাাংন ান বযার text_string ডক এযাপরযপরত ডসটায কপরয ডযপরখপরি এফায াআউজায াআনট বযাগরপরডট কযফ- ltphp

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace([^a-zA-Z]$input[text_string] )

return $valid

gt

পভডপরক ডযনডায কযফ- ltphp

Draw the options page

function liton_myplugin_options_page()

gt

ltdiv class=wrapgt

ltphp

screen_icon()

gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp

settings_fields( liton_myplugin_options)

do_settings_sections(liton_myplugin)

50

gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

settings_fields() পাাংনগট ডযপাপরযনস গপরপরফ ফযফায কযা পরয়পরি মা াঅভযা register_setting() পাাংপরন গডপরিয়ায কপরযগি do_settings_sections() পাাংনগট কর কযপরফ কর াঅউটট ডকন এফাং পভড গপলডপরক মা াঅভযা পরফড গডপাাআন কপরযগি াঅভাপরদয কাজ ডল এফায পরযা পলাগগনগট ডদখফ- ltphp

Plugin Name Settings API example

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

Draw the option page

function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save

Changes gt

ltformgtltdivgt

ltphp

51

Register and define the settings

add_action(admin_init liton_myplugin_admin_init)

function liton_myplugin_admin_init()

register_setting( liton_myplugin_options

liton_myplugin_options

liton_myplugin_validate_options )

add_settings_section( liton_myplugin_main My Plugin

Settings

liton_myplugin_section_text liton_myplugin )

add_settings_field( liton_myplugin_text_string Enter text

here

liton_myplugin_setting_input liton_myplugin

liton_myplugin_main )

Draw the section header

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton_myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name=liton_myplugin_options[text_string]

type=text value=$text_string gt

Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

return $valid

gt

52

ডদখন ডযাপরফাপরডড ডকভন ডদখায়-

পরয় ডগর াঅভাপরদয েথভ নডাাংগ পলাগগন ান ডজ াঅপরযকগট গজগন ডমটায জনয এতগকি পলাগগন URL এপরডর- httplocalhostdev-litonwp-adminoptions-

generalphppage=liton_mypluginampsettings-updated=true

াঅভায এখাপরন এযকভ ডদখাপরচছ ডটকসট ফপরকস ডকান গকি গরপরখ ডব কযায য এফাপরয াঅপরযকগট গজগন ডদখফ াঅভযা াপরনক ভয়াআ াপরনক পলাগগপরনয াআনট গপপরলড বর ডাটা াআনট কযপরর এযয ডভপরজ ডদখায় এাআ কাজগট কযফ এফায াঅভযা এখাপরন esc_attr() ফা esc_html() ফযফায কগযগন সতযাাং াঅভাপরদয গরগভপরটন থাকপরি ডবগরপরডট পাাংনগট একট এগডট কগয গনপরচয ভত কপরয Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

if( $valid[text_string] = $input[text_string] )

add_settings_error(liton_myplugin_text_stringliton_myplugin_texterror

53

Incorrect value enterederror)

return $valid

উপরয ডদখন add_settings_error() পাাংন ফযফায কপরযগি মা এযয ডচক কযপরফ পপরভডয াঅগভ একগট বর ডাটা(পরসপার কযাপরযকটায) াআনট কপরয ডদখরাভ এযয ডদখাপরচছ-

তায ভাপরন াঅভযা পর পরয়গি াঅনায পলাগগনগট এগডট কপরয ডনপরফন ডকায ডকন এফাং গপপরলডয গরসট গদরাভ াঅনাপরদয সগফধায জনয

54

CSSJS পাাআর মি কযা

াঅনায পলাগগপরন গএএ ফা জাবাগিে ডমাগ কযপরত পরত াপরয াঅগন চাাআপরর ফাগপরযয ডকান ফা াঅনায ততগয ডকান গএএ ফা জাবাগিে পাাআর ডমাগ কযপরত াপরযন তপরফ এপরকষপরতর াঅভযা ডমবাপরফ HTML এ পাাআর ডমাগ কগয ডযকভ না function liton_scripts()

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtojqueryjsrdquogtltscriptgt‟

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtoscriptjsrdquogtltscriptgt‟

add_action(bdquowp_head‟‟liton_scripts‟)

এগট মপনডরপর বর িগত গনপরচ ডদখন ওয়াডডপরেপর গকবাপরফ পাাআর মি কযপরত য়- function liton_scripts()

wp_enqueue_script(bdquojquery‟)

wp_enqueue_script(bdquotheme-scripts‟‟pathtoscriptsjs‟)

add_action(bdquowp_enqueue_script‟‟liton_scripts‟)

ানর বাপরফ াঅগন সটাাআরীট ডমাগ কযপরত াপরযন- function liton_styles()

wp_enqueue_ style (bdquocss‟)

wp_enqueue_ style (bdquotheme- styles‟pathto stylescss‟)

ডযপাপরযনস ডদখন- httpcodexwordpressorgFunction_Referencewp_enqueue_script

httpcodexwordpressorgFunction_Referencewp_enqueue_style

টডপরকাড টডপরকাড পরচছ ওয়াডডপরেপরয ডসপগগপক ডসপার টযাগ মা াঅগন ডাসট ফা ডপরজয ভপরধয াআনাটড কপরয ানয ডকান কনপরটনটপরক ওপরয়ফাাআপরটয ভপরধয গযপরপল কযপরত াযপরফন মগদ াঅগন গযারাগয টাাআপরয ডকান পলাগগন ফযফায কপরয থাপরকন তাপরর াঅনায ধাযনা থাকায কথা মাাআ ডাক াঅগভ কপরয়কগট উদাযি ডদখাফ

55

েথপরভ একগট পলাগগন ততগয কযফ ডমখাপরন add_shortcode() নাপরভয একগট পাাংন থাকপরফ এগট রগট যাযাগভটায েন কপরয েথভগট টডপরকাপরডয নাভ গিতীয়গট ডম পাাংনপরক কর কযপরফন ডগট াঅভযা একগট উদাযন ডদগখ- ltphp

Plugin Name Liton Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(litonhi)

function hi()

echo Hello World

gt

উপরয ডদখন খফ ডিাট গকনত াঅগন চাাআপরর এয ফযফায াপরনক গফসতত কযপরত াপরযন এখাপরন টডপরকাড নাভ পরচছ liton াঅয এগটপরক ডরখা য় এবাপরফ [liton] াঅভযা ডাপরসটয ভপরধয াআনাটড কপরয ডদগখ াঅউটট ডকভন ডদখায়-

এফায াঅউটট ডদগখ-

56

াঅভাপরদয ততগয কযা টডপরকাড পরবাপরফাআ কাজ কযপরি াঅপরযকগট উদাযন ডদখফ াঅনাযা াপরনপরকাআ গগর এডপরনস গনপরয় কাজ কপরযন াঅনাযা াপরনপরকাআ এডপরনস এয জনয পলাগগন ফযফায কপরযন গকনত চাাআপররাআ এাআ কাজগট াঅনাযা গনপরজয ভত কপরয াগজপরয় গনপরত াপরযন গগপররয কাপরি ফ ডাসট বযার ায়না াঅনাযা মাযা একসাটড াঅপরিন তাযা এটা বার কপরয জাপরনন তাাআ াপরনপরকাআ গগপররয ডকাড ফ ডপরজ ডদখাপরত চান না এজনয পলাগগন ফযফায কপরয রাব য়না কাযন পলাগগপরন জায়গা গপকসড থাপরক এপরত কপরয াঅগনডাং ও কভ য় াঅনাযা টডপরকাড ফযফায কপরয ডমপরকান জায়গায় এড ডদখাপরত াপরযন গনপরচ াঅগভ রগট টডপরকাড ততগয কপরযগি র‟ধযপরনয এড ডদখাপরনায জনয ltphp

Plugin Name Liton Adsense Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(adsense_468adsense_468_60)

add_shortcode(adsense_250adsense_250_250)

function adsense_468_60($atts)

return ltscript type=textjavascriptgtlt--

57

google_ad_client = ca-pub-0956247412222369

468x60 created 101510

google_ad_slot = 4372705450

google_ad_width = 468

google_ad_height = 60

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

function adsense_250_250($atts)

return ltscript type=textjavascriptgtlt--

google_ad_client = ca-pub-0956247412222369

250x250 created 81809

google_ad_slot = 9368091893

google_ad_width = 250

google_ad_height = 250

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

gt

একগট টডপরকাড ফযানায টাাআপরয জনয এফাং াঅপরযকগট ২৫০২৫০ াাআপরজয এফায ডাপরসট ডমপরকান একগট টডপরকাড াআনাটড করন ডমখাপরন াঅনায ডদখাপরনায েপরয়াজন ভপরন কপরযন াঅগভ রগট ডকাড ডটসট কপরয ডদখরাভ-

58

এফায াাআপরটয াঅউটট ডদগখ-

রগট এডাআ ডদখাপরচছ াঅপরযা াপরনক কাপরজ াঅগন টডপরকাড ফযফায কযপরত াপরযন ডযপাপরযনসাঃ httpcodexwordpressorgShortcode_API

59

াধযায়- নয়াঃ পলাগগন উদাযন

ওয়াডডপরেপরয ডডটটাাআভকপরভনট নামবায ফাাংরা কযায পলাগগন াঅভাপরক কপরয়কজন ফপররগিপররন ওয়াডডপরেপরয গডপলট ডডটটাাআভকপরভনট নামবায ফাাংরা য়না রযাাংগপরয়জ ফাাংরা কযায যও ডডটটাাআভকপরভনট নামবায গপররা াআাংপরযগজ ডথপরক মায় গনপরচয পলাগগনগট ফযফায কপরয ডদখপরত াপরযন- ltphp

Plugin Name Liton Bangla datetimecomment number

Plugin URI httpliton-onlinecomplugins

Description Bangla datetimecomment number

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

This function converts all english numbers to bangla number

function make_bangla_number($str)

$engNumber = array(1234567890)

$bangNumber = array( ১ ২ ৩ ৪ ৫ ৬ ৭ ৮ ৯ ০ ) $converted = str_replace($engNumber $bangNumber $str)

return $converted

add_filter( get_the_time make_bangla_number )

add_filter( the_date make_bangla_number )

add_filter( get_the_date make_bangla_number )

add_filter( comments_number make_bangla_number )

add_filter( get_comment_date make_bangla_number )

add_filter( get_comment_time make_bangla_number )

gt

60

সলাাআডায পলাগগন াঅভযা এাআ ফাআপরয়য কর গটউপরটাগযয়াপরর মা মা গখরাভ তা এফায একগট নডাাংগ পলাগগপরনয এপলাাআ কযফ সলাাআডায পলাগগন মপপরকড াঅভযা ফাাআ জাগন একগট ওপরয়ফাাআপরটয ডচাযা ারপরট ডদয় একগট সলাাআডায াপরনক ডাাআনাগভক ভপরন য় ডদখপরতও াপরনক বার রাপরগ এাআ পলাগগপরন াঅভযা এডগভন যাপরনর ডথপরক াআপরভজ ডমাগ কযফ এফাং তা াঅভাপরদয াাআপরট ডদখাফ চরন কাজ রর কগয- েথপরভ গনপরবা সলাাআডায এয ওপরয়ফাাআপরট মান এফাং jQuery Plugin ডাউনপররাড করন

ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom Version 10

gt

াঅভযা পলাগগপরনয ডডায ততগয কযরাভ

পলাগগন গরপরসট ডদখাপরচছ bdquoLitons Nivo Plugin‟ াঅভাপরদয েথভ কাজ পরচছ custom post

type ওয়াডডপরে পাাংনাগরগট একগট নতন কাসটভ ডজ ততগয কযপরত custom post type

ফযফহরত পরফ ডমখাপরন একগট াআপরভজ থাকপরফ াঅভযা রধ টাাআপরটর ডনভ এফাং াআপরভজ াঅপররাডায গপরপরফ গপচায াআপরভজ পাাংনাগরগট ফযফায কযফ function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_function 600 280 true)

61

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

add_action(init np_init)

উপরযয ডকাপরড np_init() পাাংনগট রক কপরযগি মা ডডায যান কযায াঅপরগ যান পরফ াঅয এজনয register_post_type() পাাংনপরক এয যাযাগভটায গদপরয় np_init() পাাংপরনয ডবতপরয মি কপরযগি এটা মগদ না কযতাভ তাপরর ldquoHeaders already sentrdquo ডভপরজ ডদখাত এাআ ডভপরজগটয াপরথ াপরনপরকাআ গযগচত াঅা কগয register_post_type() পাাংন গদপরয় াঅভযা াআপরভজ মি এফাং ভযাপরনজ কযফ ভরত াঅভযা একগট নতন custom post type ডমাগ কপরযগি np_images নাভ গদপরয় নতন custom post type ডক ডগটাং বযার গপরপরফ াঅযগপরভনট া কপরযগি $args ডবগযপরয়ফরগট ট ডরপরবর ডভন ততগয কপরয াঅপরগাআ ডদপরখগি পলাগগনগট এগকটপরবট কযপরর াঅভযা গনপরচয ভত ডদখপরত াফ-

এফায গিে এফাং সটাাআরীট ডক মি কযফ- add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

এফায রক কযা পাাংনগপররা গডপরিয়ায কগয- function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__) array( jquery ))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

62

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

উপরযয ডকাডগপররা নতন কপরয ফিডনা কযায গকি ডনাআ াঅপরগাআ wp_enqueue_style() এফাং wp_enqueue_script() মপপরকড ফরা পরয়পরি নতন াঅপরযকগট পাাআর ততগয করন একাআ গডপরযকটগযপরত scriptjs এফাং গনপরচয ডকাডটক গদন- jQuery(document)ready(function($)

$(slider)nivoSlider()

)

াআপরভজপরক গযাাআজ করন- add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

াঅভযা এাআ পলাগগনগটপরক উাআপরজট গপরপরফও ফযফায কযফ ডগট পরয ডদখফ াঅপরযকগট গজগন মগদ গথপরভ না ডদয়া থাপরক ডজনয থামবপরনাআর াপরাটড গদপরয় গদন- add_theme_support( post-thumbnails )

এফায ওয়াডডপরেপরয কাপরযনট ডাসট কপরয়যী কযায ডকাড াঅয $result ডবগযপরয়ফপরর ডমফ ltdivgt টযাগ ফযফায কযা পরয়পরি তা jQuery Plugin গট একসিাকট কপরয indexhtml ডজগটয ডভাআন সলাাআডায ডকাডগট ডদখন একাআ াঅপরি রধ ডখানকায ltdivgt টযাগ গপররাপরক কগ কপরয এাআ পলাগগপরন ফযফায কযা পরয়পরি এফায টডপরকাড গদন- add_shortcode(np-shortcode np_function)

এাআ টডপরকাড গএাআচগ পাাংনপরক রক কযপরফ এফাং এয ভধয ডথপরক সলাাআডপরায কনপরটনট ডক গযটানড কযপরফ াঅভাপরদয টডপরকাড পরচছ [np-shortcode] াঅভযা পলাগগপরন মাাআ এফাং একগট িগফ মি কগয গপচাযড াআপরভজ গপরপরফ গনপরচ ডদখন-

63

াঅগভ াঅপরযকগট ডজ ততগয কপরযগি ডমখাপরন টডপরকাড গদপরয়গি

াঅউটট ডজ ডদগখ এফায-

64

পরয় ডগর াঅভাপরদয সলাাআডায পলাগগন পরযা ডকাডগট গনপরচ গদরাভ- ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

65

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

66

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

এফায াঅগন মগদ উাআপরজট গপরপরফ ফযফায কযপরত চান তাপরর গনপরচয ডকাডটক গদন- class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

67

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

echo $after_widget

াঅপরযা রগট কাজ কযপরত পরফ াঅনাপরক এক াআপরভজ াাআজ উাআপরজট এয জনয গঠক কপরয গদপরত পরফ- add_image_size(np_widget 180 100 true)

াঅপরযকগট র উাআপরজট এযাকন রক ডমাগ কযা add_action(widgets_init np_widgets_init)

উাআপরজট পরযা ডকাড াঅফায গদরাভ- ltphp

Plugin Name Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Ciprian Turcu

Version 10

68

class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

69

echo $after_widget

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

70

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(widgets_init np_widgets_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

71

পলাগগন গনপরয় এত ডিাট গযপরয ডরখা মভফ নয় এজনযাআ ভপরন য় পলাগগন গনপরয় ডকউ ডরপরখন না কাযন এখাপরন এত গফলয় াঅপরি মা াঅপররাচনা কযপরত ডগপরর ৫০০ ডজ ায পরয় মাপরফ ডফাোয সগফধাপরথড াঅগভ মথামভফ উদাযন গদপরয় ডফাোপরনায ডচষটা কপরযগি াঅগভ এখাপরন টাপরগডট কপরযগি মাযা টকটাক জাপরন পলাগগন মপপরকড এডবানস ডরপরবপররয নয় কাযন তাযা জাপরনন াঅভায উপরেশয গির মাযা জানপরত চায় তাপরদযপরক জানাপরনা এখাপরন ডমফ গফলয় াঅপররাচনা কযা পরয়পরি তা ডভাটাভগট ভাপরনয একগট পলাগগন ফানাপরনায জনয মপরথষট তপরফ ভাপরনাননয়পরনয জনয াঅনাপরক গনপরজাআ খাপরজ গনপরত পরফ াঅনায জনয ডকানটা বার পরফ াঅগভ রধ গদক গনপরদডনা গদরাভ ভাতর এাআ ফাআগট রধভাতর ওয়াডডপরে রেপরয জনয ডরখা াপরনক বর ভরাগনত থাকপরত াপরয াঅনাযা কষভাসনদয দগষটপরত ডদখপরফন াঅগভ ডচষটা কপরযগি মতটা জ কপরয ডরখা মায় াপরনক ভয় ডদখা মায় ডম খফ ডিাট খাপরটা গফলয় গনপরয় াপরনপরকাআ নক কপরযন এটা গতয রাঃখজনক াঅনাযা গগপরর একট খাজপররাআ ভাধান াপরফন াঅপরগ গনপরজ ডচষটা করন তায পরয ানযপরক ভাধাপরনয জনয গজজঞাা করন াঅভায জনয ডদায়া কযপরফন বাপররা রাগপরর জানাপরফন খাযা রাগপররও জানাপরফন তাপররাআ াঅভায গযশরভ সবাথডক পরফ ভতাভত জাগনপরয় াঅভাপরক ডভাআর কযপরত াপরযন litonice09gmailcom |

72

Page 46: Wordpress Plugin Development

47

ডগটাং এয াফ ডভন গপরপরফ My Plugin াঅপরি এফাং My Plugin ডত গিক কযপরর াঅভযা উপরযয ডজ ততগয কপরযগি ডমখাপরন াফগভট ফাটনগট ডদখাপরচছ এফায গতনগট যাযাগভটায ডযগজসটায কযফ- ltphp

register_setting( liton _myplugin_options liton _myplugin_options liton

_myplugin_validate_options)

gt

েথভগট ডগটাং রেপরয নাভ গিতীয়গট ান নাভ মা াঅভযা get_option() পাাংন গদপরয়ও ডপরত াগয ততীয়গট করফযাক পাাংন এগট একগট গসটরাং ডযপাপরযনস পাাংন এখাপরন াঅভযা নাভ

48

গদপরয়গি liton _myplugin_validate_options মা া কযপরফ পপরভডয কর ডব ডগটাং াঅভযা এটা পরয গডপাাআন কযফ

ডগটাং গডপাাআন ডকন add_settings_field() এফাং add_settings_section() পাাংন গদপরয় াঅভযা াঅভাপরদয কর ডগটাং গডপাাআন কযফ ltphp

add_settings_section( liton_myplugin_main My Plugin Settings

liton_myplugin_section_text liton _myplugin)

add_settings_field( liton _myplugin_text_string Enter text here

liton _myplugin_setting_input liton _myplugin liton _myplugin_main)

gt

add_settings_section() পাাংন গদপরয় াঅভযা ডদখাফ াঅপরর ডজ এ ডকন ডকভন ডদখাপরফ এয চাযগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ ডকন টাাআপরটর ltH3gt টযাপরগয ভপরধয করফযাক পাাংন এয নাভ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ (page= liton _myplugin এগট

URL এয াাং গপরপরফ থাকপরফ) গিতীয় যাযাগভটায add_settings_field() পপরভডয াআনট গপরপরফ ডদখাপরনা পরয়পরি এখাপরন াাচগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ পরযয গপপরলড গক গেনট কযা পরফ তা ডটকসট গপরপরফ ডদখাপরনা পরয়পরি(Enter text

here)

করফযাক পাাংন পপরভড গেনট কযপরফ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ ডগটাং ডপরজয ডকন গপলড মা add_settings_section() পাাংপরন গডপাাআন

কযা পরয়পরি ltphp

Explanations about this section

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

49

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton _myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name= liton _myplugin_options[text_string]

type=text value=$options[text_string] gt

gt

গিতীয় পাাংন ান বযার text_string ডক এযাপরযপরত ডসটায কপরয ডযপরখপরি এফায াআউজায াআনট বযাগরপরডট কযফ- ltphp

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace([^a-zA-Z]$input[text_string] )

return $valid

gt

পভডপরক ডযনডায কযফ- ltphp

Draw the options page

function liton_myplugin_options_page()

gt

ltdiv class=wrapgt

ltphp

screen_icon()

gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp

settings_fields( liton_myplugin_options)

do_settings_sections(liton_myplugin)

50

gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

settings_fields() পাাংনগট ডযপাপরযনস গপরপরফ ফযফায কযা পরয়পরি মা াঅভযা register_setting() পাাংপরন গডপরিয়ায কপরযগি do_settings_sections() পাাংনগট কর কযপরফ কর াঅউটট ডকন এফাং পভড গপলডপরক মা াঅভযা পরফড গডপাাআন কপরযগি াঅভাপরদয কাজ ডল এফায পরযা পলাগগনগট ডদখফ- ltphp

Plugin Name Settings API example

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

Draw the option page

function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save

Changes gt

ltformgtltdivgt

ltphp

51

Register and define the settings

add_action(admin_init liton_myplugin_admin_init)

function liton_myplugin_admin_init()

register_setting( liton_myplugin_options

liton_myplugin_options

liton_myplugin_validate_options )

add_settings_section( liton_myplugin_main My Plugin

Settings

liton_myplugin_section_text liton_myplugin )

add_settings_field( liton_myplugin_text_string Enter text

here

liton_myplugin_setting_input liton_myplugin

liton_myplugin_main )

Draw the section header

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton_myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name=liton_myplugin_options[text_string]

type=text value=$text_string gt

Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

return $valid

gt

52

ডদখন ডযাপরফাপরডড ডকভন ডদখায়-

পরয় ডগর াঅভাপরদয েথভ নডাাংগ পলাগগন ান ডজ াঅপরযকগট গজগন ডমটায জনয এতগকি পলাগগন URL এপরডর- httplocalhostdev-litonwp-adminoptions-

generalphppage=liton_mypluginampsettings-updated=true

াঅভায এখাপরন এযকভ ডদখাপরচছ ডটকসট ফপরকস ডকান গকি গরপরখ ডব কযায য এফাপরয াঅপরযকগট গজগন ডদখফ াঅভযা াপরনক ভয়াআ াপরনক পলাগগপরনয াআনট গপপরলড বর ডাটা াআনট কযপরর এযয ডভপরজ ডদখায় এাআ কাজগট কযফ এফায াঅভযা এখাপরন esc_attr() ফা esc_html() ফযফায কগযগন সতযাাং াঅভাপরদয গরগভপরটন থাকপরি ডবগরপরডট পাাংনগট একট এগডট কগয গনপরচয ভত কপরয Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

if( $valid[text_string] = $input[text_string] )

add_settings_error(liton_myplugin_text_stringliton_myplugin_texterror

53

Incorrect value enterederror)

return $valid

উপরয ডদখন add_settings_error() পাাংন ফযফায কপরযগি মা এযয ডচক কযপরফ পপরভডয াঅগভ একগট বর ডাটা(পরসপার কযাপরযকটায) াআনট কপরয ডদখরাভ এযয ডদখাপরচছ-

তায ভাপরন াঅভযা পর পরয়গি াঅনায পলাগগনগট এগডট কপরয ডনপরফন ডকায ডকন এফাং গপপরলডয গরসট গদরাভ াঅনাপরদয সগফধায জনয

54

CSSJS পাাআর মি কযা

াঅনায পলাগগপরন গএএ ফা জাবাগিে ডমাগ কযপরত পরত াপরয াঅগন চাাআপরর ফাগপরযয ডকান ফা াঅনায ততগয ডকান গএএ ফা জাবাগিে পাাআর ডমাগ কযপরত াপরযন তপরফ এপরকষপরতর াঅভযা ডমবাপরফ HTML এ পাাআর ডমাগ কগয ডযকভ না function liton_scripts()

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtojqueryjsrdquogtltscriptgt‟

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtoscriptjsrdquogtltscriptgt‟

add_action(bdquowp_head‟‟liton_scripts‟)

এগট মপনডরপর বর িগত গনপরচ ডদখন ওয়াডডপরেপর গকবাপরফ পাাআর মি কযপরত য়- function liton_scripts()

wp_enqueue_script(bdquojquery‟)

wp_enqueue_script(bdquotheme-scripts‟‟pathtoscriptsjs‟)

add_action(bdquowp_enqueue_script‟‟liton_scripts‟)

ানর বাপরফ াঅগন সটাাআরীট ডমাগ কযপরত াপরযন- function liton_styles()

wp_enqueue_ style (bdquocss‟)

wp_enqueue_ style (bdquotheme- styles‟pathto stylescss‟)

ডযপাপরযনস ডদখন- httpcodexwordpressorgFunction_Referencewp_enqueue_script

httpcodexwordpressorgFunction_Referencewp_enqueue_style

টডপরকাড টডপরকাড পরচছ ওয়াডডপরেপরয ডসপগগপক ডসপার টযাগ মা াঅগন ডাসট ফা ডপরজয ভপরধয াআনাটড কপরয ানয ডকান কনপরটনটপরক ওপরয়ফাাআপরটয ভপরধয গযপরপল কযপরত াযপরফন মগদ াঅগন গযারাগয টাাআপরয ডকান পলাগগন ফযফায কপরয থাপরকন তাপরর াঅনায ধাযনা থাকায কথা মাাআ ডাক াঅগভ কপরয়কগট উদাযি ডদখাফ

55

েথপরভ একগট পলাগগন ততগয কযফ ডমখাপরন add_shortcode() নাপরভয একগট পাাংন থাকপরফ এগট রগট যাযাগভটায েন কপরয েথভগট টডপরকাপরডয নাভ গিতীয়গট ডম পাাংনপরক কর কযপরফন ডগট াঅভযা একগট উদাযন ডদগখ- ltphp

Plugin Name Liton Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(litonhi)

function hi()

echo Hello World

gt

উপরয ডদখন খফ ডিাট গকনত াঅগন চাাআপরর এয ফযফায াপরনক গফসতত কযপরত াপরযন এখাপরন টডপরকাড নাভ পরচছ liton াঅয এগটপরক ডরখা য় এবাপরফ [liton] াঅভযা ডাপরসটয ভপরধয াআনাটড কপরয ডদগখ াঅউটট ডকভন ডদখায়-

এফায াঅউটট ডদগখ-

56

াঅভাপরদয ততগয কযা টডপরকাড পরবাপরফাআ কাজ কযপরি াঅপরযকগট উদাযন ডদখফ াঅনাযা াপরনপরকাআ গগর এডপরনস গনপরয় কাজ কপরযন াঅনাযা াপরনপরকাআ এডপরনস এয জনয পলাগগন ফযফায কপরযন গকনত চাাআপররাআ এাআ কাজগট াঅনাযা গনপরজয ভত কপরয াগজপরয় গনপরত াপরযন গগপররয কাপরি ফ ডাসট বযার ায়না াঅনাযা মাযা একসাটড াঅপরিন তাযা এটা বার কপরয জাপরনন তাাআ াপরনপরকাআ গগপররয ডকাড ফ ডপরজ ডদখাপরত চান না এজনয পলাগগন ফযফায কপরয রাব য়না কাযন পলাগগপরন জায়গা গপকসড থাপরক এপরত কপরয াঅগনডাং ও কভ য় াঅনাযা টডপরকাড ফযফায কপরয ডমপরকান জায়গায় এড ডদখাপরত াপরযন গনপরচ াঅগভ রগট টডপরকাড ততগয কপরযগি র‟ধযপরনয এড ডদখাপরনায জনয ltphp

Plugin Name Liton Adsense Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(adsense_468adsense_468_60)

add_shortcode(adsense_250adsense_250_250)

function adsense_468_60($atts)

return ltscript type=textjavascriptgtlt--

57

google_ad_client = ca-pub-0956247412222369

468x60 created 101510

google_ad_slot = 4372705450

google_ad_width = 468

google_ad_height = 60

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

function adsense_250_250($atts)

return ltscript type=textjavascriptgtlt--

google_ad_client = ca-pub-0956247412222369

250x250 created 81809

google_ad_slot = 9368091893

google_ad_width = 250

google_ad_height = 250

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

gt

একগট টডপরকাড ফযানায টাাআপরয জনয এফাং াঅপরযকগট ২৫০২৫০ াাআপরজয এফায ডাপরসট ডমপরকান একগট টডপরকাড াআনাটড করন ডমখাপরন াঅনায ডদখাপরনায েপরয়াজন ভপরন কপরযন াঅগভ রগট ডকাড ডটসট কপরয ডদখরাভ-

58

এফায াাআপরটয াঅউটট ডদগখ-

রগট এডাআ ডদখাপরচছ াঅপরযা াপরনক কাপরজ াঅগন টডপরকাড ফযফায কযপরত াপরযন ডযপাপরযনসাঃ httpcodexwordpressorgShortcode_API

59

াধযায়- নয়াঃ পলাগগন উদাযন

ওয়াডডপরেপরয ডডটটাাআভকপরভনট নামবায ফাাংরা কযায পলাগগন াঅভাপরক কপরয়কজন ফপররগিপররন ওয়াডডপরেপরয গডপলট ডডটটাাআভকপরভনট নামবায ফাাংরা য়না রযাাংগপরয়জ ফাাংরা কযায যও ডডটটাাআভকপরভনট নামবায গপররা াআাংপরযগজ ডথপরক মায় গনপরচয পলাগগনগট ফযফায কপরয ডদখপরত াপরযন- ltphp

Plugin Name Liton Bangla datetimecomment number

Plugin URI httpliton-onlinecomplugins

Description Bangla datetimecomment number

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

This function converts all english numbers to bangla number

function make_bangla_number($str)

$engNumber = array(1234567890)

$bangNumber = array( ১ ২ ৩ ৪ ৫ ৬ ৭ ৮ ৯ ০ ) $converted = str_replace($engNumber $bangNumber $str)

return $converted

add_filter( get_the_time make_bangla_number )

add_filter( the_date make_bangla_number )

add_filter( get_the_date make_bangla_number )

add_filter( comments_number make_bangla_number )

add_filter( get_comment_date make_bangla_number )

add_filter( get_comment_time make_bangla_number )

gt

60

সলাাআডায পলাগগন াঅভযা এাআ ফাআপরয়য কর গটউপরটাগযয়াপরর মা মা গখরাভ তা এফায একগট নডাাংগ পলাগগপরনয এপলাাআ কযফ সলাাআডায পলাগগন মপপরকড াঅভযা ফাাআ জাগন একগট ওপরয়ফাাআপরটয ডচাযা ারপরট ডদয় একগট সলাাআডায াপরনক ডাাআনাগভক ভপরন য় ডদখপরতও াপরনক বার রাপরগ এাআ পলাগগপরন াঅভযা এডগভন যাপরনর ডথপরক াআপরভজ ডমাগ কযফ এফাং তা াঅভাপরদয াাআপরট ডদখাফ চরন কাজ রর কগয- েথপরভ গনপরবা সলাাআডায এয ওপরয়ফাাআপরট মান এফাং jQuery Plugin ডাউনপররাড করন

ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom Version 10

gt

াঅভযা পলাগগপরনয ডডায ততগয কযরাভ

পলাগগন গরপরসট ডদখাপরচছ bdquoLitons Nivo Plugin‟ াঅভাপরদয েথভ কাজ পরচছ custom post

type ওয়াডডপরে পাাংনাগরগট একগট নতন কাসটভ ডজ ততগয কযপরত custom post type

ফযফহরত পরফ ডমখাপরন একগট াআপরভজ থাকপরফ াঅভযা রধ টাাআপরটর ডনভ এফাং াআপরভজ াঅপররাডায গপরপরফ গপচায াআপরভজ পাাংনাগরগট ফযফায কযফ function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_function 600 280 true)

61

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

add_action(init np_init)

উপরযয ডকাপরড np_init() পাাংনগট রক কপরযগি মা ডডায যান কযায াঅপরগ যান পরফ াঅয এজনয register_post_type() পাাংনপরক এয যাযাগভটায গদপরয় np_init() পাাংপরনয ডবতপরয মি কপরযগি এটা মগদ না কযতাভ তাপরর ldquoHeaders already sentrdquo ডভপরজ ডদখাত এাআ ডভপরজগটয াপরথ াপরনপরকাআ গযগচত াঅা কগয register_post_type() পাাংন গদপরয় াঅভযা াআপরভজ মি এফাং ভযাপরনজ কযফ ভরত াঅভযা একগট নতন custom post type ডমাগ কপরযগি np_images নাভ গদপরয় নতন custom post type ডক ডগটাং বযার গপরপরফ াঅযগপরভনট া কপরযগি $args ডবগযপরয়ফরগট ট ডরপরবর ডভন ততগয কপরয াঅপরগাআ ডদপরখগি পলাগগনগট এগকটপরবট কযপরর াঅভযা গনপরচয ভত ডদখপরত াফ-

এফায গিে এফাং সটাাআরীট ডক মি কযফ- add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

এফায রক কযা পাাংনগপররা গডপরিয়ায কগয- function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__) array( jquery ))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

62

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

উপরযয ডকাডগপররা নতন কপরয ফিডনা কযায গকি ডনাআ াঅপরগাআ wp_enqueue_style() এফাং wp_enqueue_script() মপপরকড ফরা পরয়পরি নতন াঅপরযকগট পাাআর ততগয করন একাআ গডপরযকটগযপরত scriptjs এফাং গনপরচয ডকাডটক গদন- jQuery(document)ready(function($)

$(slider)nivoSlider()

)

াআপরভজপরক গযাাআজ করন- add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

াঅভযা এাআ পলাগগনগটপরক উাআপরজট গপরপরফও ফযফায কযফ ডগট পরয ডদখফ াঅপরযকগট গজগন মগদ গথপরভ না ডদয়া থাপরক ডজনয থামবপরনাআর াপরাটড গদপরয় গদন- add_theme_support( post-thumbnails )

এফায ওয়াডডপরেপরয কাপরযনট ডাসট কপরয়যী কযায ডকাড াঅয $result ডবগযপরয়ফপরর ডমফ ltdivgt টযাগ ফযফায কযা পরয়পরি তা jQuery Plugin গট একসিাকট কপরয indexhtml ডজগটয ডভাআন সলাাআডায ডকাডগট ডদখন একাআ াঅপরি রধ ডখানকায ltdivgt টযাগ গপররাপরক কগ কপরয এাআ পলাগগপরন ফযফায কযা পরয়পরি এফায টডপরকাড গদন- add_shortcode(np-shortcode np_function)

এাআ টডপরকাড গএাআচগ পাাংনপরক রক কযপরফ এফাং এয ভধয ডথপরক সলাাআডপরায কনপরটনট ডক গযটানড কযপরফ াঅভাপরদয টডপরকাড পরচছ [np-shortcode] াঅভযা পলাগগপরন মাাআ এফাং একগট িগফ মি কগয গপচাযড াআপরভজ গপরপরফ গনপরচ ডদখন-

63

াঅগভ াঅপরযকগট ডজ ততগয কপরযগি ডমখাপরন টডপরকাড গদপরয়গি

াঅউটট ডজ ডদগখ এফায-

64

পরয় ডগর াঅভাপরদয সলাাআডায পলাগগন পরযা ডকাডগট গনপরচ গদরাভ- ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

65

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

66

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

এফায াঅগন মগদ উাআপরজট গপরপরফ ফযফায কযপরত চান তাপরর গনপরচয ডকাডটক গদন- class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

67

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

echo $after_widget

াঅপরযা রগট কাজ কযপরত পরফ াঅনাপরক এক াআপরভজ াাআজ উাআপরজট এয জনয গঠক কপরয গদপরত পরফ- add_image_size(np_widget 180 100 true)

াঅপরযকগট র উাআপরজট এযাকন রক ডমাগ কযা add_action(widgets_init np_widgets_init)

উাআপরজট পরযা ডকাড াঅফায গদরাভ- ltphp

Plugin Name Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Ciprian Turcu

Version 10

68

class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

69

echo $after_widget

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

70

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(widgets_init np_widgets_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

71

পলাগগন গনপরয় এত ডিাট গযপরয ডরখা মভফ নয় এজনযাআ ভপরন য় পলাগগন গনপরয় ডকউ ডরপরখন না কাযন এখাপরন এত গফলয় াঅপরি মা াঅপররাচনা কযপরত ডগপরর ৫০০ ডজ ায পরয় মাপরফ ডফাোয সগফধাপরথড াঅগভ মথামভফ উদাযন গদপরয় ডফাোপরনায ডচষটা কপরযগি াঅগভ এখাপরন টাপরগডট কপরযগি মাযা টকটাক জাপরন পলাগগন মপপরকড এডবানস ডরপরবপররয নয় কাযন তাযা জাপরনন াঅভায উপরেশয গির মাযা জানপরত চায় তাপরদযপরক জানাপরনা এখাপরন ডমফ গফলয় াঅপররাচনা কযা পরয়পরি তা ডভাটাভগট ভাপরনয একগট পলাগগন ফানাপরনায জনয মপরথষট তপরফ ভাপরনাননয়পরনয জনয াঅনাপরক গনপরজাআ খাপরজ গনপরত পরফ াঅনায জনয ডকানটা বার পরফ াঅগভ রধ গদক গনপরদডনা গদরাভ ভাতর এাআ ফাআগট রধভাতর ওয়াডডপরে রেপরয জনয ডরখা াপরনক বর ভরাগনত থাকপরত াপরয াঅনাযা কষভাসনদয দগষটপরত ডদখপরফন াঅগভ ডচষটা কপরযগি মতটা জ কপরয ডরখা মায় াপরনক ভয় ডদখা মায় ডম খফ ডিাট খাপরটা গফলয় গনপরয় াপরনপরকাআ নক কপরযন এটা গতয রাঃখজনক াঅনাযা গগপরর একট খাজপররাআ ভাধান াপরফন াঅপরগ গনপরজ ডচষটা করন তায পরয ানযপরক ভাধাপরনয জনয গজজঞাা করন াঅভায জনয ডদায়া কযপরফন বাপররা রাগপরর জানাপরফন খাযা রাগপররও জানাপরফন তাপররাআ াঅভায গযশরভ সবাথডক পরফ ভতাভত জাগনপরয় াঅভাপরক ডভাআর কযপরত াপরযন litonice09gmailcom |

72

Page 47: Wordpress Plugin Development

48

গদপরয়গি liton _myplugin_validate_options মা া কযপরফ পপরভডয কর ডব ডগটাং াঅভযা এটা পরয গডপাাআন কযফ

ডগটাং গডপাাআন ডকন add_settings_field() এফাং add_settings_section() পাাংন গদপরয় াঅভযা াঅভাপরদয কর ডগটাং গডপাাআন কযফ ltphp

add_settings_section( liton_myplugin_main My Plugin Settings

liton_myplugin_section_text liton _myplugin)

add_settings_field( liton _myplugin_text_string Enter text here

liton _myplugin_setting_input liton _myplugin liton _myplugin_main)

gt

add_settings_section() পাাংন গদপরয় াঅভযা ডদখাফ াঅপরর ডজ এ ডকন ডকভন ডদখাপরফ এয চাযগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ ডকন টাাআপরটর ltH3gt টযাপরগয ভপরধয করফযাক পাাংন এয নাভ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ (page= liton _myplugin এগট

URL এয াাং গপরপরফ থাকপরফ) গিতীয় যাযাগভটায add_settings_field() পপরভডয াআনট গপরপরফ ডদখাপরনা পরয়পরি এখাপরন াাচগট যাযাগভটায াঅপরি-

ডকপরনয জনয HTML ID টযাগ পরযয গপপরলড গক গেনট কযা পরফ তা ডটকসট গপরপরফ ডদখাপরনা পরয়পরি(Enter text

here)

করফযাক পাাংন পপরভড গেনট কযপরফ ডগটাং ডজ এয ডম ডকনগট ডদখাপরফ ডগটাং ডপরজয ডকন গপলড মা add_settings_section() পাাংপরন গডপাাআন

কযা পরয়পরি ltphp

Explanations about this section

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

49

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton _myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name= liton _myplugin_options[text_string]

type=text value=$options[text_string] gt

gt

গিতীয় পাাংন ান বযার text_string ডক এযাপরযপরত ডসটায কপরয ডযপরখপরি এফায াআউজায াআনট বযাগরপরডট কযফ- ltphp

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace([^a-zA-Z]$input[text_string] )

return $valid

gt

পভডপরক ডযনডায কযফ- ltphp

Draw the options page

function liton_myplugin_options_page()

gt

ltdiv class=wrapgt

ltphp

screen_icon()

gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp

settings_fields( liton_myplugin_options)

do_settings_sections(liton_myplugin)

50

gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

settings_fields() পাাংনগট ডযপাপরযনস গপরপরফ ফযফায কযা পরয়পরি মা াঅভযা register_setting() পাাংপরন গডপরিয়ায কপরযগি do_settings_sections() পাাংনগট কর কযপরফ কর াঅউটট ডকন এফাং পভড গপলডপরক মা াঅভযা পরফড গডপাাআন কপরযগি াঅভাপরদয কাজ ডল এফায পরযা পলাগগনগট ডদখফ- ltphp

Plugin Name Settings API example

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

Draw the option page

function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save

Changes gt

ltformgtltdivgt

ltphp

51

Register and define the settings

add_action(admin_init liton_myplugin_admin_init)

function liton_myplugin_admin_init()

register_setting( liton_myplugin_options

liton_myplugin_options

liton_myplugin_validate_options )

add_settings_section( liton_myplugin_main My Plugin

Settings

liton_myplugin_section_text liton_myplugin )

add_settings_field( liton_myplugin_text_string Enter text

here

liton_myplugin_setting_input liton_myplugin

liton_myplugin_main )

Draw the section header

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton_myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name=liton_myplugin_options[text_string]

type=text value=$text_string gt

Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

return $valid

gt

52

ডদখন ডযাপরফাপরডড ডকভন ডদখায়-

পরয় ডগর াঅভাপরদয েথভ নডাাংগ পলাগগন ান ডজ াঅপরযকগট গজগন ডমটায জনয এতগকি পলাগগন URL এপরডর- httplocalhostdev-litonwp-adminoptions-

generalphppage=liton_mypluginampsettings-updated=true

াঅভায এখাপরন এযকভ ডদখাপরচছ ডটকসট ফপরকস ডকান গকি গরপরখ ডব কযায য এফাপরয াঅপরযকগট গজগন ডদখফ াঅভযা াপরনক ভয়াআ াপরনক পলাগগপরনয াআনট গপপরলড বর ডাটা াআনট কযপরর এযয ডভপরজ ডদখায় এাআ কাজগট কযফ এফায াঅভযা এখাপরন esc_attr() ফা esc_html() ফযফায কগযগন সতযাাং াঅভাপরদয গরগভপরটন থাকপরি ডবগরপরডট পাাংনগট একট এগডট কগয গনপরচয ভত কপরয Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

if( $valid[text_string] = $input[text_string] )

add_settings_error(liton_myplugin_text_stringliton_myplugin_texterror

53

Incorrect value enterederror)

return $valid

উপরয ডদখন add_settings_error() পাাংন ফযফায কপরযগি মা এযয ডচক কযপরফ পপরভডয াঅগভ একগট বর ডাটা(পরসপার কযাপরযকটায) াআনট কপরয ডদখরাভ এযয ডদখাপরচছ-

তায ভাপরন াঅভযা পর পরয়গি াঅনায পলাগগনগট এগডট কপরয ডনপরফন ডকায ডকন এফাং গপপরলডয গরসট গদরাভ াঅনাপরদয সগফধায জনয

54

CSSJS পাাআর মি কযা

াঅনায পলাগগপরন গএএ ফা জাবাগিে ডমাগ কযপরত পরত াপরয াঅগন চাাআপরর ফাগপরযয ডকান ফা াঅনায ততগয ডকান গএএ ফা জাবাগিে পাাআর ডমাগ কযপরত াপরযন তপরফ এপরকষপরতর াঅভযা ডমবাপরফ HTML এ পাাআর ডমাগ কগয ডযকভ না function liton_scripts()

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtojqueryjsrdquogtltscriptgt‟

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtoscriptjsrdquogtltscriptgt‟

add_action(bdquowp_head‟‟liton_scripts‟)

এগট মপনডরপর বর িগত গনপরচ ডদখন ওয়াডডপরেপর গকবাপরফ পাাআর মি কযপরত য়- function liton_scripts()

wp_enqueue_script(bdquojquery‟)

wp_enqueue_script(bdquotheme-scripts‟‟pathtoscriptsjs‟)

add_action(bdquowp_enqueue_script‟‟liton_scripts‟)

ানর বাপরফ াঅগন সটাাআরীট ডমাগ কযপরত াপরযন- function liton_styles()

wp_enqueue_ style (bdquocss‟)

wp_enqueue_ style (bdquotheme- styles‟pathto stylescss‟)

ডযপাপরযনস ডদখন- httpcodexwordpressorgFunction_Referencewp_enqueue_script

httpcodexwordpressorgFunction_Referencewp_enqueue_style

টডপরকাড টডপরকাড পরচছ ওয়াডডপরেপরয ডসপগগপক ডসপার টযাগ মা াঅগন ডাসট ফা ডপরজয ভপরধয াআনাটড কপরয ানয ডকান কনপরটনটপরক ওপরয়ফাাআপরটয ভপরধয গযপরপল কযপরত াযপরফন মগদ াঅগন গযারাগয টাাআপরয ডকান পলাগগন ফযফায কপরয থাপরকন তাপরর াঅনায ধাযনা থাকায কথা মাাআ ডাক াঅগভ কপরয়কগট উদাযি ডদখাফ

55

েথপরভ একগট পলাগগন ততগয কযফ ডমখাপরন add_shortcode() নাপরভয একগট পাাংন থাকপরফ এগট রগট যাযাগভটায েন কপরয েথভগট টডপরকাপরডয নাভ গিতীয়গট ডম পাাংনপরক কর কযপরফন ডগট াঅভযা একগট উদাযন ডদগখ- ltphp

Plugin Name Liton Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(litonhi)

function hi()

echo Hello World

gt

উপরয ডদখন খফ ডিাট গকনত াঅগন চাাআপরর এয ফযফায াপরনক গফসতত কযপরত াপরযন এখাপরন টডপরকাড নাভ পরচছ liton াঅয এগটপরক ডরখা য় এবাপরফ [liton] াঅভযা ডাপরসটয ভপরধয াআনাটড কপরয ডদগখ াঅউটট ডকভন ডদখায়-

এফায াঅউটট ডদগখ-

56

াঅভাপরদয ততগয কযা টডপরকাড পরবাপরফাআ কাজ কযপরি াঅপরযকগট উদাযন ডদখফ াঅনাযা াপরনপরকাআ গগর এডপরনস গনপরয় কাজ কপরযন াঅনাযা াপরনপরকাআ এডপরনস এয জনয পলাগগন ফযফায কপরযন গকনত চাাআপররাআ এাআ কাজগট াঅনাযা গনপরজয ভত কপরয াগজপরয় গনপরত াপরযন গগপররয কাপরি ফ ডাসট বযার ায়না াঅনাযা মাযা একসাটড াঅপরিন তাযা এটা বার কপরয জাপরনন তাাআ াপরনপরকাআ গগপররয ডকাড ফ ডপরজ ডদখাপরত চান না এজনয পলাগগন ফযফায কপরয রাব য়না কাযন পলাগগপরন জায়গা গপকসড থাপরক এপরত কপরয াঅগনডাং ও কভ য় াঅনাযা টডপরকাড ফযফায কপরয ডমপরকান জায়গায় এড ডদখাপরত াপরযন গনপরচ াঅগভ রগট টডপরকাড ততগয কপরযগি র‟ধযপরনয এড ডদখাপরনায জনয ltphp

Plugin Name Liton Adsense Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(adsense_468adsense_468_60)

add_shortcode(adsense_250adsense_250_250)

function adsense_468_60($atts)

return ltscript type=textjavascriptgtlt--

57

google_ad_client = ca-pub-0956247412222369

468x60 created 101510

google_ad_slot = 4372705450

google_ad_width = 468

google_ad_height = 60

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

function adsense_250_250($atts)

return ltscript type=textjavascriptgtlt--

google_ad_client = ca-pub-0956247412222369

250x250 created 81809

google_ad_slot = 9368091893

google_ad_width = 250

google_ad_height = 250

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

gt

একগট টডপরকাড ফযানায টাাআপরয জনয এফাং াঅপরযকগট ২৫০২৫০ াাআপরজয এফায ডাপরসট ডমপরকান একগট টডপরকাড াআনাটড করন ডমখাপরন াঅনায ডদখাপরনায েপরয়াজন ভপরন কপরযন াঅগভ রগট ডকাড ডটসট কপরয ডদখরাভ-

58

এফায াাআপরটয াঅউটট ডদগখ-

রগট এডাআ ডদখাপরচছ াঅপরযা াপরনক কাপরজ াঅগন টডপরকাড ফযফায কযপরত াপরযন ডযপাপরযনসাঃ httpcodexwordpressorgShortcode_API

59

াধযায়- নয়াঃ পলাগগন উদাযন

ওয়াডডপরেপরয ডডটটাাআভকপরভনট নামবায ফাাংরা কযায পলাগগন াঅভাপরক কপরয়কজন ফপররগিপররন ওয়াডডপরেপরয গডপলট ডডটটাাআভকপরভনট নামবায ফাাংরা য়না রযাাংগপরয়জ ফাাংরা কযায যও ডডটটাাআভকপরভনট নামবায গপররা াআাংপরযগজ ডথপরক মায় গনপরচয পলাগগনগট ফযফায কপরয ডদখপরত াপরযন- ltphp

Plugin Name Liton Bangla datetimecomment number

Plugin URI httpliton-onlinecomplugins

Description Bangla datetimecomment number

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

This function converts all english numbers to bangla number

function make_bangla_number($str)

$engNumber = array(1234567890)

$bangNumber = array( ১ ২ ৩ ৪ ৫ ৬ ৭ ৮ ৯ ০ ) $converted = str_replace($engNumber $bangNumber $str)

return $converted

add_filter( get_the_time make_bangla_number )

add_filter( the_date make_bangla_number )

add_filter( get_the_date make_bangla_number )

add_filter( comments_number make_bangla_number )

add_filter( get_comment_date make_bangla_number )

add_filter( get_comment_time make_bangla_number )

gt

60

সলাাআডায পলাগগন াঅভযা এাআ ফাআপরয়য কর গটউপরটাগযয়াপরর মা মা গখরাভ তা এফায একগট নডাাংগ পলাগগপরনয এপলাাআ কযফ সলাাআডায পলাগগন মপপরকড াঅভযা ফাাআ জাগন একগট ওপরয়ফাাআপরটয ডচাযা ারপরট ডদয় একগট সলাাআডায াপরনক ডাাআনাগভক ভপরন য় ডদখপরতও াপরনক বার রাপরগ এাআ পলাগগপরন াঅভযা এডগভন যাপরনর ডথপরক াআপরভজ ডমাগ কযফ এফাং তা াঅভাপরদয াাআপরট ডদখাফ চরন কাজ রর কগয- েথপরভ গনপরবা সলাাআডায এয ওপরয়ফাাআপরট মান এফাং jQuery Plugin ডাউনপররাড করন

ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom Version 10

gt

াঅভযা পলাগগপরনয ডডায ততগয কযরাভ

পলাগগন গরপরসট ডদখাপরচছ bdquoLitons Nivo Plugin‟ াঅভাপরদয েথভ কাজ পরচছ custom post

type ওয়াডডপরে পাাংনাগরগট একগট নতন কাসটভ ডজ ততগয কযপরত custom post type

ফযফহরত পরফ ডমখাপরন একগট াআপরভজ থাকপরফ াঅভযা রধ টাাআপরটর ডনভ এফাং াআপরভজ াঅপররাডায গপরপরফ গপচায াআপরভজ পাাংনাগরগট ফযফায কযফ function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_function 600 280 true)

61

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

add_action(init np_init)

উপরযয ডকাপরড np_init() পাাংনগট রক কপরযগি মা ডডায যান কযায াঅপরগ যান পরফ াঅয এজনয register_post_type() পাাংনপরক এয যাযাগভটায গদপরয় np_init() পাাংপরনয ডবতপরয মি কপরযগি এটা মগদ না কযতাভ তাপরর ldquoHeaders already sentrdquo ডভপরজ ডদখাত এাআ ডভপরজগটয াপরথ াপরনপরকাআ গযগচত াঅা কগয register_post_type() পাাংন গদপরয় াঅভযা াআপরভজ মি এফাং ভযাপরনজ কযফ ভরত াঅভযা একগট নতন custom post type ডমাগ কপরযগি np_images নাভ গদপরয় নতন custom post type ডক ডগটাং বযার গপরপরফ াঅযগপরভনট া কপরযগি $args ডবগযপরয়ফরগট ট ডরপরবর ডভন ততগয কপরয াঅপরগাআ ডদপরখগি পলাগগনগট এগকটপরবট কযপরর াঅভযা গনপরচয ভত ডদখপরত াফ-

এফায গিে এফাং সটাাআরীট ডক মি কযফ- add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

এফায রক কযা পাাংনগপররা গডপরিয়ায কগয- function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__) array( jquery ))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

62

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

উপরযয ডকাডগপররা নতন কপরয ফিডনা কযায গকি ডনাআ াঅপরগাআ wp_enqueue_style() এফাং wp_enqueue_script() মপপরকড ফরা পরয়পরি নতন াঅপরযকগট পাাআর ততগয করন একাআ গডপরযকটগযপরত scriptjs এফাং গনপরচয ডকাডটক গদন- jQuery(document)ready(function($)

$(slider)nivoSlider()

)

াআপরভজপরক গযাাআজ করন- add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

াঅভযা এাআ পলাগগনগটপরক উাআপরজট গপরপরফও ফযফায কযফ ডগট পরয ডদখফ াঅপরযকগট গজগন মগদ গথপরভ না ডদয়া থাপরক ডজনয থামবপরনাআর াপরাটড গদপরয় গদন- add_theme_support( post-thumbnails )

এফায ওয়াডডপরেপরয কাপরযনট ডাসট কপরয়যী কযায ডকাড াঅয $result ডবগযপরয়ফপরর ডমফ ltdivgt টযাগ ফযফায কযা পরয়পরি তা jQuery Plugin গট একসিাকট কপরয indexhtml ডজগটয ডভাআন সলাাআডায ডকাডগট ডদখন একাআ াঅপরি রধ ডখানকায ltdivgt টযাগ গপররাপরক কগ কপরয এাআ পলাগগপরন ফযফায কযা পরয়পরি এফায টডপরকাড গদন- add_shortcode(np-shortcode np_function)

এাআ টডপরকাড গএাআচগ পাাংনপরক রক কযপরফ এফাং এয ভধয ডথপরক সলাাআডপরায কনপরটনট ডক গযটানড কযপরফ াঅভাপরদয টডপরকাড পরচছ [np-shortcode] াঅভযা পলাগগপরন মাাআ এফাং একগট িগফ মি কগয গপচাযড াআপরভজ গপরপরফ গনপরচ ডদখন-

63

াঅগভ াঅপরযকগট ডজ ততগয কপরযগি ডমখাপরন টডপরকাড গদপরয়গি

াঅউটট ডজ ডদগখ এফায-

64

পরয় ডগর াঅভাপরদয সলাাআডায পলাগগন পরযা ডকাডগট গনপরচ গদরাভ- ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

65

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

66

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

এফায াঅগন মগদ উাআপরজট গপরপরফ ফযফায কযপরত চান তাপরর গনপরচয ডকাডটক গদন- class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

67

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

echo $after_widget

াঅপরযা রগট কাজ কযপরত পরফ াঅনাপরক এক াআপরভজ াাআজ উাআপরজট এয জনয গঠক কপরয গদপরত পরফ- add_image_size(np_widget 180 100 true)

াঅপরযকগট র উাআপরজট এযাকন রক ডমাগ কযা add_action(widgets_init np_widgets_init)

উাআপরজট পরযা ডকাড াঅফায গদরাভ- ltphp

Plugin Name Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Ciprian Turcu

Version 10

68

class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

69

echo $after_widget

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

70

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(widgets_init np_widgets_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

71

পলাগগন গনপরয় এত ডিাট গযপরয ডরখা মভফ নয় এজনযাআ ভপরন য় পলাগগন গনপরয় ডকউ ডরপরখন না কাযন এখাপরন এত গফলয় াঅপরি মা াঅপররাচনা কযপরত ডগপরর ৫০০ ডজ ায পরয় মাপরফ ডফাোয সগফধাপরথড াঅগভ মথামভফ উদাযন গদপরয় ডফাোপরনায ডচষটা কপরযগি াঅগভ এখাপরন টাপরগডট কপরযগি মাযা টকটাক জাপরন পলাগগন মপপরকড এডবানস ডরপরবপররয নয় কাযন তাযা জাপরনন াঅভায উপরেশয গির মাযা জানপরত চায় তাপরদযপরক জানাপরনা এখাপরন ডমফ গফলয় াঅপররাচনা কযা পরয়পরি তা ডভাটাভগট ভাপরনয একগট পলাগগন ফানাপরনায জনয মপরথষট তপরফ ভাপরনাননয়পরনয জনয াঅনাপরক গনপরজাআ খাপরজ গনপরত পরফ াঅনায জনয ডকানটা বার পরফ াঅগভ রধ গদক গনপরদডনা গদরাভ ভাতর এাআ ফাআগট রধভাতর ওয়াডডপরে রেপরয জনয ডরখা াপরনক বর ভরাগনত থাকপরত াপরয াঅনাযা কষভাসনদয দগষটপরত ডদখপরফন াঅগভ ডচষটা কপরযগি মতটা জ কপরয ডরখা মায় াপরনক ভয় ডদখা মায় ডম খফ ডিাট খাপরটা গফলয় গনপরয় াপরনপরকাআ নক কপরযন এটা গতয রাঃখজনক াঅনাযা গগপরর একট খাজপররাআ ভাধান াপরফন াঅপরগ গনপরজ ডচষটা করন তায পরয ানযপরক ভাধাপরনয জনয গজজঞাা করন াঅভায জনয ডদায়া কযপরফন বাপররা রাগপরর জানাপরফন খাযা রাগপররও জানাপরফন তাপররাআ াঅভায গযশরভ সবাথডক পরফ ভতাভত জাগনপরয় াঅভাপরক ডভাআর কযপরত াপরযন litonice09gmailcom |

72

Page 48: Wordpress Plugin Development

49

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton _myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name= liton _myplugin_options[text_string]

type=text value=$options[text_string] gt

gt

গিতীয় পাাংন ান বযার text_string ডক এযাপরযপরত ডসটায কপরয ডযপরখপরি এফায াআউজায াআনট বযাগরপরডট কযফ- ltphp

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace([^a-zA-Z]$input[text_string] )

return $valid

gt

পভডপরক ডযনডায কযফ- ltphp

Draw the options page

function liton_myplugin_options_page()

gt

ltdiv class=wrapgt

ltphp

screen_icon()

gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp

settings_fields( liton_myplugin_options)

do_settings_sections(liton_myplugin)

50

gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

settings_fields() পাাংনগট ডযপাপরযনস গপরপরফ ফযফায কযা পরয়পরি মা াঅভযা register_setting() পাাংপরন গডপরিয়ায কপরযগি do_settings_sections() পাাংনগট কর কযপরফ কর াঅউটট ডকন এফাং পভড গপলডপরক মা াঅভযা পরফড গডপাাআন কপরযগি াঅভাপরদয কাজ ডল এফায পরযা পলাগগনগট ডদখফ- ltphp

Plugin Name Settings API example

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

Draw the option page

function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save

Changes gt

ltformgtltdivgt

ltphp

51

Register and define the settings

add_action(admin_init liton_myplugin_admin_init)

function liton_myplugin_admin_init()

register_setting( liton_myplugin_options

liton_myplugin_options

liton_myplugin_validate_options )

add_settings_section( liton_myplugin_main My Plugin

Settings

liton_myplugin_section_text liton_myplugin )

add_settings_field( liton_myplugin_text_string Enter text

here

liton_myplugin_setting_input liton_myplugin

liton_myplugin_main )

Draw the section header

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton_myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name=liton_myplugin_options[text_string]

type=text value=$text_string gt

Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

return $valid

gt

52

ডদখন ডযাপরফাপরডড ডকভন ডদখায়-

পরয় ডগর াঅভাপরদয েথভ নডাাংগ পলাগগন ান ডজ াঅপরযকগট গজগন ডমটায জনয এতগকি পলাগগন URL এপরডর- httplocalhostdev-litonwp-adminoptions-

generalphppage=liton_mypluginampsettings-updated=true

াঅভায এখাপরন এযকভ ডদখাপরচছ ডটকসট ফপরকস ডকান গকি গরপরখ ডব কযায য এফাপরয াঅপরযকগট গজগন ডদখফ াঅভযা াপরনক ভয়াআ াপরনক পলাগগপরনয াআনট গপপরলড বর ডাটা াআনট কযপরর এযয ডভপরজ ডদখায় এাআ কাজগট কযফ এফায াঅভযা এখাপরন esc_attr() ফা esc_html() ফযফায কগযগন সতযাাং াঅভাপরদয গরগভপরটন থাকপরি ডবগরপরডট পাাংনগট একট এগডট কগয গনপরচয ভত কপরয Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

if( $valid[text_string] = $input[text_string] )

add_settings_error(liton_myplugin_text_stringliton_myplugin_texterror

53

Incorrect value enterederror)

return $valid

উপরয ডদখন add_settings_error() পাাংন ফযফায কপরযগি মা এযয ডচক কযপরফ পপরভডয াঅগভ একগট বর ডাটা(পরসপার কযাপরযকটায) াআনট কপরয ডদখরাভ এযয ডদখাপরচছ-

তায ভাপরন াঅভযা পর পরয়গি াঅনায পলাগগনগট এগডট কপরয ডনপরফন ডকায ডকন এফাং গপপরলডয গরসট গদরাভ াঅনাপরদয সগফধায জনয

54

CSSJS পাাআর মি কযা

াঅনায পলাগগপরন গএএ ফা জাবাগিে ডমাগ কযপরত পরত াপরয াঅগন চাাআপরর ফাগপরযয ডকান ফা াঅনায ততগয ডকান গএএ ফা জাবাগিে পাাআর ডমাগ কযপরত াপরযন তপরফ এপরকষপরতর াঅভযা ডমবাপরফ HTML এ পাাআর ডমাগ কগয ডযকভ না function liton_scripts()

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtojqueryjsrdquogtltscriptgt‟

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtoscriptjsrdquogtltscriptgt‟

add_action(bdquowp_head‟‟liton_scripts‟)

এগট মপনডরপর বর িগত গনপরচ ডদখন ওয়াডডপরেপর গকবাপরফ পাাআর মি কযপরত য়- function liton_scripts()

wp_enqueue_script(bdquojquery‟)

wp_enqueue_script(bdquotheme-scripts‟‟pathtoscriptsjs‟)

add_action(bdquowp_enqueue_script‟‟liton_scripts‟)

ানর বাপরফ াঅগন সটাাআরীট ডমাগ কযপরত াপরযন- function liton_styles()

wp_enqueue_ style (bdquocss‟)

wp_enqueue_ style (bdquotheme- styles‟pathto stylescss‟)

ডযপাপরযনস ডদখন- httpcodexwordpressorgFunction_Referencewp_enqueue_script

httpcodexwordpressorgFunction_Referencewp_enqueue_style

টডপরকাড টডপরকাড পরচছ ওয়াডডপরেপরয ডসপগগপক ডসপার টযাগ মা াঅগন ডাসট ফা ডপরজয ভপরধয াআনাটড কপরয ানয ডকান কনপরটনটপরক ওপরয়ফাাআপরটয ভপরধয গযপরপল কযপরত াযপরফন মগদ াঅগন গযারাগয টাাআপরয ডকান পলাগগন ফযফায কপরয থাপরকন তাপরর াঅনায ধাযনা থাকায কথা মাাআ ডাক াঅগভ কপরয়কগট উদাযি ডদখাফ

55

েথপরভ একগট পলাগগন ততগয কযফ ডমখাপরন add_shortcode() নাপরভয একগট পাাংন থাকপরফ এগট রগট যাযাগভটায েন কপরয েথভগট টডপরকাপরডয নাভ গিতীয়গট ডম পাাংনপরক কর কযপরফন ডগট াঅভযা একগট উদাযন ডদগখ- ltphp

Plugin Name Liton Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(litonhi)

function hi()

echo Hello World

gt

উপরয ডদখন খফ ডিাট গকনত াঅগন চাাআপরর এয ফযফায াপরনক গফসতত কযপরত াপরযন এখাপরন টডপরকাড নাভ পরচছ liton াঅয এগটপরক ডরখা য় এবাপরফ [liton] াঅভযা ডাপরসটয ভপরধয াআনাটড কপরয ডদগখ াঅউটট ডকভন ডদখায়-

এফায াঅউটট ডদগখ-

56

াঅভাপরদয ততগয কযা টডপরকাড পরবাপরফাআ কাজ কযপরি াঅপরযকগট উদাযন ডদখফ াঅনাযা াপরনপরকাআ গগর এডপরনস গনপরয় কাজ কপরযন াঅনাযা াপরনপরকাআ এডপরনস এয জনয পলাগগন ফযফায কপরযন গকনত চাাআপররাআ এাআ কাজগট াঅনাযা গনপরজয ভত কপরয াগজপরয় গনপরত াপরযন গগপররয কাপরি ফ ডাসট বযার ায়না াঅনাযা মাযা একসাটড াঅপরিন তাযা এটা বার কপরয জাপরনন তাাআ াপরনপরকাআ গগপররয ডকাড ফ ডপরজ ডদখাপরত চান না এজনয পলাগগন ফযফায কপরয রাব য়না কাযন পলাগগপরন জায়গা গপকসড থাপরক এপরত কপরয াঅগনডাং ও কভ য় াঅনাযা টডপরকাড ফযফায কপরয ডমপরকান জায়গায় এড ডদখাপরত াপরযন গনপরচ াঅগভ রগট টডপরকাড ততগয কপরযগি র‟ধযপরনয এড ডদখাপরনায জনয ltphp

Plugin Name Liton Adsense Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(adsense_468adsense_468_60)

add_shortcode(adsense_250adsense_250_250)

function adsense_468_60($atts)

return ltscript type=textjavascriptgtlt--

57

google_ad_client = ca-pub-0956247412222369

468x60 created 101510

google_ad_slot = 4372705450

google_ad_width = 468

google_ad_height = 60

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

function adsense_250_250($atts)

return ltscript type=textjavascriptgtlt--

google_ad_client = ca-pub-0956247412222369

250x250 created 81809

google_ad_slot = 9368091893

google_ad_width = 250

google_ad_height = 250

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

gt

একগট টডপরকাড ফযানায টাাআপরয জনয এফাং াঅপরযকগট ২৫০২৫০ াাআপরজয এফায ডাপরসট ডমপরকান একগট টডপরকাড াআনাটড করন ডমখাপরন াঅনায ডদখাপরনায েপরয়াজন ভপরন কপরযন াঅগভ রগট ডকাড ডটসট কপরয ডদখরাভ-

58

এফায াাআপরটয াঅউটট ডদগখ-

রগট এডাআ ডদখাপরচছ াঅপরযা াপরনক কাপরজ াঅগন টডপরকাড ফযফায কযপরত াপরযন ডযপাপরযনসাঃ httpcodexwordpressorgShortcode_API

59

াধযায়- নয়াঃ পলাগগন উদাযন

ওয়াডডপরেপরয ডডটটাাআভকপরভনট নামবায ফাাংরা কযায পলাগগন াঅভাপরক কপরয়কজন ফপররগিপররন ওয়াডডপরেপরয গডপলট ডডটটাাআভকপরভনট নামবায ফাাংরা য়না রযাাংগপরয়জ ফাাংরা কযায যও ডডটটাাআভকপরভনট নামবায গপররা াআাংপরযগজ ডথপরক মায় গনপরচয পলাগগনগট ফযফায কপরয ডদখপরত াপরযন- ltphp

Plugin Name Liton Bangla datetimecomment number

Plugin URI httpliton-onlinecomplugins

Description Bangla datetimecomment number

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

This function converts all english numbers to bangla number

function make_bangla_number($str)

$engNumber = array(1234567890)

$bangNumber = array( ১ ২ ৩ ৪ ৫ ৬ ৭ ৮ ৯ ০ ) $converted = str_replace($engNumber $bangNumber $str)

return $converted

add_filter( get_the_time make_bangla_number )

add_filter( the_date make_bangla_number )

add_filter( get_the_date make_bangla_number )

add_filter( comments_number make_bangla_number )

add_filter( get_comment_date make_bangla_number )

add_filter( get_comment_time make_bangla_number )

gt

60

সলাাআডায পলাগগন াঅভযা এাআ ফাআপরয়য কর গটউপরটাগযয়াপরর মা মা গখরাভ তা এফায একগট নডাাংগ পলাগগপরনয এপলাাআ কযফ সলাাআডায পলাগগন মপপরকড াঅভযা ফাাআ জাগন একগট ওপরয়ফাাআপরটয ডচাযা ারপরট ডদয় একগট সলাাআডায াপরনক ডাাআনাগভক ভপরন য় ডদখপরতও াপরনক বার রাপরগ এাআ পলাগগপরন াঅভযা এডগভন যাপরনর ডথপরক াআপরভজ ডমাগ কযফ এফাং তা াঅভাপরদয াাআপরট ডদখাফ চরন কাজ রর কগয- েথপরভ গনপরবা সলাাআডায এয ওপরয়ফাাআপরট মান এফাং jQuery Plugin ডাউনপররাড করন

ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom Version 10

gt

াঅভযা পলাগগপরনয ডডায ততগয কযরাভ

পলাগগন গরপরসট ডদখাপরচছ bdquoLitons Nivo Plugin‟ াঅভাপরদয েথভ কাজ পরচছ custom post

type ওয়াডডপরে পাাংনাগরগট একগট নতন কাসটভ ডজ ততগয কযপরত custom post type

ফযফহরত পরফ ডমখাপরন একগট াআপরভজ থাকপরফ াঅভযা রধ টাাআপরটর ডনভ এফাং াআপরভজ াঅপররাডায গপরপরফ গপচায াআপরভজ পাাংনাগরগট ফযফায কযফ function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_function 600 280 true)

61

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

add_action(init np_init)

উপরযয ডকাপরড np_init() পাাংনগট রক কপরযগি মা ডডায যান কযায াঅপরগ যান পরফ াঅয এজনয register_post_type() পাাংনপরক এয যাযাগভটায গদপরয় np_init() পাাংপরনয ডবতপরয মি কপরযগি এটা মগদ না কযতাভ তাপরর ldquoHeaders already sentrdquo ডভপরজ ডদখাত এাআ ডভপরজগটয াপরথ াপরনপরকাআ গযগচত াঅা কগয register_post_type() পাাংন গদপরয় াঅভযা াআপরভজ মি এফাং ভযাপরনজ কযফ ভরত াঅভযা একগট নতন custom post type ডমাগ কপরযগি np_images নাভ গদপরয় নতন custom post type ডক ডগটাং বযার গপরপরফ াঅযগপরভনট া কপরযগি $args ডবগযপরয়ফরগট ট ডরপরবর ডভন ততগয কপরয াঅপরগাআ ডদপরখগি পলাগগনগট এগকটপরবট কযপরর াঅভযা গনপরচয ভত ডদখপরত াফ-

এফায গিে এফাং সটাাআরীট ডক মি কযফ- add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

এফায রক কযা পাাংনগপররা গডপরিয়ায কগয- function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__) array( jquery ))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

62

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

উপরযয ডকাডগপররা নতন কপরয ফিডনা কযায গকি ডনাআ াঅপরগাআ wp_enqueue_style() এফাং wp_enqueue_script() মপপরকড ফরা পরয়পরি নতন াঅপরযকগট পাাআর ততগয করন একাআ গডপরযকটগযপরত scriptjs এফাং গনপরচয ডকাডটক গদন- jQuery(document)ready(function($)

$(slider)nivoSlider()

)

াআপরভজপরক গযাাআজ করন- add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

াঅভযা এাআ পলাগগনগটপরক উাআপরজট গপরপরফও ফযফায কযফ ডগট পরয ডদখফ াঅপরযকগট গজগন মগদ গথপরভ না ডদয়া থাপরক ডজনয থামবপরনাআর াপরাটড গদপরয় গদন- add_theme_support( post-thumbnails )

এফায ওয়াডডপরেপরয কাপরযনট ডাসট কপরয়যী কযায ডকাড াঅয $result ডবগযপরয়ফপরর ডমফ ltdivgt টযাগ ফযফায কযা পরয়পরি তা jQuery Plugin গট একসিাকট কপরয indexhtml ডজগটয ডভাআন সলাাআডায ডকাডগট ডদখন একাআ াঅপরি রধ ডখানকায ltdivgt টযাগ গপররাপরক কগ কপরয এাআ পলাগগপরন ফযফায কযা পরয়পরি এফায টডপরকাড গদন- add_shortcode(np-shortcode np_function)

এাআ টডপরকাড গএাআচগ পাাংনপরক রক কযপরফ এফাং এয ভধয ডথপরক সলাাআডপরায কনপরটনট ডক গযটানড কযপরফ াঅভাপরদয টডপরকাড পরচছ [np-shortcode] াঅভযা পলাগগপরন মাাআ এফাং একগট িগফ মি কগয গপচাযড াআপরভজ গপরপরফ গনপরচ ডদখন-

63

াঅগভ াঅপরযকগট ডজ ততগয কপরযগি ডমখাপরন টডপরকাড গদপরয়গি

াঅউটট ডজ ডদগখ এফায-

64

পরয় ডগর াঅভাপরদয সলাাআডায পলাগগন পরযা ডকাডগট গনপরচ গদরাভ- ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

65

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

66

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

এফায াঅগন মগদ উাআপরজট গপরপরফ ফযফায কযপরত চান তাপরর গনপরচয ডকাডটক গদন- class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

67

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

echo $after_widget

াঅপরযা রগট কাজ কযপরত পরফ াঅনাপরক এক াআপরভজ াাআজ উাআপরজট এয জনয গঠক কপরয গদপরত পরফ- add_image_size(np_widget 180 100 true)

াঅপরযকগট র উাআপরজট এযাকন রক ডমাগ কযা add_action(widgets_init np_widgets_init)

উাআপরজট পরযা ডকাড াঅফায গদরাভ- ltphp

Plugin Name Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Ciprian Turcu

Version 10

68

class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

69

echo $after_widget

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

70

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(widgets_init np_widgets_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

71

পলাগগন গনপরয় এত ডিাট গযপরয ডরখা মভফ নয় এজনযাআ ভপরন য় পলাগগন গনপরয় ডকউ ডরপরখন না কাযন এখাপরন এত গফলয় াঅপরি মা াঅপররাচনা কযপরত ডগপরর ৫০০ ডজ ায পরয় মাপরফ ডফাোয সগফধাপরথড াঅগভ মথামভফ উদাযন গদপরয় ডফাোপরনায ডচষটা কপরযগি াঅগভ এখাপরন টাপরগডট কপরযগি মাযা টকটাক জাপরন পলাগগন মপপরকড এডবানস ডরপরবপররয নয় কাযন তাযা জাপরনন াঅভায উপরেশয গির মাযা জানপরত চায় তাপরদযপরক জানাপরনা এখাপরন ডমফ গফলয় াঅপররাচনা কযা পরয়পরি তা ডভাটাভগট ভাপরনয একগট পলাগগন ফানাপরনায জনয মপরথষট তপরফ ভাপরনাননয়পরনয জনয াঅনাপরক গনপরজাআ খাপরজ গনপরত পরফ াঅনায জনয ডকানটা বার পরফ াঅগভ রধ গদক গনপরদডনা গদরাভ ভাতর এাআ ফাআগট রধভাতর ওয়াডডপরে রেপরয জনয ডরখা াপরনক বর ভরাগনত থাকপরত াপরয াঅনাযা কষভাসনদয দগষটপরত ডদখপরফন াঅগভ ডচষটা কপরযগি মতটা জ কপরয ডরখা মায় াপরনক ভয় ডদখা মায় ডম খফ ডিাট খাপরটা গফলয় গনপরয় াপরনপরকাআ নক কপরযন এটা গতয রাঃখজনক াঅনাযা গগপরর একট খাজপররাআ ভাধান াপরফন াঅপরগ গনপরজ ডচষটা করন তায পরয ানযপরক ভাধাপরনয জনয গজজঞাা করন াঅভায জনয ডদায়া কযপরফন বাপররা রাগপরর জানাপরফন খাযা রাগপররও জানাপরফন তাপররাআ াঅভায গযশরভ সবাথডক পরফ ভতাভত জাগনপরয় াঅভাপরক ডভাআর কযপরত াপরযন litonice09gmailcom |

72

Page 49: Wordpress Plugin Development

50

gt

ltinput name=Submit type=submit value=Save gt

ltformgtltdivgt

ltphp

gt

settings_fields() পাাংনগট ডযপাপরযনস গপরপরফ ফযফায কযা পরয়পরি মা াঅভযা register_setting() পাাংপরন গডপরিয়ায কপরযগি do_settings_sections() পাাংনগট কর কযপরফ কর াঅউটট ডকন এফাং পভড গপলডপরক মা াঅভযা পরফড গডপাাআন কপরযগি াঅভাপরদয কাজ ডল এফায পরযা পলাগগনগট ডদখফ- ltphp

Plugin Name Settings API example

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

Add a menu for our option page

add_action(admin_menu liton_myplugin_add_page)

function liton_myplugin_add_page()

add_options_page( My Plugin My Plugin manage_options liton_myplugin

liton_myplugin_option_page)

Draw the option page

function liton_myplugin_option_page()

gt

ltdiv class=wrapgt

ltphp screen_icon() gt

lth2gtMy pluginlth2gt

ltform action=optionsphp method=postgt

ltphp settings_fields(liton_myplugin_options) gt

ltphp do_settings_sections(liton_myplugin) gt

ltinput name=Submit type=submit value=Save

Changes gt

ltformgtltdivgt

ltphp

51

Register and define the settings

add_action(admin_init liton_myplugin_admin_init)

function liton_myplugin_admin_init()

register_setting( liton_myplugin_options

liton_myplugin_options

liton_myplugin_validate_options )

add_settings_section( liton_myplugin_main My Plugin

Settings

liton_myplugin_section_text liton_myplugin )

add_settings_field( liton_myplugin_text_string Enter text

here

liton_myplugin_setting_input liton_myplugin

liton_myplugin_main )

Draw the section header

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton_myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name=liton_myplugin_options[text_string]

type=text value=$text_string gt

Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

return $valid

gt

52

ডদখন ডযাপরফাপরডড ডকভন ডদখায়-

পরয় ডগর াঅভাপরদয েথভ নডাাংগ পলাগগন ান ডজ াঅপরযকগট গজগন ডমটায জনয এতগকি পলাগগন URL এপরডর- httplocalhostdev-litonwp-adminoptions-

generalphppage=liton_mypluginampsettings-updated=true

াঅভায এখাপরন এযকভ ডদখাপরচছ ডটকসট ফপরকস ডকান গকি গরপরখ ডব কযায য এফাপরয াঅপরযকগট গজগন ডদখফ াঅভযা াপরনক ভয়াআ াপরনক পলাগগপরনয াআনট গপপরলড বর ডাটা াআনট কযপরর এযয ডভপরজ ডদখায় এাআ কাজগট কযফ এফায াঅভযা এখাপরন esc_attr() ফা esc_html() ফযফায কগযগন সতযাাং াঅভাপরদয গরগভপরটন থাকপরি ডবগরপরডট পাাংনগট একট এগডট কগয গনপরচয ভত কপরয Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

if( $valid[text_string] = $input[text_string] )

add_settings_error(liton_myplugin_text_stringliton_myplugin_texterror

53

Incorrect value enterederror)

return $valid

উপরয ডদখন add_settings_error() পাাংন ফযফায কপরযগি মা এযয ডচক কযপরফ পপরভডয াঅগভ একগট বর ডাটা(পরসপার কযাপরযকটায) াআনট কপরয ডদখরাভ এযয ডদখাপরচছ-

তায ভাপরন াঅভযা পর পরয়গি াঅনায পলাগগনগট এগডট কপরয ডনপরফন ডকায ডকন এফাং গপপরলডয গরসট গদরাভ াঅনাপরদয সগফধায জনয

54

CSSJS পাাআর মি কযা

াঅনায পলাগগপরন গএএ ফা জাবাগিে ডমাগ কযপরত পরত াপরয াঅগন চাাআপরর ফাগপরযয ডকান ফা াঅনায ততগয ডকান গএএ ফা জাবাগিে পাাআর ডমাগ কযপরত াপরযন তপরফ এপরকষপরতর াঅভযা ডমবাপরফ HTML এ পাাআর ডমাগ কগয ডযকভ না function liton_scripts()

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtojqueryjsrdquogtltscriptgt‟

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtoscriptjsrdquogtltscriptgt‟

add_action(bdquowp_head‟‟liton_scripts‟)

এগট মপনডরপর বর িগত গনপরচ ডদখন ওয়াডডপরেপর গকবাপরফ পাাআর মি কযপরত য়- function liton_scripts()

wp_enqueue_script(bdquojquery‟)

wp_enqueue_script(bdquotheme-scripts‟‟pathtoscriptsjs‟)

add_action(bdquowp_enqueue_script‟‟liton_scripts‟)

ানর বাপরফ াঅগন সটাাআরীট ডমাগ কযপরত াপরযন- function liton_styles()

wp_enqueue_ style (bdquocss‟)

wp_enqueue_ style (bdquotheme- styles‟pathto stylescss‟)

ডযপাপরযনস ডদখন- httpcodexwordpressorgFunction_Referencewp_enqueue_script

httpcodexwordpressorgFunction_Referencewp_enqueue_style

টডপরকাড টডপরকাড পরচছ ওয়াডডপরেপরয ডসপগগপক ডসপার টযাগ মা াঅগন ডাসট ফা ডপরজয ভপরধয াআনাটড কপরয ানয ডকান কনপরটনটপরক ওপরয়ফাাআপরটয ভপরধয গযপরপল কযপরত াযপরফন মগদ াঅগন গযারাগয টাাআপরয ডকান পলাগগন ফযফায কপরয থাপরকন তাপরর াঅনায ধাযনা থাকায কথা মাাআ ডাক াঅগভ কপরয়কগট উদাযি ডদখাফ

55

েথপরভ একগট পলাগগন ততগয কযফ ডমখাপরন add_shortcode() নাপরভয একগট পাাংন থাকপরফ এগট রগট যাযাগভটায েন কপরয েথভগট টডপরকাপরডয নাভ গিতীয়গট ডম পাাংনপরক কর কযপরফন ডগট াঅভযা একগট উদাযন ডদগখ- ltphp

Plugin Name Liton Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(litonhi)

function hi()

echo Hello World

gt

উপরয ডদখন খফ ডিাট গকনত াঅগন চাাআপরর এয ফযফায াপরনক গফসতত কযপরত াপরযন এখাপরন টডপরকাড নাভ পরচছ liton াঅয এগটপরক ডরখা য় এবাপরফ [liton] াঅভযা ডাপরসটয ভপরধয াআনাটড কপরয ডদগখ াঅউটট ডকভন ডদখায়-

এফায াঅউটট ডদগখ-

56

াঅভাপরদয ততগয কযা টডপরকাড পরবাপরফাআ কাজ কযপরি াঅপরযকগট উদাযন ডদখফ াঅনাযা াপরনপরকাআ গগর এডপরনস গনপরয় কাজ কপরযন াঅনাযা াপরনপরকাআ এডপরনস এয জনয পলাগগন ফযফায কপরযন গকনত চাাআপররাআ এাআ কাজগট াঅনাযা গনপরজয ভত কপরয াগজপরয় গনপরত াপরযন গগপররয কাপরি ফ ডাসট বযার ায়না াঅনাযা মাযা একসাটড াঅপরিন তাযা এটা বার কপরয জাপরনন তাাআ াপরনপরকাআ গগপররয ডকাড ফ ডপরজ ডদখাপরত চান না এজনয পলাগগন ফযফায কপরয রাব য়না কাযন পলাগগপরন জায়গা গপকসড থাপরক এপরত কপরয াঅগনডাং ও কভ য় াঅনাযা টডপরকাড ফযফায কপরয ডমপরকান জায়গায় এড ডদখাপরত াপরযন গনপরচ াঅগভ রগট টডপরকাড ততগয কপরযগি র‟ধযপরনয এড ডদখাপরনায জনয ltphp

Plugin Name Liton Adsense Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(adsense_468adsense_468_60)

add_shortcode(adsense_250adsense_250_250)

function adsense_468_60($atts)

return ltscript type=textjavascriptgtlt--

57

google_ad_client = ca-pub-0956247412222369

468x60 created 101510

google_ad_slot = 4372705450

google_ad_width = 468

google_ad_height = 60

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

function adsense_250_250($atts)

return ltscript type=textjavascriptgtlt--

google_ad_client = ca-pub-0956247412222369

250x250 created 81809

google_ad_slot = 9368091893

google_ad_width = 250

google_ad_height = 250

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

gt

একগট টডপরকাড ফযানায টাাআপরয জনয এফাং াঅপরযকগট ২৫০২৫০ াাআপরজয এফায ডাপরসট ডমপরকান একগট টডপরকাড াআনাটড করন ডমখাপরন াঅনায ডদখাপরনায েপরয়াজন ভপরন কপরযন াঅগভ রগট ডকাড ডটসট কপরয ডদখরাভ-

58

এফায াাআপরটয াঅউটট ডদগখ-

রগট এডাআ ডদখাপরচছ াঅপরযা াপরনক কাপরজ াঅগন টডপরকাড ফযফায কযপরত াপরযন ডযপাপরযনসাঃ httpcodexwordpressorgShortcode_API

59

াধযায়- নয়াঃ পলাগগন উদাযন

ওয়াডডপরেপরয ডডটটাাআভকপরভনট নামবায ফাাংরা কযায পলাগগন াঅভাপরক কপরয়কজন ফপররগিপররন ওয়াডডপরেপরয গডপলট ডডটটাাআভকপরভনট নামবায ফাাংরা য়না রযাাংগপরয়জ ফাাংরা কযায যও ডডটটাাআভকপরভনট নামবায গপররা াআাংপরযগজ ডথপরক মায় গনপরচয পলাগগনগট ফযফায কপরয ডদখপরত াপরযন- ltphp

Plugin Name Liton Bangla datetimecomment number

Plugin URI httpliton-onlinecomplugins

Description Bangla datetimecomment number

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

This function converts all english numbers to bangla number

function make_bangla_number($str)

$engNumber = array(1234567890)

$bangNumber = array( ১ ২ ৩ ৪ ৫ ৬ ৭ ৮ ৯ ০ ) $converted = str_replace($engNumber $bangNumber $str)

return $converted

add_filter( get_the_time make_bangla_number )

add_filter( the_date make_bangla_number )

add_filter( get_the_date make_bangla_number )

add_filter( comments_number make_bangla_number )

add_filter( get_comment_date make_bangla_number )

add_filter( get_comment_time make_bangla_number )

gt

60

সলাাআডায পলাগগন াঅভযা এাআ ফাআপরয়য কর গটউপরটাগযয়াপরর মা মা গখরাভ তা এফায একগট নডাাংগ পলাগগপরনয এপলাাআ কযফ সলাাআডায পলাগগন মপপরকড াঅভযা ফাাআ জাগন একগট ওপরয়ফাাআপরটয ডচাযা ারপরট ডদয় একগট সলাাআডায াপরনক ডাাআনাগভক ভপরন য় ডদখপরতও াপরনক বার রাপরগ এাআ পলাগগপরন াঅভযা এডগভন যাপরনর ডথপরক াআপরভজ ডমাগ কযফ এফাং তা াঅভাপরদয াাআপরট ডদখাফ চরন কাজ রর কগয- েথপরভ গনপরবা সলাাআডায এয ওপরয়ফাাআপরট মান এফাং jQuery Plugin ডাউনপররাড করন

ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom Version 10

gt

াঅভযা পলাগগপরনয ডডায ততগয কযরাভ

পলাগগন গরপরসট ডদখাপরচছ bdquoLitons Nivo Plugin‟ াঅভাপরদয েথভ কাজ পরচছ custom post

type ওয়াডডপরে পাাংনাগরগট একগট নতন কাসটভ ডজ ততগয কযপরত custom post type

ফযফহরত পরফ ডমখাপরন একগট াআপরভজ থাকপরফ াঅভযা রধ টাাআপরটর ডনভ এফাং াআপরভজ াঅপররাডায গপরপরফ গপচায াআপরভজ পাাংনাগরগট ফযফায কযফ function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_function 600 280 true)

61

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

add_action(init np_init)

উপরযয ডকাপরড np_init() পাাংনগট রক কপরযগি মা ডডায যান কযায াঅপরগ যান পরফ াঅয এজনয register_post_type() পাাংনপরক এয যাযাগভটায গদপরয় np_init() পাাংপরনয ডবতপরয মি কপরযগি এটা মগদ না কযতাভ তাপরর ldquoHeaders already sentrdquo ডভপরজ ডদখাত এাআ ডভপরজগটয াপরথ াপরনপরকাআ গযগচত াঅা কগয register_post_type() পাাংন গদপরয় াঅভযা াআপরভজ মি এফাং ভযাপরনজ কযফ ভরত াঅভযা একগট নতন custom post type ডমাগ কপরযগি np_images নাভ গদপরয় নতন custom post type ডক ডগটাং বযার গপরপরফ াঅযগপরভনট া কপরযগি $args ডবগযপরয়ফরগট ট ডরপরবর ডভন ততগয কপরয াঅপরগাআ ডদপরখগি পলাগগনগট এগকটপরবট কযপরর াঅভযা গনপরচয ভত ডদখপরত াফ-

এফায গিে এফাং সটাাআরীট ডক মি কযফ- add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

এফায রক কযা পাাংনগপররা গডপরিয়ায কগয- function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__) array( jquery ))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

62

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

উপরযয ডকাডগপররা নতন কপরয ফিডনা কযায গকি ডনাআ াঅপরগাআ wp_enqueue_style() এফাং wp_enqueue_script() মপপরকড ফরা পরয়পরি নতন াঅপরযকগট পাাআর ততগয করন একাআ গডপরযকটগযপরত scriptjs এফাং গনপরচয ডকাডটক গদন- jQuery(document)ready(function($)

$(slider)nivoSlider()

)

াআপরভজপরক গযাাআজ করন- add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

াঅভযা এাআ পলাগগনগটপরক উাআপরজট গপরপরফও ফযফায কযফ ডগট পরয ডদখফ াঅপরযকগট গজগন মগদ গথপরভ না ডদয়া থাপরক ডজনয থামবপরনাআর াপরাটড গদপরয় গদন- add_theme_support( post-thumbnails )

এফায ওয়াডডপরেপরয কাপরযনট ডাসট কপরয়যী কযায ডকাড াঅয $result ডবগযপরয়ফপরর ডমফ ltdivgt টযাগ ফযফায কযা পরয়পরি তা jQuery Plugin গট একসিাকট কপরয indexhtml ডজগটয ডভাআন সলাাআডায ডকাডগট ডদখন একাআ াঅপরি রধ ডখানকায ltdivgt টযাগ গপররাপরক কগ কপরয এাআ পলাগগপরন ফযফায কযা পরয়পরি এফায টডপরকাড গদন- add_shortcode(np-shortcode np_function)

এাআ টডপরকাড গএাআচগ পাাংনপরক রক কযপরফ এফাং এয ভধয ডথপরক সলাাআডপরায কনপরটনট ডক গযটানড কযপরফ াঅভাপরদয টডপরকাড পরচছ [np-shortcode] াঅভযা পলাগগপরন মাাআ এফাং একগট িগফ মি কগয গপচাযড াআপরভজ গপরপরফ গনপরচ ডদখন-

63

াঅগভ াঅপরযকগট ডজ ততগয কপরযগি ডমখাপরন টডপরকাড গদপরয়গি

াঅউটট ডজ ডদগখ এফায-

64

পরয় ডগর াঅভাপরদয সলাাআডায পলাগগন পরযা ডকাডগট গনপরচ গদরাভ- ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

65

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

66

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

এফায াঅগন মগদ উাআপরজট গপরপরফ ফযফায কযপরত চান তাপরর গনপরচয ডকাডটক গদন- class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

67

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

echo $after_widget

াঅপরযা রগট কাজ কযপরত পরফ াঅনাপরক এক াআপরভজ াাআজ উাআপরজট এয জনয গঠক কপরয গদপরত পরফ- add_image_size(np_widget 180 100 true)

াঅপরযকগট র উাআপরজট এযাকন রক ডমাগ কযা add_action(widgets_init np_widgets_init)

উাআপরজট পরযা ডকাড াঅফায গদরাভ- ltphp

Plugin Name Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Ciprian Turcu

Version 10

68

class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

69

echo $after_widget

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

70

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(widgets_init np_widgets_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

71

পলাগগন গনপরয় এত ডিাট গযপরয ডরখা মভফ নয় এজনযাআ ভপরন য় পলাগগন গনপরয় ডকউ ডরপরখন না কাযন এখাপরন এত গফলয় াঅপরি মা াঅপররাচনা কযপরত ডগপরর ৫০০ ডজ ায পরয় মাপরফ ডফাোয সগফধাপরথড াঅগভ মথামভফ উদাযন গদপরয় ডফাোপরনায ডচষটা কপরযগি াঅগভ এখাপরন টাপরগডট কপরযগি মাযা টকটাক জাপরন পলাগগন মপপরকড এডবানস ডরপরবপররয নয় কাযন তাযা জাপরনন াঅভায উপরেশয গির মাযা জানপরত চায় তাপরদযপরক জানাপরনা এখাপরন ডমফ গফলয় াঅপররাচনা কযা পরয়পরি তা ডভাটাভগট ভাপরনয একগট পলাগগন ফানাপরনায জনয মপরথষট তপরফ ভাপরনাননয়পরনয জনয াঅনাপরক গনপরজাআ খাপরজ গনপরত পরফ াঅনায জনয ডকানটা বার পরফ াঅগভ রধ গদক গনপরদডনা গদরাভ ভাতর এাআ ফাআগট রধভাতর ওয়াডডপরে রেপরয জনয ডরখা াপরনক বর ভরাগনত থাকপরত াপরয াঅনাযা কষভাসনদয দগষটপরত ডদখপরফন াঅগভ ডচষটা কপরযগি মতটা জ কপরয ডরখা মায় াপরনক ভয় ডদখা মায় ডম খফ ডিাট খাপরটা গফলয় গনপরয় াপরনপরকাআ নক কপরযন এটা গতয রাঃখজনক াঅনাযা গগপরর একট খাজপররাআ ভাধান াপরফন াঅপরগ গনপরজ ডচষটা করন তায পরয ানযপরক ভাধাপরনয জনয গজজঞাা করন াঅভায জনয ডদায়া কযপরফন বাপররা রাগপরর জানাপরফন খাযা রাগপররও জানাপরফন তাপররাআ াঅভায গযশরভ সবাথডক পরফ ভতাভত জাগনপরয় াঅভাপরক ডভাআর কযপরত াপরযন litonice09gmailcom |

72

Page 50: Wordpress Plugin Development

51

Register and define the settings

add_action(admin_init liton_myplugin_admin_init)

function liton_myplugin_admin_init()

register_setting( liton_myplugin_options

liton_myplugin_options

liton_myplugin_validate_options )

add_settings_section( liton_myplugin_main My Plugin

Settings

liton_myplugin_section_text liton_myplugin )

add_settings_field( liton_myplugin_text_string Enter text

here

liton_myplugin_setting_input liton_myplugin

liton_myplugin_main )

Draw the section header

function liton_myplugin_section_text()

echo ltpgtEnter your settings hereltpgt

Display and fill the form field

function liton_myplugin_setting_input()

get option text_string value from the database

$options = get_option( liton_myplugin_options )

$text_string = $options[text_string]

echo the field

echo ltinput id=text_string

name=liton_myplugin_options[text_string]

type=text value=$text_string gt

Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid = array()

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

return $valid

gt

52

ডদখন ডযাপরফাপরডড ডকভন ডদখায়-

পরয় ডগর াঅভাপরদয েথভ নডাাংগ পলাগগন ান ডজ াঅপরযকগট গজগন ডমটায জনয এতগকি পলাগগন URL এপরডর- httplocalhostdev-litonwp-adminoptions-

generalphppage=liton_mypluginampsettings-updated=true

াঅভায এখাপরন এযকভ ডদখাপরচছ ডটকসট ফপরকস ডকান গকি গরপরখ ডব কযায য এফাপরয াঅপরযকগট গজগন ডদখফ াঅভযা াপরনক ভয়াআ াপরনক পলাগগপরনয াআনট গপপরলড বর ডাটা াআনট কযপরর এযয ডভপরজ ডদখায় এাআ কাজগট কযফ এফায াঅভযা এখাপরন esc_attr() ফা esc_html() ফযফায কগযগন সতযাাং াঅভাপরদয গরগভপরটন থাকপরি ডবগরপরডট পাাংনগট একট এগডট কগয গনপরচয ভত কপরয Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

if( $valid[text_string] = $input[text_string] )

add_settings_error(liton_myplugin_text_stringliton_myplugin_texterror

53

Incorrect value enterederror)

return $valid

উপরয ডদখন add_settings_error() পাাংন ফযফায কপরযগি মা এযয ডচক কযপরফ পপরভডয াঅগভ একগট বর ডাটা(পরসপার কযাপরযকটায) াআনট কপরয ডদখরাভ এযয ডদখাপরচছ-

তায ভাপরন াঅভযা পর পরয়গি াঅনায পলাগগনগট এগডট কপরয ডনপরফন ডকায ডকন এফাং গপপরলডয গরসট গদরাভ াঅনাপরদয সগফধায জনয

54

CSSJS পাাআর মি কযা

াঅনায পলাগগপরন গএএ ফা জাবাগিে ডমাগ কযপরত পরত াপরয াঅগন চাাআপরর ফাগপরযয ডকান ফা াঅনায ততগয ডকান গএএ ফা জাবাগিে পাাআর ডমাগ কযপরত াপরযন তপরফ এপরকষপরতর াঅভযা ডমবাপরফ HTML এ পাাআর ডমাগ কগয ডযকভ না function liton_scripts()

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtojqueryjsrdquogtltscriptgt‟

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtoscriptjsrdquogtltscriptgt‟

add_action(bdquowp_head‟‟liton_scripts‟)

এগট মপনডরপর বর িগত গনপরচ ডদখন ওয়াডডপরেপর গকবাপরফ পাাআর মি কযপরত য়- function liton_scripts()

wp_enqueue_script(bdquojquery‟)

wp_enqueue_script(bdquotheme-scripts‟‟pathtoscriptsjs‟)

add_action(bdquowp_enqueue_script‟‟liton_scripts‟)

ানর বাপরফ াঅগন সটাাআরীট ডমাগ কযপরত াপরযন- function liton_styles()

wp_enqueue_ style (bdquocss‟)

wp_enqueue_ style (bdquotheme- styles‟pathto stylescss‟)

ডযপাপরযনস ডদখন- httpcodexwordpressorgFunction_Referencewp_enqueue_script

httpcodexwordpressorgFunction_Referencewp_enqueue_style

টডপরকাড টডপরকাড পরচছ ওয়াডডপরেপরয ডসপগগপক ডসপার টযাগ মা াঅগন ডাসট ফা ডপরজয ভপরধয াআনাটড কপরয ানয ডকান কনপরটনটপরক ওপরয়ফাাআপরটয ভপরধয গযপরপল কযপরত াযপরফন মগদ াঅগন গযারাগয টাাআপরয ডকান পলাগগন ফযফায কপরয থাপরকন তাপরর াঅনায ধাযনা থাকায কথা মাাআ ডাক াঅগভ কপরয়কগট উদাযি ডদখাফ

55

েথপরভ একগট পলাগগন ততগয কযফ ডমখাপরন add_shortcode() নাপরভয একগট পাাংন থাকপরফ এগট রগট যাযাগভটায েন কপরয েথভগট টডপরকাপরডয নাভ গিতীয়গট ডম পাাংনপরক কর কযপরফন ডগট াঅভযা একগট উদাযন ডদগখ- ltphp

Plugin Name Liton Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(litonhi)

function hi()

echo Hello World

gt

উপরয ডদখন খফ ডিাট গকনত াঅগন চাাআপরর এয ফযফায াপরনক গফসতত কযপরত াপরযন এখাপরন টডপরকাড নাভ পরচছ liton াঅয এগটপরক ডরখা য় এবাপরফ [liton] াঅভযা ডাপরসটয ভপরধয াআনাটড কপরয ডদগখ াঅউটট ডকভন ডদখায়-

এফায াঅউটট ডদগখ-

56

াঅভাপরদয ততগয কযা টডপরকাড পরবাপরফাআ কাজ কযপরি াঅপরযকগট উদাযন ডদখফ াঅনাযা াপরনপরকাআ গগর এডপরনস গনপরয় কাজ কপরযন াঅনাযা াপরনপরকাআ এডপরনস এয জনয পলাগগন ফযফায কপরযন গকনত চাাআপররাআ এাআ কাজগট াঅনাযা গনপরজয ভত কপরয াগজপরয় গনপরত াপরযন গগপররয কাপরি ফ ডাসট বযার ায়না াঅনাযা মাযা একসাটড াঅপরিন তাযা এটা বার কপরয জাপরনন তাাআ াপরনপরকাআ গগপররয ডকাড ফ ডপরজ ডদখাপরত চান না এজনয পলাগগন ফযফায কপরয রাব য়না কাযন পলাগগপরন জায়গা গপকসড থাপরক এপরত কপরয াঅগনডাং ও কভ য় াঅনাযা টডপরকাড ফযফায কপরয ডমপরকান জায়গায় এড ডদখাপরত াপরযন গনপরচ াঅগভ রগট টডপরকাড ততগয কপরযগি র‟ধযপরনয এড ডদখাপরনায জনয ltphp

Plugin Name Liton Adsense Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(adsense_468adsense_468_60)

add_shortcode(adsense_250adsense_250_250)

function adsense_468_60($atts)

return ltscript type=textjavascriptgtlt--

57

google_ad_client = ca-pub-0956247412222369

468x60 created 101510

google_ad_slot = 4372705450

google_ad_width = 468

google_ad_height = 60

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

function adsense_250_250($atts)

return ltscript type=textjavascriptgtlt--

google_ad_client = ca-pub-0956247412222369

250x250 created 81809

google_ad_slot = 9368091893

google_ad_width = 250

google_ad_height = 250

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

gt

একগট টডপরকাড ফযানায টাাআপরয জনয এফাং াঅপরযকগট ২৫০২৫০ াাআপরজয এফায ডাপরসট ডমপরকান একগট টডপরকাড াআনাটড করন ডমখাপরন াঅনায ডদখাপরনায েপরয়াজন ভপরন কপরযন াঅগভ রগট ডকাড ডটসট কপরয ডদখরাভ-

58

এফায াাআপরটয াঅউটট ডদগখ-

রগট এডাআ ডদখাপরচছ াঅপরযা াপরনক কাপরজ াঅগন টডপরকাড ফযফায কযপরত াপরযন ডযপাপরযনসাঃ httpcodexwordpressorgShortcode_API

59

াধযায়- নয়াঃ পলাগগন উদাযন

ওয়াডডপরেপরয ডডটটাাআভকপরভনট নামবায ফাাংরা কযায পলাগগন াঅভাপরক কপরয়কজন ফপররগিপররন ওয়াডডপরেপরয গডপলট ডডটটাাআভকপরভনট নামবায ফাাংরা য়না রযাাংগপরয়জ ফাাংরা কযায যও ডডটটাাআভকপরভনট নামবায গপররা াআাংপরযগজ ডথপরক মায় গনপরচয পলাগগনগট ফযফায কপরয ডদখপরত াপরযন- ltphp

Plugin Name Liton Bangla datetimecomment number

Plugin URI httpliton-onlinecomplugins

Description Bangla datetimecomment number

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

This function converts all english numbers to bangla number

function make_bangla_number($str)

$engNumber = array(1234567890)

$bangNumber = array( ১ ২ ৩ ৪ ৫ ৬ ৭ ৮ ৯ ০ ) $converted = str_replace($engNumber $bangNumber $str)

return $converted

add_filter( get_the_time make_bangla_number )

add_filter( the_date make_bangla_number )

add_filter( get_the_date make_bangla_number )

add_filter( comments_number make_bangla_number )

add_filter( get_comment_date make_bangla_number )

add_filter( get_comment_time make_bangla_number )

gt

60

সলাাআডায পলাগগন াঅভযা এাআ ফাআপরয়য কর গটউপরটাগযয়াপরর মা মা গখরাভ তা এফায একগট নডাাংগ পলাগগপরনয এপলাাআ কযফ সলাাআডায পলাগগন মপপরকড াঅভযা ফাাআ জাগন একগট ওপরয়ফাাআপরটয ডচাযা ারপরট ডদয় একগট সলাাআডায াপরনক ডাাআনাগভক ভপরন য় ডদখপরতও াপরনক বার রাপরগ এাআ পলাগগপরন াঅভযা এডগভন যাপরনর ডথপরক াআপরভজ ডমাগ কযফ এফাং তা াঅভাপরদয াাআপরট ডদখাফ চরন কাজ রর কগয- েথপরভ গনপরবা সলাাআডায এয ওপরয়ফাাআপরট মান এফাং jQuery Plugin ডাউনপররাড করন

ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom Version 10

gt

াঅভযা পলাগগপরনয ডডায ততগয কযরাভ

পলাগগন গরপরসট ডদখাপরচছ bdquoLitons Nivo Plugin‟ াঅভাপরদয েথভ কাজ পরচছ custom post

type ওয়াডডপরে পাাংনাগরগট একগট নতন কাসটভ ডজ ততগয কযপরত custom post type

ফযফহরত পরফ ডমখাপরন একগট াআপরভজ থাকপরফ াঅভযা রধ টাাআপরটর ডনভ এফাং াআপরভজ াঅপররাডায গপরপরফ গপচায াআপরভজ পাাংনাগরগট ফযফায কযফ function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_function 600 280 true)

61

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

add_action(init np_init)

উপরযয ডকাপরড np_init() পাাংনগট রক কপরযগি মা ডডায যান কযায াঅপরগ যান পরফ াঅয এজনয register_post_type() পাাংনপরক এয যাযাগভটায গদপরয় np_init() পাাংপরনয ডবতপরয মি কপরযগি এটা মগদ না কযতাভ তাপরর ldquoHeaders already sentrdquo ডভপরজ ডদখাত এাআ ডভপরজগটয াপরথ াপরনপরকাআ গযগচত াঅা কগয register_post_type() পাাংন গদপরয় াঅভযা াআপরভজ মি এফাং ভযাপরনজ কযফ ভরত াঅভযা একগট নতন custom post type ডমাগ কপরযগি np_images নাভ গদপরয় নতন custom post type ডক ডগটাং বযার গপরপরফ াঅযগপরভনট া কপরযগি $args ডবগযপরয়ফরগট ট ডরপরবর ডভন ততগয কপরয াঅপরগাআ ডদপরখগি পলাগগনগট এগকটপরবট কযপরর াঅভযা গনপরচয ভত ডদখপরত াফ-

এফায গিে এফাং সটাাআরীট ডক মি কযফ- add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

এফায রক কযা পাাংনগপররা গডপরিয়ায কগয- function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__) array( jquery ))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

62

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

উপরযয ডকাডগপররা নতন কপরয ফিডনা কযায গকি ডনাআ াঅপরগাআ wp_enqueue_style() এফাং wp_enqueue_script() মপপরকড ফরা পরয়পরি নতন াঅপরযকগট পাাআর ততগয করন একাআ গডপরযকটগযপরত scriptjs এফাং গনপরচয ডকাডটক গদন- jQuery(document)ready(function($)

$(slider)nivoSlider()

)

াআপরভজপরক গযাাআজ করন- add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

াঅভযা এাআ পলাগগনগটপরক উাআপরজট গপরপরফও ফযফায কযফ ডগট পরয ডদখফ াঅপরযকগট গজগন মগদ গথপরভ না ডদয়া থাপরক ডজনয থামবপরনাআর াপরাটড গদপরয় গদন- add_theme_support( post-thumbnails )

এফায ওয়াডডপরেপরয কাপরযনট ডাসট কপরয়যী কযায ডকাড াঅয $result ডবগযপরয়ফপরর ডমফ ltdivgt টযাগ ফযফায কযা পরয়পরি তা jQuery Plugin গট একসিাকট কপরয indexhtml ডজগটয ডভাআন সলাাআডায ডকাডগট ডদখন একাআ াঅপরি রধ ডখানকায ltdivgt টযাগ গপররাপরক কগ কপরয এাআ পলাগগপরন ফযফায কযা পরয়পরি এফায টডপরকাড গদন- add_shortcode(np-shortcode np_function)

এাআ টডপরকাড গএাআচগ পাাংনপরক রক কযপরফ এফাং এয ভধয ডথপরক সলাাআডপরায কনপরটনট ডক গযটানড কযপরফ াঅভাপরদয টডপরকাড পরচছ [np-shortcode] াঅভযা পলাগগপরন মাাআ এফাং একগট িগফ মি কগয গপচাযড াআপরভজ গপরপরফ গনপরচ ডদখন-

63

াঅগভ াঅপরযকগট ডজ ততগয কপরযগি ডমখাপরন টডপরকাড গদপরয়গি

াঅউটট ডজ ডদগখ এফায-

64

পরয় ডগর াঅভাপরদয সলাাআডায পলাগগন পরযা ডকাডগট গনপরচ গদরাভ- ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

65

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

66

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

এফায াঅগন মগদ উাআপরজট গপরপরফ ফযফায কযপরত চান তাপরর গনপরচয ডকাডটক গদন- class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

67

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

echo $after_widget

াঅপরযা রগট কাজ কযপরত পরফ াঅনাপরক এক াআপরভজ াাআজ উাআপরজট এয জনয গঠক কপরয গদপরত পরফ- add_image_size(np_widget 180 100 true)

াঅপরযকগট র উাআপরজট এযাকন রক ডমাগ কযা add_action(widgets_init np_widgets_init)

উাআপরজট পরযা ডকাড াঅফায গদরাভ- ltphp

Plugin Name Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Ciprian Turcu

Version 10

68

class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

69

echo $after_widget

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

70

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(widgets_init np_widgets_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

71

পলাগগন গনপরয় এত ডিাট গযপরয ডরখা মভফ নয় এজনযাআ ভপরন য় পলাগগন গনপরয় ডকউ ডরপরখন না কাযন এখাপরন এত গফলয় াঅপরি মা াঅপররাচনা কযপরত ডগপরর ৫০০ ডজ ায পরয় মাপরফ ডফাোয সগফধাপরথড াঅগভ মথামভফ উদাযন গদপরয় ডফাোপরনায ডচষটা কপরযগি াঅগভ এখাপরন টাপরগডট কপরযগি মাযা টকটাক জাপরন পলাগগন মপপরকড এডবানস ডরপরবপররয নয় কাযন তাযা জাপরনন াঅভায উপরেশয গির মাযা জানপরত চায় তাপরদযপরক জানাপরনা এখাপরন ডমফ গফলয় াঅপররাচনা কযা পরয়পরি তা ডভাটাভগট ভাপরনয একগট পলাগগন ফানাপরনায জনয মপরথষট তপরফ ভাপরনাননয়পরনয জনয াঅনাপরক গনপরজাআ খাপরজ গনপরত পরফ াঅনায জনয ডকানটা বার পরফ াঅগভ রধ গদক গনপরদডনা গদরাভ ভাতর এাআ ফাআগট রধভাতর ওয়াডডপরে রেপরয জনয ডরখা াপরনক বর ভরাগনত থাকপরত াপরয াঅনাযা কষভাসনদয দগষটপরত ডদখপরফন াঅগভ ডচষটা কপরযগি মতটা জ কপরয ডরখা মায় াপরনক ভয় ডদখা মায় ডম খফ ডিাট খাপরটা গফলয় গনপরয় াপরনপরকাআ নক কপরযন এটা গতয রাঃখজনক াঅনাযা গগপরর একট খাজপররাআ ভাধান াপরফন াঅপরগ গনপরজ ডচষটা করন তায পরয ানযপরক ভাধাপরনয জনয গজজঞাা করন াঅভায জনয ডদায়া কযপরফন বাপররা রাগপরর জানাপরফন খাযা রাগপররও জানাপরফন তাপররাআ াঅভায গযশরভ সবাথডক পরফ ভতাভত জাগনপরয় াঅভাপরক ডভাআর কযপরত াপরযন litonice09gmailcom |

72

Page 51: Wordpress Plugin Development

52

ডদখন ডযাপরফাপরডড ডকভন ডদখায়-

পরয় ডগর াঅভাপরদয েথভ নডাাংগ পলাগগন ান ডজ াঅপরযকগট গজগন ডমটায জনয এতগকি পলাগগন URL এপরডর- httplocalhostdev-litonwp-adminoptions-

generalphppage=liton_mypluginampsettings-updated=true

াঅভায এখাপরন এযকভ ডদখাপরচছ ডটকসট ফপরকস ডকান গকি গরপরখ ডব কযায য এফাপরয াঅপরযকগট গজগন ডদখফ াঅভযা াপরনক ভয়াআ াপরনক পলাগগপরনয াআনট গপপরলড বর ডাটা াআনট কযপরর এযয ডভপরজ ডদখায় এাআ কাজগট কযফ এফায াঅভযা এখাপরন esc_attr() ফা esc_html() ফযফায কগযগন সতযাাং াঅভাপরদয গরগভপরটন থাকপরি ডবগরপরডট পাাংনগট একট এগডট কগয গনপরচয ভত কপরয Validate user input (we want text only)

function liton_myplugin_validate_options( $input )

$valid[text_string] = preg_replace(

[^a-zA-Z]

$input[text_string] )

if( $valid[text_string] = $input[text_string] )

add_settings_error(liton_myplugin_text_stringliton_myplugin_texterror

53

Incorrect value enterederror)

return $valid

উপরয ডদখন add_settings_error() পাাংন ফযফায কপরযগি মা এযয ডচক কযপরফ পপরভডয াঅগভ একগট বর ডাটা(পরসপার কযাপরযকটায) াআনট কপরয ডদখরাভ এযয ডদখাপরচছ-

তায ভাপরন াঅভযা পর পরয়গি াঅনায পলাগগনগট এগডট কপরয ডনপরফন ডকায ডকন এফাং গপপরলডয গরসট গদরাভ াঅনাপরদয সগফধায জনয

54

CSSJS পাাআর মি কযা

াঅনায পলাগগপরন গএএ ফা জাবাগিে ডমাগ কযপরত পরত াপরয াঅগন চাাআপরর ফাগপরযয ডকান ফা াঅনায ততগয ডকান গএএ ফা জাবাগিে পাাআর ডমাগ কযপরত াপরযন তপরফ এপরকষপরতর াঅভযা ডমবাপরফ HTML এ পাাআর ডমাগ কগয ডযকভ না function liton_scripts()

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtojqueryjsrdquogtltscriptgt‟

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtoscriptjsrdquogtltscriptgt‟

add_action(bdquowp_head‟‟liton_scripts‟)

এগট মপনডরপর বর িগত গনপরচ ডদখন ওয়াডডপরেপর গকবাপরফ পাাআর মি কযপরত য়- function liton_scripts()

wp_enqueue_script(bdquojquery‟)

wp_enqueue_script(bdquotheme-scripts‟‟pathtoscriptsjs‟)

add_action(bdquowp_enqueue_script‟‟liton_scripts‟)

ানর বাপরফ াঅগন সটাাআরীট ডমাগ কযপরত াপরযন- function liton_styles()

wp_enqueue_ style (bdquocss‟)

wp_enqueue_ style (bdquotheme- styles‟pathto stylescss‟)

ডযপাপরযনস ডদখন- httpcodexwordpressorgFunction_Referencewp_enqueue_script

httpcodexwordpressorgFunction_Referencewp_enqueue_style

টডপরকাড টডপরকাড পরচছ ওয়াডডপরেপরয ডসপগগপক ডসপার টযাগ মা াঅগন ডাসট ফা ডপরজয ভপরধয াআনাটড কপরয ানয ডকান কনপরটনটপরক ওপরয়ফাাআপরটয ভপরধয গযপরপল কযপরত াযপরফন মগদ াঅগন গযারাগয টাাআপরয ডকান পলাগগন ফযফায কপরয থাপরকন তাপরর াঅনায ধাযনা থাকায কথা মাাআ ডাক াঅগভ কপরয়কগট উদাযি ডদখাফ

55

েথপরভ একগট পলাগগন ততগয কযফ ডমখাপরন add_shortcode() নাপরভয একগট পাাংন থাকপরফ এগট রগট যাযাগভটায েন কপরয েথভগট টডপরকাপরডয নাভ গিতীয়গট ডম পাাংনপরক কর কযপরফন ডগট াঅভযা একগট উদাযন ডদগখ- ltphp

Plugin Name Liton Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(litonhi)

function hi()

echo Hello World

gt

উপরয ডদখন খফ ডিাট গকনত াঅগন চাাআপরর এয ফযফায াপরনক গফসতত কযপরত াপরযন এখাপরন টডপরকাড নাভ পরচছ liton াঅয এগটপরক ডরখা য় এবাপরফ [liton] াঅভযা ডাপরসটয ভপরধয াআনাটড কপরয ডদগখ াঅউটট ডকভন ডদখায়-

এফায াঅউটট ডদগখ-

56

াঅভাপরদয ততগয কযা টডপরকাড পরবাপরফাআ কাজ কযপরি াঅপরযকগট উদাযন ডদখফ াঅনাযা াপরনপরকাআ গগর এডপরনস গনপরয় কাজ কপরযন াঅনাযা াপরনপরকাআ এডপরনস এয জনয পলাগগন ফযফায কপরযন গকনত চাাআপররাআ এাআ কাজগট াঅনাযা গনপরজয ভত কপরয াগজপরয় গনপরত াপরযন গগপররয কাপরি ফ ডাসট বযার ায়না াঅনাযা মাযা একসাটড াঅপরিন তাযা এটা বার কপরয জাপরনন তাাআ াপরনপরকাআ গগপররয ডকাড ফ ডপরজ ডদখাপরত চান না এজনয পলাগগন ফযফায কপরয রাব য়না কাযন পলাগগপরন জায়গা গপকসড থাপরক এপরত কপরয াঅগনডাং ও কভ য় াঅনাযা টডপরকাড ফযফায কপরয ডমপরকান জায়গায় এড ডদখাপরত াপরযন গনপরচ াঅগভ রগট টডপরকাড ততগয কপরযগি র‟ধযপরনয এড ডদখাপরনায জনয ltphp

Plugin Name Liton Adsense Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(adsense_468adsense_468_60)

add_shortcode(adsense_250adsense_250_250)

function adsense_468_60($atts)

return ltscript type=textjavascriptgtlt--

57

google_ad_client = ca-pub-0956247412222369

468x60 created 101510

google_ad_slot = 4372705450

google_ad_width = 468

google_ad_height = 60

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

function adsense_250_250($atts)

return ltscript type=textjavascriptgtlt--

google_ad_client = ca-pub-0956247412222369

250x250 created 81809

google_ad_slot = 9368091893

google_ad_width = 250

google_ad_height = 250

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

gt

একগট টডপরকাড ফযানায টাাআপরয জনয এফাং াঅপরযকগট ২৫০২৫০ াাআপরজয এফায ডাপরসট ডমপরকান একগট টডপরকাড াআনাটড করন ডমখাপরন াঅনায ডদখাপরনায েপরয়াজন ভপরন কপরযন াঅগভ রগট ডকাড ডটসট কপরয ডদখরাভ-

58

এফায াাআপরটয াঅউটট ডদগখ-

রগট এডাআ ডদখাপরচছ াঅপরযা াপরনক কাপরজ াঅগন টডপরকাড ফযফায কযপরত াপরযন ডযপাপরযনসাঃ httpcodexwordpressorgShortcode_API

59

াধযায়- নয়াঃ পলাগগন উদাযন

ওয়াডডপরেপরয ডডটটাাআভকপরভনট নামবায ফাাংরা কযায পলাগগন াঅভাপরক কপরয়কজন ফপররগিপররন ওয়াডডপরেপরয গডপলট ডডটটাাআভকপরভনট নামবায ফাাংরা য়না রযাাংগপরয়জ ফাাংরা কযায যও ডডটটাাআভকপরভনট নামবায গপররা াআাংপরযগজ ডথপরক মায় গনপরচয পলাগগনগট ফযফায কপরয ডদখপরত াপরযন- ltphp

Plugin Name Liton Bangla datetimecomment number

Plugin URI httpliton-onlinecomplugins

Description Bangla datetimecomment number

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

This function converts all english numbers to bangla number

function make_bangla_number($str)

$engNumber = array(1234567890)

$bangNumber = array( ১ ২ ৩ ৪ ৫ ৬ ৭ ৮ ৯ ০ ) $converted = str_replace($engNumber $bangNumber $str)

return $converted

add_filter( get_the_time make_bangla_number )

add_filter( the_date make_bangla_number )

add_filter( get_the_date make_bangla_number )

add_filter( comments_number make_bangla_number )

add_filter( get_comment_date make_bangla_number )

add_filter( get_comment_time make_bangla_number )

gt

60

সলাাআডায পলাগগন াঅভযা এাআ ফাআপরয়য কর গটউপরটাগযয়াপরর মা মা গখরাভ তা এফায একগট নডাাংগ পলাগগপরনয এপলাাআ কযফ সলাাআডায পলাগগন মপপরকড াঅভযা ফাাআ জাগন একগট ওপরয়ফাাআপরটয ডচাযা ারপরট ডদয় একগট সলাাআডায াপরনক ডাাআনাগভক ভপরন য় ডদখপরতও াপরনক বার রাপরগ এাআ পলাগগপরন াঅভযা এডগভন যাপরনর ডথপরক াআপরভজ ডমাগ কযফ এফাং তা াঅভাপরদয াাআপরট ডদখাফ চরন কাজ রর কগয- েথপরভ গনপরবা সলাাআডায এয ওপরয়ফাাআপরট মান এফাং jQuery Plugin ডাউনপররাড করন

ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom Version 10

gt

াঅভযা পলাগগপরনয ডডায ততগয কযরাভ

পলাগগন গরপরসট ডদখাপরচছ bdquoLitons Nivo Plugin‟ াঅভাপরদয েথভ কাজ পরচছ custom post

type ওয়াডডপরে পাাংনাগরগট একগট নতন কাসটভ ডজ ততগয কযপরত custom post type

ফযফহরত পরফ ডমখাপরন একগট াআপরভজ থাকপরফ াঅভযা রধ টাাআপরটর ডনভ এফাং াআপরভজ াঅপররাডায গপরপরফ গপচায াআপরভজ পাাংনাগরগট ফযফায কযফ function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_function 600 280 true)

61

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

add_action(init np_init)

উপরযয ডকাপরড np_init() পাাংনগট রক কপরযগি মা ডডায যান কযায াঅপরগ যান পরফ াঅয এজনয register_post_type() পাাংনপরক এয যাযাগভটায গদপরয় np_init() পাাংপরনয ডবতপরয মি কপরযগি এটা মগদ না কযতাভ তাপরর ldquoHeaders already sentrdquo ডভপরজ ডদখাত এাআ ডভপরজগটয াপরথ াপরনপরকাআ গযগচত াঅা কগয register_post_type() পাাংন গদপরয় াঅভযা াআপরভজ মি এফাং ভযাপরনজ কযফ ভরত াঅভযা একগট নতন custom post type ডমাগ কপরযগি np_images নাভ গদপরয় নতন custom post type ডক ডগটাং বযার গপরপরফ াঅযগপরভনট া কপরযগি $args ডবগযপরয়ফরগট ট ডরপরবর ডভন ততগয কপরয াঅপরগাআ ডদপরখগি পলাগগনগট এগকটপরবট কযপরর াঅভযা গনপরচয ভত ডদখপরত াফ-

এফায গিে এফাং সটাাআরীট ডক মি কযফ- add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

এফায রক কযা পাাংনগপররা গডপরিয়ায কগয- function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__) array( jquery ))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

62

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

উপরযয ডকাডগপররা নতন কপরয ফিডনা কযায গকি ডনাআ াঅপরগাআ wp_enqueue_style() এফাং wp_enqueue_script() মপপরকড ফরা পরয়পরি নতন াঅপরযকগট পাাআর ততগয করন একাআ গডপরযকটগযপরত scriptjs এফাং গনপরচয ডকাডটক গদন- jQuery(document)ready(function($)

$(slider)nivoSlider()

)

াআপরভজপরক গযাাআজ করন- add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

াঅভযা এাআ পলাগগনগটপরক উাআপরজট গপরপরফও ফযফায কযফ ডগট পরয ডদখফ াঅপরযকগট গজগন মগদ গথপরভ না ডদয়া থাপরক ডজনয থামবপরনাআর াপরাটড গদপরয় গদন- add_theme_support( post-thumbnails )

এফায ওয়াডডপরেপরয কাপরযনট ডাসট কপরয়যী কযায ডকাড াঅয $result ডবগযপরয়ফপরর ডমফ ltdivgt টযাগ ফযফায কযা পরয়পরি তা jQuery Plugin গট একসিাকট কপরয indexhtml ডজগটয ডভাআন সলাাআডায ডকাডগট ডদখন একাআ াঅপরি রধ ডখানকায ltdivgt টযাগ গপররাপরক কগ কপরয এাআ পলাগগপরন ফযফায কযা পরয়পরি এফায টডপরকাড গদন- add_shortcode(np-shortcode np_function)

এাআ টডপরকাড গএাআচগ পাাংনপরক রক কযপরফ এফাং এয ভধয ডথপরক সলাাআডপরায কনপরটনট ডক গযটানড কযপরফ াঅভাপরদয টডপরকাড পরচছ [np-shortcode] াঅভযা পলাগগপরন মাাআ এফাং একগট িগফ মি কগয গপচাযড াআপরভজ গপরপরফ গনপরচ ডদখন-

63

াঅগভ াঅপরযকগট ডজ ততগয কপরযগি ডমখাপরন টডপরকাড গদপরয়গি

াঅউটট ডজ ডদগখ এফায-

64

পরয় ডগর াঅভাপরদয সলাাআডায পলাগগন পরযা ডকাডগট গনপরচ গদরাভ- ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

65

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

66

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

এফায াঅগন মগদ উাআপরজট গপরপরফ ফযফায কযপরত চান তাপরর গনপরচয ডকাডটক গদন- class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

67

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

echo $after_widget

াঅপরযা রগট কাজ কযপরত পরফ াঅনাপরক এক াআপরভজ াাআজ উাআপরজট এয জনয গঠক কপরয গদপরত পরফ- add_image_size(np_widget 180 100 true)

াঅপরযকগট র উাআপরজট এযাকন রক ডমাগ কযা add_action(widgets_init np_widgets_init)

উাআপরজট পরযা ডকাড াঅফায গদরাভ- ltphp

Plugin Name Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Ciprian Turcu

Version 10

68

class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

69

echo $after_widget

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

70

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(widgets_init np_widgets_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

71

পলাগগন গনপরয় এত ডিাট গযপরয ডরখা মভফ নয় এজনযাআ ভপরন য় পলাগগন গনপরয় ডকউ ডরপরখন না কাযন এখাপরন এত গফলয় াঅপরি মা াঅপররাচনা কযপরত ডগপরর ৫০০ ডজ ায পরয় মাপরফ ডফাোয সগফধাপরথড াঅগভ মথামভফ উদাযন গদপরয় ডফাোপরনায ডচষটা কপরযগি াঅগভ এখাপরন টাপরগডট কপরযগি মাযা টকটাক জাপরন পলাগগন মপপরকড এডবানস ডরপরবপররয নয় কাযন তাযা জাপরনন াঅভায উপরেশয গির মাযা জানপরত চায় তাপরদযপরক জানাপরনা এখাপরন ডমফ গফলয় াঅপররাচনা কযা পরয়পরি তা ডভাটাভগট ভাপরনয একগট পলাগগন ফানাপরনায জনয মপরথষট তপরফ ভাপরনাননয়পরনয জনয াঅনাপরক গনপরজাআ খাপরজ গনপরত পরফ াঅনায জনয ডকানটা বার পরফ াঅগভ রধ গদক গনপরদডনা গদরাভ ভাতর এাআ ফাআগট রধভাতর ওয়াডডপরে রেপরয জনয ডরখা াপরনক বর ভরাগনত থাকপরত াপরয াঅনাযা কষভাসনদয দগষটপরত ডদখপরফন াঅগভ ডচষটা কপরযগি মতটা জ কপরয ডরখা মায় াপরনক ভয় ডদখা মায় ডম খফ ডিাট খাপরটা গফলয় গনপরয় াপরনপরকাআ নক কপরযন এটা গতয রাঃখজনক াঅনাযা গগপরর একট খাজপররাআ ভাধান াপরফন াঅপরগ গনপরজ ডচষটা করন তায পরয ানযপরক ভাধাপরনয জনয গজজঞাা করন াঅভায জনয ডদায়া কযপরফন বাপররা রাগপরর জানাপরফন খাযা রাগপররও জানাপরফন তাপররাআ াঅভায গযশরভ সবাথডক পরফ ভতাভত জাগনপরয় াঅভাপরক ডভাআর কযপরত াপরযন litonice09gmailcom |

72

Page 52: Wordpress Plugin Development

53

Incorrect value enterederror)

return $valid

উপরয ডদখন add_settings_error() পাাংন ফযফায কপরযগি মা এযয ডচক কযপরফ পপরভডয াঅগভ একগট বর ডাটা(পরসপার কযাপরযকটায) াআনট কপরয ডদখরাভ এযয ডদখাপরচছ-

তায ভাপরন াঅভযা পর পরয়গি াঅনায পলাগগনগট এগডট কপরয ডনপরফন ডকায ডকন এফাং গপপরলডয গরসট গদরাভ াঅনাপরদয সগফধায জনয

54

CSSJS পাাআর মি কযা

াঅনায পলাগগপরন গএএ ফা জাবাগিে ডমাগ কযপরত পরত াপরয াঅগন চাাআপরর ফাগপরযয ডকান ফা াঅনায ততগয ডকান গএএ ফা জাবাগিে পাাআর ডমাগ কযপরত াপরযন তপরফ এপরকষপরতর াঅভযা ডমবাপরফ HTML এ পাাআর ডমাগ কগয ডযকভ না function liton_scripts()

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtojqueryjsrdquogtltscriptgt‟

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtoscriptjsrdquogtltscriptgt‟

add_action(bdquowp_head‟‟liton_scripts‟)

এগট মপনডরপর বর িগত গনপরচ ডদখন ওয়াডডপরেপর গকবাপরফ পাাআর মি কযপরত য়- function liton_scripts()

wp_enqueue_script(bdquojquery‟)

wp_enqueue_script(bdquotheme-scripts‟‟pathtoscriptsjs‟)

add_action(bdquowp_enqueue_script‟‟liton_scripts‟)

ানর বাপরফ াঅগন সটাাআরীট ডমাগ কযপরত াপরযন- function liton_styles()

wp_enqueue_ style (bdquocss‟)

wp_enqueue_ style (bdquotheme- styles‟pathto stylescss‟)

ডযপাপরযনস ডদখন- httpcodexwordpressorgFunction_Referencewp_enqueue_script

httpcodexwordpressorgFunction_Referencewp_enqueue_style

টডপরকাড টডপরকাড পরচছ ওয়াডডপরেপরয ডসপগগপক ডসপার টযাগ মা াঅগন ডাসট ফা ডপরজয ভপরধয াআনাটড কপরয ানয ডকান কনপরটনটপরক ওপরয়ফাাআপরটয ভপরধয গযপরপল কযপরত াযপরফন মগদ াঅগন গযারাগয টাাআপরয ডকান পলাগগন ফযফায কপরয থাপরকন তাপরর াঅনায ধাযনা থাকায কথা মাাআ ডাক াঅগভ কপরয়কগট উদাযি ডদখাফ

55

েথপরভ একগট পলাগগন ততগয কযফ ডমখাপরন add_shortcode() নাপরভয একগট পাাংন থাকপরফ এগট রগট যাযাগভটায েন কপরয েথভগট টডপরকাপরডয নাভ গিতীয়গট ডম পাাংনপরক কর কযপরফন ডগট াঅভযা একগট উদাযন ডদগখ- ltphp

Plugin Name Liton Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(litonhi)

function hi()

echo Hello World

gt

উপরয ডদখন খফ ডিাট গকনত াঅগন চাাআপরর এয ফযফায াপরনক গফসতত কযপরত াপরযন এখাপরন টডপরকাড নাভ পরচছ liton াঅয এগটপরক ডরখা য় এবাপরফ [liton] াঅভযা ডাপরসটয ভপরধয াআনাটড কপরয ডদগখ াঅউটট ডকভন ডদখায়-

এফায াঅউটট ডদগখ-

56

াঅভাপরদয ততগয কযা টডপরকাড পরবাপরফাআ কাজ কযপরি াঅপরযকগট উদাযন ডদখফ াঅনাযা াপরনপরকাআ গগর এডপরনস গনপরয় কাজ কপরযন াঅনাযা াপরনপরকাআ এডপরনস এয জনয পলাগগন ফযফায কপরযন গকনত চাাআপররাআ এাআ কাজগট াঅনাযা গনপরজয ভত কপরয াগজপরয় গনপরত াপরযন গগপররয কাপরি ফ ডাসট বযার ায়না াঅনাযা মাযা একসাটড াঅপরিন তাযা এটা বার কপরয জাপরনন তাাআ াপরনপরকাআ গগপররয ডকাড ফ ডপরজ ডদখাপরত চান না এজনয পলাগগন ফযফায কপরয রাব য়না কাযন পলাগগপরন জায়গা গপকসড থাপরক এপরত কপরয াঅগনডাং ও কভ য় াঅনাযা টডপরকাড ফযফায কপরয ডমপরকান জায়গায় এড ডদখাপরত াপরযন গনপরচ াঅগভ রগট টডপরকাড ততগয কপরযগি র‟ধযপরনয এড ডদখাপরনায জনয ltphp

Plugin Name Liton Adsense Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(adsense_468adsense_468_60)

add_shortcode(adsense_250adsense_250_250)

function adsense_468_60($atts)

return ltscript type=textjavascriptgtlt--

57

google_ad_client = ca-pub-0956247412222369

468x60 created 101510

google_ad_slot = 4372705450

google_ad_width = 468

google_ad_height = 60

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

function adsense_250_250($atts)

return ltscript type=textjavascriptgtlt--

google_ad_client = ca-pub-0956247412222369

250x250 created 81809

google_ad_slot = 9368091893

google_ad_width = 250

google_ad_height = 250

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

gt

একগট টডপরকাড ফযানায টাাআপরয জনয এফাং াঅপরযকগট ২৫০২৫০ াাআপরজয এফায ডাপরসট ডমপরকান একগট টডপরকাড াআনাটড করন ডমখাপরন াঅনায ডদখাপরনায েপরয়াজন ভপরন কপরযন াঅগভ রগট ডকাড ডটসট কপরয ডদখরাভ-

58

এফায াাআপরটয াঅউটট ডদগখ-

রগট এডাআ ডদখাপরচছ াঅপরযা াপরনক কাপরজ াঅগন টডপরকাড ফযফায কযপরত াপরযন ডযপাপরযনসাঃ httpcodexwordpressorgShortcode_API

59

াধযায়- নয়াঃ পলাগগন উদাযন

ওয়াডডপরেপরয ডডটটাাআভকপরভনট নামবায ফাাংরা কযায পলাগগন াঅভাপরক কপরয়কজন ফপররগিপররন ওয়াডডপরেপরয গডপলট ডডটটাাআভকপরভনট নামবায ফাাংরা য়না রযাাংগপরয়জ ফাাংরা কযায যও ডডটটাাআভকপরভনট নামবায গপররা াআাংপরযগজ ডথপরক মায় গনপরচয পলাগগনগট ফযফায কপরয ডদখপরত াপরযন- ltphp

Plugin Name Liton Bangla datetimecomment number

Plugin URI httpliton-onlinecomplugins

Description Bangla datetimecomment number

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

This function converts all english numbers to bangla number

function make_bangla_number($str)

$engNumber = array(1234567890)

$bangNumber = array( ১ ২ ৩ ৪ ৫ ৬ ৭ ৮ ৯ ০ ) $converted = str_replace($engNumber $bangNumber $str)

return $converted

add_filter( get_the_time make_bangla_number )

add_filter( the_date make_bangla_number )

add_filter( get_the_date make_bangla_number )

add_filter( comments_number make_bangla_number )

add_filter( get_comment_date make_bangla_number )

add_filter( get_comment_time make_bangla_number )

gt

60

সলাাআডায পলাগগন াঅভযা এাআ ফাআপরয়য কর গটউপরটাগযয়াপরর মা মা গখরাভ তা এফায একগট নডাাংগ পলাগগপরনয এপলাাআ কযফ সলাাআডায পলাগগন মপপরকড াঅভযা ফাাআ জাগন একগট ওপরয়ফাাআপরটয ডচাযা ারপরট ডদয় একগট সলাাআডায াপরনক ডাাআনাগভক ভপরন য় ডদখপরতও াপরনক বার রাপরগ এাআ পলাগগপরন াঅভযা এডগভন যাপরনর ডথপরক াআপরভজ ডমাগ কযফ এফাং তা াঅভাপরদয াাআপরট ডদখাফ চরন কাজ রর কগয- েথপরভ গনপরবা সলাাআডায এয ওপরয়ফাাআপরট মান এফাং jQuery Plugin ডাউনপররাড করন

ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom Version 10

gt

াঅভযা পলাগগপরনয ডডায ততগয কযরাভ

পলাগগন গরপরসট ডদখাপরচছ bdquoLitons Nivo Plugin‟ াঅভাপরদয েথভ কাজ পরচছ custom post

type ওয়াডডপরে পাাংনাগরগট একগট নতন কাসটভ ডজ ততগয কযপরত custom post type

ফযফহরত পরফ ডমখাপরন একগট াআপরভজ থাকপরফ াঅভযা রধ টাাআপরটর ডনভ এফাং াআপরভজ াঅপররাডায গপরপরফ গপচায াআপরভজ পাাংনাগরগট ফযফায কযফ function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_function 600 280 true)

61

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

add_action(init np_init)

উপরযয ডকাপরড np_init() পাাংনগট রক কপরযগি মা ডডায যান কযায াঅপরগ যান পরফ াঅয এজনয register_post_type() পাাংনপরক এয যাযাগভটায গদপরয় np_init() পাাংপরনয ডবতপরয মি কপরযগি এটা মগদ না কযতাভ তাপরর ldquoHeaders already sentrdquo ডভপরজ ডদখাত এাআ ডভপরজগটয াপরথ াপরনপরকাআ গযগচত াঅা কগয register_post_type() পাাংন গদপরয় াঅভযা াআপরভজ মি এফাং ভযাপরনজ কযফ ভরত াঅভযা একগট নতন custom post type ডমাগ কপরযগি np_images নাভ গদপরয় নতন custom post type ডক ডগটাং বযার গপরপরফ াঅযগপরভনট া কপরযগি $args ডবগযপরয়ফরগট ট ডরপরবর ডভন ততগয কপরয াঅপরগাআ ডদপরখগি পলাগগনগট এগকটপরবট কযপরর াঅভযা গনপরচয ভত ডদখপরত াফ-

এফায গিে এফাং সটাাআরীট ডক মি কযফ- add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

এফায রক কযা পাাংনগপররা গডপরিয়ায কগয- function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__) array( jquery ))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

62

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

উপরযয ডকাডগপররা নতন কপরয ফিডনা কযায গকি ডনাআ াঅপরগাআ wp_enqueue_style() এফাং wp_enqueue_script() মপপরকড ফরা পরয়পরি নতন াঅপরযকগট পাাআর ততগয করন একাআ গডপরযকটগযপরত scriptjs এফাং গনপরচয ডকাডটক গদন- jQuery(document)ready(function($)

$(slider)nivoSlider()

)

াআপরভজপরক গযাাআজ করন- add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

াঅভযা এাআ পলাগগনগটপরক উাআপরজট গপরপরফও ফযফায কযফ ডগট পরয ডদখফ াঅপরযকগট গজগন মগদ গথপরভ না ডদয়া থাপরক ডজনয থামবপরনাআর াপরাটড গদপরয় গদন- add_theme_support( post-thumbnails )

এফায ওয়াডডপরেপরয কাপরযনট ডাসট কপরয়যী কযায ডকাড াঅয $result ডবগযপরয়ফপরর ডমফ ltdivgt টযাগ ফযফায কযা পরয়পরি তা jQuery Plugin গট একসিাকট কপরয indexhtml ডজগটয ডভাআন সলাাআডায ডকাডগট ডদখন একাআ াঅপরি রধ ডখানকায ltdivgt টযাগ গপররাপরক কগ কপরয এাআ পলাগগপরন ফযফায কযা পরয়পরি এফায টডপরকাড গদন- add_shortcode(np-shortcode np_function)

এাআ টডপরকাড গএাআচগ পাাংনপরক রক কযপরফ এফাং এয ভধয ডথপরক সলাাআডপরায কনপরটনট ডক গযটানড কযপরফ াঅভাপরদয টডপরকাড পরচছ [np-shortcode] াঅভযা পলাগগপরন মাাআ এফাং একগট িগফ মি কগয গপচাযড াআপরভজ গপরপরফ গনপরচ ডদখন-

63

াঅগভ াঅপরযকগট ডজ ততগয কপরযগি ডমখাপরন টডপরকাড গদপরয়গি

াঅউটট ডজ ডদগখ এফায-

64

পরয় ডগর াঅভাপরদয সলাাআডায পলাগগন পরযা ডকাডগট গনপরচ গদরাভ- ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

65

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

66

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

এফায াঅগন মগদ উাআপরজট গপরপরফ ফযফায কযপরত চান তাপরর গনপরচয ডকাডটক গদন- class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

67

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

echo $after_widget

াঅপরযা রগট কাজ কযপরত পরফ াঅনাপরক এক াআপরভজ াাআজ উাআপরজট এয জনয গঠক কপরয গদপরত পরফ- add_image_size(np_widget 180 100 true)

াঅপরযকগট র উাআপরজট এযাকন রক ডমাগ কযা add_action(widgets_init np_widgets_init)

উাআপরজট পরযা ডকাড াঅফায গদরাভ- ltphp

Plugin Name Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Ciprian Turcu

Version 10

68

class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

69

echo $after_widget

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

70

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(widgets_init np_widgets_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

71

পলাগগন গনপরয় এত ডিাট গযপরয ডরখা মভফ নয় এজনযাআ ভপরন য় পলাগগন গনপরয় ডকউ ডরপরখন না কাযন এখাপরন এত গফলয় াঅপরি মা াঅপররাচনা কযপরত ডগপরর ৫০০ ডজ ায পরয় মাপরফ ডফাোয সগফধাপরথড াঅগভ মথামভফ উদাযন গদপরয় ডফাোপরনায ডচষটা কপরযগি াঅগভ এখাপরন টাপরগডট কপরযগি মাযা টকটাক জাপরন পলাগগন মপপরকড এডবানস ডরপরবপররয নয় কাযন তাযা জাপরনন াঅভায উপরেশয গির মাযা জানপরত চায় তাপরদযপরক জানাপরনা এখাপরন ডমফ গফলয় াঅপররাচনা কযা পরয়পরি তা ডভাটাভগট ভাপরনয একগট পলাগগন ফানাপরনায জনয মপরথষট তপরফ ভাপরনাননয়পরনয জনয াঅনাপরক গনপরজাআ খাপরজ গনপরত পরফ াঅনায জনয ডকানটা বার পরফ াঅগভ রধ গদক গনপরদডনা গদরাভ ভাতর এাআ ফাআগট রধভাতর ওয়াডডপরে রেপরয জনয ডরখা াপরনক বর ভরাগনত থাকপরত াপরয াঅনাযা কষভাসনদয দগষটপরত ডদখপরফন াঅগভ ডচষটা কপরযগি মতটা জ কপরয ডরখা মায় াপরনক ভয় ডদখা মায় ডম খফ ডিাট খাপরটা গফলয় গনপরয় াপরনপরকাআ নক কপরযন এটা গতয রাঃখজনক াঅনাযা গগপরর একট খাজপররাআ ভাধান াপরফন াঅপরগ গনপরজ ডচষটা করন তায পরয ানযপরক ভাধাপরনয জনয গজজঞাা করন াঅভায জনয ডদায়া কযপরফন বাপররা রাগপরর জানাপরফন খাযা রাগপররও জানাপরফন তাপররাআ াঅভায গযশরভ সবাথডক পরফ ভতাভত জাগনপরয় াঅভাপরক ডভাআর কযপরত াপরযন litonice09gmailcom |

72

Page 53: Wordpress Plugin Development

54

CSSJS পাাআর মি কযা

াঅনায পলাগগপরন গএএ ফা জাবাগিে ডমাগ কযপরত পরত াপরয াঅগন চাাআপরর ফাগপরযয ডকান ফা াঅনায ততগয ডকান গএএ ফা জাবাগিে পাাআর ডমাগ কযপরত াপরযন তপরফ এপরকষপরতর াঅভযা ডমবাপরফ HTML এ পাাআর ডমাগ কগয ডযকভ না function liton_scripts()

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtojqueryjsrdquogtltscriptgt‟

echo bdquoltscript type=rdquotextjavascriptrdquo src=rdquopathtoscriptjsrdquogtltscriptgt‟

add_action(bdquowp_head‟‟liton_scripts‟)

এগট মপনডরপর বর িগত গনপরচ ডদখন ওয়াডডপরেপর গকবাপরফ পাাআর মি কযপরত য়- function liton_scripts()

wp_enqueue_script(bdquojquery‟)

wp_enqueue_script(bdquotheme-scripts‟‟pathtoscriptsjs‟)

add_action(bdquowp_enqueue_script‟‟liton_scripts‟)

ানর বাপরফ াঅগন সটাাআরীট ডমাগ কযপরত াপরযন- function liton_styles()

wp_enqueue_ style (bdquocss‟)

wp_enqueue_ style (bdquotheme- styles‟pathto stylescss‟)

ডযপাপরযনস ডদখন- httpcodexwordpressorgFunction_Referencewp_enqueue_script

httpcodexwordpressorgFunction_Referencewp_enqueue_style

টডপরকাড টডপরকাড পরচছ ওয়াডডপরেপরয ডসপগগপক ডসপার টযাগ মা াঅগন ডাসট ফা ডপরজয ভপরধয াআনাটড কপরয ানয ডকান কনপরটনটপরক ওপরয়ফাাআপরটয ভপরধয গযপরপল কযপরত াযপরফন মগদ াঅগন গযারাগয টাাআপরয ডকান পলাগগন ফযফায কপরয থাপরকন তাপরর াঅনায ধাযনা থাকায কথা মাাআ ডাক াঅগভ কপরয়কগট উদাযি ডদখাফ

55

েথপরভ একগট পলাগগন ততগয কযফ ডমখাপরন add_shortcode() নাপরভয একগট পাাংন থাকপরফ এগট রগট যাযাগভটায েন কপরয েথভগট টডপরকাপরডয নাভ গিতীয়গট ডম পাাংনপরক কর কযপরফন ডগট াঅভযা একগট উদাযন ডদগখ- ltphp

Plugin Name Liton Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(litonhi)

function hi()

echo Hello World

gt

উপরয ডদখন খফ ডিাট গকনত াঅগন চাাআপরর এয ফযফায াপরনক গফসতত কযপরত াপরযন এখাপরন টডপরকাড নাভ পরচছ liton াঅয এগটপরক ডরখা য় এবাপরফ [liton] াঅভযা ডাপরসটয ভপরধয াআনাটড কপরয ডদগখ াঅউটট ডকভন ডদখায়-

এফায াঅউটট ডদগখ-

56

াঅভাপরদয ততগয কযা টডপরকাড পরবাপরফাআ কাজ কযপরি াঅপরযকগট উদাযন ডদখফ াঅনাযা াপরনপরকাআ গগর এডপরনস গনপরয় কাজ কপরযন াঅনাযা াপরনপরকাআ এডপরনস এয জনয পলাগগন ফযফায কপরযন গকনত চাাআপররাআ এাআ কাজগট াঅনাযা গনপরজয ভত কপরয াগজপরয় গনপরত াপরযন গগপররয কাপরি ফ ডাসট বযার ায়না াঅনাযা মাযা একসাটড াঅপরিন তাযা এটা বার কপরয জাপরনন তাাআ াপরনপরকাআ গগপররয ডকাড ফ ডপরজ ডদখাপরত চান না এজনয পলাগগন ফযফায কপরয রাব য়না কাযন পলাগগপরন জায়গা গপকসড থাপরক এপরত কপরয াঅগনডাং ও কভ য় াঅনাযা টডপরকাড ফযফায কপরয ডমপরকান জায়গায় এড ডদখাপরত াপরযন গনপরচ াঅগভ রগট টডপরকাড ততগয কপরযগি র‟ধযপরনয এড ডদখাপরনায জনয ltphp

Plugin Name Liton Adsense Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(adsense_468adsense_468_60)

add_shortcode(adsense_250adsense_250_250)

function adsense_468_60($atts)

return ltscript type=textjavascriptgtlt--

57

google_ad_client = ca-pub-0956247412222369

468x60 created 101510

google_ad_slot = 4372705450

google_ad_width = 468

google_ad_height = 60

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

function adsense_250_250($atts)

return ltscript type=textjavascriptgtlt--

google_ad_client = ca-pub-0956247412222369

250x250 created 81809

google_ad_slot = 9368091893

google_ad_width = 250

google_ad_height = 250

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

gt

একগট টডপরকাড ফযানায টাাআপরয জনয এফাং াঅপরযকগট ২৫০২৫০ াাআপরজয এফায ডাপরসট ডমপরকান একগট টডপরকাড াআনাটড করন ডমখাপরন াঅনায ডদখাপরনায েপরয়াজন ভপরন কপরযন াঅগভ রগট ডকাড ডটসট কপরয ডদখরাভ-

58

এফায াাআপরটয াঅউটট ডদগখ-

রগট এডাআ ডদখাপরচছ াঅপরযা াপরনক কাপরজ াঅগন টডপরকাড ফযফায কযপরত াপরযন ডযপাপরযনসাঃ httpcodexwordpressorgShortcode_API

59

াধযায়- নয়াঃ পলাগগন উদাযন

ওয়াডডপরেপরয ডডটটাাআভকপরভনট নামবায ফাাংরা কযায পলাগগন াঅভাপরক কপরয়কজন ফপররগিপররন ওয়াডডপরেপরয গডপলট ডডটটাাআভকপরভনট নামবায ফাাংরা য়না রযাাংগপরয়জ ফাাংরা কযায যও ডডটটাাআভকপরভনট নামবায গপররা াআাংপরযগজ ডথপরক মায় গনপরচয পলাগগনগট ফযফায কপরয ডদখপরত াপরযন- ltphp

Plugin Name Liton Bangla datetimecomment number

Plugin URI httpliton-onlinecomplugins

Description Bangla datetimecomment number

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

This function converts all english numbers to bangla number

function make_bangla_number($str)

$engNumber = array(1234567890)

$bangNumber = array( ১ ২ ৩ ৪ ৫ ৬ ৭ ৮ ৯ ০ ) $converted = str_replace($engNumber $bangNumber $str)

return $converted

add_filter( get_the_time make_bangla_number )

add_filter( the_date make_bangla_number )

add_filter( get_the_date make_bangla_number )

add_filter( comments_number make_bangla_number )

add_filter( get_comment_date make_bangla_number )

add_filter( get_comment_time make_bangla_number )

gt

60

সলাাআডায পলাগগন াঅভযা এাআ ফাআপরয়য কর গটউপরটাগযয়াপরর মা মা গখরাভ তা এফায একগট নডাাংগ পলাগগপরনয এপলাাআ কযফ সলাাআডায পলাগগন মপপরকড াঅভযা ফাাআ জাগন একগট ওপরয়ফাাআপরটয ডচাযা ারপরট ডদয় একগট সলাাআডায াপরনক ডাাআনাগভক ভপরন য় ডদখপরতও াপরনক বার রাপরগ এাআ পলাগগপরন াঅভযা এডগভন যাপরনর ডথপরক াআপরভজ ডমাগ কযফ এফাং তা াঅভাপরদয াাআপরট ডদখাফ চরন কাজ রর কগয- েথপরভ গনপরবা সলাাআডায এয ওপরয়ফাাআপরট মান এফাং jQuery Plugin ডাউনপররাড করন

ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom Version 10

gt

াঅভযা পলাগগপরনয ডডায ততগয কযরাভ

পলাগগন গরপরসট ডদখাপরচছ bdquoLitons Nivo Plugin‟ াঅভাপরদয েথভ কাজ পরচছ custom post

type ওয়াডডপরে পাাংনাগরগট একগট নতন কাসটভ ডজ ততগয কযপরত custom post type

ফযফহরত পরফ ডমখাপরন একগট াআপরভজ থাকপরফ াঅভযা রধ টাাআপরটর ডনভ এফাং াআপরভজ াঅপররাডায গপরপরফ গপচায াআপরভজ পাাংনাগরগট ফযফায কযফ function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_function 600 280 true)

61

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

add_action(init np_init)

উপরযয ডকাপরড np_init() পাাংনগট রক কপরযগি মা ডডায যান কযায াঅপরগ যান পরফ াঅয এজনয register_post_type() পাাংনপরক এয যাযাগভটায গদপরয় np_init() পাাংপরনয ডবতপরয মি কপরযগি এটা মগদ না কযতাভ তাপরর ldquoHeaders already sentrdquo ডভপরজ ডদখাত এাআ ডভপরজগটয াপরথ াপরনপরকাআ গযগচত াঅা কগয register_post_type() পাাংন গদপরয় াঅভযা াআপরভজ মি এফাং ভযাপরনজ কযফ ভরত াঅভযা একগট নতন custom post type ডমাগ কপরযগি np_images নাভ গদপরয় নতন custom post type ডক ডগটাং বযার গপরপরফ াঅযগপরভনট া কপরযগি $args ডবগযপরয়ফরগট ট ডরপরবর ডভন ততগয কপরয াঅপরগাআ ডদপরখগি পলাগগনগট এগকটপরবট কযপরর াঅভযা গনপরচয ভত ডদখপরত াফ-

এফায গিে এফাং সটাাআরীট ডক মি কযফ- add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

এফায রক কযা পাাংনগপররা গডপরিয়ায কগয- function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__) array( jquery ))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

62

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

উপরযয ডকাডগপররা নতন কপরয ফিডনা কযায গকি ডনাআ াঅপরগাআ wp_enqueue_style() এফাং wp_enqueue_script() মপপরকড ফরা পরয়পরি নতন াঅপরযকগট পাাআর ততগয করন একাআ গডপরযকটগযপরত scriptjs এফাং গনপরচয ডকাডটক গদন- jQuery(document)ready(function($)

$(slider)nivoSlider()

)

াআপরভজপরক গযাাআজ করন- add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

াঅভযা এাআ পলাগগনগটপরক উাআপরজট গপরপরফও ফযফায কযফ ডগট পরয ডদখফ াঅপরযকগট গজগন মগদ গথপরভ না ডদয়া থাপরক ডজনয থামবপরনাআর াপরাটড গদপরয় গদন- add_theme_support( post-thumbnails )

এফায ওয়াডডপরেপরয কাপরযনট ডাসট কপরয়যী কযায ডকাড াঅয $result ডবগযপরয়ফপরর ডমফ ltdivgt টযাগ ফযফায কযা পরয়পরি তা jQuery Plugin গট একসিাকট কপরয indexhtml ডজগটয ডভাআন সলাাআডায ডকাডগট ডদখন একাআ াঅপরি রধ ডখানকায ltdivgt টযাগ গপররাপরক কগ কপরয এাআ পলাগগপরন ফযফায কযা পরয়পরি এফায টডপরকাড গদন- add_shortcode(np-shortcode np_function)

এাআ টডপরকাড গএাআচগ পাাংনপরক রক কযপরফ এফাং এয ভধয ডথপরক সলাাআডপরায কনপরটনট ডক গযটানড কযপরফ াঅভাপরদয টডপরকাড পরচছ [np-shortcode] াঅভযা পলাগগপরন মাাআ এফাং একগট িগফ মি কগয গপচাযড াআপরভজ গপরপরফ গনপরচ ডদখন-

63

াঅগভ াঅপরযকগট ডজ ততগয কপরযগি ডমখাপরন টডপরকাড গদপরয়গি

াঅউটট ডজ ডদগখ এফায-

64

পরয় ডগর াঅভাপরদয সলাাআডায পলাগগন পরযা ডকাডগট গনপরচ গদরাভ- ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

65

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

66

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

এফায াঅগন মগদ উাআপরজট গপরপরফ ফযফায কযপরত চান তাপরর গনপরচয ডকাডটক গদন- class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

67

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

echo $after_widget

াঅপরযা রগট কাজ কযপরত পরফ াঅনাপরক এক াআপরভজ াাআজ উাআপরজট এয জনয গঠক কপরয গদপরত পরফ- add_image_size(np_widget 180 100 true)

াঅপরযকগট র উাআপরজট এযাকন রক ডমাগ কযা add_action(widgets_init np_widgets_init)

উাআপরজট পরযা ডকাড াঅফায গদরাভ- ltphp

Plugin Name Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Ciprian Turcu

Version 10

68

class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

69

echo $after_widget

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

70

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(widgets_init np_widgets_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

71

পলাগগন গনপরয় এত ডিাট গযপরয ডরখা মভফ নয় এজনযাআ ভপরন য় পলাগগন গনপরয় ডকউ ডরপরখন না কাযন এখাপরন এত গফলয় াঅপরি মা াঅপররাচনা কযপরত ডগপরর ৫০০ ডজ ায পরয় মাপরফ ডফাোয সগফধাপরথড াঅগভ মথামভফ উদাযন গদপরয় ডফাোপরনায ডচষটা কপরযগি াঅগভ এখাপরন টাপরগডট কপরযগি মাযা টকটাক জাপরন পলাগগন মপপরকড এডবানস ডরপরবপররয নয় কাযন তাযা জাপরনন াঅভায উপরেশয গির মাযা জানপরত চায় তাপরদযপরক জানাপরনা এখাপরন ডমফ গফলয় াঅপররাচনা কযা পরয়পরি তা ডভাটাভগট ভাপরনয একগট পলাগগন ফানাপরনায জনয মপরথষট তপরফ ভাপরনাননয়পরনয জনয াঅনাপরক গনপরজাআ খাপরজ গনপরত পরফ াঅনায জনয ডকানটা বার পরফ াঅগভ রধ গদক গনপরদডনা গদরাভ ভাতর এাআ ফাআগট রধভাতর ওয়াডডপরে রেপরয জনয ডরখা াপরনক বর ভরাগনত থাকপরত াপরয াঅনাযা কষভাসনদয দগষটপরত ডদখপরফন াঅগভ ডচষটা কপরযগি মতটা জ কপরয ডরখা মায় াপরনক ভয় ডদখা মায় ডম খফ ডিাট খাপরটা গফলয় গনপরয় াপরনপরকাআ নক কপরযন এটা গতয রাঃখজনক াঅনাযা গগপরর একট খাজপররাআ ভাধান াপরফন াঅপরগ গনপরজ ডচষটা করন তায পরয ানযপরক ভাধাপরনয জনয গজজঞাা করন াঅভায জনয ডদায়া কযপরফন বাপররা রাগপরর জানাপরফন খাযা রাগপররও জানাপরফন তাপররাআ াঅভায গযশরভ সবাথডক পরফ ভতাভত জাগনপরয় াঅভাপরক ডভাআর কযপরত াপরযন litonice09gmailcom |

72

Page 54: Wordpress Plugin Development

55

েথপরভ একগট পলাগগন ততগয কযফ ডমখাপরন add_shortcode() নাপরভয একগট পাাংন থাকপরফ এগট রগট যাযাগভটায েন কপরয েথভগট টডপরকাপরডয নাভ গিতীয়গট ডম পাাংনপরক কর কযপরফন ডগট াঅভযা একগট উদাযন ডদগখ- ltphp

Plugin Name Liton Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(litonhi)

function hi()

echo Hello World

gt

উপরয ডদখন খফ ডিাট গকনত াঅগন চাাআপরর এয ফযফায াপরনক গফসতত কযপরত াপরযন এখাপরন টডপরকাড নাভ পরচছ liton াঅয এগটপরক ডরখা য় এবাপরফ [liton] াঅভযা ডাপরসটয ভপরধয াআনাটড কপরয ডদগখ াঅউটট ডকভন ডদখায়-

এফায াঅউটট ডদগখ-

56

াঅভাপরদয ততগয কযা টডপরকাড পরবাপরফাআ কাজ কযপরি াঅপরযকগট উদাযন ডদখফ াঅনাযা াপরনপরকাআ গগর এডপরনস গনপরয় কাজ কপরযন াঅনাযা াপরনপরকাআ এডপরনস এয জনয পলাগগন ফযফায কপরযন গকনত চাাআপররাআ এাআ কাজগট াঅনাযা গনপরজয ভত কপরয াগজপরয় গনপরত াপরযন গগপররয কাপরি ফ ডাসট বযার ায়না াঅনাযা মাযা একসাটড াঅপরিন তাযা এটা বার কপরয জাপরনন তাাআ াপরনপরকাআ গগপররয ডকাড ফ ডপরজ ডদখাপরত চান না এজনয পলাগগন ফযফায কপরয রাব য়না কাযন পলাগগপরন জায়গা গপকসড থাপরক এপরত কপরয াঅগনডাং ও কভ য় াঅনাযা টডপরকাড ফযফায কপরয ডমপরকান জায়গায় এড ডদখাপরত াপরযন গনপরচ াঅগভ রগট টডপরকাড ততগয কপরযগি র‟ধযপরনয এড ডদখাপরনায জনয ltphp

Plugin Name Liton Adsense Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(adsense_468adsense_468_60)

add_shortcode(adsense_250adsense_250_250)

function adsense_468_60($atts)

return ltscript type=textjavascriptgtlt--

57

google_ad_client = ca-pub-0956247412222369

468x60 created 101510

google_ad_slot = 4372705450

google_ad_width = 468

google_ad_height = 60

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

function adsense_250_250($atts)

return ltscript type=textjavascriptgtlt--

google_ad_client = ca-pub-0956247412222369

250x250 created 81809

google_ad_slot = 9368091893

google_ad_width = 250

google_ad_height = 250

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

gt

একগট টডপরকাড ফযানায টাাআপরয জনয এফাং াঅপরযকগট ২৫০২৫০ াাআপরজয এফায ডাপরসট ডমপরকান একগট টডপরকাড াআনাটড করন ডমখাপরন াঅনায ডদখাপরনায েপরয়াজন ভপরন কপরযন াঅগভ রগট ডকাড ডটসট কপরয ডদখরাভ-

58

এফায াাআপরটয াঅউটট ডদগখ-

রগট এডাআ ডদখাপরচছ াঅপরযা াপরনক কাপরজ াঅগন টডপরকাড ফযফায কযপরত াপরযন ডযপাপরযনসাঃ httpcodexwordpressorgShortcode_API

59

াধযায়- নয়াঃ পলাগগন উদাযন

ওয়াডডপরেপরয ডডটটাাআভকপরভনট নামবায ফাাংরা কযায পলাগগন াঅভাপরক কপরয়কজন ফপররগিপররন ওয়াডডপরেপরয গডপলট ডডটটাাআভকপরভনট নামবায ফাাংরা য়না রযাাংগপরয়জ ফাাংরা কযায যও ডডটটাাআভকপরভনট নামবায গপররা াআাংপরযগজ ডথপরক মায় গনপরচয পলাগগনগট ফযফায কপরয ডদখপরত াপরযন- ltphp

Plugin Name Liton Bangla datetimecomment number

Plugin URI httpliton-onlinecomplugins

Description Bangla datetimecomment number

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

This function converts all english numbers to bangla number

function make_bangla_number($str)

$engNumber = array(1234567890)

$bangNumber = array( ১ ২ ৩ ৪ ৫ ৬ ৭ ৮ ৯ ০ ) $converted = str_replace($engNumber $bangNumber $str)

return $converted

add_filter( get_the_time make_bangla_number )

add_filter( the_date make_bangla_number )

add_filter( get_the_date make_bangla_number )

add_filter( comments_number make_bangla_number )

add_filter( get_comment_date make_bangla_number )

add_filter( get_comment_time make_bangla_number )

gt

60

সলাাআডায পলাগগন াঅভযা এাআ ফাআপরয়য কর গটউপরটাগযয়াপরর মা মা গখরাভ তা এফায একগট নডাাংগ পলাগগপরনয এপলাাআ কযফ সলাাআডায পলাগগন মপপরকড াঅভযা ফাাআ জাগন একগট ওপরয়ফাাআপরটয ডচাযা ারপরট ডদয় একগট সলাাআডায াপরনক ডাাআনাগভক ভপরন য় ডদখপরতও াপরনক বার রাপরগ এাআ পলাগগপরন াঅভযা এডগভন যাপরনর ডথপরক াআপরভজ ডমাগ কযফ এফাং তা াঅভাপরদয াাআপরট ডদখাফ চরন কাজ রর কগয- েথপরভ গনপরবা সলাাআডায এয ওপরয়ফাাআপরট মান এফাং jQuery Plugin ডাউনপররাড করন

ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom Version 10

gt

াঅভযা পলাগগপরনয ডডায ততগয কযরাভ

পলাগগন গরপরসট ডদখাপরচছ bdquoLitons Nivo Plugin‟ াঅভাপরদয েথভ কাজ পরচছ custom post

type ওয়াডডপরে পাাংনাগরগট একগট নতন কাসটভ ডজ ততগয কযপরত custom post type

ফযফহরত পরফ ডমখাপরন একগট াআপরভজ থাকপরফ াঅভযা রধ টাাআপরটর ডনভ এফাং াআপরভজ াঅপররাডায গপরপরফ গপচায াআপরভজ পাাংনাগরগট ফযফায কযফ function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_function 600 280 true)

61

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

add_action(init np_init)

উপরযয ডকাপরড np_init() পাাংনগট রক কপরযগি মা ডডায যান কযায াঅপরগ যান পরফ াঅয এজনয register_post_type() পাাংনপরক এয যাযাগভটায গদপরয় np_init() পাাংপরনয ডবতপরয মি কপরযগি এটা মগদ না কযতাভ তাপরর ldquoHeaders already sentrdquo ডভপরজ ডদখাত এাআ ডভপরজগটয াপরথ াপরনপরকাআ গযগচত াঅা কগয register_post_type() পাাংন গদপরয় াঅভযা াআপরভজ মি এফাং ভযাপরনজ কযফ ভরত াঅভযা একগট নতন custom post type ডমাগ কপরযগি np_images নাভ গদপরয় নতন custom post type ডক ডগটাং বযার গপরপরফ াঅযগপরভনট া কপরযগি $args ডবগযপরয়ফরগট ট ডরপরবর ডভন ততগয কপরয াঅপরগাআ ডদপরখগি পলাগগনগট এগকটপরবট কযপরর াঅভযা গনপরচয ভত ডদখপরত াফ-

এফায গিে এফাং সটাাআরীট ডক মি কযফ- add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

এফায রক কযা পাাংনগপররা গডপরিয়ায কগয- function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__) array( jquery ))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

62

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

উপরযয ডকাডগপররা নতন কপরয ফিডনা কযায গকি ডনাআ াঅপরগাআ wp_enqueue_style() এফাং wp_enqueue_script() মপপরকড ফরা পরয়পরি নতন াঅপরযকগট পাাআর ততগয করন একাআ গডপরযকটগযপরত scriptjs এফাং গনপরচয ডকাডটক গদন- jQuery(document)ready(function($)

$(slider)nivoSlider()

)

াআপরভজপরক গযাাআজ করন- add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

াঅভযা এাআ পলাগগনগটপরক উাআপরজট গপরপরফও ফযফায কযফ ডগট পরয ডদখফ াঅপরযকগট গজগন মগদ গথপরভ না ডদয়া থাপরক ডজনয থামবপরনাআর াপরাটড গদপরয় গদন- add_theme_support( post-thumbnails )

এফায ওয়াডডপরেপরয কাপরযনট ডাসট কপরয়যী কযায ডকাড াঅয $result ডবগযপরয়ফপরর ডমফ ltdivgt টযাগ ফযফায কযা পরয়পরি তা jQuery Plugin গট একসিাকট কপরয indexhtml ডজগটয ডভাআন সলাাআডায ডকাডগট ডদখন একাআ াঅপরি রধ ডখানকায ltdivgt টযাগ গপররাপরক কগ কপরয এাআ পলাগগপরন ফযফায কযা পরয়পরি এফায টডপরকাড গদন- add_shortcode(np-shortcode np_function)

এাআ টডপরকাড গএাআচগ পাাংনপরক রক কযপরফ এফাং এয ভধয ডথপরক সলাাআডপরায কনপরটনট ডক গযটানড কযপরফ াঅভাপরদয টডপরকাড পরচছ [np-shortcode] াঅভযা পলাগগপরন মাাআ এফাং একগট িগফ মি কগয গপচাযড াআপরভজ গপরপরফ গনপরচ ডদখন-

63

াঅগভ াঅপরযকগট ডজ ততগয কপরযগি ডমখাপরন টডপরকাড গদপরয়গি

াঅউটট ডজ ডদগখ এফায-

64

পরয় ডগর াঅভাপরদয সলাাআডায পলাগগন পরযা ডকাডগট গনপরচ গদরাভ- ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

65

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

66

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

এফায াঅগন মগদ উাআপরজট গপরপরফ ফযফায কযপরত চান তাপরর গনপরচয ডকাডটক গদন- class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

67

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

echo $after_widget

াঅপরযা রগট কাজ কযপরত পরফ াঅনাপরক এক াআপরভজ াাআজ উাআপরজট এয জনয গঠক কপরয গদপরত পরফ- add_image_size(np_widget 180 100 true)

াঅপরযকগট র উাআপরজট এযাকন রক ডমাগ কযা add_action(widgets_init np_widgets_init)

উাআপরজট পরযা ডকাড াঅফায গদরাভ- ltphp

Plugin Name Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Ciprian Turcu

Version 10

68

class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

69

echo $after_widget

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

70

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(widgets_init np_widgets_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

71

পলাগগন গনপরয় এত ডিাট গযপরয ডরখা মভফ নয় এজনযাআ ভপরন য় পলাগগন গনপরয় ডকউ ডরপরখন না কাযন এখাপরন এত গফলয় াঅপরি মা াঅপররাচনা কযপরত ডগপরর ৫০০ ডজ ায পরয় মাপরফ ডফাোয সগফধাপরথড াঅগভ মথামভফ উদাযন গদপরয় ডফাোপরনায ডচষটা কপরযগি াঅগভ এখাপরন টাপরগডট কপরযগি মাযা টকটাক জাপরন পলাগগন মপপরকড এডবানস ডরপরবপররয নয় কাযন তাযা জাপরনন াঅভায উপরেশয গির মাযা জানপরত চায় তাপরদযপরক জানাপরনা এখাপরন ডমফ গফলয় াঅপররাচনা কযা পরয়পরি তা ডভাটাভগট ভাপরনয একগট পলাগগন ফানাপরনায জনয মপরথষট তপরফ ভাপরনাননয়পরনয জনয াঅনাপরক গনপরজাআ খাপরজ গনপরত পরফ াঅনায জনয ডকানটা বার পরফ াঅগভ রধ গদক গনপরদডনা গদরাভ ভাতর এাআ ফাআগট রধভাতর ওয়াডডপরে রেপরয জনয ডরখা াপরনক বর ভরাগনত থাকপরত াপরয াঅনাযা কষভাসনদয দগষটপরত ডদখপরফন াঅগভ ডচষটা কপরযগি মতটা জ কপরয ডরখা মায় াপরনক ভয় ডদখা মায় ডম খফ ডিাট খাপরটা গফলয় গনপরয় াপরনপরকাআ নক কপরযন এটা গতয রাঃখজনক াঅনাযা গগপরর একট খাজপররাআ ভাধান াপরফন াঅপরগ গনপরজ ডচষটা করন তায পরয ানযপরক ভাধাপরনয জনয গজজঞাা করন াঅভায জনয ডদায়া কযপরফন বাপররা রাগপরর জানাপরফন খাযা রাগপররও জানাপরফন তাপররাআ াঅভায গযশরভ সবাথডক পরফ ভতাভত জাগনপরয় াঅভাপরক ডভাআর কযপরত াপরযন litonice09gmailcom |

72

Page 55: Wordpress Plugin Development

56

াঅভাপরদয ততগয কযা টডপরকাড পরবাপরফাআ কাজ কযপরি াঅপরযকগট উদাযন ডদখফ াঅনাযা াপরনপরকাআ গগর এডপরনস গনপরয় কাজ কপরযন াঅনাযা াপরনপরকাআ এডপরনস এয জনয পলাগগন ফযফায কপরযন গকনত চাাআপররাআ এাআ কাজগট াঅনাযা গনপরজয ভত কপরয াগজপরয় গনপরত াপরযন গগপররয কাপরি ফ ডাসট বযার ায়না াঅনাযা মাযা একসাটড াঅপরিন তাযা এটা বার কপরয জাপরনন তাাআ াপরনপরকাআ গগপররয ডকাড ফ ডপরজ ডদখাপরত চান না এজনয পলাগগন ফযফায কপরয রাব য়না কাযন পলাগগপরন জায়গা গপকসড থাপরক এপরত কপরয াঅগনডাং ও কভ য় াঅনাযা টডপরকাড ফযফায কপরয ডমপরকান জায়গায় এড ডদখাপরত াপরযন গনপরচ াঅগভ রগট টডপরকাড ততগয কপরযগি র‟ধযপরনয এড ডদখাপরনায জনয ltphp

Plugin Name Liton Adsense Shortcode

Plugin URI httpliton-onlinecomplugins

Description This is a demo description

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

add_shortcode(adsense_468adsense_468_60)

add_shortcode(adsense_250adsense_250_250)

function adsense_468_60($atts)

return ltscript type=textjavascriptgtlt--

57

google_ad_client = ca-pub-0956247412222369

468x60 created 101510

google_ad_slot = 4372705450

google_ad_width = 468

google_ad_height = 60

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

function adsense_250_250($atts)

return ltscript type=textjavascriptgtlt--

google_ad_client = ca-pub-0956247412222369

250x250 created 81809

google_ad_slot = 9368091893

google_ad_width = 250

google_ad_height = 250

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

gt

একগট টডপরকাড ফযানায টাাআপরয জনয এফাং াঅপরযকগট ২৫০২৫০ াাআপরজয এফায ডাপরসট ডমপরকান একগট টডপরকাড াআনাটড করন ডমখাপরন াঅনায ডদখাপরনায েপরয়াজন ভপরন কপরযন াঅগভ রগট ডকাড ডটসট কপরয ডদখরাভ-

58

এফায াাআপরটয াঅউটট ডদগখ-

রগট এডাআ ডদখাপরচছ াঅপরযা াপরনক কাপরজ াঅগন টডপরকাড ফযফায কযপরত াপরযন ডযপাপরযনসাঃ httpcodexwordpressorgShortcode_API

59

াধযায়- নয়াঃ পলাগগন উদাযন

ওয়াডডপরেপরয ডডটটাাআভকপরভনট নামবায ফাাংরা কযায পলাগগন াঅভাপরক কপরয়কজন ফপররগিপররন ওয়াডডপরেপরয গডপলট ডডটটাাআভকপরভনট নামবায ফাাংরা য়না রযাাংগপরয়জ ফাাংরা কযায যও ডডটটাাআভকপরভনট নামবায গপররা াআাংপরযগজ ডথপরক মায় গনপরচয পলাগগনগট ফযফায কপরয ডদখপরত াপরযন- ltphp

Plugin Name Liton Bangla datetimecomment number

Plugin URI httpliton-onlinecomplugins

Description Bangla datetimecomment number

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

This function converts all english numbers to bangla number

function make_bangla_number($str)

$engNumber = array(1234567890)

$bangNumber = array( ১ ২ ৩ ৪ ৫ ৬ ৭ ৮ ৯ ০ ) $converted = str_replace($engNumber $bangNumber $str)

return $converted

add_filter( get_the_time make_bangla_number )

add_filter( the_date make_bangla_number )

add_filter( get_the_date make_bangla_number )

add_filter( comments_number make_bangla_number )

add_filter( get_comment_date make_bangla_number )

add_filter( get_comment_time make_bangla_number )

gt

60

সলাাআডায পলাগগন াঅভযা এাআ ফাআপরয়য কর গটউপরটাগযয়াপরর মা মা গখরাভ তা এফায একগট নডাাংগ পলাগগপরনয এপলাাআ কযফ সলাাআডায পলাগগন মপপরকড াঅভযা ফাাআ জাগন একগট ওপরয়ফাাআপরটয ডচাযা ারপরট ডদয় একগট সলাাআডায াপরনক ডাাআনাগভক ভপরন য় ডদখপরতও াপরনক বার রাপরগ এাআ পলাগগপরন াঅভযা এডগভন যাপরনর ডথপরক াআপরভজ ডমাগ কযফ এফাং তা াঅভাপরদয াাআপরট ডদখাফ চরন কাজ রর কগয- েথপরভ গনপরবা সলাাআডায এয ওপরয়ফাাআপরট মান এফাং jQuery Plugin ডাউনপররাড করন

ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom Version 10

gt

াঅভযা পলাগগপরনয ডডায ততগয কযরাভ

পলাগগন গরপরসট ডদখাপরচছ bdquoLitons Nivo Plugin‟ াঅভাপরদয েথভ কাজ পরচছ custom post

type ওয়াডডপরে পাাংনাগরগট একগট নতন কাসটভ ডজ ততগয কযপরত custom post type

ফযফহরত পরফ ডমখাপরন একগট াআপরভজ থাকপরফ াঅভযা রধ টাাআপরটর ডনভ এফাং াআপরভজ াঅপররাডায গপরপরফ গপচায াআপরভজ পাাংনাগরগট ফযফায কযফ function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_function 600 280 true)

61

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

add_action(init np_init)

উপরযয ডকাপরড np_init() পাাংনগট রক কপরযগি মা ডডায যান কযায াঅপরগ যান পরফ াঅয এজনয register_post_type() পাাংনপরক এয যাযাগভটায গদপরয় np_init() পাাংপরনয ডবতপরয মি কপরযগি এটা মগদ না কযতাভ তাপরর ldquoHeaders already sentrdquo ডভপরজ ডদখাত এাআ ডভপরজগটয াপরথ াপরনপরকাআ গযগচত াঅা কগয register_post_type() পাাংন গদপরয় াঅভযা াআপরভজ মি এফাং ভযাপরনজ কযফ ভরত াঅভযা একগট নতন custom post type ডমাগ কপরযগি np_images নাভ গদপরয় নতন custom post type ডক ডগটাং বযার গপরপরফ াঅযগপরভনট া কপরযগি $args ডবগযপরয়ফরগট ট ডরপরবর ডভন ততগয কপরয াঅপরগাআ ডদপরখগি পলাগগনগট এগকটপরবট কযপরর াঅভযা গনপরচয ভত ডদখপরত াফ-

এফায গিে এফাং সটাাআরীট ডক মি কযফ- add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

এফায রক কযা পাাংনগপররা গডপরিয়ায কগয- function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__) array( jquery ))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

62

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

উপরযয ডকাডগপররা নতন কপরয ফিডনা কযায গকি ডনাআ াঅপরগাআ wp_enqueue_style() এফাং wp_enqueue_script() মপপরকড ফরা পরয়পরি নতন াঅপরযকগট পাাআর ততগয করন একাআ গডপরযকটগযপরত scriptjs এফাং গনপরচয ডকাডটক গদন- jQuery(document)ready(function($)

$(slider)nivoSlider()

)

াআপরভজপরক গযাাআজ করন- add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

াঅভযা এাআ পলাগগনগটপরক উাআপরজট গপরপরফও ফযফায কযফ ডগট পরয ডদখফ াঅপরযকগট গজগন মগদ গথপরভ না ডদয়া থাপরক ডজনয থামবপরনাআর াপরাটড গদপরয় গদন- add_theme_support( post-thumbnails )

এফায ওয়াডডপরেপরয কাপরযনট ডাসট কপরয়যী কযায ডকাড াঅয $result ডবগযপরয়ফপরর ডমফ ltdivgt টযাগ ফযফায কযা পরয়পরি তা jQuery Plugin গট একসিাকট কপরয indexhtml ডজগটয ডভাআন সলাাআডায ডকাডগট ডদখন একাআ াঅপরি রধ ডখানকায ltdivgt টযাগ গপররাপরক কগ কপরয এাআ পলাগগপরন ফযফায কযা পরয়পরি এফায টডপরকাড গদন- add_shortcode(np-shortcode np_function)

এাআ টডপরকাড গএাআচগ পাাংনপরক রক কযপরফ এফাং এয ভধয ডথপরক সলাাআডপরায কনপরটনট ডক গযটানড কযপরফ াঅভাপরদয টডপরকাড পরচছ [np-shortcode] াঅভযা পলাগগপরন মাাআ এফাং একগট িগফ মি কগয গপচাযড াআপরভজ গপরপরফ গনপরচ ডদখন-

63

াঅগভ াঅপরযকগট ডজ ততগয কপরযগি ডমখাপরন টডপরকাড গদপরয়গি

াঅউটট ডজ ডদগখ এফায-

64

পরয় ডগর াঅভাপরদয সলাাআডায পলাগগন পরযা ডকাডগট গনপরচ গদরাভ- ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

65

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

66

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

এফায াঅগন মগদ উাআপরজট গপরপরফ ফযফায কযপরত চান তাপরর গনপরচয ডকাডটক গদন- class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

67

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

echo $after_widget

াঅপরযা রগট কাজ কযপরত পরফ াঅনাপরক এক াআপরভজ াাআজ উাআপরজট এয জনয গঠক কপরয গদপরত পরফ- add_image_size(np_widget 180 100 true)

াঅপরযকগট র উাআপরজট এযাকন রক ডমাগ কযা add_action(widgets_init np_widgets_init)

উাআপরজট পরযা ডকাড াঅফায গদরাভ- ltphp

Plugin Name Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Ciprian Turcu

Version 10

68

class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

69

echo $after_widget

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

70

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(widgets_init np_widgets_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

71

পলাগগন গনপরয় এত ডিাট গযপরয ডরখা মভফ নয় এজনযাআ ভপরন য় পলাগগন গনপরয় ডকউ ডরপরখন না কাযন এখাপরন এত গফলয় াঅপরি মা াঅপররাচনা কযপরত ডগপরর ৫০০ ডজ ায পরয় মাপরফ ডফাোয সগফধাপরথড াঅগভ মথামভফ উদাযন গদপরয় ডফাোপরনায ডচষটা কপরযগি াঅগভ এখাপরন টাপরগডট কপরযগি মাযা টকটাক জাপরন পলাগগন মপপরকড এডবানস ডরপরবপররয নয় কাযন তাযা জাপরনন াঅভায উপরেশয গির মাযা জানপরত চায় তাপরদযপরক জানাপরনা এখাপরন ডমফ গফলয় াঅপররাচনা কযা পরয়পরি তা ডভাটাভগট ভাপরনয একগট পলাগগন ফানাপরনায জনয মপরথষট তপরফ ভাপরনাননয়পরনয জনয াঅনাপরক গনপরজাআ খাপরজ গনপরত পরফ াঅনায জনয ডকানটা বার পরফ াঅগভ রধ গদক গনপরদডনা গদরাভ ভাতর এাআ ফাআগট রধভাতর ওয়াডডপরে রেপরয জনয ডরখা াপরনক বর ভরাগনত থাকপরত াপরয াঅনাযা কষভাসনদয দগষটপরত ডদখপরফন াঅগভ ডচষটা কপরযগি মতটা জ কপরয ডরখা মায় াপরনক ভয় ডদখা মায় ডম খফ ডিাট খাপরটা গফলয় গনপরয় াপরনপরকাআ নক কপরযন এটা গতয রাঃখজনক াঅনাযা গগপরর একট খাজপররাআ ভাধান াপরফন াঅপরগ গনপরজ ডচষটা করন তায পরয ানযপরক ভাধাপরনয জনয গজজঞাা করন াঅভায জনয ডদায়া কযপরফন বাপররা রাগপরর জানাপরফন খাযা রাগপররও জানাপরফন তাপররাআ াঅভায গযশরভ সবাথডক পরফ ভতাভত জাগনপরয় াঅভাপরক ডভাআর কযপরত াপরযন litonice09gmailcom |

72

Page 56: Wordpress Plugin Development

57

google_ad_client = ca-pub-0956247412222369

468x60 created 101510

google_ad_slot = 4372705450

google_ad_width = 468

google_ad_height = 60

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

function adsense_250_250($atts)

return ltscript type=textjavascriptgtlt--

google_ad_client = ca-pub-0956247412222369

250x250 created 81809

google_ad_slot = 9368091893

google_ad_width = 250

google_ad_height = 250

--gt

ltscriptgt

ltscript type=textjavascript

src=httppagead2googlesyndicationcompageadshow_adsjsgt

ltscriptgt

gt

একগট টডপরকাড ফযানায টাাআপরয জনয এফাং াঅপরযকগট ২৫০২৫০ াাআপরজয এফায ডাপরসট ডমপরকান একগট টডপরকাড াআনাটড করন ডমখাপরন াঅনায ডদখাপরনায েপরয়াজন ভপরন কপরযন াঅগভ রগট ডকাড ডটসট কপরয ডদখরাভ-

58

এফায াাআপরটয াঅউটট ডদগখ-

রগট এডাআ ডদখাপরচছ াঅপরযা াপরনক কাপরজ াঅগন টডপরকাড ফযফায কযপরত াপরযন ডযপাপরযনসাঃ httpcodexwordpressorgShortcode_API

59

াধযায়- নয়াঃ পলাগগন উদাযন

ওয়াডডপরেপরয ডডটটাাআভকপরভনট নামবায ফাাংরা কযায পলাগগন াঅভাপরক কপরয়কজন ফপররগিপররন ওয়াডডপরেপরয গডপলট ডডটটাাআভকপরভনট নামবায ফাাংরা য়না রযাাংগপরয়জ ফাাংরা কযায যও ডডটটাাআভকপরভনট নামবায গপররা াআাংপরযগজ ডথপরক মায় গনপরচয পলাগগনগট ফযফায কপরয ডদখপরত াপরযন- ltphp

Plugin Name Liton Bangla datetimecomment number

Plugin URI httpliton-onlinecomplugins

Description Bangla datetimecomment number

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

This function converts all english numbers to bangla number

function make_bangla_number($str)

$engNumber = array(1234567890)

$bangNumber = array( ১ ২ ৩ ৪ ৫ ৬ ৭ ৮ ৯ ০ ) $converted = str_replace($engNumber $bangNumber $str)

return $converted

add_filter( get_the_time make_bangla_number )

add_filter( the_date make_bangla_number )

add_filter( get_the_date make_bangla_number )

add_filter( comments_number make_bangla_number )

add_filter( get_comment_date make_bangla_number )

add_filter( get_comment_time make_bangla_number )

gt

60

সলাাআডায পলাগগন াঅভযা এাআ ফাআপরয়য কর গটউপরটাগযয়াপরর মা মা গখরাভ তা এফায একগট নডাাংগ পলাগগপরনয এপলাাআ কযফ সলাাআডায পলাগগন মপপরকড াঅভযা ফাাআ জাগন একগট ওপরয়ফাাআপরটয ডচাযা ারপরট ডদয় একগট সলাাআডায াপরনক ডাাআনাগভক ভপরন য় ডদখপরতও াপরনক বার রাপরগ এাআ পলাগগপরন াঅভযা এডগভন যাপরনর ডথপরক াআপরভজ ডমাগ কযফ এফাং তা াঅভাপরদয াাআপরট ডদখাফ চরন কাজ রর কগয- েথপরভ গনপরবা সলাাআডায এয ওপরয়ফাাআপরট মান এফাং jQuery Plugin ডাউনপররাড করন

ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom Version 10

gt

াঅভযা পলাগগপরনয ডডায ততগয কযরাভ

পলাগগন গরপরসট ডদখাপরচছ bdquoLitons Nivo Plugin‟ াঅভাপরদয েথভ কাজ পরচছ custom post

type ওয়াডডপরে পাাংনাগরগট একগট নতন কাসটভ ডজ ততগয কযপরত custom post type

ফযফহরত পরফ ডমখাপরন একগট াআপরভজ থাকপরফ াঅভযা রধ টাাআপরটর ডনভ এফাং াআপরভজ াঅপররাডায গপরপরফ গপচায াআপরভজ পাাংনাগরগট ফযফায কযফ function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_function 600 280 true)

61

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

add_action(init np_init)

উপরযয ডকাপরড np_init() পাাংনগট রক কপরযগি মা ডডায যান কযায াঅপরগ যান পরফ াঅয এজনয register_post_type() পাাংনপরক এয যাযাগভটায গদপরয় np_init() পাাংপরনয ডবতপরয মি কপরযগি এটা মগদ না কযতাভ তাপরর ldquoHeaders already sentrdquo ডভপরজ ডদখাত এাআ ডভপরজগটয াপরথ াপরনপরকাআ গযগচত াঅা কগয register_post_type() পাাংন গদপরয় াঅভযা াআপরভজ মি এফাং ভযাপরনজ কযফ ভরত াঅভযা একগট নতন custom post type ডমাগ কপরযগি np_images নাভ গদপরয় নতন custom post type ডক ডগটাং বযার গপরপরফ াঅযগপরভনট া কপরযগি $args ডবগযপরয়ফরগট ট ডরপরবর ডভন ততগয কপরয াঅপরগাআ ডদপরখগি পলাগগনগট এগকটপরবট কযপরর াঅভযা গনপরচয ভত ডদখপরত াফ-

এফায গিে এফাং সটাাআরীট ডক মি কযফ- add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

এফায রক কযা পাাংনগপররা গডপরিয়ায কগয- function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__) array( jquery ))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

62

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

উপরযয ডকাডগপররা নতন কপরয ফিডনা কযায গকি ডনাআ াঅপরগাআ wp_enqueue_style() এফাং wp_enqueue_script() মপপরকড ফরা পরয়পরি নতন াঅপরযকগট পাাআর ততগয করন একাআ গডপরযকটগযপরত scriptjs এফাং গনপরচয ডকাডটক গদন- jQuery(document)ready(function($)

$(slider)nivoSlider()

)

াআপরভজপরক গযাাআজ করন- add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

াঅভযা এাআ পলাগগনগটপরক উাআপরজট গপরপরফও ফযফায কযফ ডগট পরয ডদখফ াঅপরযকগট গজগন মগদ গথপরভ না ডদয়া থাপরক ডজনয থামবপরনাআর াপরাটড গদপরয় গদন- add_theme_support( post-thumbnails )

এফায ওয়াডডপরেপরয কাপরযনট ডাসট কপরয়যী কযায ডকাড াঅয $result ডবগযপরয়ফপরর ডমফ ltdivgt টযাগ ফযফায কযা পরয়পরি তা jQuery Plugin গট একসিাকট কপরয indexhtml ডজগটয ডভাআন সলাাআডায ডকাডগট ডদখন একাআ াঅপরি রধ ডখানকায ltdivgt টযাগ গপররাপরক কগ কপরয এাআ পলাগগপরন ফযফায কযা পরয়পরি এফায টডপরকাড গদন- add_shortcode(np-shortcode np_function)

এাআ টডপরকাড গএাআচগ পাাংনপরক রক কযপরফ এফাং এয ভধয ডথপরক সলাাআডপরায কনপরটনট ডক গযটানড কযপরফ াঅভাপরদয টডপরকাড পরচছ [np-shortcode] াঅভযা পলাগগপরন মাাআ এফাং একগট িগফ মি কগয গপচাযড াআপরভজ গপরপরফ গনপরচ ডদখন-

63

াঅগভ াঅপরযকগট ডজ ততগয কপরযগি ডমখাপরন টডপরকাড গদপরয়গি

াঅউটট ডজ ডদগখ এফায-

64

পরয় ডগর াঅভাপরদয সলাাআডায পলাগগন পরযা ডকাডগট গনপরচ গদরাভ- ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

65

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

66

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

এফায াঅগন মগদ উাআপরজট গপরপরফ ফযফায কযপরত চান তাপরর গনপরচয ডকাডটক গদন- class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

67

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

echo $after_widget

াঅপরযা রগট কাজ কযপরত পরফ াঅনাপরক এক াআপরভজ াাআজ উাআপরজট এয জনয গঠক কপরয গদপরত পরফ- add_image_size(np_widget 180 100 true)

াঅপরযকগট র উাআপরজট এযাকন রক ডমাগ কযা add_action(widgets_init np_widgets_init)

উাআপরজট পরযা ডকাড াঅফায গদরাভ- ltphp

Plugin Name Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Ciprian Turcu

Version 10

68

class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

69

echo $after_widget

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

70

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(widgets_init np_widgets_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

71

পলাগগন গনপরয় এত ডিাট গযপরয ডরখা মভফ নয় এজনযাআ ভপরন য় পলাগগন গনপরয় ডকউ ডরপরখন না কাযন এখাপরন এত গফলয় াঅপরি মা াঅপররাচনা কযপরত ডগপরর ৫০০ ডজ ায পরয় মাপরফ ডফাোয সগফধাপরথড াঅগভ মথামভফ উদাযন গদপরয় ডফাোপরনায ডচষটা কপরযগি াঅগভ এখাপরন টাপরগডট কপরযগি মাযা টকটাক জাপরন পলাগগন মপপরকড এডবানস ডরপরবপররয নয় কাযন তাযা জাপরনন াঅভায উপরেশয গির মাযা জানপরত চায় তাপরদযপরক জানাপরনা এখাপরন ডমফ গফলয় াঅপররাচনা কযা পরয়পরি তা ডভাটাভগট ভাপরনয একগট পলাগগন ফানাপরনায জনয মপরথষট তপরফ ভাপরনাননয়পরনয জনয াঅনাপরক গনপরজাআ খাপরজ গনপরত পরফ াঅনায জনয ডকানটা বার পরফ াঅগভ রধ গদক গনপরদডনা গদরাভ ভাতর এাআ ফাআগট রধভাতর ওয়াডডপরে রেপরয জনয ডরখা াপরনক বর ভরাগনত থাকপরত াপরয াঅনাযা কষভাসনদয দগষটপরত ডদখপরফন াঅগভ ডচষটা কপরযগি মতটা জ কপরয ডরখা মায় াপরনক ভয় ডদখা মায় ডম খফ ডিাট খাপরটা গফলয় গনপরয় াপরনপরকাআ নক কপরযন এটা গতয রাঃখজনক াঅনাযা গগপরর একট খাজপররাআ ভাধান াপরফন াঅপরগ গনপরজ ডচষটা করন তায পরয ানযপরক ভাধাপরনয জনয গজজঞাা করন াঅভায জনয ডদায়া কযপরফন বাপররা রাগপরর জানাপরফন খাযা রাগপররও জানাপরফন তাপররাআ াঅভায গযশরভ সবাথডক পরফ ভতাভত জাগনপরয় াঅভাপরক ডভাআর কযপরত াপরযন litonice09gmailcom |

72

Page 57: Wordpress Plugin Development

58

এফায াাআপরটয াঅউটট ডদগখ-

রগট এডাআ ডদখাপরচছ াঅপরযা াপরনক কাপরজ াঅগন টডপরকাড ফযফায কযপরত াপরযন ডযপাপরযনসাঃ httpcodexwordpressorgShortcode_API

59

াধযায়- নয়াঃ পলাগগন উদাযন

ওয়াডডপরেপরয ডডটটাাআভকপরভনট নামবায ফাাংরা কযায পলাগগন াঅভাপরক কপরয়কজন ফপররগিপররন ওয়াডডপরেপরয গডপলট ডডটটাাআভকপরভনট নামবায ফাাংরা য়না রযাাংগপরয়জ ফাাংরা কযায যও ডডটটাাআভকপরভনট নামবায গপররা াআাংপরযগজ ডথপরক মায় গনপরচয পলাগগনগট ফযফায কপরয ডদখপরত াপরযন- ltphp

Plugin Name Liton Bangla datetimecomment number

Plugin URI httpliton-onlinecomplugins

Description Bangla datetimecomment number

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

This function converts all english numbers to bangla number

function make_bangla_number($str)

$engNumber = array(1234567890)

$bangNumber = array( ১ ২ ৩ ৪ ৫ ৬ ৭ ৮ ৯ ০ ) $converted = str_replace($engNumber $bangNumber $str)

return $converted

add_filter( get_the_time make_bangla_number )

add_filter( the_date make_bangla_number )

add_filter( get_the_date make_bangla_number )

add_filter( comments_number make_bangla_number )

add_filter( get_comment_date make_bangla_number )

add_filter( get_comment_time make_bangla_number )

gt

60

সলাাআডায পলাগগন াঅভযা এাআ ফাআপরয়য কর গটউপরটাগযয়াপরর মা মা গখরাভ তা এফায একগট নডাাংগ পলাগগপরনয এপলাাআ কযফ সলাাআডায পলাগগন মপপরকড াঅভযা ফাাআ জাগন একগট ওপরয়ফাাআপরটয ডচাযা ারপরট ডদয় একগট সলাাআডায াপরনক ডাাআনাগভক ভপরন য় ডদখপরতও াপরনক বার রাপরগ এাআ পলাগগপরন াঅভযা এডগভন যাপরনর ডথপরক াআপরভজ ডমাগ কযফ এফাং তা াঅভাপরদয াাআপরট ডদখাফ চরন কাজ রর কগয- েথপরভ গনপরবা সলাাআডায এয ওপরয়ফাাআপরট মান এফাং jQuery Plugin ডাউনপররাড করন

ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom Version 10

gt

াঅভযা পলাগগপরনয ডডায ততগয কযরাভ

পলাগগন গরপরসট ডদখাপরচছ bdquoLitons Nivo Plugin‟ াঅভাপরদয েথভ কাজ পরচছ custom post

type ওয়াডডপরে পাাংনাগরগট একগট নতন কাসটভ ডজ ততগয কযপরত custom post type

ফযফহরত পরফ ডমখাপরন একগট াআপরভজ থাকপরফ াঅভযা রধ টাাআপরটর ডনভ এফাং াআপরভজ াঅপররাডায গপরপরফ গপচায াআপরভজ পাাংনাগরগট ফযফায কযফ function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_function 600 280 true)

61

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

add_action(init np_init)

উপরযয ডকাপরড np_init() পাাংনগট রক কপরযগি মা ডডায যান কযায াঅপরগ যান পরফ াঅয এজনয register_post_type() পাাংনপরক এয যাযাগভটায গদপরয় np_init() পাাংপরনয ডবতপরয মি কপরযগি এটা মগদ না কযতাভ তাপরর ldquoHeaders already sentrdquo ডভপরজ ডদখাত এাআ ডভপরজগটয াপরথ াপরনপরকাআ গযগচত াঅা কগয register_post_type() পাাংন গদপরয় াঅভযা াআপরভজ মি এফাং ভযাপরনজ কযফ ভরত াঅভযা একগট নতন custom post type ডমাগ কপরযগি np_images নাভ গদপরয় নতন custom post type ডক ডগটাং বযার গপরপরফ াঅযগপরভনট া কপরযগি $args ডবগযপরয়ফরগট ট ডরপরবর ডভন ততগয কপরয াঅপরগাআ ডদপরখগি পলাগগনগট এগকটপরবট কযপরর াঅভযা গনপরচয ভত ডদখপরত াফ-

এফায গিে এফাং সটাাআরীট ডক মি কযফ- add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

এফায রক কযা পাাংনগপররা গডপরিয়ায কগয- function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__) array( jquery ))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

62

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

উপরযয ডকাডগপররা নতন কপরয ফিডনা কযায গকি ডনাআ াঅপরগাআ wp_enqueue_style() এফাং wp_enqueue_script() মপপরকড ফরা পরয়পরি নতন াঅপরযকগট পাাআর ততগয করন একাআ গডপরযকটগযপরত scriptjs এফাং গনপরচয ডকাডটক গদন- jQuery(document)ready(function($)

$(slider)nivoSlider()

)

াআপরভজপরক গযাাআজ করন- add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

াঅভযা এাআ পলাগগনগটপরক উাআপরজট গপরপরফও ফযফায কযফ ডগট পরয ডদখফ াঅপরযকগট গজগন মগদ গথপরভ না ডদয়া থাপরক ডজনয থামবপরনাআর াপরাটড গদপরয় গদন- add_theme_support( post-thumbnails )

এফায ওয়াডডপরেপরয কাপরযনট ডাসট কপরয়যী কযায ডকাড াঅয $result ডবগযপরয়ফপরর ডমফ ltdivgt টযাগ ফযফায কযা পরয়পরি তা jQuery Plugin গট একসিাকট কপরয indexhtml ডজগটয ডভাআন সলাাআডায ডকাডগট ডদখন একাআ াঅপরি রধ ডখানকায ltdivgt টযাগ গপররাপরক কগ কপরয এাআ পলাগগপরন ফযফায কযা পরয়পরি এফায টডপরকাড গদন- add_shortcode(np-shortcode np_function)

এাআ টডপরকাড গএাআচগ পাাংনপরক রক কযপরফ এফাং এয ভধয ডথপরক সলাাআডপরায কনপরটনট ডক গযটানড কযপরফ াঅভাপরদয টডপরকাড পরচছ [np-shortcode] াঅভযা পলাগগপরন মাাআ এফাং একগট িগফ মি কগয গপচাযড াআপরভজ গপরপরফ গনপরচ ডদখন-

63

াঅগভ াঅপরযকগট ডজ ততগয কপরযগি ডমখাপরন টডপরকাড গদপরয়গি

াঅউটট ডজ ডদগখ এফায-

64

পরয় ডগর াঅভাপরদয সলাাআডায পলাগগন পরযা ডকাডগট গনপরচ গদরাভ- ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

65

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

66

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

এফায াঅগন মগদ উাআপরজট গপরপরফ ফযফায কযপরত চান তাপরর গনপরচয ডকাডটক গদন- class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

67

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

echo $after_widget

াঅপরযা রগট কাজ কযপরত পরফ াঅনাপরক এক াআপরভজ াাআজ উাআপরজট এয জনয গঠক কপরয গদপরত পরফ- add_image_size(np_widget 180 100 true)

াঅপরযকগট র উাআপরজট এযাকন রক ডমাগ কযা add_action(widgets_init np_widgets_init)

উাআপরজট পরযা ডকাড াঅফায গদরাভ- ltphp

Plugin Name Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Ciprian Turcu

Version 10

68

class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

69

echo $after_widget

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

70

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(widgets_init np_widgets_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

71

পলাগগন গনপরয় এত ডিাট গযপরয ডরখা মভফ নয় এজনযাআ ভপরন য় পলাগগন গনপরয় ডকউ ডরপরখন না কাযন এখাপরন এত গফলয় াঅপরি মা াঅপররাচনা কযপরত ডগপরর ৫০০ ডজ ায পরয় মাপরফ ডফাোয সগফধাপরথড াঅগভ মথামভফ উদাযন গদপরয় ডফাোপরনায ডচষটা কপরযগি াঅগভ এখাপরন টাপরগডট কপরযগি মাযা টকটাক জাপরন পলাগগন মপপরকড এডবানস ডরপরবপররয নয় কাযন তাযা জাপরনন াঅভায উপরেশয গির মাযা জানপরত চায় তাপরদযপরক জানাপরনা এখাপরন ডমফ গফলয় াঅপররাচনা কযা পরয়পরি তা ডভাটাভগট ভাপরনয একগট পলাগগন ফানাপরনায জনয মপরথষট তপরফ ভাপরনাননয়পরনয জনয াঅনাপরক গনপরজাআ খাপরজ গনপরত পরফ াঅনায জনয ডকানটা বার পরফ াঅগভ রধ গদক গনপরদডনা গদরাভ ভাতর এাআ ফাআগট রধভাতর ওয়াডডপরে রেপরয জনয ডরখা াপরনক বর ভরাগনত থাকপরত াপরয াঅনাযা কষভাসনদয দগষটপরত ডদখপরফন াঅগভ ডচষটা কপরযগি মতটা জ কপরয ডরখা মায় াপরনক ভয় ডদখা মায় ডম খফ ডিাট খাপরটা গফলয় গনপরয় াপরনপরকাআ নক কপরযন এটা গতয রাঃখজনক াঅনাযা গগপরর একট খাজপররাআ ভাধান াপরফন াঅপরগ গনপরজ ডচষটা করন তায পরয ানযপরক ভাধাপরনয জনয গজজঞাা করন াঅভায জনয ডদায়া কযপরফন বাপররা রাগপরর জানাপরফন খাযা রাগপররও জানাপরফন তাপররাআ াঅভায গযশরভ সবাথডক পরফ ভতাভত জাগনপরয় াঅভাপরক ডভাআর কযপরত াপরযন litonice09gmailcom |

72

Page 58: Wordpress Plugin Development

59

াধযায়- নয়াঃ পলাগগন উদাযন

ওয়াডডপরেপরয ডডটটাাআভকপরভনট নামবায ফাাংরা কযায পলাগগন াঅভাপরক কপরয়কজন ফপররগিপররন ওয়াডডপরেপরয গডপলট ডডটটাাআভকপরভনট নামবায ফাাংরা য়না রযাাংগপরয়জ ফাাংরা কযায যও ডডটটাাআভকপরভনট নামবায গপররা াআাংপরযগজ ডথপরক মায় গনপরচয পলাগগনগট ফযফায কপরয ডদখপরত াপরযন- ltphp

Plugin Name Liton Bangla datetimecomment number

Plugin URI httpliton-onlinecomplugins

Description Bangla datetimecomment number

Version 10 Author Md Liton Arefin

Author URI httpliton-onlinecom

This function converts all english numbers to bangla number

function make_bangla_number($str)

$engNumber = array(1234567890)

$bangNumber = array( ১ ২ ৩ ৪ ৫ ৬ ৭ ৮ ৯ ০ ) $converted = str_replace($engNumber $bangNumber $str)

return $converted

add_filter( get_the_time make_bangla_number )

add_filter( the_date make_bangla_number )

add_filter( get_the_date make_bangla_number )

add_filter( comments_number make_bangla_number )

add_filter( get_comment_date make_bangla_number )

add_filter( get_comment_time make_bangla_number )

gt

60

সলাাআডায পলাগগন াঅভযা এাআ ফাআপরয়য কর গটউপরটাগযয়াপরর মা মা গখরাভ তা এফায একগট নডাাংগ পলাগগপরনয এপলাাআ কযফ সলাাআডায পলাগগন মপপরকড াঅভযা ফাাআ জাগন একগট ওপরয়ফাাআপরটয ডচাযা ারপরট ডদয় একগট সলাাআডায াপরনক ডাাআনাগভক ভপরন য় ডদখপরতও াপরনক বার রাপরগ এাআ পলাগগপরন াঅভযা এডগভন যাপরনর ডথপরক াআপরভজ ডমাগ কযফ এফাং তা াঅভাপরদয াাআপরট ডদখাফ চরন কাজ রর কগয- েথপরভ গনপরবা সলাাআডায এয ওপরয়ফাাআপরট মান এফাং jQuery Plugin ডাউনপররাড করন

ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom Version 10

gt

াঅভযা পলাগগপরনয ডডায ততগয কযরাভ

পলাগগন গরপরসট ডদখাপরচছ bdquoLitons Nivo Plugin‟ াঅভাপরদয েথভ কাজ পরচছ custom post

type ওয়াডডপরে পাাংনাগরগট একগট নতন কাসটভ ডজ ততগয কযপরত custom post type

ফযফহরত পরফ ডমখাপরন একগট াআপরভজ থাকপরফ াঅভযা রধ টাাআপরটর ডনভ এফাং াআপরভজ াঅপররাডায গপরপরফ গপচায াআপরভজ পাাংনাগরগট ফযফায কযফ function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_function 600 280 true)

61

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

add_action(init np_init)

উপরযয ডকাপরড np_init() পাাংনগট রক কপরযগি মা ডডায যান কযায াঅপরগ যান পরফ াঅয এজনয register_post_type() পাাংনপরক এয যাযাগভটায গদপরয় np_init() পাাংপরনয ডবতপরয মি কপরযগি এটা মগদ না কযতাভ তাপরর ldquoHeaders already sentrdquo ডভপরজ ডদখাত এাআ ডভপরজগটয াপরথ াপরনপরকাআ গযগচত াঅা কগয register_post_type() পাাংন গদপরয় াঅভযা াআপরভজ মি এফাং ভযাপরনজ কযফ ভরত াঅভযা একগট নতন custom post type ডমাগ কপরযগি np_images নাভ গদপরয় নতন custom post type ডক ডগটাং বযার গপরপরফ াঅযগপরভনট া কপরযগি $args ডবগযপরয়ফরগট ট ডরপরবর ডভন ততগয কপরয াঅপরগাআ ডদপরখগি পলাগগনগট এগকটপরবট কযপরর াঅভযা গনপরচয ভত ডদখপরত াফ-

এফায গিে এফাং সটাাআরীট ডক মি কযফ- add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

এফায রক কযা পাাংনগপররা গডপরিয়ায কগয- function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__) array( jquery ))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

62

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

উপরযয ডকাডগপররা নতন কপরয ফিডনা কযায গকি ডনাআ াঅপরগাআ wp_enqueue_style() এফাং wp_enqueue_script() মপপরকড ফরা পরয়পরি নতন াঅপরযকগট পাাআর ততগয করন একাআ গডপরযকটগযপরত scriptjs এফাং গনপরচয ডকাডটক গদন- jQuery(document)ready(function($)

$(slider)nivoSlider()

)

াআপরভজপরক গযাাআজ করন- add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

াঅভযা এাআ পলাগগনগটপরক উাআপরজট গপরপরফও ফযফায কযফ ডগট পরয ডদখফ াঅপরযকগট গজগন মগদ গথপরভ না ডদয়া থাপরক ডজনয থামবপরনাআর াপরাটড গদপরয় গদন- add_theme_support( post-thumbnails )

এফায ওয়াডডপরেপরয কাপরযনট ডাসট কপরয়যী কযায ডকাড াঅয $result ডবগযপরয়ফপরর ডমফ ltdivgt টযাগ ফযফায কযা পরয়পরি তা jQuery Plugin গট একসিাকট কপরয indexhtml ডজগটয ডভাআন সলাাআডায ডকাডগট ডদখন একাআ াঅপরি রধ ডখানকায ltdivgt টযাগ গপররাপরক কগ কপরয এাআ পলাগগপরন ফযফায কযা পরয়পরি এফায টডপরকাড গদন- add_shortcode(np-shortcode np_function)

এাআ টডপরকাড গএাআচগ পাাংনপরক রক কযপরফ এফাং এয ভধয ডথপরক সলাাআডপরায কনপরটনট ডক গযটানড কযপরফ াঅভাপরদয টডপরকাড পরচছ [np-shortcode] াঅভযা পলাগগপরন মাাআ এফাং একগট িগফ মি কগয গপচাযড াআপরভজ গপরপরফ গনপরচ ডদখন-

63

াঅগভ াঅপরযকগট ডজ ততগয কপরযগি ডমখাপরন টডপরকাড গদপরয়গি

াঅউটট ডজ ডদগখ এফায-

64

পরয় ডগর াঅভাপরদয সলাাআডায পলাগগন পরযা ডকাডগট গনপরচ গদরাভ- ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

65

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

66

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

এফায াঅগন মগদ উাআপরজট গপরপরফ ফযফায কযপরত চান তাপরর গনপরচয ডকাডটক গদন- class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

67

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

echo $after_widget

াঅপরযা রগট কাজ কযপরত পরফ াঅনাপরক এক াআপরভজ াাআজ উাআপরজট এয জনয গঠক কপরয গদপরত পরফ- add_image_size(np_widget 180 100 true)

াঅপরযকগট র উাআপরজট এযাকন রক ডমাগ কযা add_action(widgets_init np_widgets_init)

উাআপরজট পরযা ডকাড াঅফায গদরাভ- ltphp

Plugin Name Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Ciprian Turcu

Version 10

68

class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

69

echo $after_widget

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

70

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(widgets_init np_widgets_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

71

পলাগগন গনপরয় এত ডিাট গযপরয ডরখা মভফ নয় এজনযাআ ভপরন য় পলাগগন গনপরয় ডকউ ডরপরখন না কাযন এখাপরন এত গফলয় াঅপরি মা াঅপররাচনা কযপরত ডগপরর ৫০০ ডজ ায পরয় মাপরফ ডফাোয সগফধাপরথড াঅগভ মথামভফ উদাযন গদপরয় ডফাোপরনায ডচষটা কপরযগি াঅগভ এখাপরন টাপরগডট কপরযগি মাযা টকটাক জাপরন পলাগগন মপপরকড এডবানস ডরপরবপররয নয় কাযন তাযা জাপরনন াঅভায উপরেশয গির মাযা জানপরত চায় তাপরদযপরক জানাপরনা এখাপরন ডমফ গফলয় াঅপররাচনা কযা পরয়পরি তা ডভাটাভগট ভাপরনয একগট পলাগগন ফানাপরনায জনয মপরথষট তপরফ ভাপরনাননয়পরনয জনয াঅনাপরক গনপরজাআ খাপরজ গনপরত পরফ াঅনায জনয ডকানটা বার পরফ াঅগভ রধ গদক গনপরদডনা গদরাভ ভাতর এাআ ফাআগট রধভাতর ওয়াডডপরে রেপরয জনয ডরখা াপরনক বর ভরাগনত থাকপরত াপরয াঅনাযা কষভাসনদয দগষটপরত ডদখপরফন াঅগভ ডচষটা কপরযগি মতটা জ কপরয ডরখা মায় াপরনক ভয় ডদখা মায় ডম খফ ডিাট খাপরটা গফলয় গনপরয় াপরনপরকাআ নক কপরযন এটা গতয রাঃখজনক াঅনাযা গগপরর একট খাজপররাআ ভাধান াপরফন াঅপরগ গনপরজ ডচষটা করন তায পরয ানযপরক ভাধাপরনয জনয গজজঞাা করন াঅভায জনয ডদায়া কযপরফন বাপররা রাগপরর জানাপরফন খাযা রাগপররও জানাপরফন তাপররাআ াঅভায গযশরভ সবাথডক পরফ ভতাভত জাগনপরয় াঅভাপরক ডভাআর কযপরত াপরযন litonice09gmailcom |

72

Page 59: Wordpress Plugin Development

60

সলাাআডায পলাগগন াঅভযা এাআ ফাআপরয়য কর গটউপরটাগযয়াপরর মা মা গখরাভ তা এফায একগট নডাাংগ পলাগগপরনয এপলাাআ কযফ সলাাআডায পলাগগন মপপরকড াঅভযা ফাাআ জাগন একগট ওপরয়ফাাআপরটয ডচাযা ারপরট ডদয় একগট সলাাআডায াপরনক ডাাআনাগভক ভপরন য় ডদখপরতও াপরনক বার রাপরগ এাআ পলাগগপরন াঅভযা এডগভন যাপরনর ডথপরক াআপরভজ ডমাগ কযফ এফাং তা াঅভাপরদয াাআপরট ডদখাফ চরন কাজ রর কগয- েথপরভ গনপরবা সলাাআডায এয ওপরয়ফাাআপরট মান এফাং jQuery Plugin ডাউনপররাড করন

ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom Version 10

gt

াঅভযা পলাগগপরনয ডডায ততগয কযরাভ

পলাগগন গরপরসট ডদখাপরচছ bdquoLitons Nivo Plugin‟ াঅভাপরদয েথভ কাজ পরচছ custom post

type ওয়াডডপরে পাাংনাগরগট একগট নতন কাসটভ ডজ ততগয কযপরত custom post type

ফযফহরত পরফ ডমখাপরন একগট াআপরভজ থাকপরফ াঅভযা রধ টাাআপরটর ডনভ এফাং াআপরভজ াঅপররাডায গপরপরফ গপচায াআপরভজ পাাংনাগরগট ফযফায কযফ function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_function 600 280 true)

61

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

add_action(init np_init)

উপরযয ডকাপরড np_init() পাাংনগট রক কপরযগি মা ডডায যান কযায াঅপরগ যান পরফ াঅয এজনয register_post_type() পাাংনপরক এয যাযাগভটায গদপরয় np_init() পাাংপরনয ডবতপরয মি কপরযগি এটা মগদ না কযতাভ তাপরর ldquoHeaders already sentrdquo ডভপরজ ডদখাত এাআ ডভপরজগটয াপরথ াপরনপরকাআ গযগচত াঅা কগয register_post_type() পাাংন গদপরয় াঅভযা াআপরভজ মি এফাং ভযাপরনজ কযফ ভরত াঅভযা একগট নতন custom post type ডমাগ কপরযগি np_images নাভ গদপরয় নতন custom post type ডক ডগটাং বযার গপরপরফ াঅযগপরভনট া কপরযগি $args ডবগযপরয়ফরগট ট ডরপরবর ডভন ততগয কপরয াঅপরগাআ ডদপরখগি পলাগগনগট এগকটপরবট কযপরর াঅভযা গনপরচয ভত ডদখপরত াফ-

এফায গিে এফাং সটাাআরীট ডক মি কযফ- add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

এফায রক কযা পাাংনগপররা গডপরিয়ায কগয- function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__) array( jquery ))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

62

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

উপরযয ডকাডগপররা নতন কপরয ফিডনা কযায গকি ডনাআ াঅপরগাআ wp_enqueue_style() এফাং wp_enqueue_script() মপপরকড ফরা পরয়পরি নতন াঅপরযকগট পাাআর ততগয করন একাআ গডপরযকটগযপরত scriptjs এফাং গনপরচয ডকাডটক গদন- jQuery(document)ready(function($)

$(slider)nivoSlider()

)

াআপরভজপরক গযাাআজ করন- add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

াঅভযা এাআ পলাগগনগটপরক উাআপরজট গপরপরফও ফযফায কযফ ডগট পরয ডদখফ াঅপরযকগট গজগন মগদ গথপরভ না ডদয়া থাপরক ডজনয থামবপরনাআর াপরাটড গদপরয় গদন- add_theme_support( post-thumbnails )

এফায ওয়াডডপরেপরয কাপরযনট ডাসট কপরয়যী কযায ডকাড াঅয $result ডবগযপরয়ফপরর ডমফ ltdivgt টযাগ ফযফায কযা পরয়পরি তা jQuery Plugin গট একসিাকট কপরয indexhtml ডজগটয ডভাআন সলাাআডায ডকাডগট ডদখন একাআ াঅপরি রধ ডখানকায ltdivgt টযাগ গপররাপরক কগ কপরয এাআ পলাগগপরন ফযফায কযা পরয়পরি এফায টডপরকাড গদন- add_shortcode(np-shortcode np_function)

এাআ টডপরকাড গএাআচগ পাাংনপরক রক কযপরফ এফাং এয ভধয ডথপরক সলাাআডপরায কনপরটনট ডক গযটানড কযপরফ াঅভাপরদয টডপরকাড পরচছ [np-shortcode] াঅভযা পলাগগপরন মাাআ এফাং একগট িগফ মি কগয গপচাযড াআপরভজ গপরপরফ গনপরচ ডদখন-

63

াঅগভ াঅপরযকগট ডজ ততগয কপরযগি ডমখাপরন টডপরকাড গদপরয়গি

াঅউটট ডজ ডদগখ এফায-

64

পরয় ডগর াঅভাপরদয সলাাআডায পলাগগন পরযা ডকাডগট গনপরচ গদরাভ- ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

65

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

66

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

এফায াঅগন মগদ উাআপরজট গপরপরফ ফযফায কযপরত চান তাপরর গনপরচয ডকাডটক গদন- class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

67

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

echo $after_widget

াঅপরযা রগট কাজ কযপরত পরফ াঅনাপরক এক াআপরভজ াাআজ উাআপরজট এয জনয গঠক কপরয গদপরত পরফ- add_image_size(np_widget 180 100 true)

াঅপরযকগট র উাআপরজট এযাকন রক ডমাগ কযা add_action(widgets_init np_widgets_init)

উাআপরজট পরযা ডকাড াঅফায গদরাভ- ltphp

Plugin Name Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Ciprian Turcu

Version 10

68

class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

69

echo $after_widget

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

70

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(widgets_init np_widgets_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

71

পলাগগন গনপরয় এত ডিাট গযপরয ডরখা মভফ নয় এজনযাআ ভপরন য় পলাগগন গনপরয় ডকউ ডরপরখন না কাযন এখাপরন এত গফলয় াঅপরি মা াঅপররাচনা কযপরত ডগপরর ৫০০ ডজ ায পরয় মাপরফ ডফাোয সগফধাপরথড াঅগভ মথামভফ উদাযন গদপরয় ডফাোপরনায ডচষটা কপরযগি াঅগভ এখাপরন টাপরগডট কপরযগি মাযা টকটাক জাপরন পলাগগন মপপরকড এডবানস ডরপরবপররয নয় কাযন তাযা জাপরনন াঅভায উপরেশয গির মাযা জানপরত চায় তাপরদযপরক জানাপরনা এখাপরন ডমফ গফলয় াঅপররাচনা কযা পরয়পরি তা ডভাটাভগট ভাপরনয একগট পলাগগন ফানাপরনায জনয মপরথষট তপরফ ভাপরনাননয়পরনয জনয াঅনাপরক গনপরজাআ খাপরজ গনপরত পরফ াঅনায জনয ডকানটা বার পরফ াঅগভ রধ গদক গনপরদডনা গদরাভ ভাতর এাআ ফাআগট রধভাতর ওয়াডডপরে রেপরয জনয ডরখা াপরনক বর ভরাগনত থাকপরত াপরয াঅনাযা কষভাসনদয দগষটপরত ডদখপরফন াঅগভ ডচষটা কপরযগি মতটা জ কপরয ডরখা মায় াপরনক ভয় ডদখা মায় ডম খফ ডিাট খাপরটা গফলয় গনপরয় াপরনপরকাআ নক কপরযন এটা গতয রাঃখজনক াঅনাযা গগপরর একট খাজপররাআ ভাধান াপরফন াঅপরগ গনপরজ ডচষটা করন তায পরয ানযপরক ভাধাপরনয জনয গজজঞাা করন াঅভায জনয ডদায়া কযপরফন বাপররা রাগপরর জানাপরফন খাযা রাগপররও জানাপরফন তাপররাআ াঅভায গযশরভ সবাথডক পরফ ভতাভত জাগনপরয় াঅভাপরক ডভাআর কযপরত াপরযন litonice09gmailcom |

72

Page 60: Wordpress Plugin Development

61

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

add_action(init np_init)

উপরযয ডকাপরড np_init() পাাংনগট রক কপরযগি মা ডডায যান কযায াঅপরগ যান পরফ াঅয এজনয register_post_type() পাাংনপরক এয যাযাগভটায গদপরয় np_init() পাাংপরনয ডবতপরয মি কপরযগি এটা মগদ না কযতাভ তাপরর ldquoHeaders already sentrdquo ডভপরজ ডদখাত এাআ ডভপরজগটয াপরথ াপরনপরকাআ গযগচত াঅা কগয register_post_type() পাাংন গদপরয় াঅভযা াআপরভজ মি এফাং ভযাপরনজ কযফ ভরত াঅভযা একগট নতন custom post type ডমাগ কপরযগি np_images নাভ গদপরয় নতন custom post type ডক ডগটাং বযার গপরপরফ াঅযগপরভনট া কপরযগি $args ডবগযপরয়ফরগট ট ডরপরবর ডভন ততগয কপরয াঅপরগাআ ডদপরখগি পলাগগনগট এগকটপরবট কযপরর াঅভযা গনপরচয ভত ডদখপরত াফ-

এফায গিে এফাং সটাাআরীট ডক মি কযফ- add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

এফায রক কযা পাাংনগপররা গডপরিয়ায কগয- function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__) array( jquery ))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

62

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

উপরযয ডকাডগপররা নতন কপরয ফিডনা কযায গকি ডনাআ াঅপরগাআ wp_enqueue_style() এফাং wp_enqueue_script() মপপরকড ফরা পরয়পরি নতন াঅপরযকগট পাাআর ততগয করন একাআ গডপরযকটগযপরত scriptjs এফাং গনপরচয ডকাডটক গদন- jQuery(document)ready(function($)

$(slider)nivoSlider()

)

াআপরভজপরক গযাাআজ করন- add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

াঅভযা এাআ পলাগগনগটপরক উাআপরজট গপরপরফও ফযফায কযফ ডগট পরয ডদখফ াঅপরযকগট গজগন মগদ গথপরভ না ডদয়া থাপরক ডজনয থামবপরনাআর াপরাটড গদপরয় গদন- add_theme_support( post-thumbnails )

এফায ওয়াডডপরেপরয কাপরযনট ডাসট কপরয়যী কযায ডকাড াঅয $result ডবগযপরয়ফপরর ডমফ ltdivgt টযাগ ফযফায কযা পরয়পরি তা jQuery Plugin গট একসিাকট কপরয indexhtml ডজগটয ডভাআন সলাাআডায ডকাডগট ডদখন একাআ াঅপরি রধ ডখানকায ltdivgt টযাগ গপররাপরক কগ কপরয এাআ পলাগগপরন ফযফায কযা পরয়পরি এফায টডপরকাড গদন- add_shortcode(np-shortcode np_function)

এাআ টডপরকাড গএাআচগ পাাংনপরক রক কযপরফ এফাং এয ভধয ডথপরক সলাাআডপরায কনপরটনট ডক গযটানড কযপরফ াঅভাপরদয টডপরকাড পরচছ [np-shortcode] াঅভযা পলাগগপরন মাাআ এফাং একগট িগফ মি কগয গপচাযড াআপরভজ গপরপরফ গনপরচ ডদখন-

63

াঅগভ াঅপরযকগট ডজ ততগয কপরযগি ডমখাপরন টডপরকাড গদপরয়গি

াঅউটট ডজ ডদগখ এফায-

64

পরয় ডগর াঅভাপরদয সলাাআডায পলাগগন পরযা ডকাডগট গনপরচ গদরাভ- ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

65

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

66

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

এফায াঅগন মগদ উাআপরজট গপরপরফ ফযফায কযপরত চান তাপরর গনপরচয ডকাডটক গদন- class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

67

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

echo $after_widget

াঅপরযা রগট কাজ কযপরত পরফ াঅনাপরক এক াআপরভজ াাআজ উাআপরজট এয জনয গঠক কপরয গদপরত পরফ- add_image_size(np_widget 180 100 true)

াঅপরযকগট র উাআপরজট এযাকন রক ডমাগ কযা add_action(widgets_init np_widgets_init)

উাআপরজট পরযা ডকাড াঅফায গদরাভ- ltphp

Plugin Name Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Ciprian Turcu

Version 10

68

class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

69

echo $after_widget

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

70

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(widgets_init np_widgets_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

71

পলাগগন গনপরয় এত ডিাট গযপরয ডরখা মভফ নয় এজনযাআ ভপরন য় পলাগগন গনপরয় ডকউ ডরপরখন না কাযন এখাপরন এত গফলয় াঅপরি মা াঅপররাচনা কযপরত ডগপরর ৫০০ ডজ ায পরয় মাপরফ ডফাোয সগফধাপরথড াঅগভ মথামভফ উদাযন গদপরয় ডফাোপরনায ডচষটা কপরযগি াঅগভ এখাপরন টাপরগডট কপরযগি মাযা টকটাক জাপরন পলাগগন মপপরকড এডবানস ডরপরবপররয নয় কাযন তাযা জাপরনন াঅভায উপরেশয গির মাযা জানপরত চায় তাপরদযপরক জানাপরনা এখাপরন ডমফ গফলয় াঅপররাচনা কযা পরয়পরি তা ডভাটাভগট ভাপরনয একগট পলাগগন ফানাপরনায জনয মপরথষট তপরফ ভাপরনাননয়পরনয জনয াঅনাপরক গনপরজাআ খাপরজ গনপরত পরফ াঅনায জনয ডকানটা বার পরফ াঅগভ রধ গদক গনপরদডনা গদরাভ ভাতর এাআ ফাআগট রধভাতর ওয়াডডপরে রেপরয জনয ডরখা াপরনক বর ভরাগনত থাকপরত াপরয াঅনাযা কষভাসনদয দগষটপরত ডদখপরফন াঅগভ ডচষটা কপরযগি মতটা জ কপরয ডরখা মায় াপরনক ভয় ডদখা মায় ডম খফ ডিাট খাপরটা গফলয় গনপরয় াপরনপরকাআ নক কপরযন এটা গতয রাঃখজনক াঅনাযা গগপরর একট খাজপররাআ ভাধান াপরফন াঅপরগ গনপরজ ডচষটা করন তায পরয ানযপরক ভাধাপরনয জনয গজজঞাা করন াঅভায জনয ডদায়া কযপরফন বাপররা রাগপরর জানাপরফন খাযা রাগপররও জানাপরফন তাপররাআ াঅভায গযশরভ সবাথডক পরফ ভতাভত জাগনপরয় াঅভাপরক ডভাআর কযপরত াপরযন litonice09gmailcom |

72

Page 61: Wordpress Plugin Development

62

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

উপরযয ডকাডগপররা নতন কপরয ফিডনা কযায গকি ডনাআ াঅপরগাআ wp_enqueue_style() এফাং wp_enqueue_script() মপপরকড ফরা পরয়পরি নতন াঅপরযকগট পাাআর ততগয করন একাআ গডপরযকটগযপরত scriptjs এফাং গনপরচয ডকাডটক গদন- jQuery(document)ready(function($)

$(slider)nivoSlider()

)

াআপরভজপরক গযাাআজ করন- add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

াঅভযা এাআ পলাগগনগটপরক উাআপরজট গপরপরফও ফযফায কযফ ডগট পরয ডদখফ াঅপরযকগট গজগন মগদ গথপরভ না ডদয়া থাপরক ডজনয থামবপরনাআর াপরাটড গদপরয় গদন- add_theme_support( post-thumbnails )

এফায ওয়াডডপরেপরয কাপরযনট ডাসট কপরয়যী কযায ডকাড াঅয $result ডবগযপরয়ফপরর ডমফ ltdivgt টযাগ ফযফায কযা পরয়পরি তা jQuery Plugin গট একসিাকট কপরয indexhtml ডজগটয ডভাআন সলাাআডায ডকাডগট ডদখন একাআ াঅপরি রধ ডখানকায ltdivgt টযাগ গপররাপরক কগ কপরয এাআ পলাগগপরন ফযফায কযা পরয়পরি এফায টডপরকাড গদন- add_shortcode(np-shortcode np_function)

এাআ টডপরকাড গএাআচগ পাাংনপরক রক কযপরফ এফাং এয ভধয ডথপরক সলাাআডপরায কনপরটনট ডক গযটানড কযপরফ াঅভাপরদয টডপরকাড পরচছ [np-shortcode] াঅভযা পলাগগপরন মাাআ এফাং একগট িগফ মি কগয গপচাযড াআপরভজ গপরপরফ গনপরচ ডদখন-

63

াঅগভ াঅপরযকগট ডজ ততগয কপরযগি ডমখাপরন টডপরকাড গদপরয়গি

াঅউটট ডজ ডদগখ এফায-

64

পরয় ডগর াঅভাপরদয সলাাআডায পলাগগন পরযা ডকাডগট গনপরচ গদরাভ- ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

65

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

66

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

এফায াঅগন মগদ উাআপরজট গপরপরফ ফযফায কযপরত চান তাপরর গনপরচয ডকাডটক গদন- class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

67

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

echo $after_widget

াঅপরযা রগট কাজ কযপরত পরফ াঅনাপরক এক াআপরভজ াাআজ উাআপরজট এয জনয গঠক কপরয গদপরত পরফ- add_image_size(np_widget 180 100 true)

াঅপরযকগট র উাআপরজট এযাকন রক ডমাগ কযা add_action(widgets_init np_widgets_init)

উাআপরজট পরযা ডকাড াঅফায গদরাভ- ltphp

Plugin Name Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Ciprian Turcu

Version 10

68

class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

69

echo $after_widget

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

70

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(widgets_init np_widgets_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

71

পলাগগন গনপরয় এত ডিাট গযপরয ডরখা মভফ নয় এজনযাআ ভপরন য় পলাগগন গনপরয় ডকউ ডরপরখন না কাযন এখাপরন এত গফলয় াঅপরি মা াঅপররাচনা কযপরত ডগপরর ৫০০ ডজ ায পরয় মাপরফ ডফাোয সগফধাপরথড াঅগভ মথামভফ উদাযন গদপরয় ডফাোপরনায ডচষটা কপরযগি াঅগভ এখাপরন টাপরগডট কপরযগি মাযা টকটাক জাপরন পলাগগন মপপরকড এডবানস ডরপরবপররয নয় কাযন তাযা জাপরনন াঅভায উপরেশয গির মাযা জানপরত চায় তাপরদযপরক জানাপরনা এখাপরন ডমফ গফলয় াঅপররাচনা কযা পরয়পরি তা ডভাটাভগট ভাপরনয একগট পলাগগন ফানাপরনায জনয মপরথষট তপরফ ভাপরনাননয়পরনয জনয াঅনাপরক গনপরজাআ খাপরজ গনপরত পরফ াঅনায জনয ডকানটা বার পরফ াঅগভ রধ গদক গনপরদডনা গদরাভ ভাতর এাআ ফাআগট রধভাতর ওয়াডডপরে রেপরয জনয ডরখা াপরনক বর ভরাগনত থাকপরত াপরয াঅনাযা কষভাসনদয দগষটপরত ডদখপরফন াঅগভ ডচষটা কপরযগি মতটা জ কপরয ডরখা মায় াপরনক ভয় ডদখা মায় ডম খফ ডিাট খাপরটা গফলয় গনপরয় াপরনপরকাআ নক কপরযন এটা গতয রাঃখজনক াঅনাযা গগপরর একট খাজপররাআ ভাধান াপরফন াঅপরগ গনপরজ ডচষটা করন তায পরয ানযপরক ভাধাপরনয জনয গজজঞাা করন াঅভায জনয ডদায়া কযপরফন বাপররা রাগপরর জানাপরফন খাযা রাগপররও জানাপরফন তাপররাআ াঅভায গযশরভ সবাথডক পরফ ভতাভত জাগনপরয় াঅভাপরক ডভাআর কযপরত াপরযন litonice09gmailcom |

72

Page 62: Wordpress Plugin Development

63

াঅগভ াঅপরযকগট ডজ ততগয কপরযগি ডমখাপরন টডপরকাড গদপরয়গি

াঅউটট ডজ ডদগখ এফায-

64

পরয় ডগর াঅভাপরদয সলাাআডায পলাগগন পরযা ডকাডগট গনপরচ গদরাভ- ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

65

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

66

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

এফায াঅগন মগদ উাআপরজট গপরপরফ ফযফায কযপরত চান তাপরর গনপরচয ডকাডটক গদন- class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

67

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

echo $after_widget

াঅপরযা রগট কাজ কযপরত পরফ াঅনাপরক এক াআপরভজ াাআজ উাআপরজট এয জনয গঠক কপরয গদপরত পরফ- add_image_size(np_widget 180 100 true)

াঅপরযকগট র উাআপরজট এযাকন রক ডমাগ কযা add_action(widgets_init np_widgets_init)

উাআপরজট পরযা ডকাড াঅফায গদরাভ- ltphp

Plugin Name Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Ciprian Turcu

Version 10

68

class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

69

echo $after_widget

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

70

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(widgets_init np_widgets_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

71

পলাগগন গনপরয় এত ডিাট গযপরয ডরখা মভফ নয় এজনযাআ ভপরন য় পলাগগন গনপরয় ডকউ ডরপরখন না কাযন এখাপরন এত গফলয় াঅপরি মা াঅপররাচনা কযপরত ডগপরর ৫০০ ডজ ায পরয় মাপরফ ডফাোয সগফধাপরথড াঅগভ মথামভফ উদাযন গদপরয় ডফাোপরনায ডচষটা কপরযগি াঅগভ এখাপরন টাপরগডট কপরযগি মাযা টকটাক জাপরন পলাগগন মপপরকড এডবানস ডরপরবপররয নয় কাযন তাযা জাপরনন াঅভায উপরেশয গির মাযা জানপরত চায় তাপরদযপরক জানাপরনা এখাপরন ডমফ গফলয় াঅপররাচনা কযা পরয়পরি তা ডভাটাভগট ভাপরনয একগট পলাগগন ফানাপরনায জনয মপরথষট তপরফ ভাপরনাননয়পরনয জনয াঅনাপরক গনপরজাআ খাপরজ গনপরত পরফ াঅনায জনয ডকানটা বার পরফ াঅগভ রধ গদক গনপরদডনা গদরাভ ভাতর এাআ ফাআগট রধভাতর ওয়াডডপরে রেপরয জনয ডরখা াপরনক বর ভরাগনত থাকপরত াপরয াঅনাযা কষভাসনদয দগষটপরত ডদখপরফন াঅগভ ডচষটা কপরযগি মতটা জ কপরয ডরখা মায় াপরনক ভয় ডদখা মায় ডম খফ ডিাট খাপরটা গফলয় গনপরয় াপরনপরকাআ নক কপরযন এটা গতয রাঃখজনক াঅনাযা গগপরর একট খাজপররাআ ভাধান াপরফন াঅপরগ গনপরজ ডচষটা করন তায পরয ানযপরক ভাধাপরনয জনয গজজঞাা করন াঅভায জনয ডদায়া কযপরফন বাপররা রাগপরর জানাপরফন খাযা রাগপররও জানাপরফন তাপররাআ াঅভায গযশরভ সবাথডক পরফ ভতাভত জাগনপরয় াঅভাপরক ডভাআর কযপরত াপরযন litonice09gmailcom |

72

Page 63: Wordpress Plugin Development

64

পরয় ডগর াঅভাপরদয সলাাআডায পলাগগন পরযা ডকাডগট গনপরচ গদরাভ- ltphp

Plugin Name Litons Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Md Liton Arefin

Author URI httpliton-onlinecom

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

65

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

66

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

এফায াঅগন মগদ উাআপরজট গপরপরফ ফযফায কযপরত চান তাপরর গনপরচয ডকাডটক গদন- class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

67

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

echo $after_widget

াঅপরযা রগট কাজ কযপরত পরফ াঅনাপরক এক াআপরভজ াাআজ উাআপরজট এয জনয গঠক কপরয গদপরত পরফ- add_image_size(np_widget 180 100 true)

াঅপরযকগট র উাআপরজট এযাকন রক ডমাগ কযা add_action(widgets_init np_widgets_init)

উাআপরজট পরযা ডকাড াঅফায গদরাভ- ltphp

Plugin Name Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Ciprian Turcu

Version 10

68

class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

69

echo $after_widget

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

70

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(widgets_init np_widgets_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

71

পলাগগন গনপরয় এত ডিাট গযপরয ডরখা মভফ নয় এজনযাআ ভপরন য় পলাগগন গনপরয় ডকউ ডরপরখন না কাযন এখাপরন এত গফলয় াঅপরি মা াঅপররাচনা কযপরত ডগপরর ৫০০ ডজ ায পরয় মাপরফ ডফাোয সগফধাপরথড াঅগভ মথামভফ উদাযন গদপরয় ডফাোপরনায ডচষটা কপরযগি াঅগভ এখাপরন টাপরগডট কপরযগি মাযা টকটাক জাপরন পলাগগন মপপরকড এডবানস ডরপরবপররয নয় কাযন তাযা জাপরনন াঅভায উপরেশয গির মাযা জানপরত চায় তাপরদযপরক জানাপরনা এখাপরন ডমফ গফলয় াঅপররাচনা কযা পরয়পরি তা ডভাটাভগট ভাপরনয একগট পলাগগন ফানাপরনায জনয মপরথষট তপরফ ভাপরনাননয়পরনয জনয াঅনাপরক গনপরজাআ খাপরজ গনপরত পরফ াঅনায জনয ডকানটা বার পরফ াঅগভ রধ গদক গনপরদডনা গদরাভ ভাতর এাআ ফাআগট রধভাতর ওয়াডডপরে রেপরয জনয ডরখা াপরনক বর ভরাগনত থাকপরত াপরয াঅনাযা কষভাসনদয দগষটপরত ডদখপরফন াঅগভ ডচষটা কপরযগি মতটা জ কপরয ডরখা মায় াপরনক ভয় ডদখা মায় ডম খফ ডিাট খাপরটা গফলয় গনপরয় াপরনপরকাআ নক কপরযন এটা গতয রাঃখজনক াঅনাযা গগপরর একট খাজপররাআ ভাধান াপরফন াঅপরগ গনপরজ ডচষটা করন তায পরয ানযপরক ভাধাপরনয জনয গজজঞাা করন াঅভায জনয ডদায়া কযপরফন বাপররা রাগপরর জানাপরফন খাযা রাগপররও জানাপরফন তাপররাআ াঅভায গযশরভ সবাথডক পরফ ভতাভত জাগনপরয় াঅভাপরক ডভাআর কযপরত াপরযন litonice09gmailcom |

72

Page 64: Wordpress Plugin Development

65

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

66

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

এফায াঅগন মগদ উাআপরজট গপরপরফ ফযফায কযপরত চান তাপরর গনপরচয ডকাডটক গদন- class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

67

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

echo $after_widget

াঅপরযা রগট কাজ কযপরত পরফ াঅনাপরক এক াআপরভজ াাআজ উাআপরজট এয জনয গঠক কপরয গদপরত পরফ- add_image_size(np_widget 180 100 true)

াঅপরযকগট র উাআপরজট এযাকন রক ডমাগ কযা add_action(widgets_init np_widgets_init)

উাআপরজট পরযা ডকাড াঅফায গদরাভ- ltphp

Plugin Name Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Ciprian Turcu

Version 10

68

class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

69

echo $after_widget

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

70

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(widgets_init np_widgets_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

71

পলাগগন গনপরয় এত ডিাট গযপরয ডরখা মভফ নয় এজনযাআ ভপরন য় পলাগগন গনপরয় ডকউ ডরপরখন না কাযন এখাপরন এত গফলয় াঅপরি মা াঅপররাচনা কযপরত ডগপরর ৫০০ ডজ ায পরয় মাপরফ ডফাোয সগফধাপরথড াঅগভ মথামভফ উদাযন গদপরয় ডফাোপরনায ডচষটা কপরযগি াঅগভ এখাপরন টাপরগডট কপরযগি মাযা টকটাক জাপরন পলাগগন মপপরকড এডবানস ডরপরবপররয নয় কাযন তাযা জাপরনন াঅভায উপরেশয গির মাযা জানপরত চায় তাপরদযপরক জানাপরনা এখাপরন ডমফ গফলয় াঅপররাচনা কযা পরয়পরি তা ডভাটাভগট ভাপরনয একগট পলাগগন ফানাপরনায জনয মপরথষট তপরফ ভাপরনাননয়পরনয জনয াঅনাপরক গনপরজাআ খাপরজ গনপরত পরফ াঅনায জনয ডকানটা বার পরফ াঅগভ রধ গদক গনপরদডনা গদরাভ ভাতর এাআ ফাআগট রধভাতর ওয়াডডপরে রেপরয জনয ডরখা াপরনক বর ভরাগনত থাকপরত াপরয াঅনাযা কষভাসনদয দগষটপরত ডদখপরফন াঅগভ ডচষটা কপরযগি মতটা জ কপরয ডরখা মায় াপরনক ভয় ডদখা মায় ডম খফ ডিাট খাপরটা গফলয় গনপরয় াপরনপরকাআ নক কপরযন এটা গতয রাঃখজনক াঅনাযা গগপরর একট খাজপররাআ ভাধান াপরফন াঅপরগ গনপরজ ডচষটা করন তায পরয ানযপরক ভাধাপরনয জনয গজজঞাা করন াঅভায জনয ডদায়া কযপরফন বাপররা রাগপরর জানাপরফন খাযা রাগপররও জানাপরফন তাপররাআ াঅভায গযশরভ সবাথডক পরফ ভতাভত জাগনপরয় াঅভাপরক ডভাআর কযপরত াপরযন litonice09gmailcom |

72

Page 65: Wordpress Plugin Development

66

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

এফায াঅগন মগদ উাআপরজট গপরপরফ ফযফায কযপরত চান তাপরর গনপরচয ডকাডটক গদন- class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

67

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

echo $after_widget

াঅপরযা রগট কাজ কযপরত পরফ াঅনাপরক এক াআপরভজ াাআজ উাআপরজট এয জনয গঠক কপরয গদপরত পরফ- add_image_size(np_widget 180 100 true)

াঅপরযকগট র উাআপরজট এযাকন রক ডমাগ কযা add_action(widgets_init np_widgets_init)

উাআপরজট পরযা ডকাড াঅফায গদরাভ- ltphp

Plugin Name Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Ciprian Turcu

Version 10

68

class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

69

echo $after_widget

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

70

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(widgets_init np_widgets_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

71

পলাগগন গনপরয় এত ডিাট গযপরয ডরখা মভফ নয় এজনযাআ ভপরন য় পলাগগন গনপরয় ডকউ ডরপরখন না কাযন এখাপরন এত গফলয় াঅপরি মা াঅপররাচনা কযপরত ডগপরর ৫০০ ডজ ায পরয় মাপরফ ডফাোয সগফধাপরথড াঅগভ মথামভফ উদাযন গদপরয় ডফাোপরনায ডচষটা কপরযগি াঅগভ এখাপরন টাপরগডট কপরযগি মাযা টকটাক জাপরন পলাগগন মপপরকড এডবানস ডরপরবপররয নয় কাযন তাযা জাপরনন াঅভায উপরেশয গির মাযা জানপরত চায় তাপরদযপরক জানাপরনা এখাপরন ডমফ গফলয় াঅপররাচনা কযা পরয়পরি তা ডভাটাভগট ভাপরনয একগট পলাগগন ফানাপরনায জনয মপরথষট তপরফ ভাপরনাননয়পরনয জনয াঅনাপরক গনপরজাআ খাপরজ গনপরত পরফ াঅনায জনয ডকানটা বার পরফ াঅগভ রধ গদক গনপরদডনা গদরাভ ভাতর এাআ ফাআগট রধভাতর ওয়াডডপরে রেপরয জনয ডরখা াপরনক বর ভরাগনত থাকপরত াপরয াঅনাযা কষভাসনদয দগষটপরত ডদখপরফন াঅগভ ডচষটা কপরযগি মতটা জ কপরয ডরখা মায় াপরনক ভয় ডদখা মায় ডম খফ ডিাট খাপরটা গফলয় গনপরয় াপরনপরকাআ নক কপরযন এটা গতয রাঃখজনক াঅনাযা গগপরর একট খাজপররাআ ভাধান াপরফন াঅপরগ গনপরজ ডচষটা করন তায পরয ানযপরক ভাধাপরনয জনয গজজঞাা করন াঅভায জনয ডদায়া কযপরফন বাপররা রাগপরর জানাপরফন খাযা রাগপররও জানাপরফন তাপররাআ াঅভায গযশরভ সবাথডক পরফ ভতাভত জাগনপরয় াঅভাপরক ডভাআর কযপরত াপরযন litonice09gmailcom |

72

Page 66: Wordpress Plugin Development

67

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

echo $after_widget

াঅপরযা রগট কাজ কযপরত পরফ াঅনাপরক এক াআপরভজ াাআজ উাআপরজট এয জনয গঠক কপরয গদপরত পরফ- add_image_size(np_widget 180 100 true)

াঅপরযকগট র উাআপরজট এযাকন রক ডমাগ কযা add_action(widgets_init np_widgets_init)

উাআপরজট পরযা ডকাড াঅফায গদরাভ- ltphp

Plugin Name Nivo Plugin

Description Simple implementation of a nivo slideshow into wordpress

Author Ciprian Turcu

Version 10

68

class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

69

echo $after_widget

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

70

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(widgets_init np_widgets_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

71

পলাগগন গনপরয় এত ডিাট গযপরয ডরখা মভফ নয় এজনযাআ ভপরন য় পলাগগন গনপরয় ডকউ ডরপরখন না কাযন এখাপরন এত গফলয় াঅপরি মা াঅপররাচনা কযপরত ডগপরর ৫০০ ডজ ায পরয় মাপরফ ডফাোয সগফধাপরথড াঅগভ মথামভফ উদাযন গদপরয় ডফাোপরনায ডচষটা কপরযগি াঅগভ এখাপরন টাপরগডট কপরযগি মাযা টকটাক জাপরন পলাগগন মপপরকড এডবানস ডরপরবপররয নয় কাযন তাযা জাপরনন াঅভায উপরেশয গির মাযা জানপরত চায় তাপরদযপরক জানাপরনা এখাপরন ডমফ গফলয় াঅপররাচনা কযা পরয়পরি তা ডভাটাভগট ভাপরনয একগট পলাগগন ফানাপরনায জনয মপরথষট তপরফ ভাপরনাননয়পরনয জনয াঅনাপরক গনপরজাআ খাপরজ গনপরত পরফ াঅনায জনয ডকানটা বার পরফ াঅগভ রধ গদক গনপরদডনা গদরাভ ভাতর এাআ ফাআগট রধভাতর ওয়াডডপরে রেপরয জনয ডরখা াপরনক বর ভরাগনত থাকপরত াপরয াঅনাযা কষভাসনদয দগষটপরত ডদখপরফন াঅগভ ডচষটা কপরযগি মতটা জ কপরয ডরখা মায় াপরনক ভয় ডদখা মায় ডম খফ ডিাট খাপরটা গফলয় গনপরয় াপরনপরকাআ নক কপরযন এটা গতয রাঃখজনক াঅনাযা গগপরর একট খাজপররাআ ভাধান াপরফন াঅপরগ গনপরজ ডচষটা করন তায পরয ানযপরক ভাধাপরনয জনয গজজঞাা করন াঅভায জনয ডদায়া কযপরফন বাপররা রাগপরর জানাপরফন খাযা রাগপররও জানাপরফন তাপররাআ াঅভায গযশরভ সবাথডক পরফ ভতাভত জাগনপরয় াঅভাপরক ডভাআর কযপরত াপরযন litonice09gmailcom |

72

Page 67: Wordpress Plugin Development

68

class np_Widget extends WP_Widget

public function __construct()

parent__construct(np_Widget Nivo Slideshow array(description =gt

__(A Nivo Slideshow Widget text_domain)))

public function form($instance)

if (isset($instance[title]))

$title = $instance[title]

else

$title = __(Widget Slideshow text_domain)

gt

ltpgt

ltlabel for=ltphp echo $this-gtget_field_id(title) gtgtltphp

_e(Title) gtltlabelgt

ltinput class=widefat id=ltphp echo $this-gtget_field_id(title) gt

name=ltphp echo $this-gtget_field_name(title) gt type=text value=ltphp

echo esc_attr($title) gt gt

ltpgt

ltphp

public function update($new_instance $old_instance)

$instance = array()

$instance[title] = strip_tags($new_instance[title])

return $instance

public function widget($args $instance)

extract($args)

the title

$title = apply_filters(widget_title $instance[title])

echo $before_widget

if (empty($title))

echo $before_title $title $after_title

echo np_function(np_widget)

69

echo $after_widget

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

70

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(widgets_init np_widgets_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

71

পলাগগন গনপরয় এত ডিাট গযপরয ডরখা মভফ নয় এজনযাআ ভপরন য় পলাগগন গনপরয় ডকউ ডরপরখন না কাযন এখাপরন এত গফলয় াঅপরি মা াঅপররাচনা কযপরত ডগপরর ৫০০ ডজ ায পরয় মাপরফ ডফাোয সগফধাপরথড াঅগভ মথামভফ উদাযন গদপরয় ডফাোপরনায ডচষটা কপরযগি াঅগভ এখাপরন টাপরগডট কপরযগি মাযা টকটাক জাপরন পলাগগন মপপরকড এডবানস ডরপরবপররয নয় কাযন তাযা জাপরনন াঅভায উপরেশয গির মাযা জানপরত চায় তাপরদযপরক জানাপরনা এখাপরন ডমফ গফলয় াঅপররাচনা কযা পরয়পরি তা ডভাটাভগট ভাপরনয একগট পলাগগন ফানাপরনায জনয মপরথষট তপরফ ভাপরনাননয়পরনয জনয াঅনাপরক গনপরজাআ খাপরজ গনপরত পরফ াঅনায জনয ডকানটা বার পরফ াঅগভ রধ গদক গনপরদডনা গদরাভ ভাতর এাআ ফাআগট রধভাতর ওয়াডডপরে রেপরয জনয ডরখা াপরনক বর ভরাগনত থাকপরত াপরয াঅনাযা কষভাসনদয দগষটপরত ডদখপরফন াঅগভ ডচষটা কপরযগি মতটা জ কপরয ডরখা মায় াপরনক ভয় ডদখা মায় ডম খফ ডিাট খাপরটা গফলয় গনপরয় াপরনপরকাআ নক কপরযন এটা গতয রাঃখজনক াঅনাযা গগপরর একট খাজপররাআ ভাধান াপরফন াঅপরগ গনপরজ ডচষটা করন তায পরয ানযপরক ভাধাপরনয জনয গজজঞাা করন াঅভায জনয ডদায়া কযপরফন বাপররা রাগপরর জানাপরফন খাযা রাগপররও জানাপরফন তাপররাআ াঅভায গযশরভ সবাথডক পরফ ভতাভত জাগনপরয় াঅভাপরক ডভাআর কযপরত াপরযন litonice09gmailcom |

72

Page 68: Wordpress Plugin Development

69

echo $after_widget

function np_register_scripts()

if (is_admin())

register

wp_register_script(np_nivo-script plugins_url(nivo-

sliderjquerynivosliderjs __FILE__))

wp_register_script(np_script plugins_url(scriptjs __FILE__))

enqueue

wp_enqueue_script(jquery)

wp_enqueue_script(np_nivo-script)

wp_enqueue_script(np_script)

function np_register_styles()

register

wp_register_style(np_styles plugins_url(nivo-slidernivo-slidercss

__FILE__))

wp_register_style(np_styles_theme plugins_url(nivo-

sliderthemesdefaultdefaultcss __FILE__))

enqueue

wp_enqueue_style(np_styles)

wp_enqueue_style(np_styles_theme)

function np_widgets_init()

register_widget(np_Widget)

function np_function($type=np_function)

$args = array(post_type =gt np_images posts_per_page =gt 5)

$result = ltdiv class=slider-wrapper theme-defaultgt

$result = ltdiv id=slider class=nivoSlidergt

the loop

70

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(widgets_init np_widgets_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

71

পলাগগন গনপরয় এত ডিাট গযপরয ডরখা মভফ নয় এজনযাআ ভপরন য় পলাগগন গনপরয় ডকউ ডরপরখন না কাযন এখাপরন এত গফলয় াঅপরি মা াঅপররাচনা কযপরত ডগপরর ৫০০ ডজ ায পরয় মাপরফ ডফাোয সগফধাপরথড াঅগভ মথামভফ উদাযন গদপরয় ডফাোপরনায ডচষটা কপরযগি াঅগভ এখাপরন টাপরগডট কপরযগি মাযা টকটাক জাপরন পলাগগন মপপরকড এডবানস ডরপরবপররয নয় কাযন তাযা জাপরনন াঅভায উপরেশয গির মাযা জানপরত চায় তাপরদযপরক জানাপরনা এখাপরন ডমফ গফলয় াঅপররাচনা কযা পরয়পরি তা ডভাটাভগট ভাপরনয একগট পলাগগন ফানাপরনায জনয মপরথষট তপরফ ভাপরনাননয়পরনয জনয াঅনাপরক গনপরজাআ খাপরজ গনপরত পরফ াঅনায জনয ডকানটা বার পরফ াঅগভ রধ গদক গনপরদডনা গদরাভ ভাতর এাআ ফাআগট রধভাতর ওয়াডডপরে রেপরয জনয ডরখা াপরনক বর ভরাগনত থাকপরত াপরয াঅনাযা কষভাসনদয দগষটপরত ডদখপরফন াঅগভ ডচষটা কপরযগি মতটা জ কপরয ডরখা মায় াপরনক ভয় ডদখা মায় ডম খফ ডিাট খাপরটা গফলয় গনপরয় াপরনপরকাআ নক কপরযন এটা গতয রাঃখজনক াঅনাযা গগপরর একট খাজপররাআ ভাধান াপরফন াঅপরগ গনপরজ ডচষটা করন তায পরয ানযপরক ভাধাপরনয জনয গজজঞাা করন াঅভায জনয ডদায়া কযপরফন বাপররা রাগপরর জানাপরফন খাযা রাগপররও জানাপরফন তাপররাআ াঅভায গযশরভ সবাথডক পরফ ভতাভত জাগনপরয় াঅভাপরক ডভাআর কযপরত াপরযন litonice09gmailcom |

72

Page 69: Wordpress Plugin Development

70

$loop = new WP_Query($args)

while ($loop-gthave_posts())

$loop-gtthe_post()

$the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post-

gtID) $type)

$result =ltimg title=get_the_title() src= $the_url[0] data-

thumb= $the_url[0] alt=gt

$result = ltdivgt

$result =ltdiv id = htmlcaption class = nivo-html-captiongt

$result =ltstronggtThisltstronggt is an example of a ltemgtHTMLltemgt

caption with lta href = gta linkltagt

$result =ltdivgt

$result =ltdivgt

return $result

function np_init()

add_shortcode(np-shortcode np_function)

add_image_size(np_widget 180 100 true)

add_image_size(np_function 600 280 true)

$args = array(public =gt true label =gt Nivo Images supports =gt

array(title thumbnail))

register_post_type(np_images $args)

hooks

add_theme_support(post-thumbnails)

add_action(init np_init)

add_action(widgets_init np_widgets_init)

add_action(wp_print_scripts np_register_scripts)

add_action(wp_print_styles np_register_styles)

gt

71

পলাগগন গনপরয় এত ডিাট গযপরয ডরখা মভফ নয় এজনযাআ ভপরন য় পলাগগন গনপরয় ডকউ ডরপরখন না কাযন এখাপরন এত গফলয় াঅপরি মা াঅপররাচনা কযপরত ডগপরর ৫০০ ডজ ায পরয় মাপরফ ডফাোয সগফধাপরথড াঅগভ মথামভফ উদাযন গদপরয় ডফাোপরনায ডচষটা কপরযগি াঅগভ এখাপরন টাপরগডট কপরযগি মাযা টকটাক জাপরন পলাগগন মপপরকড এডবানস ডরপরবপররয নয় কাযন তাযা জাপরনন াঅভায উপরেশয গির মাযা জানপরত চায় তাপরদযপরক জানাপরনা এখাপরন ডমফ গফলয় াঅপররাচনা কযা পরয়পরি তা ডভাটাভগট ভাপরনয একগট পলাগগন ফানাপরনায জনয মপরথষট তপরফ ভাপরনাননয়পরনয জনয াঅনাপরক গনপরজাআ খাপরজ গনপরত পরফ াঅনায জনয ডকানটা বার পরফ াঅগভ রধ গদক গনপরদডনা গদরাভ ভাতর এাআ ফাআগট রধভাতর ওয়াডডপরে রেপরয জনয ডরখা াপরনক বর ভরাগনত থাকপরত াপরয াঅনাযা কষভাসনদয দগষটপরত ডদখপরফন াঅগভ ডচষটা কপরযগি মতটা জ কপরয ডরখা মায় াপরনক ভয় ডদখা মায় ডম খফ ডিাট খাপরটা গফলয় গনপরয় াপরনপরকাআ নক কপরযন এটা গতয রাঃখজনক াঅনাযা গগপরর একট খাজপররাআ ভাধান াপরফন াঅপরগ গনপরজ ডচষটা করন তায পরয ানযপরক ভাধাপরনয জনয গজজঞাা করন াঅভায জনয ডদায়া কযপরফন বাপররা রাগপরর জানাপরফন খাযা রাগপররও জানাপরফন তাপররাআ াঅভায গযশরভ সবাথডক পরফ ভতাভত জাগনপরয় াঅভাপরক ডভাআর কযপরত াপরযন litonice09gmailcom |

72

Page 70: Wordpress Plugin Development

71

পলাগগন গনপরয় এত ডিাট গযপরয ডরখা মভফ নয় এজনযাআ ভপরন য় পলাগগন গনপরয় ডকউ ডরপরখন না কাযন এখাপরন এত গফলয় াঅপরি মা াঅপররাচনা কযপরত ডগপরর ৫০০ ডজ ায পরয় মাপরফ ডফাোয সগফধাপরথড াঅগভ মথামভফ উদাযন গদপরয় ডফাোপরনায ডচষটা কপরযগি াঅগভ এখাপরন টাপরগডট কপরযগি মাযা টকটাক জাপরন পলাগগন মপপরকড এডবানস ডরপরবপররয নয় কাযন তাযা জাপরনন াঅভায উপরেশয গির মাযা জানপরত চায় তাপরদযপরক জানাপরনা এখাপরন ডমফ গফলয় াঅপররাচনা কযা পরয়পরি তা ডভাটাভগট ভাপরনয একগট পলাগগন ফানাপরনায জনয মপরথষট তপরফ ভাপরনাননয়পরনয জনয াঅনাপরক গনপরজাআ খাপরজ গনপরত পরফ াঅনায জনয ডকানটা বার পরফ াঅগভ রধ গদক গনপরদডনা গদরাভ ভাতর এাআ ফাআগট রধভাতর ওয়াডডপরে রেপরয জনয ডরখা াপরনক বর ভরাগনত থাকপরত াপরয াঅনাযা কষভাসনদয দগষটপরত ডদখপরফন াঅগভ ডচষটা কপরযগি মতটা জ কপরয ডরখা মায় াপরনক ভয় ডদখা মায় ডম খফ ডিাট খাপরটা গফলয় গনপরয় াপরনপরকাআ নক কপরযন এটা গতয রাঃখজনক াঅনাযা গগপরর একট খাজপররাআ ভাধান াপরফন াঅপরগ গনপরজ ডচষটা করন তায পরয ানযপরক ভাধাপরনয জনয গজজঞাা করন াঅভায জনয ডদায়া কযপরফন বাপররা রাগপরর জানাপরফন খাযা রাগপররও জানাপরফন তাপররাআ াঅভায গযশরভ সবাথডক পরফ ভতাভত জাগনপরয় াঅভাপরক ডভাআর কযপরত াপরযন litonice09gmailcom |

72

Page 71: Wordpress Plugin Development

72