{"id":572,"date":"2014-07-05T10:31:05","date_gmt":"2014-07-05T10:31:05","guid":{"rendered":"http:\/\/www.siriinnovations.com\/blog\/?p=572"},"modified":"2014-07-09T11:59:59","modified_gmt":"2014-07-09T11:59:59","slug":"create-wordpress-plugin","status":"publish","type":"post","link":"https:\/\/siriinnovations.com\/blog\/create-wordpress-plugin\/","title":{"rendered":"How to create WordPress Plugin"},"content":{"rendered":"<p>WordPress is not just a blogging platform but also a powerful CMS with unlimited capabilities and huge user base.I will show you how to write a\u00a0<b>Hello World<\/b>\u00a0wordpress plugin, which unlike many believe is surprisingly easy, once you understand the very fundamentals.<\/p>\n<p><b>Plugin Files &amp; Names<\/b><\/p>\n<p>Assigning unique names, documenting and organizing the plugin files is very important part of plugin creation.<\/p>\n<p>Hello-world.zip<\/p>\n<p>1) \u00a0\u00a0 readme.txt<\/p>\n<p>2)\u00a0\u00a0\u00a0 hello-world.php<\/p>\n<p>Although wordpress allows you to place the plugin php file directly into the wp-content\/plugins folder, for a good plugin developer you will need to create a folder named\u00a0<b>hello-world<\/b>\u00a0and place\u00a0within <b>readme.txt<\/b>\u00a0and\u00a0<b>hello-world.php<\/b>.The readme.txt contains information about your plugin and can come in handy when you submit your plugin wordpress SVN plugin repository.Go ahead and create these files and we will add the content to these files later.<\/p>\n<p><b>The Plugin Basics<\/b><\/p>\n<p>The heart of a wordpress plugins is the below 2 functions (commonly called `hooks`)<br \/>\nadd_action ($tag, $func)<\/p>\n<p>add_filter ($tag,$func)<\/p>\n<p><b>Plugin Information<\/b><\/p>\n<p>Open your hello-world.php and in the first line, add this commented plugin information to your file.<\/p>\n<pre class=\"code\" lang=\"php\">&lt;?php\r\n\/*\r\nPlugin Name: Hello-World\r\nPlugin URI: http:\/\/yourdomain.com\/\r\nDescription: A simple hello world wordpress plugin\r\nVersion: 1.0\r\nAuthor: Siri\r\nAuthor URI: http:\/\/siriinnovations.com\r\nLicense: GPL\r\n*\/\r\n?&gt;\r\nSave this php file,<\/pre>\n<ul>\n<li>Place the plugin folder to\u00a0<b>wordpress &gt; wp-content &gt; plugins<\/b><\/li>\n<li>Go to your\u00a0<b>wordpress admin &gt; plugins<\/b>\u00a0and you will see the new plugin listed, waiting to get activated.<\/li>\n<\/ul>\n<p><b>But this plugin had to do something right?<\/b><\/p>\n<p>Why not we make it print \u201cHello World\u201d when we call it from wordpress theme template files and\u00a0for that we write the code using add_action below the commented plugin information in the hello-world.php<\/p>\n<pre class=\"code\" lang=\"php\">&lt;?php\r\n\/*\r\nPlugin Name: Hello-World\r\nPlugin URI: http:\/\/yourdomain.com\/\r\nDescription: A simple hello world wordpress plugin\r\nVersion: 1.0\r\nAuthor: Siri\r\nAuthor URI: http:\/\/siriinnovations.com\r\nLicense: GPL\r\n*\/\r\n\/* This calls hello_world() function when wordpress initializes.*\/\r\n\/* Note that the hello_world doesnt have brackets.\r\nadd_action('init','hello_world');\r\nfunction hello_world()\r\n{\r\necho \"Hello World\";\r\n}\r\n?&gt;\r\n<\/pre>\n<p>Thats it! Our Hello World plugin is nearly done and with just few lines of code. When our plugin is activated, add_action command calls our hello_world() function when wordpress starts loading.<\/p>\n<p><b>Lets Test our Hello World Plugin<\/b><\/p>\n<p>We really don&#8217;t know whether our plugin works or not. To test our plugin, go to plugins, activate the hello-world plugin.<\/p>\n<p>Then open your wordpress theme\u00a0<b>wp-content &gt; themes &gt; default<\/b>, open any of index.php, archive.php or single.php and place the following code anywhere.<\/p>\n<pre class=\"code\" lang=\"php\">&lt;?php\r\nif(function_exists('hello_world')) {\r\nhello_world();\r\n}\r\n?&gt;\r\n<\/pre>\n<p>The key here is\u00a0<b>function_exists()<\/b>\u00a0call which checks whether the plugin is loaded or not and then allows the hook into the plugin function.Call to hello_world() in the theme files without checking it,often leads to \u201cFatal error:call to undefined function\u201d and our blog would crash,if the hello world plugin is not activated or deleted.<\/p>\n<p>Select any page and assign the plugin into that page.See that plugin data in that page.<\/p>\n<p>That&#8217;s the work of our plugin. It WORKS!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>WordPress is not just a blogging platform but also a powerful CMS with unlimited capabilities and huge user base.I will show you how to write a\u00a0Hello World\u00a0wordpress plugin, which unlike many believe is surprisingly easy, once you understand the very fundamentals. Plugin Files &amp; Names Assigning unique names, documenting and organizing the plugin files is [&hellip;]<\/p>\n","protected":false},"author":14,"featured_media":1013,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-572","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-general"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>How to create WordPress Plugin - Siri Innovations<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/siriinnovations.com\/blog\/create-wordpress-plugin\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to create WordPress Plugin - Siri Innovations\" \/>\n<meta property=\"og:description\" content=\"WordPress is not just a blogging platform but also a powerful CMS with unlimited capabilities and huge user base.I will show you how to write a\u00a0Hello World\u00a0wordpress plugin, which unlike many believe is surprisingly easy, once you understand the very fundamentals. Plugin Files &amp; Names Assigning unique names, documenting and organizing the plugin files is [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/siriinnovations.com\/blog\/create-wordpress-plugin\/\" \/>\n<meta property=\"og:site_name\" content=\"Siri Innovations\" \/>\n<meta property=\"article:published_time\" content=\"2014-07-05T10:31:05+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2014-07-09T11:59:59+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/siriinnovations.com\/blog\/wp-content\/uploads\/2014\/07\/24.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"540\" \/>\n\t<meta property=\"og:image:height\" content=\"241\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Sudhakar\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Sudhakar\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/siriinnovations.com\/blog\/create-wordpress-plugin\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/siriinnovations.com\/blog\/create-wordpress-plugin\/\"},\"author\":{\"name\":\"Sudhakar\",\"@id\":\"https:\/\/siriinnovations.com\/blog\/#\/schema\/person\/aef02956061a4b100bdd21aafb078321\"},\"headline\":\"How to create WordPress Plugin\",\"datePublished\":\"2014-07-05T10:31:05+00:00\",\"dateModified\":\"2014-07-09T11:59:59+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/siriinnovations.com\/blog\/create-wordpress-plugin\/\"},\"wordCount\":440,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/siriinnovations.com\/blog\/create-wordpress-plugin\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/siriinnovations.com\/blog\/wp-content\/uploads\/2014\/07\/24.jpg\",\"articleSection\":[\"General\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/siriinnovations.com\/blog\/create-wordpress-plugin\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/siriinnovations.com\/blog\/create-wordpress-plugin\/\",\"url\":\"https:\/\/siriinnovations.com\/blog\/create-wordpress-plugin\/\",\"name\":\"How to create WordPress Plugin - Siri Innovations\",\"isPartOf\":{\"@id\":\"https:\/\/siriinnovations.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/siriinnovations.com\/blog\/create-wordpress-plugin\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/siriinnovations.com\/blog\/create-wordpress-plugin\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/siriinnovations.com\/blog\/wp-content\/uploads\/2014\/07\/24.jpg\",\"datePublished\":\"2014-07-05T10:31:05+00:00\",\"dateModified\":\"2014-07-09T11:59:59+00:00\",\"author\":{\"@id\":\"https:\/\/siriinnovations.com\/blog\/#\/schema\/person\/aef02956061a4b100bdd21aafb078321\"},\"breadcrumb\":{\"@id\":\"https:\/\/siriinnovations.com\/blog\/create-wordpress-plugin\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/siriinnovations.com\/blog\/create-wordpress-plugin\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/siriinnovations.com\/blog\/create-wordpress-plugin\/#primaryimage\",\"url\":\"https:\/\/siriinnovations.com\/blog\/wp-content\/uploads\/2014\/07\/24.jpg\",\"contentUrl\":\"https:\/\/siriinnovations.com\/blog\/wp-content\/uploads\/2014\/07\/24.jpg\",\"width\":540,\"height\":241,\"caption\":\"Wordpress Plugin\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/siriinnovations.com\/blog\/create-wordpress-plugin\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/siriinnovations.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to create WordPress Plugin\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/siriinnovations.com\/blog\/#website\",\"url\":\"https:\/\/siriinnovations.com\/blog\/\",\"name\":\"Technical blog from Siri Innovations\",\"description\":\"Innovative like no other\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/siriinnovations.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/siriinnovations.com\/blog\/#\/schema\/person\/aef02956061a4b100bdd21aafb078321\",\"name\":\"Sudhakar\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/siriinnovations.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/3273e7f7a3d1bba58d4d425e1de8958f8d44f8db978835fe37bf632e910567db?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/3273e7f7a3d1bba58d4d425e1de8958f8d44f8db978835fe37bf632e910567db?s=96&d=mm&r=g\",\"caption\":\"Sudhakar\"},\"url\":\"https:\/\/siriinnovations.com\/blog\/author\/sudhakar\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How to create WordPress Plugin - Siri Innovations","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/siriinnovations.com\/blog\/create-wordpress-plugin\/","og_locale":"en_US","og_type":"article","og_title":"How to create WordPress Plugin - Siri Innovations","og_description":"WordPress is not just a blogging platform but also a powerful CMS with unlimited capabilities and huge user base.I will show you how to write a\u00a0Hello World\u00a0wordpress plugin, which unlike many believe is surprisingly easy, once you understand the very fundamentals. Plugin Files &amp; Names Assigning unique names, documenting and organizing the plugin files is [&hellip;]","og_url":"https:\/\/siriinnovations.com\/blog\/create-wordpress-plugin\/","og_site_name":"Siri Innovations","article_published_time":"2014-07-05T10:31:05+00:00","article_modified_time":"2014-07-09T11:59:59+00:00","og_image":[{"width":540,"height":241,"url":"https:\/\/siriinnovations.com\/blog\/wp-content\/uploads\/2014\/07\/24.jpg","type":"image\/jpeg"}],"author":"Sudhakar","twitter_misc":{"Written by":"Sudhakar","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/siriinnovations.com\/blog\/create-wordpress-plugin\/#article","isPartOf":{"@id":"https:\/\/siriinnovations.com\/blog\/create-wordpress-plugin\/"},"author":{"name":"Sudhakar","@id":"https:\/\/siriinnovations.com\/blog\/#\/schema\/person\/aef02956061a4b100bdd21aafb078321"},"headline":"How to create WordPress Plugin","datePublished":"2014-07-05T10:31:05+00:00","dateModified":"2014-07-09T11:59:59+00:00","mainEntityOfPage":{"@id":"https:\/\/siriinnovations.com\/blog\/create-wordpress-plugin\/"},"wordCount":440,"commentCount":0,"image":{"@id":"https:\/\/siriinnovations.com\/blog\/create-wordpress-plugin\/#primaryimage"},"thumbnailUrl":"https:\/\/siriinnovations.com\/blog\/wp-content\/uploads\/2014\/07\/24.jpg","articleSection":["General"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/siriinnovations.com\/blog\/create-wordpress-plugin\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/siriinnovations.com\/blog\/create-wordpress-plugin\/","url":"https:\/\/siriinnovations.com\/blog\/create-wordpress-plugin\/","name":"How to create WordPress Plugin - Siri Innovations","isPartOf":{"@id":"https:\/\/siriinnovations.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/siriinnovations.com\/blog\/create-wordpress-plugin\/#primaryimage"},"image":{"@id":"https:\/\/siriinnovations.com\/blog\/create-wordpress-plugin\/#primaryimage"},"thumbnailUrl":"https:\/\/siriinnovations.com\/blog\/wp-content\/uploads\/2014\/07\/24.jpg","datePublished":"2014-07-05T10:31:05+00:00","dateModified":"2014-07-09T11:59:59+00:00","author":{"@id":"https:\/\/siriinnovations.com\/blog\/#\/schema\/person\/aef02956061a4b100bdd21aafb078321"},"breadcrumb":{"@id":"https:\/\/siriinnovations.com\/blog\/create-wordpress-plugin\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/siriinnovations.com\/blog\/create-wordpress-plugin\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/siriinnovations.com\/blog\/create-wordpress-plugin\/#primaryimage","url":"https:\/\/siriinnovations.com\/blog\/wp-content\/uploads\/2014\/07\/24.jpg","contentUrl":"https:\/\/siriinnovations.com\/blog\/wp-content\/uploads\/2014\/07\/24.jpg","width":540,"height":241,"caption":"Wordpress Plugin"},{"@type":"BreadcrumbList","@id":"https:\/\/siriinnovations.com\/blog\/create-wordpress-plugin\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/siriinnovations.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to create WordPress Plugin"}]},{"@type":"WebSite","@id":"https:\/\/siriinnovations.com\/blog\/#website","url":"https:\/\/siriinnovations.com\/blog\/","name":"Technical blog from Siri Innovations","description":"Innovative like no other","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/siriinnovations.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/siriinnovations.com\/blog\/#\/schema\/person\/aef02956061a4b100bdd21aafb078321","name":"Sudhakar","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/siriinnovations.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/3273e7f7a3d1bba58d4d425e1de8958f8d44f8db978835fe37bf632e910567db?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/3273e7f7a3d1bba58d4d425e1de8958f8d44f8db978835fe37bf632e910567db?s=96&d=mm&r=g","caption":"Sudhakar"},"url":"https:\/\/siriinnovations.com\/blog\/author\/sudhakar\/"}]}},"jetpack_featured_media_url":"https:\/\/siriinnovations.com\/blog\/wp-content\/uploads\/2014\/07\/24.jpg","_links":{"self":[{"href":"https:\/\/siriinnovations.com\/blog\/wp-json\/wp\/v2\/posts\/572","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/siriinnovations.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/siriinnovations.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/siriinnovations.com\/blog\/wp-json\/wp\/v2\/users\/14"}],"replies":[{"embeddable":true,"href":"https:\/\/siriinnovations.com\/blog\/wp-json\/wp\/v2\/comments?post=572"}],"version-history":[{"count":12,"href":"https:\/\/siriinnovations.com\/blog\/wp-json\/wp\/v2\/posts\/572\/revisions"}],"predecessor-version":[{"id":770,"href":"https:\/\/siriinnovations.com\/blog\/wp-json\/wp\/v2\/posts\/572\/revisions\/770"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/siriinnovations.com\/blog\/wp-json\/wp\/v2\/media\/1013"}],"wp:attachment":[{"href":"https:\/\/siriinnovations.com\/blog\/wp-json\/wp\/v2\/media?parent=572"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/siriinnovations.com\/blog\/wp-json\/wp\/v2\/categories?post=572"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/siriinnovations.com\/blog\/wp-json\/wp\/v2\/tags?post=572"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}