WordPress Functions List for Custom Theme Development

The number of mobile users across globe is forecast to reach an astonishing 2.87 billion, & based on socPub 57% of users say they will not recommend a business with a poor quality mobile responsive site.
Fortunately, creating a fully responsive website is ease with WordPress, particularly when you go for latest WordPress themes.


WordPress is the most popular content management system (CMS) for many websites as it is highly user-friendly and customizable, making it a popular choice at ColorWhistle for client projects.

If you’re familiar with custom WordPress theme development, you know things can get messy, especially if you’re starting from the scratch.

So, how should you go about doing it?

We ColorWhistle WordPress web development company in India are going to save you the trouble by providing some common WordPress functions list used in custom theme development.

With the help of our WordPress developers, I have provided a basic overview of how to incorporate those functions into a WordPress website.

WordPress Functions List

How to show individual (Single) post content in front-end?

if(have_posts()) : while (have_posts()) : the_post();
    echo '<div class="entry-content">';
       if(get_post_meta($post->ID, 'key-name', true)){
         echo get_post_meta($post->ID, 'key-name', true);
    echo '</div>';
endwhile; endif;

How to list custom post-type?

$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
SpostsPerPage = 4;
$args = array(
    'post_type' => 'post',
    'paged' => $paged,
    'posts_per_page' => $postsperpage
$loop = new wp_query($args);
if ($loop->have_posts()) : while ($loop->have_posts()) : $loop->the_post(); ?>
<a href="<?php the permalink() ?>"><?php the_post_thumbnail( 'full' ); ?></a>
<?php the_title( '<h1 class="entry-title">', '</h1>' ); ?>
<?php echo wp_trim_words ( get_the_content (), 40, ...'); ?>
<a href="<?php the permalink() ?>">Read More</a>
<?php endwhile; wp_reset_query(); ?>
<div class="navigation">
the_posts_pagination ( array(
   'prev_text'   =>_('Previous page', 'cbc'),
   'next_text'   =>_('Next page', 'cbc'),
   'before_page_number' => '<span class="meta-nav screen-reader-text">'._( 'Page', 'cbc' ).'</span>',
) );
// If no content, include the "No posts found" template.
    get_template_part('content', 'none');
For example, if you require a post type as 'travel', you have to add, 'post_type' =>

How to show individual page content in front-end?

get_template_part('template-parts/content', 'page');
if(comments_open() || get_comments_number()){

How to list child pages?

$child_pages = new Wp_Query(array(
     'post_type' => 'page', //set the post type to page
     'posts_per_page' => 1, //number of posts(pages) to show
     'page_id' => 81, //enter the post ID of the parent page
     'no_found_rows' =>true,
//no pagination necessary so improve efficiency of loop
if($child_pages->have_posts()) : while($child_pages->have_posts()) : $child_pages()->the_post();
the_title('<h2 class="entry_title">', '</h2>');
get_template_part('template-parts/content', 'page');

How to use ‘User meta’ function?

<?php add_user_meta($user_id, $meta_key, $meta_value, $unique);?>
$user_id = 1;
$awesome_level = 1000;
add_user_meta($user_id, '_level_of_awesomeness_', $awesome_level);
<?php update_user_meta($user_id, $meta_key, $meta_value, $prev_value);?>
$user_id = 1;
$website = 'http://wordpress.org';
update_user_meta($user_id, 'user_url', website);
<?php delete_user_meta($user_id, $meta_key, $meta_value);?>
$user_id = 9;
$website = 'http://wordpress.org';
delete_user_meta($user_id, 'disabled');
<?php get_user_meta ($user_id, $key, $single); ?>
$user_id = 9;
$key = 'last_name';
$single = true;
$user_last = get_user_meta( $user_id, $key, $single );
echo '<p>The '. $key . value for user id' . $user_id . ' is: '. $user_last. '</p>';
  • (integer) (required) user ID
  • Default: None
$meta key
  • (string) (required) Metadata name.
  • Default: None
$meta value
  • (mixed) (required) Metadata value. (Don’t serialize it yourself, WordPress will do it for you.)
  • Default: None
  • (boolean) (optional) Whether the same key should not be added.
  • Default: false
$prev value
  • (mixed) (optional) Previous value to check before removing.
  • Default:’ ‘
  • (boolean) (optional) If true return value of metadata field, if false return an array. This parameter has no effect if $key is left blank.
  • Default: false
  • (string) (optional) Text to place before the date.
  • Default: None
  • (string) (optional) Text to place after the date
  • Default: None
  • (boolean) (optional) Display the date (TRUE), or return the date to be used in PHP (FALSE).
  • Default: TRUE

How to include date/time function?

<p>Posted: <?php the_date('F j, Y'); ?> at <?php the_time('g:i a'); ?></p>

F j, Y g:i a - November 6, 2010 12:50 am
F j, Y - November 6, 2010
F, Y - November, 2010
g:i a - 12:50 am
g:i:s a - 12:50:48 am
1, F js, Y - Saturday, November 6th, 2010
M j, Y @ g:i - Nov 6, 2010 @ 0:50
Y/m/d \a\t g:i A - 2010/11/6 at 12.50 AM
Y/m/d \a\t g:i a - 2010/11/6 at 12.50 am
Y/m/d g:i:s A - 2010/11/6 12.50:48 AM
Y/m/d 2010/11/06

Date as Year, Month, Date in Heading

<?php the_date('Y-m-d', '<h2>', '</h2>'); ?>

How to use tags in WordPress website?

  • <?php the_title(); ?> – Displays the posts/pages title
  • <?php the_content();?> – Displays the content of the post/page
  • <?php the_excerpt();?> – Displays the excerpt of the current post/page
  • <?php the_time();?> – Displays the time of the current post/page
  • <?php the_date();?> – Displays the date of a post or set of post/page

How to create a Taxonomy?

Registering a taxonomy:

Here is an example of registering a “people” taxonomy

function people_init() {
   // create a new taxonomy
   register_taxonomy (

'label' => _('people'),
'rewrite' => array('slug' => 'person'),
'capabilities' => array(
'assign_terms' => 'edit_guides',
'edit_terms' => 'publish_guides',
add_action('init', 'people_init');

Here is an example of adding the term John to post id number 555 in the "person" taxonomy

wp_set_object_terms(555, 'John', 'person');

How to display terms?

The following is an example of the terms() condition

<?php the_terms($post_ID, 'category', 'categories:','/'); ?>

To add a signup and login/logout links to your WordPress menu, add the code snippet below to your theme’s functions.php file.

function add_login_logout_register_menu( $items, $args) {
if ($args->theme_location != 'primary' ) {
return $items;
$items .= '<li><a href="'.wp_logout_url().'">'._('Logout').'</a></li>';
$items .= '<li><a href="'.wp_login_url().'">'._('Login In').'</a></li>';
$items .= '<li><a href="'.wp_registration_url().'">'._('Sign Up').'</a></li>';
return $items;
add_filter('wp_nav_menu_items', 'add_login_logout_registration_menu', 199, 2);

How to add categories?

function get_cat_ID($cat_name){
  $cat = get_term_by('name', $cat_name, 'category');
  return $cat->term_id;
  return 0;
function get_cat_name($cat_id){
  $cat_id = (int) $cat_id;
  $category = get_term($cat_id, 'category');
  if(!category || is_wp_error($category))
  return '';
  return $category->name;
get categories
<?php $args = array("hide_empty" => 0
                    "type" => "post",
                    "orderby" => "name",
                    "order" => "ASC");
$types = get_categories($args);
<?php $categories = get_categories(array('hide_empty' => false, 'child_of' => 10));>
<?php get_the_category_list($separator, $parents, $post_id);?> 
<?php if(in_category($vegetarian)):?>
You're in the vegetarian category.
<?php endif;?>
<header class="archive-header">
<?php if(is_category('Featured')):?>
     <h1 class="archive-title">Featured Articles:</h1>
<?php else:?>
     <h1 class="archive-title">Category Archive:<?php single_cat_title();?></h1>
<?php endif;?>

How to insert the post manually or custom?

Post insertion/removal
<?php wp_delete_post($post_id, true);?>
$post_title = $_POST['post_title'];
$post_cat = $_POST['cat'];
$post_content = $_POST['post_content'];

$new_post = array(
    'ID' => '',
    'post_author' => $user=>ID,
    'post_category' => array($post_category),
    'post_content' => $post_content,
    'post_title' => $post_title,
    'post_status' => 'publish'
$post_id = wp_insert_post($new_post);
//This will redirect to the newly created post.
$post = get_post($post_id);


<?php $postid = get_the_ID();?>
<?php echo '<input type="hidden" name="activepost" id="activepost" value="'.get_the_ID().'"/>';
$content = get_the_content('
print $content;
the_content and get_the_title
<?php the_content('Continue reading' .get_the_title());?>
<?php the_title('<h3>','</h3>');?>
Add shortcode
  function fun_name($atts){
    return "foo={$atts['foo']}";
add shortcode('shotcode_name', 'fun_name');
Do shortcode
<?php echo do_shortcode('[contact-form-7 id="91" title="quote"]');?>
How to register a menu?
// Register navigation menus
function theme_register_nav_menus() {
    register_nav_menus( array(
        'primary-menu' => __( 'Primary Menu', 'theme-text-domain' ),
        'footer-menu' => __( 'Footer Menu', 'theme-text-domain' ),
        // Add more menu locations as needed
    ) );
add_action( 'after_setup_theme', 'theme_register_nav_menus' );
How to display a menu?
// Display primary menu
wp_nav_menu( array(
    'theme_location' => 'primary-menu',
    // Add more parameters as needed
) );

How to display the site URL?

// Retrieve the URL of the current site's homepage
$site_url = site_url();

// Retrieve the URL of a specific file within the site (e.g., style.css)
$style_url = site_url('/style.css');


This function loads the theme’s text domain for translation, allowing for the localization and translation of theme strings.

// Load theme text domain for translation load_theme_textdomain('customtheme', get_template_directory() . '/languages');


This function adds support for various features to the theme.

// Add theme support for post thumbnails
add_theme_support( 'post-thumbnails' );


It is a vital function in WordPress used to attach custom functionality to specific points, known as action hooks, within the WordPress execution process.

add_action('after_setup_theme', 'customtheme_setup');


It is a used to add a filter to a specific hook. Filters in WordPress allow you to modify or manipulate data before it is displayed or used elsewhere in WordPress.

add_filter('the_content', 'my_content_filter_function');


 This function retrieves the absolute path to the current theme’s directory on the server. It returns the directory path without the trailing slash.

// Retrieves the path to the template directory 
$template_directory = get_template_directory();


This function retrieves the URI (Uniform Resource Identifier) of the current theme’s directory. It returns the URI path (web address) to the theme’s directory, including the protocol (http or https).

// Retrieves the URI of the current theme's directory $template_directory_uri = get_template_directory_uri();


This function retrieves a post object of a page based on its title. It returns the post object if a page with the specified title is found, otherwise, it returns null.

// Retrieves a page given its title
 $page = get_page_by_title('Page Title');


It’s used to remove a specific query parameter from a given URL.

$modified_url = remove_query_arg('param_to_remove', 'http://example.com/page?param1=value1&param_to_remove=value_to_remove');


 It’s used to retrieve the value of a variable in the WP_Query class.

$paged = get_query_var('paged');


It is used to retrieve information about the upload directory, such as its path and URL. This function returns an associative array containing various details about the upload directory.

// Retrieve upload directory information
 $upload_dir = wp_upload_dir();

// Display upload directory path and URL 
echo "Upload directory path: " . $upload_dir['path'] . "<br>"; 
echo "Upload directory URL: " . $upload_dir['url'] . "<br>";

Register a script

It is a function used to register a script with WordPress to be enqueued later.

// Register a script 
function register_custom_script() { 
wp_register_script('custom-script', get_template_directory_uri() . '/js/custom-script.js', array('jquery'), '1.0', true); 
add_action('wp_enqueue_scripts', 'register_custom_script');


It is used to enqueue JavaScript files into WordPress pages.

function enqueue_custom_script() { 
wp_enqueue_script('custom-script', get_template_directory_uri() . '/js/custom-script.js', array('jquery'), '1.0', true); } 
// Hook the function to the wp_enqueue_scripts action 
add_action('wp_enqueue_scripts', 'enqueue_custom_script');


It is used to enqueue CSS stylesheets into WordPress pages.

function enqueue_custom_style() {
       wp_enqueue_style('custom-style', get_template_directory_uri() . '/css/custom-style.css', array(), '1.0', 'all');
// Hook the function to the wp_enqueue_scripts action
add_action('wp_enqueue_scripts', 'enqueue_custom_style');

Winding Up Our WordPress Functions List

We hope this article helped you learn some useful tricks on commonly used WordPress functions list in custom theme development. Make sure to treat your functions with care and it will help your theme development.

If you need any help with custom theme development, our developers at ColorWhistle, a WordPress Development Company, we are always ready to help. If you decide to work with us, you’ll get an attractive responsive design with peak functionality.

Hire WordPress developers if you’re bored of the standard themes available in the market and looking out for something unique and exciting.

Here’s an infographic that sums up the entire post.

WordPress Functions List for Custom Theme Development - ColorWhistle

Looking for WordPress Development Services?

Seize and experience the transformative impact of WordPress solutions with ColorWhistle.

Wordpress Development advertisement - Colorwhistle
Sankarnarayan. R
About the Author - Sankarnarayan. R

The founder and mastermind behind ColorWhistle is Sankarnarayan, a professional with over fourteen years of experience and a passion for website design services and digital marketing services. At ColorWhistle, our team has a wide range of skills and expertise and we always put our clients’ satisfaction first. This is what sets us apart from the competition – an eye for detail and the best website development services from the start to the completion of your project.

Leave a Reply

Your email address will not be published. Required fields are marked *

Ready to get started?

Let’s craft your next digital story

Our Expertise Certifications - ColorWhistle
Go to top
Close Popup

Let's Talk

    Sure thing, leave us your details and one of our representatives will be happy to call you back!

    Eg: John Doe

    Eg: United States

    More the details, speeder the process :)