I am refactoring some code in the header.php:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" <?php language_attributes(); ?>>

<head profile="http://gmpg.org/xfn/11">
<meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php bloginfo('charset'); ?>" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">

<title><?php bloginfo('name'); ?> <?php if ( is_single() ) { ?> &raquo; Blog Archive <?php } ?> <?php wp_title(); ?></title>

<meta name="generator" content="WordPress <?php bloginfo('version'); ?>" /> <!-- leave this for stats -->
<?php wp_head(); ?>
<link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>" type="text/css" media="screen" />
<link rel="alternate" type="application/rss+xml" title="<?php bloginfo('name'); ?> RSS Feed" href="<?php bloginfo('rss2_url'); ?>" />
<link rel="pingback" href="<?php bloginfo('pingback_url'); ?>" />

<body <?php body_class(); ?>>

<div id="wrap">
         <div id="header">
         <a href="http://threegreenbirds.org" class="hlink"><h1><?php bloginfo('name'); ?></h1><div id="tagline"><?php bloginfo('description'); ?></div>
         <!--Main Navigation-->
         <div id="mainNav">
         <li><a href="http://threegreenbirds.org">Home</a></li>
         <?php /* EDIT THE MENU BY CHANGING ONLY THE NUMBERS AFTER INCLUDE*/ wp_list_pages('sort_column=menu_order&include=8,14,10,12,16,6&title_li='); ?>

          <div id="search">
         <form method="get" id="searchform" action="<?php bloginfo('url'); ?>/">
<input type="text" value="<?php the_search_query(); ?>" name="s" id="s" class="searchbox" size="20" />
<input type="submit" id="searchsubmit" value="Search" class="searchbutton" />

         <!--end main navigation-->


One of the requirements is for me to change this to a mobile responsive website which I started to in the file above with this piece of code:

<meta name="viewport" content="width=device-width, initial-scale=1.0">

I also added the body_class function and so where I have a question is when I looked at the form action, I see this:

action="<?php bloginfo('url'); ?>/"

I have never seen anything like that before, but keep in mind I don't have 10+ years doing this. Typically speaking this is how I would develop the form action:

action="<?php esc_url(home_url('/')); ?>"

So my question being, should I change it or is there a legitimate best practice being implemented here that I am not familiar with? I understand that the best practice is to go with esc_url() function.


Generally, they will return the same URL, as bloginfo( 'url' ) will call home_url internally with any arguments, and the default first argument ($path) of home_url is the empty string. However, bloginfo( 'url' ) will apply an additional filter to it, namely the home_url filter.

Common pratice is to use home_url, indeed with esc_url (even though home_url() returning an invalid URL will yield bigger problems anyway :-)). In WordPress core, bloginfo( 'url' ) is practically never used anymore. Instead, home_url( '/' ) is used.

So, summarizing: use esc_url( home_url( '/' ) ).


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.