 My face is half, four fathers of him pairs salesman and they are. He has had to go to all of his comedies as many roles as he has. And it's time he's done with all the news that I have made. Thank you so much. Good afternoon everyone and warm welcome to my session. I'm Ganga Kafe. I'm co-founder of Tender Cell and parallely Iroh on Wintar WordPress blog. And I was the lead organizer of what can be done in 2018, which was held on December 22 in our beautiful city, Bratnagar. And currently I'm a theme review lead of WordPress.org. Lots of themes have been submitted in WordPress.org and we managed to review those themes and report our reviews there and then author fixes those things and resubmit it and we said them live as well. So today I'm going to talk about make your theme on WordPress.org standard because WordPress.org has its own standard of theme if you are a developer and if you are planning to submit a theme in WordPress.org if you are a WordPress developer and if you want to contribute is a theme reviewer in WordPress.org. Today this session is very helpful for you. So you can learn a lot of things about the standard of WordPress themes. So we need to think about, think before you submit themes on WordPress.org. Mainly we will focus on these things as well as how we can proceed how we can start the theme review of WordPress.org as well. You may have these questions. Should my theme be based on standards? Of course your theme must be in WordPress.org standards. Your theme must follow the WordPress.org guidelines otherwise your theme will not get approved. And if you are planning to contribute as a theme reviewer you need to know these guidelines of WordPress.org themes. You may have contributed in documentation. You may have contributed in code or something like that but if you are planning to join this theme review contribution you can learn and you can contribute in the theme review session. So I think this session will be very beneficial if you are planning to develop your theme or if you are planning to contribute as a theme reviewer. May I ask you how many of you are a theme developer here? Can you please raise your hand? Theme developer please. Oh that's exciting. And how many of you are a theme reviewer here? Theme reviewer? Have you ever tried reading themes? Oh good. You develop, may I ask you you develop theme for WordPress.org or something like that? Yeah, just for clients. May I ask you properly follow the coding standard of WordPress or something or not? You need... Okay, maybe from this session from the next day I think you will do this practice as well. Now, if you are a developer or if you are planning to start a theme review set of theme developing environment first. You need to make the environment to develop theme or you need to make the environment to review themes first. How we can? In your WordPress files, debug 2 in WB config file because it shows the error hand warning while developing themes or while reading themes. Check this file WBconfig.psp and enable the debug 2 mode. And import demo data from tools import because if you import this demo's data so that you can check the alignment, the design how the post looks, how the page looks so that this is beneficial to check the design proposal. So, if you review themes or if you're developing themes without the demo content I think it's not easy to see the layout and the look. So, this is very important for you. And we have 3 plugins. This is theme audit and this is theme check and this is theme snipper. This theme check plugin is available in WordPress.org repository whereas this theme snipper and theme audit are on in GitHub. You can download those plugins from GitHub and install it on your local environment and then you can start reviewing themes. Just install these 3 plugins. These 3 plugins will help you to start reviewing and these plugins will show you lots of issues easily. Just you can install this and you can check inside appearance and then theme check or theme audit just you can click and select the themes. All the errors, warnings, notices will display there and you need to check them all. The warnings shown by these plugins are just a recommended part. It's recommended to solve them. However, those required things or errors and required things need to be solved otherwise your theme will not get a proven WordPress.org. Maybe your river will close your theme instantly or he will suggest you to solve these issues. Now, what are the theme standards? What your theme should have? You need to know. If you are planning to develop themes or if you are planning to review the themes you need to know these things. What are the standards? What are the standards that you need to worry while developing themes or while learning themes? Now, your theme must be GPL compatible. How many of you are aware about this license? GPL license? No? General public license? You know? Yeah? GPL. Because WordPress is totally GPL. Even plugins, even themes, everything in WordPress is GPL and this theme is also GPL. All the images, all the libraries, for example, JL, CSS, whatever you use in theme it must be GPL. This, for example, if you are using images in your theme that must be GPL compatible. For example, CC0 license, MIT license are those GPL compatible license. For example, if you randomly Google as image and if you put it in your theme, that is not allowed. And there are lots of free images, sites like PixAway, Unsplash, and what it pixels, and lots of themes. But they are frequently changed their license. For example, PixAway recently changed their license and now it's not working fine. And so using images of PixAway is not allowed and using images of Unsplash is not allowed. Even they are free, but they are not GPL compatible. So you need to check the handbook of theme review guidelines and there are a few website solutions you can download the images from there. Means you need to check the images or library or whatever you are using in them, that must be GPL compatible. And the theme must be error-free and secure. If your theme is with errors, if your theme shows the warnings, if your theme shows the notices, that is strictly prohibited, that is totally not allowed in WordPress.org. So while developing theme, I already told you that you need to enable your set of environment that is debug true so that it will show the warning and notices. So theme must be error-free and secure. If there are some malicious things in theme that is not allowed. It must be error-free, warning and notices are not allowed. You can use unique prefix to reduce conflict with plugins. Means if your theme has the unique slog, if your theme name is unique and it will not conflict with the plugins. So always use the unique name, not a general random name. Because there are more than 6000 plus themes are submitted in WordPress.org and among them around 4000-5000 are like. And if you submit those names, it will not upload in WordPress.org. So always change the random name, unique name, whatever. And your theme must be translation-ready because today we are in another country and lots of audience may not know the English language. So your theme must be translation-ready. If your theme is not translation-ready, not translation-ready, it will not approve in WordPress.org. So theme must be translation-ready. This is the important required things for WordPress themes. No morally offensive. For example, make your theme which is perfect. And who want to use it? Never use offensive image or any resources. Because you don't allow to use image that may not switch to the proper society or something like that. So your theme must be present. Your theme must be switchable for everyone who want to use your theme. Because WordPress.org is totally free and everyone can visit the website, download the theme and they need to use it. But if your theme is offensive like that, so it is not allowed. So we never approve those themes. We never said like those themes. And if anyone, any author did those things, we totally banned them or suspended those themes. Now, important things to take care about in this theme development, while theme development or while theme reading. What are the important things? For example, theme has the primary file like the standard CSS, functions, .psp, something like that. If your theme, for example, if your theme name is 2017, I posted here a snap sort of this skin sort of the 2017 theme, theme name 2017 and here is what text domain is 2017. For example, if your theme has to was like 20 space 17, you can write text domain like that or you can put hyphen inside the 20 hyphen 17. That are the things you need to care about. For example, if your theme name is Bangkok, your text domain name is Bangkok and your theme folder name must be Bangkok. If your theme name is Bangkok Tokyo, then you can, your folder name must be Bangkok hyphen Tokyo or Bangkok Tokyo in a similar and the text domain must be this Bangkok Tokyo. And this text, we have text, text help to filter the theme while in the theme page and these text need to be mentioned and we have other normal text and subject text. Subject text need to be put at least one but not more than three. So, you need to check the tag page, how many tags are written here, how many subject tags are written here, you need to check the subject tags as well. And license, you are right and license. You need to mention this which license you are using. You are using GPL version 2 or GPL version 2 or later or GPL version 3. You need to mention which license you are using because if you do not mention the license, we will not able to theme because it must be GPL. So, generally lots of themes are using GPL version 2 or later. So, here is license GNU, general public license and license you are right, the license you are right of this GPL license. And you need to write the version over here and each time you update the theme, you need to update this version. For example, this version in 1.4 and if you want to update the theme, you need to put something like 1.5 or 1.4.1, 1.4.2 or something like that. So, just bomb the version and update the theme. And here is author and author, your WordPress user name like that. And here is author URI and here is theme URI. This theme URI and author URI are optional. Whether you put it or not, it is optional. But if you put it, it must be valid. For example, if you are author, for example, you can write the theme URI here. But theme URI must have the information about the theme. For example, if you write the theme URI here www.abcd.com and if there is no thing mentioned, that is not allowed. So, that this must be valid length. And author URI, you can write your own blog or your own website URI over here. And here is theme URI and author URI. You need to mention that these are optional text domain. I already discussed about and text and subject text. You need to check here. Subject text. These subject text are not allowed more than three but at least one. For example, subject text are like blog, food and drinks, photography, like that. You need to check those subject text in a theme handbook page. You can just google what is theme handbook and you will get the results. Or I will show you the steps in the next slide as well. And function.psv file. You need to include JS. For example, hard coded JS is not allowed. For example, while developing HTML template, you use JS and CSS hard coded. Likewise, you are not allowed to use in WordPress theme. For example, if you include WP into jQuery, that is not allowed. Because most popular JavaScript are loaded by WordPress itself. So, you do not need to include jQuery. You do not need to include. You do not need to put masonry.js file in the theme because they are already loaded in WordPress. So, most popular JavaScripts are already loaded. So, you do not need to load JavaScript and something popular JavaScript. And do not load popular JavaScript, I already mentioned here. And prefixing. Prefix with theme, slog. For example, in this case, 2017 is a text domain. We call it slog as well. And you need to prefix all the functions name, class names, global variable, images size, handle name, filter name need to be prefix with this theme slog. For example, if you are going to create a function for function name, that function name must be prefix. For example, function, Bangkok. That Bangkok need to be prefix with the theme name. So, that if your theme name is what ABCD, your this slog is what ABCD. So, those ABCD need to be put in everywhere, like this PSP class name, global variables, external filters, script handles, images size, names. Now, here validation, sanitization and escaping. This is the security propose of what this theme. And you need to know how we can escape, how we can validate, how we can make the theme sanitize. You need to check while developing themes or while reviewing themes. Sanitation, validation and escaping is the most important factor for make your theme secure. Validate in or sanitize untrusted data before entering into database. For example, if you make a field in your theme. For example, in customizer or something like that. You need to validate those data before entering into the database. For example, here is the sanitize email. We can use this function to sanitize the email. Sanitize text field for the text field data and escape URL law, FCNIT etc. for this escape URL is for the URL and FCNIT is for the absolute integer. So that you need to put these validation functions while coding. After that, all untrusted data should be escaped before output. For example, if you make a field for a URL and while give the output, you need to put escape URL and then the field name. So that your URL will escape and that will be secure. For example, here is sanitize email, escape attribute, escape URL, escape HTML, FCNIT etc. this escape function we can use in theme. But you need to use the proper escape function for the proper use. For example, if you are going to escape the email, you do not need to, you are not allowed to use escape attribute. Escape attribute is for escaping the HTML attributes. And this escape HTML is generally for the removing HTML tags in your field. So you need to use the proper escape functions, you need to use the proper sanitization and validation function while coding. Customizer data must be sanitized before saving and escape it before output. For example, WordPress only supports the customizer API, not setting API, theme options like that is not allowed. So customizer API while developing settings in customizer, you need to use this sanitize callback and sanitize callback function. For example, sanitize text field. For example, if you are going to make a field for text field, you need to use sanitize callback, sanitize text field. For example, if you are going to make the field for URL, sanitize callback, escape URL, raw. For example, if you are going to make the field for integer, you need to sanitize callback, you need to make the function for the integer. For example, if you are going to make the check box, you need to sanitize make the function for check box. There are lots of sanitization, escaping and validation function available in WordPress, but if there is not available, you need to make your own function and you need to put it there. Otherwise, your data will not saved and your theme will show the error and issues. Now, what are not allowed keep it in mind the before below listed things. What are the things that are totally not allowed while developing themes or while submitting themes in the WordPress.org. If you are planning to make things right now or if you are planning to start developing themes from today and if you are planning to submit things in the WordPress.org or something like that or if you are planning to make your own marketplace or source for WordPress themes, you need to develop the proper standard code theme so that these all standards are also useful for the theme forest and popular other market places as well. Because they also have the similar structure, similar way of coding and similar requirement like WordPress.org. For example, custom post type including custom post type in themes is not allowed in WordPress.org. For example, if you are going to make a custom post type for theme for testimonial for something like that that is not allowed. If you need to put the custom post type, you need to develop the compatible plugins and plugin must be in WordPress.org. But I think there are various market places who allows this custom post type taxonomies but WordPress.org not allowed this custom post type and taxonomies. And now plugins not allowed to bundle plugins in themes can recommend plugin and those plugins must be in WordPress.org. If you are planning to submit theme in WordPress.org and if you bundle the plugin in the theme that is not allowed. But you can recommend plugin. You can recommend plugin via different methods but the recommended plugin must be inside the WordPress.org repository and that we recommend the plugin must be regularly objected and something like that. And sort codes. Sort codes are not allowed. You are not allowed to make sort codes on theme. For example, you can make the field to enter the sort code but making sort code in theme is not allowed. Now screen sort size. For example, this is the screen sort size of my theme and this screen sort size is in 4 is to 3 ratio means 800, 80 by 660 or 200 by 900 pixel size. 4 is to 3 in a screen sort need to be recommended. So really required and the recommended size is 200 by 900. You can put 800, 80 by 660 as well but for the high screen resolution we recommend 200 by 900 in a size. Now just a few things you need to care about. WPNP of WordPress always in uppercase. I think you all know about these things. WNP of WordPress always in uppercase. Remove unnecessary commented codes. If you comment while developing themes and before submitting them you need to check all the commented codes and you need to remove this because those garbage things are not allowed in themes. No customization. No customization the WordPress admin. You are not allowed to customize the WordPress admin tunnel like in your own color or something like that. Because the admin must be perfectly fine while activating all themes. Redirection is not allowed after thing activated. For example while activating theme and lots of themes do the redirection and send it to the traffic to their website and this is also not allowed. It is not allowed to remove the default functionality of code. Default functionality is not allowed to remove from the themes. Don't include development files. Lots of time I will recommend to don't include development files because you can put development files in GitHub or something like that. So, WordPress.org repository is not for the development purpose. There are lots of simple users. They don't know how to use those development file like SaaS or something like that. So you can put those development files in GitHub or something places but I don't recommend to put in the theme holder. Then themes should be GPL. For example, if you host theme in WordPress.org and if you sell the premium themes from your website, those premium themes also be GPL. If you are free themes in WordPress.org and if you send the traffic with theme you arrive to your website, that website, premium themes also must be GPL and you need to mention the license in your theme something in places. All the themes, all the premium themes are GPL compatible. Don't include backup files on theme holder. For example, commented code or something like that. Oh, lots of authors say that I will use this function later so that I just commented. I will use this later so this is not allowed. So don't include backup files or something like that in your theme holder. No analytics or tracking. For example, tracking code or analytics code or something that is not allowed in themes. No sharing API. API is allowed. Facebook, Twitter. Sharing API is not allowed. But just you can just put some simple Facebook link. You can put that. But this API is not allowed. Save option in a single array means you are not allowed to make the new table or a new row in a database. You are not allowed after activating the theme. No overriding admin bus. This is always discussed. No URL certain used in the theme. For example, go.gl like that, those certain URL is not allowed. All code and design should be your own legal yours. Even WordPress is GPL but code must be legally yours. You are not allowed to copy other things. No, this is GPL and let me change the name and submit in again in WordPress. Because this GPL but you can rewrite this code. You can reuse that code but totally you are not allowed to put in WordPress data by copying other things. Use WordPress functionality and features first available. There are lots of features available in WordPress code. We recommend you to use those features first and then only it. For example, background image, header text color, something like that is already available in WordPress code. So don't do that. Because you are not allowed to duplicate existing features and then custom fabric is not allowed. It is core functionality. You need to know these tiny things. Check name collision before submitting the theme in WordPress.org. For example, if you are planning to submit a theme named OceanWB. For example, OceanWB theme is already in WordPress.org. Those theme will not upload in WordPress. For example, if the theme is not in WordPress.org but if the theme is in other places like popular themes, something like that, those names are also not allowed to upload in WordPress.org. So that, check name collision. You can just Google it and you can easily find the results. Those things are available or not. So instead of normal name, you can just check the random name and you can put the theme name. Submit one theme at a time. Just one theme in WordPress.org at a time. You are not allowed to submit multiple things at a time. If the theme grows close or live, after then you can submit another theme again. If you are going to review or if you are going to develop the themes, you can do these things. This is very useful tips. Check existing live tickets so that you can know what are the things, how review process works and you can follow the theme guidelines handbook and start reviewing other themes. This is also the best method to learn how we can develop things. If you review other themes, you can know how code works, what are the basic things that we need to worry about while developing themes. And you can join the theme review channel on Slack, attend meetings regularly and contact with more senior admins. You can join the theme review channel and you can ask, hey, I am going to review a theme, how I can proceed or I am reviewing theme and I got this problem and also they are saying that this is allowed but I don't think so. You can ask any random question related to theme review or theme issues. So this is the best way to learn the theme development and theme review. Now how theme review process works? You need to submit a theme first. It will go in a web queue and then review and solve issues or your theme will close. Means you will communicate with the reviewer in this step and then you need to wear the admin review and admin like me and there are few other admins will check the final and then they set your theme live or they set your closed means not approved. If your theme passes all this step and if your theme go here, means the chances of getting your theme live is high but not sure. If your theme got lots of issues while checking by their admin, it will close and you need to submit again and you need to start from the beginning. It will take around 2-3 months for this process. This is all my presentation ends and hope the quality workplace that opened begins. You can contact me there. Questions? Do you have any other questions? No. Questions? No questions? No. No questions? No. Thank you so much.