WordPress.org

Ready to get started?Download WordPress

Forums

[resolved] [closed] one page template > list all pages' content > how? (9 posts)

  1. zartgesotten
    Member
    Posted 2 years ago #

    Hi everyone,
    I have come across a problem.

    I want to create a one-page Theme with smooth scrolling like this one
    Retro Theme

    For that reason I want to list the full content of all my pages on one page(template). Every page will have its container with a unique name derived from its ID.

    I know this could easily been done by using posts instead of pages but I want to use the posts for a different thing.

    Is there a way to do this?
    I found this but it produces empty output:

    ?php query_posts('post_type=page'); ?>
    <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
    <?php if ($post->post_parent != '') {
     the_title();
    the_content();
    } endwhile; endif; ?>

    Thanks for any suggestions!

  2. zartgesotten
    Member
    Posted 2 years ago #

    As always I found the solution after posting this ;-)
    Here it is in case someone else can use it:

    <?php $pages = get_pages();
    foreach ($pages as $page_data) {
        $content = apply_filters('the_content', $page_data->post_content);
        $title = $page_data->post_title;
    	$slug = $page_data->post_name;
       	echo "<div class='$slug'>";
    	echo "<h2>$title</h2>";
    	echo $content;
    	echo "</div>";
    }
    ?>

    Thanks for listening ;-)

  3. iamsalmanafzal
    Member
    Posted 1 year ago #

    Hi , i am using your code - i want to know - if i want to add main navigation (menu) with every page content - so how can i add main navigation with every page content

    For example : we have Home , About us, Contact, so i want main navigation on the top of every page heading .

    Is that posible?

  4. zartgesotten
    Member
    Posted 1 year ago #

    Sure you can do that.
    I would probably go for ONE fixed menu at the top of the page but if you want the menu on all pages, go for this (full template file for an index.php. Get rid of header and footer if you already have them in your files)

    <?php
    get_header(); // Loads the header.php template. 
    
    	//set some variables
    	//get all the pages on your site
    	$pages = get_pages();
    	//get the pages used in the menu. See codex for more options http://codex.wordpress.org/Function_Reference/get_pages
    	$pagemenu = get_pages( array( 'sort_column' => 'menu_order', 'sort_order' => 'asc', 'parent'=> '0') ); 
    
    		foreach ($pages as $page_data) {
    		    $content = apply_filters('the_content', $page_data->post_content);
    		    $title = $page_data->post_title;
    			$slug = $page_data->post_name;
    			$pageid=$page_data->ID;
    
    				//Put a container around every page's content
    			   	echo "<div class='$slug' id='$pageid'><a name='$slug'></a>";
    
    					   	//Menu goes on top of page
    					echo"<ul id='nav' class='nav menu'>";
    							foreach ($pagemenu as $pagemenu_data) {
    							 	$caption = $pagemenu_data->post_title;
    								$pageslug = $pagemenu_data->post_name;
    						//Start Page Menu
    						echo "<li class='$pageslug'><a href='#$pageslug'>$caption</a></li>\n";
    						}
    					echo"</ul>";
    
    				//Heading and Content
    				echo "<h2>$title</h2>";
    				echo $content;
    				echo "</div>";
    		}
    
    get_footer(); // Loads the footer.php template. ?>
  5. iamsalmanafzal
    Member
    Posted 1 year ago #

    Thanks for this Great CODE :)

    ---

    I am facing another problem - it is like i am applying a template to one of my page - but it is not working -

    What should i do ?

  6. zartgesotten
    Member
    Posted 1 year ago #

    Welcome!
    I don't know if templates would work in that scenario. Because templates usually have own headers and footers and stuff. And in this case all pages are treated like posts and output on a single page. So depending on what you want to do and what the template is supposed to do, I'd rather style special pages with css as all the containers have their own ID.

  7. iamsalmanafzal
    Member
    Posted 1 year ago #

    Actually what i am have - in one of the page i have post type showing in page - and client do not want that to b hardcode in content editor - and want to edited each and every thing

    so it is possible with template that - i will assign a template to that page and wil code that template with Post types -

  8. Maneep
    Member
    Posted 1 year ago #

    Wearitwell

    Can You please help me?? I want to know that how can sort the pages with this code. Like if i want to make home page first then about page then services on one page . Then how can i sort them using following code

    Thanks in Advance :)

    <?php $pages = get_pages();
    foreach ($pages as $page_data) {
    $content = apply_filters('the_content', $page_data->post_content);
    $title = $page_data->post_title;
    $slug = $page_data->post_name;
    echo "<div class='$slug'>";
    echo "<h2>$title</h2>";
    echo $content;
    echo "</div>";
    }
    ?>

  9. Andrew
    Forum Moderator
    Posted 1 year ago #

    Maneep, this thread is marked resolved.
    There is no obligation for the original poster to help you regarding this issue.

    If you require assistance, create your own thread on the issue and if necessary link this thread.

Topic Closed

This topic has been closed to new replies.

About this Topic