Have the following problem. In slightly customized version of twentyeleven I can’t make display the menu on the home page.
The home page shows latest posts. Menu works fine in all the pages (posts, pages, custom pages), but not on the home. But on the home page it shows links to the pages I have.
Header file is the same for all pages and contains:
<?php wp_nav_menu(); ?>
Adding $args with "menu_id"=>10 /* menu id here */ and/or "menu"=>"mymenu".
Changing home page type to some page makes menu work, using some different file (like single or page) for index.php doesn’t. Probably the reason is somewhere in settting. Have studied wp-admin and googled attentively.
Please, help me.
<?php
/**
* The Header for our theme.
*
* Displays all of the <head> section and everything up till <div id="main">
*
* @package WordPress
* @subpackage iwtech
* @since iwtech.ru theme 1.0
*/
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title><?php
global $page, $paged;
wp_title( '|', true, 'right' );
bloginfo( 'name' );
$site_description = get_bloginfo( 'description', 'display' );
if ( $site_description && ( is_home() || is_front_page() ) )
echo " | $site_description";
// Add a page number if necessary:
if ( $paged >= 2 || $page >= 2 )
echo ' | ' . sprintf( __( 'Page %s', 'iwtech' ), max( $paged, $page ) );
?>
</title>
<link rel="stylesheet" type="text/css" media="all" href="<?php bloginfo( 'template_directory' ); ?>/styles.css">
<link rel="stylesheet" type="text/css" media="all" href="<?php bloginfo( 'template_directory' ); ?>/n-corr.css">
<script type="text/JavaScript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<link rel="pingback" href="<?php bloginfo( 'pingback_url' ); ?>" >
<?php
if ( is_singular() && get_option( 'thread_comments' ) )
wp_enqueue_script( 'comment-reply' );
?>
<?php if (isset($_POST['s2_admin'])): ?>
<script type="text/javascript">
document.location.reload(true)
</script>
<?php endif; ?>
<?php
wp_head();
?>
</head>
<body <?php body_class(); ?>>
<div id="header">
<?php
wp_nav_menu(); ?>
</div>
</div>
<div id="wrapper">
GOTCHA!
function my_get_posts( $query ) {
if ( is_home() )
$query->set( 'post_type', array( 'post', 'albums', 'artists', 'clips', 'events' ) );
return $query;
}
add_filter( 'pre_get_posts', 'my_get_posts' );
This function in functions.php spoils the navmenu.
But I need something like this to have custom post types on the home page, not only posts.
What should I do?
So, at last I’ve found that this should be the code:
Hope, it will be useful for others 🙂