Wordpress

Fix the “PHP Fatal error: Call to undefined function get_header()” error in WordPress

Recently, I found out that there is a huge error log file (error_log) in my current theme folder. Upon checking the whole log file contains the following error.

[26-Apr-2014 16:01:14 UTC] PHP Fatal error: Call to undefined function get_header() in /home/user/public_html/www.website.com/wp-content/themes/mytheme/index.php on line 1
[26-Apr-2014 16:08:00 UTC] PHP Fatal error: Call to undefined function get_header() in /home/user/public_html/www.website.com/wp-content/themes/mytheme/index.php on line 1

Upon checking & try to reproduce the error, I find out that the error was generated each time when a visitor tries to access theme’s index.php file directly.

I’m not sure if there will be a security issue, but the error will expose your cPanel username if you are using it.

There are 2 methods on how to fix this problem.

1. Redirect it to main page. To do it, edit “index.php” in the root of theme folder & replace

<?php
get_header();
?>

with

<?php
if (defined('ABSPATH')) {
get_header();

}else{

header("Location: http://" . $_SERVER['HTTP_HOST'] . "");
exit;
}; ?>

2. Disable direct access of theme’s index file. To do it, edit “index.php” in the root of theme folder & replace

<?php
get_header();
?>

with

<?php
if (! defined('ABSPATH'))
die('Access Denied.');

get_header();
?>

Remove Update Notification for WordPress Plugins

Sometimes, you may have a reason not to update certain plugins. Maybe the plugin was heavily customized or the newer version asks you to pay to continue using it (in my case this is the reason).

Because of that, you may not want to received notification to update the plugins. You may accidentally update the plugins if the notification was turned off.

To remove update notification. Add the following code in main plugins php file.

add_filter('site_transient_update_plugins', 'remove_update_nag');
function remove_update_nag($value) {
 if ( isset( $value ) && is_object( $value ) )
 unset( $value->response[plugin_basename(__FILE__)] );
 return $value;
}