How to Create a WordPress Plugin: A Step-by-Step Guide !

Creating a custom WordPress plugin allows you to add specific functionalities to your website, enhancing its features . In this step-by-step guide, we’ll walk you through the process of creating a simple WordPress plugin from scratch using code. Whether you’re a developer or just starting out, this guide will help you get started on the right track.

Understanding WordPress Plugins

A WordPress plugin is a piece of code that adds new features or functionalities to your WordPress website. Plugins can range from simple tasks like adding a contact form to complex features like e-commerce integration. Plugins allow you to extend the core functionality of WordPress without modifying its source code.

Setting Up Your Development Environment

To get started, you need a local development environment. You can use tools like XAMPP or WAMP to set up a server environment on your computer for testing and development.

Creating a Plugin Folder

In your WordPress installation directory, navigate to wp-content/plugins/.

Create a new folder for your plugin, naming it something descriptive and unique, like my-custom-plugin.

Understanding the Basic Structure

Inside your plugin folder, create a PHP file with the same name as your folder, such as my-custom-plugin.php. This file will serve as the main entry point for your plugin.

Adding Plugin Information and Header

In your main plugin file, start by adding a plugin header with essential information:

Plugin Name: My Custom Plugin
Description: Add custom functionality to your WordPress site.
Version: 1.0
Author: Your Name

Writing Your First Function

Let’s create a simple function that displays a welcome message on your website:

