PHP include works on Wordpress's index.php file and not in the header.php file?

12345

New Member
I wanted to include localization.php in header.php but it only works when I include it in index.php (see below). I thought that including it in header.php would make localization.php work in every file. (localization.php have functions that include a lang file in order to display a language).Any suggestions??It works like this:index.php\[code\] * * This is the most generic template file in a WordPress theme * and one of the two required files for a theme (the other being style.css). * It is used to display a page when nothing more specific matches a query. * E.g., it puts together the home page when no home.php file exists. * Learn more: http://codex.wordpress.org/Template_Hierarchy * * @package WordPress * @subpackage Starkers * @since Starkers 3.0 */$body = "home";include_once 'localization.php';get_header(); ?><div id="content"> <div class="container"> <div id="mainbar"> <?php /* Run the loop to output the posts. * If you want to overload this in a child theme then include a file * called loop-index.php and that will be used instead. */ get_template_part( 'loop', 'index' ); ?> <p><?php echo l('test'); ?></p> </div> <?php get_sidebar(); ?> </div><!-- .container --></div><!-- #main-content --><?php get_footer(); ?>\[/code\]header.php\[code\]<?php/** * The Header for our theme. * * Displays all of the <head> section and everything up till <div id="main"> * * @package WordPress * @subpackage Starkers * @since Starkers 3.0 */?><!DOCTYPE html><html <?php language_attributes(); ?>><head><meta charset="<?php bloginfo( 'charset' ); ?>" /><title><?php /* * Print the <title> tag based on what is being viewed. * We filter the output of wp_title() a bit -- see * twentyten_filter_wp_title() in functions.php. */ wp_title( '|', true, 'right' ); ?></title><link rel="profile" href="http://gmpg.org/xfn/11" /><link rel="stylesheet" type="text/css" media="all" href="http://stackoverflow.com/questions/3605576/<?php bloginfo('stylesheet_url' ); ?>" /><link rel="pingback" href="http://stackoverflow.com/questions/3605576/<?php bloginfo('pingback_url' ); ?>" /><?php /* We add some JavaScript to pages with the comment form * to support sites with threaded comments (when in use). */ if ( is_singular() && get_option( 'thread_comments' ) ) wp_enqueue_script( 'comment-reply' ); /* Always have wp_head() just before the closing </head> * tag of your theme, or you will break many plugins, which * generally use this hook to add elements to <head> such * as styles, scripts, and meta tags. */ wp_head();?></head><!--<body <?php body_class(); ?>>--><body id="<?php echo $body; ?>"><div id="header"> <div class="container"> <div id="header-top"> <h1> <a href="http://stackoverflow.com/questions/3605576/<?php echo home_url('/' ); ?>" title="<?php echo esc_attr( get_bloginfo( 'name', 'display' ) ); ?>" rel="home"><?php bloginfo( 'name' ); ?></a> </h1> <!--<p><?php bloginfo( 'description' ); ?></p>--> <div id="access" role="navigation"> <?php /* Allow screen readers / text browsers to skip the navigation menu and get right to the good stuff */ ?> <!--<a href="http://stackoverflow.com/questions/3605576/#content" title="<?php esc_attr_e( 'Skip to content', 'twentyten' ); ?>"><?php _e( 'Skip to content', 'twentyten' ); ?></a>--> <?php /* Our navigation menu. If one isn't filled out, wp_nav_menu falls back to wp_page_menu. The menu assiged to the primary position is the one used. If none is assigned, the menu with the lowest ID is used. */ ?> <?php wp_nav_menu( array( 'container_class' => 'menu-header', 'theme_location' => 'primary' ) ); ?> </div><!-- #access --> <ul id="lang"> <li <?php if($lang_file=='lang.en.php') {echo 'class="current"';} ?>><a href="http://stackoverflow.com/questions/3605576/index.php?lang=en">ENGLISH</a></li> <li <?php if($lang_file=='lang.zh-tw.php') {echo 'class="current"';} ?>><a href="http://stackoverflow.com/questions/3605576/index.php?lang=zh-tw">CHINESE</a></li> </ul> </div> </div><!-- .container --></div><!-- #header -->\[/code\]localization.php\[code\]<?phpsession_start();header('Cache-control: private'); // IE 6 FIXif(isSet($_GET['lang'])) { $lang = $_GET['lang']; // register the session and set the cookie $_SESSION['lang'] = $lang; setcookie("lang", $lang, time() + (3600 * 24 * 30));}else if(isSet($_SESSION['lang'])) { $lang = $_SESSION['lang'];}else if(isSet($_COOKIE['lang'])) { $lang = $_COOKIE['lang'];}else { $lang = 'en';}// use appropiate lang.xx.php file according to the value of the $langswitch ($lang) {case 'en': $lang_file = 'lang.en.php'; break;case 'es': $lang_file = 'lang.es.php'; break;case 'zh-tw': $lang_file = 'lang.zh-tw.php'; break;case 'zh-cn': $lang_file = 'lang.zh-cn.php'; break;default: $lang_file = 'lang.en.php';}//translation helper functionfunction l($localization) { global $lang; return $lang[$localization];} include_once 'languages/'.$lang_file;?>\[/code\](I think localization.php is self-explanatory)it doesn't work like this:header.php:\[code\]<?php/** * The Header for our theme. * * Displays all of the <head> section and everything up till <div id="main"> * * @package WordPress * @subpackage Starkers * @since Starkers 3.0 */include_once 'localization.php';?><!DOCTYPE html><html <?php language_attributes(); ?>><head><meta charset="<?php bloginfo( 'charset' ); ?>" /><title><?php /* * Print the <title> tag based on what is being viewed. * We filter the output of wp_title() a bit -- see * twentyten_filter_wp_title() in functions.php. */ wp_title( '|', true, 'right' ); ?></title><link rel="profile" href="http://gmpg.org/xfn/11" /><link rel="stylesheet" type="text/css" media="all" href="http://stackoverflow.com/questions/3605576/<?php bloginfo('stylesheet_url' ); ?>" /><link rel="pingback" href="http://stackoverflow.com/questions/3605576/<?php bloginfo('pingback_url' ); ?>" /><?php /* We add some JavaScript to pages with the comment form * to support sites with threaded comments (when in use). */ if ( is_singular() && get_option( 'thread_comments' ) ) wp_enqueue_script( 'comment-reply' ); /* Always have wp_head() just before the closing </head> * tag of your theme, or you will break many plugins, which * generally use this hook to add elements to <head> such * as styles, scripts, and meta tags. */ wp_head();?></head><!--<body <?php body_class(); ?>>--><body id="<?php echo $body; ?>"><div id="header"> <div class="container"> <div id="header-top"> <h1> <a href="http://stackoverflow.com/questions/3605576/<?php echo home_url('/' ); ?>" title="<?php echo esc_attr( get_bloginfo( 'name', 'display' ) ); ?>" rel="home"><?php bloginfo( 'name' ); ?></a> </h1> <!--<p><?php bloginfo( 'description' ); ?></p>--> <div id="access" role="navigation"> <?php /* Allow screen readers / text browsers to skip the navigation menu and get right to the good stuff */ ?> <!--<a href="http://stackoverflow.com/questions/3605576/#content" title="<?php esc_attr_e( 'Skip to content', 'twentyten' ); ?>"><?php _e( 'Skip to content', 'twentyten' ); ?></a>--> <?php /* Our navigation menu. If one isn't filled out, wp_nav_menu falls back to wp_page_menu. The menu assiged to the primary position is the one used. If none is assigned, the menu with the lowest ID is used. */ ?> <?php wp_nav_menu( array( 'container_class' => 'menu-header', 'theme_location' => 'primary' ) ); ?> </div><!-- #access --> <ul id="lang"> <li <?php if($lang_file=='lang.en.php') {echo 'class="current"';} ?>><a href="http://stackoverflow.com/questions/3605576/index.php?lang=en">ENGLISH</a></li> <li <?php if($lang_file=='lang.zh-tw.php') {echo 'class="current"';} ?>><a href="http://stackoverflow.com/questions/3605576/index.php?lang=zh-tw">CHINESE</a></li> </ul> </div> </div><!-- .container --></div><!-- #header -->\[/code\]
 
Back
Top