function custom_welcome_message() {
    echo '<p>Welcome to my website! Thanks for visiting.</p>';

Using WordPress Hooks and Filters

To display our welcome message, we’ll use a WordPress hook. Add this line below your function to hook it into the content area of your website:

add_action('wp_footer', 'custom_welcome_message');

Now, when you refresh your website, you should see the welcome message at the bottom of the page.

Activating Your Plugin

In your WordPress admin dashboard, go to “Plugins” and activate your custom plugin. You should immediately see the welcome message on your website.

Debugging and Troubleshooting

During development, you might encounter errors or unexpected behavior. Use the built-in debugging tools in WordPress (WP_DEBUG) to identify and fix issues.

Adding Admin Menus and Pages

You can create admin menus and pages for your plugin to provide a user interface. For example, let’s create an admin page that displays a settings form:

function custom_plugin_menu() {
    add_menu_page('Custom Plugin Settings', 'Custom Plugin', 'manage_options', 'custom-plugin', 'custom_plugin_settings_page');

function custom_plugin_settings_page() {
    echo '<div class="wrap">
        <h2>Custom Plugin Settings</h2>
        <form method="post" action="options.php">
            <!-- Your form fields here -->

add_action('admin_menu', 'custom_plugin_menu');

Creating Shortcodes

Shortcodes allow users to add custom functionality to their posts or pages. Let’s create a shortcode that displays a special message:

function custom_shortcode() {
    return '<p class="txt">This is a special message from my plugin!</p>';

add_shortcode('custom_message', 'custom_shortcode');

Now users can use the shortcode [custom_message] in their content to display the message.

Enqueuing Stylesheets and Scripts

You can style your plugin by enqueuing CSS and JavaScript files. Create a directory named css within your plugin folder and add a style.css file:

function enqueue_custom_styles() {
    wp_enqueue_style('custom-style', plugins_url('css/style.css', __FILE__));

add_action('wp_enqueue_scripts', 'enqueue_custom_styles');

Adding Custom CSS

In your style.css file, you can add custom styles for your plugin’s elements:

/* Your custom styles here */


Creating a WordPress plugin from scratch is a rewarding experience that empowers you to enhance your website’s functionality. With this guide, you’ve learned the basics of creating a plugin, adding functionalities, testing, and styling. Now you can continue exploring and building more advanced plugins to take your WordPress site to the next level.

Palindrome Checker Program: Verify if a String is Palindrome

Check String Length in string is a common operation in Java programming. It helps in various scenarios, such as determining the Counting of a user input or validating the input length against certain criteria. In the following sections, we will explore different approaches to accomplish this task efficiently.

Initializing the String

Before we begin counting the characters, we need to have a string to work with. In Java, you can initialize a string using the String class.

String str= "String is Palendrome";

Using the length() Method

The simplest way to count the characters in a string is by using the length() method provided by the String class. This method returns the number of characters in the string.


Using the Condition to check String is boolean

Another approach to count the characters in a string is by using a loop. We can iterate over each character in the string and increment a counter variable.

str = str.toLowerCase(); // Convert the string to lowercase for case-insensitive comparison
int left = 0;
int right = str.length() - 1;

while (left < right) {
if (str.charAt(left) != str.charAt(right)) {
return false;

Performance Considerations

When counting characters in a string, it’s important to consider performance. The length() method has a time complexity of O(1) as it directly returns the length. However, using a loop to count characters has a time complexity of O(n) since it iterates over each character.

Sample code

public class Stringispalendrome{

    public static void main(String[] args) {
        String input = "madam"; // Example input string

        if (isPalindrome(input)) {
            System.out.println("The string is a palindrome.");
        } else {
            System.out.println("The string is not a palindrome.");

    public static boolean isPalindrome(String str) {
        str = str.toLowerCase(); // Convert the string to lowercase for case-insensitive comparison
        int left = 0;
        int right = str.length() - 1;

        while (left < right) {
            if (str.charAt(left) != str.charAt(right)) {
                return false;
        return true;

In this program, we have directly assigned a string to the input variable for demonstration purposes. You can modify the value of input to test different strings. The isPalindrome function is the same as in the previous example, which checks whether the string is a palindrome or not. After calling the function, the program prints the appropriate message based on the result.

Remember to replace the input variable with the string you want to check for palindrome property.

Ultimate Guide to Creating Custom Post Types with WP Meta Box

In today’s digital world, creating custom post types is a common practice among website developers and content creators. WordPress, being a popular content management system, provides a powerful tool called WP Meta Box that allows developers to add custom fields and meta boxes to their custom post types. In this article, we will explore the concept of custom post types and delve into the functionalities and benefits of using WP Meta Box. So let’s dive in!

What are Custom Post Types and their uses ?

Custom post types are a feature of WordPress that enables you to create and manage different types of content beyond the traditional posts and pages. With custom post types, you can define your own content structures, such as portfolios, testimonials, products, events, and more. It allows you to organize and present your content in a structured manner, tailored to your specific needs. Using custom post types offers several advantages. It helps in better organization and management of diverse content types, improves user experience by providing targeted templates and layouts, and enhances the overall flexibility of your website. Custom post types also contribute to better search engine optimization (SEO) and allow you to extend the functionality of your WordPress site beyond its core capabilities.

WP Meta Box installation and Setup

WP Meta Box is a powerful WordPress plugin that simplifies the process of creating custom post types, custom fields, and meta boxes. It provides a user-friendly interface and a comprehensive set of features to manage and display custom fields in the WordPress admin area. WP Meta Box is widely adopted by developers and is known for its flexibility, extensibility, and compatibility with other popular plugins and themes. To get started with WP Meta Box, you need to install and activate the plugin or you can use wordpress hook to create meta box. Below is the sample code to create WP meta box.

Creating Custom Post Types with WP Meta Box

With WP Meta Box, creating custom post types is a straightforward process. Let’s go through the steps to create a custom post type:

  1. Access the WP Meta Box settings in the WordPress admin menu.
  2. Click on “Custom Post Types” to create a new post type.
  3. Provide a name, labels, and other settings for your custom post type.
  4. Save the settings, and your custom post type is ready to use.

You can further customize the post type by specifying the available fields, taxonomies, and other options according to your requirements.

Adding Custom Fields and Meta Boxes

WP Meta Box allows you to add custom fields and meta boxes to your custom post types effortlessly.

Displaying Custom Fields and Meta Boxes

Once you have added custom fields and meta boxes to your custom post types, you may want to display them on the front end of your website. WP Meta Box provides various methods to achieve this, including shortcode, template functions, and block editor integration. You can choose the most suitable approach based on your development workflow and requirements.

To get Started with WP Meta Box with Custom Post Type Follow Below Steps.

Step 1: Define your custom post type

To define your custom post type, you need to use the register_post_type() function. Here’s an example of how to create a custom post type for a myposttype:

function create_my_post_type() {
    $args = array(
        'labels' => array(
            'name' => __( 'My Post type' ),
            'singular_name' => __( 'My Post Type' ),
        'public' => true,
        'has_archive' => true,
        'rewrite' => array( 'slug' => 'myposttype' ),
        'menu_icon' => 'dashicons-portfolio',
        'supports' => array( 'title', 'editor', 'thumbnail' ),
    register_post_type( 'myposttype', $args );
add_action( 'init', 'create_my_post_type' );

Step 2: Create custom meta boxes

If you want to add custom fields to your custom post type, you can use the add_meta_box() function. Here’s an example of how to create a meta box for a myposttype:

function add_myposttype_metaboxes() {
        'Myposttype Details',
add_action( 'add_meta_boxes', 'add_myposttype_metaboxes' );

function myposttype_meta_callback( $post ) {
    wp_nonce_field( basename( __FILE__ ), 'myposttype_nonce' );
    $portfolio_meta = get_post_meta( $post->ID );
    <label for="myposttype_year"><?php _e( 'Year' ); ?></label>
    <input type="text" name="myposttype_year" id="myposttype_year" value="<?php if ( isset ( $myposttype_meta['myposttype_year'] ) ) echo $myposttype_meta['myposttype_year'][0]; ?>" />

Step 3: Save custom meta box data

To save the custom meta box data, you need to use the save_post hook. Here’s an example of how to save the myposttype year meta box data:

function save_myposttype_meta( $post_id ) {
    // Checks save status
    $is_autosave = wp_is_post_autosave( $post_id );
    $is_revision = wp_is_post_revision( $post_id );
    $is_valid_nonce = ( isset( $_POST['myposttype_nonce'] ) && wp_verify_nonce( $_POST['myposttype_nonce'], basename( __FILE__ ) ) ) ? 'true' : 'false';

    // Exits script depending on save status
    if ( $is_autosave || $is_revision || !$is_valid_nonce ) {

    // Checks for input and sanitizes/saves if needed
    if( isset( $_POST['myposttype_year'] ) ) {
        update_post_meta( $post_id, 'myposttype_year', sanitize_text_field( $_POST['myposttype_year'] ) );
add_action( 'save_post', 'save_myposttype_meta' );

Step 4: Display custom post type on the front-end

To display your custom post type on the front-end of your site, you need to use a custom query. Here’s an example of how to display a list of myposttype items:

$args = array(
    'post_type' => 'myposttype',
    'posts_per_page' => 10,

$query = new WP_Query( $args );

if ( $query->have_posts() ) {
    while ( $query->have_posts()): the_post();

echo '<h1'>'.the_title().''</h1>';

echo '<p>''.the_content().''</p>';

endwhile; endif;

Best Practices for Custom Post Types

When working with custom post types and WP Meta Box, it’s essential to follow best practices to ensure optimal performance and maintainability. Here are some guidelines to keep in mind:

  1. Plan your content structure and taxonomy hierarchy before creating custom post types.
  2. Use descriptive names and labels for your post types, fields, and meta boxes.
  3. Keep your code organized and modular by utilizing reusable functions and classes.
  4. Regularly update and maintain your custom post types and WP Meta Box plugin.
  5. Test your custom post types thoroughly across different devices and browsers.

By adhering to these best practices, you can create robust and future-proof custom post types.

Compatibility and Integration

WP Meta Box is designed to seamlessly integrate with other popular WordPress plugins and themes. It offers compatibility with plugins like Advanced Custom Fields (ACF), Yoast SEO, and WooCommerce. You can leverage this integration to extend the functionality of your custom post types and create more versatile and engaging websites.

Gutenberg Block Development: Mastering WordPress Hooks

WordPress has revolutionized the way we create and manage websites, making it more accessible and user-friendly for everyone. One of the key features that has contributed to this revolution is Gutenberg, the block editor introduced in WordPress 5.0. With Gutenberg, developers have the ability to create custom blocks and extend the functionality of their websites using WordPress hooks. In this article, we will explore Gutenberg block development using WordPress hooks and delve into the power and flexibility it offers to WordPress developers.

Gutenberg blocks are the building blocks of content in the WordPress block editor. Each block represents a specific piece of content or functionality that can be added to a post or page. With Gutenberg, developers can create custom blocks that cater to their specific needs, allowing them to extend the capabilities of the editor beyond the default set of blocks provided by WordPress.

Understanding WordPress Hooks

WordPress hooks are a powerful mechanism that allows developers to modify or extend the behavior of WordPress core, themes, and plugins. Hooks are divided into two types: actions and filters. Actions are events triggered at specific points in the WordPress execution flow, while filters allow developers to modify data before it is displayed or saved.

Creating a Custom Gutenberg Block

To create a custom Gutenberg block, we need to define a block type using JavaScript. This involves registering the block, specifying its attributes, rendering its content, and adding any necessary editor controls. By following the Gutenberg block development documentation, developers can easily create custom blocks tailored to their specific requirements.

Registering and Enqueuing Block Assets

Once the custom Gutenberg block is defined, we need to register and enqueue its assets. This includes JavaScript and CSS files that contain the block’s logic and styling. By properly enqueuing the assets, we ensure that they are loaded only when needed, minimizing the impact on page loading times and improving overall performance.

Adding Custom Attributes and Styles to Blocks

Custom attributes allow developers to store additional data for each instance of a block. By adding custom attributes, developers can make their blocks more dynamic and flexible. Additionally, custom styles can be applied to blocks to enhance their visual appearance and provide a better user experience.

Implementing Dynamic Block Content

Dynamic block content allows users to interact with blocks and update their content dynamically. By implementing dynamic block content, developers can create blocks that display dynamic data fetched from external sources or modified based on user input. This adds a layer of interactivity and makes the blocks more versatile.

Extending Block Functionality with Hooks

WordPress hooks can be used to extend the functionality of Gutenberg blocks. Developers can hook into various actions and filters to modify block behavior, add custom controls, or perform additional actions based on user interactions. This flexibility allows developers to create highly customized and powerful blocks that cater to specific use cases.

Enhancing Block Editor Experience

To provide a seamless editing experience for users, it’s essential to enhance the block editor with additional features. This can include adding custom meta boxes, integrating with third-party APIs, or implementing keyboard shortcuts. By enhancing the block editor experience, developers can improve productivity and streamline the content creation process.

Testing and Debugging Gutenberg Blocks

Thorough testing and debugging are crucial in Gutenberg block development. WordPress provides several tools and techniques for testing blocks, such as the Gutenberg plugin for WordPress, unit testing with Jest, and browser-based testing. Proper testing ensures that the blocks work as expected and minimizes the chances of encountering issues in a production environment.

To create a custom Gutenberg block in WordPress, follow these steps:

  • Create a new plugin or use an existing one where you can add your custom block code.
  • Enqueue the necessary scripts and stylesheets for Gutenberg block development in your plugin file using the enqueue_block_editor_assets hook. This will make sure that your block is properly styled and has access to the necessary functionality.
  • Define your custom block using the registerBlockType function. This function takes an object as its argument, which defines the block’s attributes, such as its name, icon, category, and edit and save functions.
  • In the edit function, use React to create the block’s user interface. This is where you’ll define the markup and behavior of your block.
  • In the save function, define how the block’s content should be saved to the database. This function should return the markup that was generated in the edit function.
// Enqueue the necessary scripts and stylesheets
function my_custom_block_assets() {
        plugin_dir_url( __FILE__ ) . 'block.js',
        array( 'wp-blocks', 'wp-element' )
add_action( 'enqueue_block_editor_assets', 'my_custom_block_assets' );

// Define the custom block
function my_custom_block_init() {
    register_block_type( 'my-plugin/my-custom-block', array(
        'editor_script' => 'my-custom-block',
        'attributes' => array(
            'content' => array(
                'type' => 'string',
                'source' => 'html',
                'selector' => '.my-custom-block',
        'render_callback' => 'my_custom_block_render',
    ) );
add_action( 'init', 'my_custom_block_init' );

// Define the edit function
function my_custom_block_edit( props ) {
    return (
        <div className={ props.className }>
            <h2>My Custom Block</h2>
            <p>Edit the content here:</p>
                value={ props.attributes.content }
                onChange={ ( content ) => props.setAttributes( { content } ) }

// Define the save function
function my_custom_block_save( props ) {
    return (
        <div className={ props.className }>
                value={ props.attributes.content }

// Define the render function
function my_custom_block_render( props ) {
    return (
        <div className={ props.className }>
            <h2>My Custom Block</h2>
            <div className="my-custom-block" dangerouslySetInnerHTML={ { __html: props.attributes.content } } />


Gutenberg block development using WordPress hooks provides developers with the ability to create custom blocks that extend the functionality of the WordPress block editor. By leveraging WordPress hooks, developers can add dynamic content, enhance block functionality, and provide a better editing experience for users. With the power and flexibility of Gutenberg and WordPress hooks, the possibilities for creating unique and interactive websites are endless.

How to Count Characters in a String: Simple Program Guide

Counting the total number of characters in a string is a common operation in Java programming. It helps in various scenarios, such as determining the length of a user input or validating the input length against certain criteria. In the following sections, we will explore different approaches to accomplish this task efficiently.

Initializing the String

Before we begin counting the characters, we need to have a string to work with. In Java, you can initialize a string using the String class.

String str= "Count Total Characters";

Using the length() Method

The simplest way to count the characters in a string is by using the length() method provided by the String class. This method returns the number of characters in the string.


Using a Loop to Count Characters

Another approach to count the characters in a string is by using a loop. We can iterate over each character in the string and increment a counter variable.

for(int i=0;i<str.length();i++) {
            if(str.charAt(i)!=' ' ) {

Performance Considerations

When counting characters in a string, it’s important to consider performance. The length() method has a time complexity of O(1) as it directly returns the length. However, using a loop to count characters has a time complexity of O(n) since it iterates over each character.

Sample code

public class CountCharacters{

public Static Void main(string[] args) {

String str= "Count Total Characters";
int count= 0;

System.out.println("Length of String is " + str.length());
      for(int i=0;i<str.length();i++) {
            if(str.charAt(i)!=' ' ) {
System.out.println("count of characters" + count+);
//Output : 
//Length of String is :22
//Count of characters : 19


Counting the total number of characters in a given string is a fundamental task in Java programming. In this article, we explored various approaches to accomplish this task efficiently, including using the length() method, loops and count the no of characters.

Remember to consider the performance implications of each approach and choose the one that best suits your specific requirements.

JavaScript Function Calling: A Complete Guide

JavaScript is a powerful programming language that allows developers to add interactivity and dynamic behavior to web pages. One of the fundamental concepts in JavaScript is the ability to call functions. In this article, we will explore the various ways to call JavaScript functions and provide you with a step-by-step guide. Whether you are a beginner or an experienced developer, this article will help you understand the different techniques and best practices for calling JavaScript functions effectively.

JavaScript functions are blocks of reusable code that perform specific tasks. They allow you to organize your code, make it modular, and promote code reuse. Calling a function means executing the code within the function body at a specific point in your program.

Calling Functions with Parentheses

function test(){
var x=10;
test(); // Calling the function

By including parentheses after the function name, you invoke the function and execute its code.

Passing Arguments to Functions

JavaScript functions can also accept parameters or arguments. Arguments are values that you can pass to a function to customize its behavior. You can pass arguments by including them within the parentheses when calling the function. Here’s an example:

function test(name) {
  console.log("Hi, " + name);
test("techintricks"); // Calling the function with an argument

In this example, the test function accepts a name parameter, which is then used to personalize the greeting.

Returning Values from Functions

Functions in JavaScript can also return values. You can use the return statement to specify the value that the function should produce. Here’s an example:

function test(x,y){
let z=x+y;
return z;
let addition=test(1,2); // Calling the function and storing the result
console.log(addition);//output 3

In this example, the test function returns the sum of two numbers, which is then stored in the addition variable.

Calling Functions as Event Handlers

JavaScript functions are often used as event handlers to respond to user interactions. You can assign a function to an event, such as a button click, and the function will be called when the event occurs. Here’s an example:

<button onclick="test()">Click me</button>

In this example, the test function will be called when the button is clicked.

Calling Functions using Arrow Functions

Arrow functions are a concise syntax for writing JavaScript functions. They provide a more compact way to define functions and have some differences in how they handle the this keyword. Here’s an example:

let sayHello = () => {
  console.log("Hello, World!");

sayHello(); // Calling the arrow function

Arrow functions are particularly useful when working with callback functions or when you want to preserve the value of this from the surrounding context.

Asynchronous Function Calls

JavaScript supports asynchronous programming, where functions can be called asynchronously and continue execution without waiting for the result. Asynchronous function calls are commonly used when dealing with network requests, timers, or other time-consuming operations. Promises and async/await are popular techniques for handling asynchronous calls in JavaScript.

Error Handling and Exception Handling

When calling JavaScript functions, it’s essential to handle errors and exceptions gracefully. You can use try-catch blocks to catch and handle exceptions that may occur during function execution. Error handling ensures that your program continues to run smoothly even in the presence of unexpected errors.

Best Practices for Calling JavaScript Functions

To ensure clean and maintainable code, it’s essential to follow some best practices when calling JavaScript functions. These include giving meaningful names to functions, avoiding excessive nesting, and keeping your functions small and focused.


In conclusion, calling JavaScript functions is a fundamental concept that allows you to execute code and perform specific tasks. By understanding the various techniques and best practices for calling functions, you can write more efficient and maintainable JavaScript code. Remember to use parentheses, pass arguments, and handle return values appropriately. Additionally, explore advanced topics like asynchronous function calls and error handling to enhance your JavaScript skills.

Beginner’s Guide to Creating a Custom Post Type in WordPress

WordPress is a popular content management system that allows users to create and manage websites with ease. One of the key features of WordPress is the ability to create custom post types, which enable you to organize and display different types of content on your website. In this beginner’s guide, we will walk you through the process of creating a custom post type in WordPress, step by step.

What is custom post type ?

Custom Post type is a post type where we can create our own post type according to requirement. Once a custom post type is registered, it gets a new top-level administrative screen that can be used to make changes in posts of that type.

Why we need Custom Post Type ?

To add additional functionality to our website. Once created , we can modify functionality of our website easily. Lets Understand with simple example.
Ex :- Suppose , We have restaurant website and wants to add two different menu like menu-1 , menu-2. How can we add ?
Using WordPress default post we can create menu-1 easily but for menu-2 we have create another WordPress post type that is called as custom post type in which we can add more fields for more data.

Planning Your Custom Post Type

Before jumping into creating a custom post type, it’s essential to plan its structure and functionality. Consider the purpose of your post type, the specific data you want to collect, and how you want to display it on your website. This planning phase will help you define the parameters and settings required for your custom post type.

Registering the Custom Post Type

To create a custom post type, you need to register it with WordPress. This can be done by adding code to your theme’s functions.php file or by using a custom plugin. The registration process involves defining the labels, settings, and capabilities of your post type. Once registered, your custom post type will appear in the WordPress admin dashboard.

Customizing the Custom Post Type

After registering your custom post type, you can further customize its behavior and appearance. This includes modifying labels, adding support for specific features like thumbnails or comments, and setting up the post type’s capabilities and permissions. Customizing your custom post type ensures that it functions exactly as intended.

Displaying the Custom Post Type

Once you’ve created and customized your custom post type, you’ll want to display it on your website. This can be achieved by creating custom templates or modifying existing ones to accommodate the new post type. You can also utilize plugins and theme builders that provide easy-to-use interfaces for displaying custom post types.

Adding Custom Fields to the Custom Post Type

Custom fields allow you to collect additional data for your custom post type. They can be used to gather information such as author details, event dates, or product specifications. WordPress provides built-in support for custom fields, and you can also use plugins to enhance the functionality and appearance of your custom fields.

Implementing Taxonomies

Taxonomies are used to classify and organize content within your custom post type. They enable you to create hierarchical or non-hierarchical structures such as categories and tags. By implementing taxonomies, you can enhance the usability and discoverability of your content, making it easier for users to navigate your website.

Enabling Custom Post Type Archives

Archives allow you to display a list of all posts belonging to a specific custom post type. Enabling archives for your custom post type ensures that visitors can access and browse through your content efficiently. You can customize the archive template and use plugins to enhance the archive functionality with filtering and sorting options.

Customizing the Single Post View

The single post view is the page that displays an individual post of your custom post type. You can customize this view to match the design and layout of your website. By modifying the single post template, you can showcase the unique attributes of your custom post type and provide an engaging reading experience for your visitors.

Adding Custom Post Type Templates

In addition to customizing the single post view, you can create custom templates for other views related to your custom post type. These include the archive template, search results template, and category template. By designing these templates, you can ensure a consistent and cohesive presentation of your custom post type throughout your website.

Applying Styling to the Custom Post Type

To create a visually appealing custom post type, you can apply custom styles using CSS. By targeting the elements specific to your post type, you can modify their appearance, layout, and typography. This allows you to integrate your custom post type seamlessly with the overall design of your website and maintain a consistent visual identity.

Managing Custom Post Type Permalinks

Permalinks are the URLs that point to individual posts of your custom post type. It’s important to set up proper permalink structure for your custom post type to ensure search engine friendliness and user-friendly URLs. WordPress provides options to customize the permalinks and ensure they are easy to read and remember.

Troubleshooting Common Issues

While creating a custom post type, you may encounter certain issues or errors. These could range from incorrect template rendering to conflicts with other plugins or themes. Troubleshooting common issues involves identifying the problem, debugging the code, and seeking help from the WordPress community or support forums.

Steps to create a Custom Post type in WordPress !

  • Navigate to theme folder open functions.php file and add below code into that. If you are using child theme you can follow same procedures.
function wpdocs_create_recipe_posttype() {
    $labels = array(
        'name'                  => _x( 'Recipes', 'Post type general name', 'recipe' ),
        'singular_name'         => _x( 'Recipe', 'Post type singular name', 'recipe' ),
        'menu_name'             => _x( 'Recipes', 'Admin Menu text', 'recipe' ),
        'name_admin_bar'        => _x( 'Recipe', 'Add New on Toolbar', 'recipe' ),
        'add_new'               => __( 'Add New', 'recipe' ),
        'add_new_item'          => __( 'Add New recipe', 'recipe' ),
        'new_item'              => __( 'New recipe', 'recipe' ),
        'edit_item'             => __( 'Edit recipe', 'recipe' ),
        'view_item'             => __( 'View recipe', 'recipe' ),
        'all_items'             => __( 'All recipes', 'recipe' ),
        'search_items'          => __( 'Search recipes', 'recipe' ),
        'parent_item_colon'     => __( 'Parent recipes:', 'recipe' ),
        'not_found'             => __( 'No recipes found.', 'recipe' ),
        'not_found_in_trash'    => __( 'No recipes found in Trash.', 'recipe' ),
        'featured_image'        => _x( 'Recipe Cover Image', 'Overrides the “Featured Image” phrase for this post type. Added in 4.3', 'recipe' ),
        'set_featured_image'    => _x( 'Set cover image', 'Overrides the “Set featured image” phrase for this post type. Added in 4.3', 'recipe' ),
        'remove_featured_image' => _x( 'Remove cover image', 'Overrides the “Remove featured image” phrase for this post type. Added in 4.3', 'recipe' ),
        'use_featured_image'    => _x( 'Use as cover image', 'Overrides the “Use as featured image” phrase for this post type. Added in 4.3', 'recipe' ),
        'archives'              => _x( 'Recipe archives', 'The post type archive label used in nav menus. Default “Post Archives”. Added in 4.4', 'recipe' ),
        'insert_into_item'      => _x( 'Insert into recipe', 'Overrides the “Insert into post”/”Insert into page” phrase (used when inserting media into a post). Added in 4.4', 'recipe' ),
        'uploaded_to_this_item' => _x( 'Uploaded to this recipe', 'Overrides the “Uploaded to this post”/”Uploaded to this page” phrase (used when viewing media attached to a post). Added in 4.4', 'recipe' ),
        'filter_items_list'     => _x( 'Filter recipes list', 'Screen reader text for the filter links heading on the post type listing screen. Default “Filter posts list”/”Filter pages list”. Added in 4.4', 'recipe' ),
        'items_list_navigation' => _x( 'Recipes list navigation', 'Screen reader text for the pagination heading on the post type listing screen. Default “Posts list navigation”/”Pages list navigation”. Added in 4.4', 'recipe' ),
        'items_list'            => _x( 'Recipes list', 'Screen reader text for the items list heading on the post type listing screen. Default “Posts list”/”Pages list”. Added in 4.4', 'recipe' ),
    $args = array(
        'labels'             => $labels,
        'description'        => 'Recipe custom post type.',
        'public'             => true,
        'publicly_queryable' => true,
        'show_ui'            => true,
        'show_in_menu'       => true,
        'query_var'          => true,
        'rewrite'            => array( 'slug' => 'recipe' ),
        'capability_type'    => 'post',
        'has_archive'        => true,
        'hierarchical'       => false,
        'menu_position'      => 20,
        'supports'           => array( 'title', 'editor', 'author', 'thumbnail' ),
        'taxonomies'         => array( 'category', 'post_tag' ),
        'show_in_rest'       => true
    register_post_type( 'Recipe', $args );
add_action( 'init', 'wpdocs_create_recipe_posttype' );


Creating a custom post type in WordPress opens up endless possibilities for organizing and presenting your content. By following the steps outlined in this beginner’s guide, you can confidently create your own custom post type, tailor-made to suit your website’s unique requirements. Embrace the flexibility and power of WordPress, and enjoy the enhanced functionality and user experience that custom post types bring.

WordPress REST API: A Complete Guide to Getting Started with WP Hooks

WordPress has come a long way from being a simple blogging platform to a versatile content management system (CMS) that powers millions of websites across the globe. One of the powerful features it offers is the WordPress REST API, which allows developers to interact with the platform programmatically and build innovative applications. In this comprehensive guide, we’ll dive into the world of WordPress REST API, focusing on how to leverage its capabilities using WP hooks.

Making WordPress REST API Work for You

The WordPress REST API opens up a world of possibilities for developers to create dynamic and interactive websites, applications, and services. By harnessing the power of WP hooks, you can seamlessly integrate custom functionality into your WordPress site and craft a unique user experience. Whether you’re a seasoned developer or just starting, the REST API provides a flexible foundation for building innovative solutions that push the boundaries of what’s possible.

Benefits of Using WP Hooks with REST API

Integrating WP Hooks with the REST API opens up a world of possibilities for extending WordPress functionality. It enables developers to create custom endpoints, manipulate responses, and enhance user experience without compromising security or stability.

Setting Up Your Environment

Before diving into using WP Hooks with the REST API, it’s important to have a development environment ready. You can set up a local server using tools like XAMPP or use online platforms like WPEngine for testing.

Making API Requests with WP Hooks

WP Hooks provide methods to interact with REST API endpoints. You can use hooks like wp_remote_get and wp_remote_post to make requests and retrieve data from external sources. This flexibility enables you to integrate third-party services seamlessly.

What are the some key points of WordPress Rest API ?

Routes & Endpoints

route is URL where we can map it with http method like GET,POST etc. while an endpoint is a connection between an individual HTTP method and a route.
Ex : – /wp-json is a route, and when that route receives a GET request then that request is handled by the endpoint which displays what is known as the index for the WordPress REST API.


Request is represented by an instance of the WP_REST_REQUEST class , using this class we can store and retrieve information for current request. It is automatically generated when we make HTTP request to a registered API route.


We are getting data from the API in Response. The WP_REST_RESPONSE class provides a way to interact with the response data returned by endpoints.


Schema’s are defined in data structured format. The schema structures API data and provides a comprehensive list of all of the properties the API can return and which input parameters it can accept.

Controller Classes

Using controller class we can manage the registration of routes & endpoints, handle requests, utilize schema, and generate API responses.

Creating an API by Using plugin

Using plugin , We can create an API.

  • Add WordPress REST API Basic Auth plugin.
  • Log in to your WordPress Dashboard and go to Plugins -> Add New. Click on the Upload Plugin button and select the plugin’s zip file or directly search Basic Auth from Search bar , you will get plugin name click on install button and after installation click on activate button to activate the plugin.
  • Once Basic Auth is installed, open CLI and authenticate an API request by utilizing the user flag.
    Ex : – curl -X GET –user username:password -i your curl url.

Practical Examples and Use Cases

To solidify your understanding, let’s explore practical examples such as creating a custom post endpoint, integrating with popular services like Google Maps, and automating social media sharing using WP Hooks.


require get_template_directory().'/myapi/myfile.php';

Suppose if you want to create an API then create one file inside myapi folder name and below code into this.

add_action( 'rest_api_init', function () {
  register_rest_route( 'gp', '/listpost', array(
    'methods' => 'GET',
    'callback' => 'get_blog_data',
  ) );
} );

function get_blog_data(){
global $post;
$args = array('post_type'=>'post','numberposts' => 5);
$myposts = get_posts( $args );
foreach($myposts as $post){
$arr['thumbnail']=wp_get_attachment_image_src( $post->ID, 'full' );

return $dataArray;

Url should be – yourhostname/wp/wp-json/gp/listpost.


The WordPress REST API, combined with the power of WP Hooks, opens up endless possibilities for developers looking to create innovative and feature-rich applications. By following this guide, you’ve gained a solid foundation in utilizing these tools effectively.

Mastering Version Control: Most Useful Git Q&A Commands

Git, a distributed version control system, has revolutionized the way developers collaborate and manage their codebases. Whether you’re a seasoned developer or just starting on your coding journey, understanding and mastering Git commands is crucial for efficient version control and seamless collaboration. In this article, we’ll explore the most useful GIT Q&A commands that will empower you to navigate the world of version control like a pro.

What is GIT Repository ?

A Repository is a file structure where git stores all the project based files. Git can either stores the files on the local or the remote repository.

What does Git Clone do ?

git_clone <URL>

What does the command git config do ?

The git config Command is a convenient way to set configuration options for defining the behavior of the repository, User information and preferences, git installation-based configurations, and many such things.
Ex : To setup your name and email address before using git commands, we can run the below commands.

git config --global "<<your_name>>"
git config --global "<<your_email>>"

What is conflict & how you will solve this ?

Git Usually handles features merges automatically but sometimes while working in a team environment, there might be cases of conflicts such as :
1. When two separate branches have changes to the same line in a file.
2. A file is deleted in one branch but has been modified in the other.

These conflicts have to be solved manually after discussion with the team as git will not be able to predict what and whose changes have to be given precedence.

What is the functionality of git is-tree ?

This command returns a tree object representation of the current repository along with the mode and the name of each item and SHA-1 value of the blob.

What does git status command do ?

git status Command is used for showing the difference between the working directory and the index which is helpful for understanding git in-depth and also keep track of the tracked and non tracked changes.

Define “Index” ?

Before making commits to the changes done, the developer is given provision to format and review the files and make innovations to them. All these are done in the common area which is known as ‘Index’ or ‘Staging Area’.

In the above image, the “staged” status indicates the staging area and provides an
opportunity for the people to evaluate changes before committing them.

What does git add command do ?

  • This Command adds files and changes to the index of the existing directory.
  • You Can add all changes at once using git add. Command.
  • You can add files one by one specifically using git add <filename> command.
  • You can add contents of a particular folder by using git add / <folder_name> / Command.

How you will create a git Repository ?

  • Have git installed in your system.
  • In order to create a git repository, create a folder for the project and then run git init .
  • This will create a .git file in the project folder which indicates that the Repository has been created.

What is git Stash ?

Git Stash can be used in cases where we need to switch in between branches and at the same time not wanting to lose edits in the current branch. Running the git stash command basically pushes the current working directory for other tasks.

What is the command used to delete a branch ?

  • To delete a branch we can simply use the command git branch -d [head].
  • To delete a branch locally, we can simply run the command : git branch -d <local_branch_name>
  • To delete a branch remotely, run the command: git push origin –delete <remote_branch_name>
  • Deleting a branching scenario occurs for multiple reasons. One Such Reason is to get rid of the feature branches once it has been merged into the development branch.

What are difference between Command git remote and git clone ?

git remote Command creates an entity in git config that specifies a name for a particular URL . whereas git clone creates a new git repository by copying an existing one located at the URL.

What is git Stash apply Command do ?

  • git stash apply command is used for bringing the work back to the working directory from the stack where the changes were stashed using git stash command.
  • This helps the developers to resume their work where they had last left their work before switching to other branches.

How git pull & git merge is connected to each other ?

git pull = git fetch + git merge

What is difference between Pull request & branch ?

Pull Request

This process is done when there is a need to put a developer’s change into another person’s code branch.


A branch is nothing but a separate version of the code.

Why do we not call git “pull request” as “push request” ?

Push request is termed so because it is done when the target repository requests us to push our changes to it.

Pull request is named as such due to the fact that the repo requests the target repository to grab(or pull) the changes from it.

What is commit object ?

A commit object consists of the following components :

a : A set of files that represents the state of a project at a given point in time.
b : Reference to parent commit objects.
c : A 40 character String termed as SHA-1 name uniquely identifies the commit object.

What command helps us know the list of branches merged to master ?

git branch –merged helps to get the list of the branches that have been merged into the current branch.
Note : git branch –no-merged lists the branches that have not been merged to the current branch.

What are the functionalities of git reset –mixed and git merge –abort ?

git reset –mixed command is used for undoing changes of the working directory and the git index.
git merge –abort command is used for stopping the merge process and returning back to the state before the merging occurred.


Congratulations! You’ve taken a significant step towards mastering Git. By understanding and utilizing these essential Git Q&A commands, you’ve equipped yourself with the tools to navigate version control confidently and collaborate seamlessly with fellow developers.

Most Common Programming Language Interview Q&A

In today’s competitive job market, landing a programming job requires more than just technical skills. Interviewers often delve into the depths of programming languages to assess a candidate’s expertise. Whether you’re a seasoned developer or a fresh graduate, having a solid grasp of the most common programming language questions and answers can give you an edge. In this article, we’ll explore the frequently asked programming language questions in interviews and provide comprehensive answers to help you ace your next interview.

As the tech industry continues to evolve, programming languages remain at the core of software development. Interviews are a critical juncture where employers assess candidates’ abilities to solve problems, write efficient code, and communicate effectively. Let’s delve into the significance of programming language questions in interviews and explore some of the most commonly asked questions.

Importance of Programming Language Questions in Interviews

In interviews, programming language questions serve multiple purposes. They assess your technical prowess, problem-solving skills, and familiarity with industry-standard languages. Moreover, they offer insight into your approach to coding challenges and your ability to adapt to different programming paradigms.

Write a Program to Reverse a String ?

Visit Program Page to get this program.

What is mean by OPPS ?

OOPS is Object Oriented Programming Structure. OOPS is a method of implementation in which programs are organized as collection of objects, class and methods.

What is mean Class & Method ,Object ?


Class is a collection of objects and methods • Class contains attributes(variables and methods) that are common to all the objects created in a class.

Method defines the set of action to be performed.

Object is the run time memory allocation. • Using object we call any methods.

What is mean by Encapsulation ?

It is the structure of creating folders.It wraps the data and code acting on data together in to a single unit.
Ex: encapsulation is POJO class. It is otherwise called Data hiding.

What is the main use of Scanner class ?

To get the inputs from the user at the run time.

What are the methods available in Scanner Class ?


What is Method overloading and overriding ?

Method overriding is used to provide the specific implementation of the method that is already
provided by its super class. Method overloading is performed within class. Method overriding occurs in
two classes that have IS-A (inheritance) relationship. In case of method overloading, parameter must be

What is mean by polymorphism ?

Poly-many-Morphism-forms. Taking more than one forms is called polymorphism or one task implemented in many ways.

What is mean by inheritance ?

Accessing one class Properties in another class without multiple object creation. It avoids time and memory wastage. • It ensures code reusability.

What are the ways to access the methods /data from another class ?

We can access the another class methods either by creating object or using extends keyword.

What is mean by access specifier ?

It defines the scope or level of access for variables,methods and classes

What are the difference between public and protected ?

Public: It is global level access( same package + different package).
Protected: can access Inside package ( object creation + extends )

What is mean by Abstraction ?

Hiding the implementation part or business logic is called abstraction.

What are the types of Abstraction ?

  • Partially abstraction(using abstract class).
  • Fully abstraction(using interface).

Can we create Object for Abstract class ?

No, we cant create object for abstract class.

What is mean by Interface ?

It will support only abstract method(without business logic), won’t support non abstract method(method with business logic )
In interface “public abstract” is default.
using “implements” keyword we can implement the interface in a class where we can write the business logic for all unimplemented methods.

What are the difference between Abstract and Interface ?

Abstract class: Using Abstract class,we can acheive partial abstraction.
• It support both abstract method and non-abstract method.
• using “extends” keyword you can inherit an abstract class.
• For any abstract method we need to mention “public abstract”.

Interface: Using interface,we can acheive full abstraction.
• It supports only abstract method.
• It is using “implements” keyword.
• “public Abstract” is default, no need to mention it explicitly.

What is mean by String?

• Collection of characters or words enclosed within double quotes is called as String.
• String is a class in java
• String is index based
• Example : “greenstechnology”.