WordPress: How to pull content into home page sections?


#1

I am new to building a site within WordPress, I have a couple of books I am working through, but I was wondering, on my home page I have a few sections where I would like the text to be editable through WP Admin as opposed to being hard coded into place, what is the best way to set this up and pull in the header/content for each section? Should each section be a page?

I want to point out that these are not latest posts from the blog, these will be just written content that I would like to be editable through the WP-Admin if possible so that if I ever decide to change the text around I can edit it from WP. Basically there are 3 columns on the homepage that will each have about a paragraph in them along with a header, so if possible I’d like to learn how to set that up. I tried searching on Google but I wasn’t very successful.

Thank you!


#2

There are many options… but here are a few.

  1. You could create some sort of theme options panel, where your user would input the content of the different areas. Then on your front end you’d echo out the options with get_option=(“your-custom-option”)
  1. You could create a widgetized area where your users could put in whatever widgets they want from Appearance > Widgets.

http://divitodesign.com/blogging/multiple-sidebars-with-wordpress-widgets/

  1. You could have a theme options panel where users select or input the id of pages for the different areas. Then, on your front end you can use get_page() function to pull content of those pages.

http://codex.wordpress.org/Function_Reference/get_page


#3

i came across this: http://wordpress.org/extend/plugins/custom-field-template/

would that accomplish it?


#4

Custom fields are associated with individual posts and pages.

If you’re looking for a plugin to collect options from the user, you should check out Option Tee:


#5

i may have posted this in the wrong area, but I am not developing this to sell, this is my first time building a site into wordpress and it is a personal site of mine, on the home page i have 3 separate columns and in each column is a text header and about a paragraph of content, I don’t mind if the header is hard coded but it would be great if I could somehow have each column worth of text editable within the WP Admin. Is that possible to do at all?

Hopefully that better describes what I am trying to accomplish.

Thank you.


#6

I think the easiest thing would be to make each column a widgetized area. Then you can add widgets to those areas by going to Appearance > Widgets in your WP admin panel. If you’re just looking to add text, then drag a Text Widget in there.

There are tons of resources online for creating sidebars and widgets areas in WordPress. A quick Google search will give you a bunch of tutorials.

Basically it’s a matter of declaring your widget areas in functions.php of your theme. Then, just calling the three widget areas from your index.php (default homepage) file of your theme. Very basic WordPress stuff, totally doable.


#7

Another thing you could do is just create 3 pages in your WordPress admin panel, and then put this code in your index.php file for each column.

$page_id = 123; //ID of page from your WP admin panel
$page_data = get_page( $page_id ); 

echo $page_data->post_title; // Show page title
echo $page_data->post_content; // Show page content

#8
Another thing you could do is just create 3 pages in your WordPress admin panel, and then put this code in your index.php file for each column.
$page_id = 123; //ID of page from your WP admin panel
$page_data = get_page( $page_id ); 

echo $page_data->post_title; // Show page title
echo $page_data->post_content; // Show page content

Is there a way to keep those pages from showing up elsewhere on the site and only having them used to pull content from? Or is that done by default so long as you don’t like directly to them from somewhere on the site.


#9
Another thing you could do is just create 3 pages in your WordPress admin panel, and then put this code in your index.php file for each column.
$page_id = 123; //ID of page from your WP admin panel
$page_data = get_page( $page_id ); 

echo $page_data->post_title; // Show page title
echo $page_data->post_content; // Show page content

Is there a way to keep those pages from showing up elsewhere on the site and only having them used to pull content from? Or is that done by default so long as you don’t like directly to them from somewhere on the site.

Yeah, you just wouldn’t want link to them.


#10

Thanks so much for your help, I am new to building within WordPress and my book didn’t really cover anything like this unfortunately, so I appreciate the advice!


#11

No problem, Mike. Good luck with your site.


#12

I opted for Text Widgets, very easy to get working and it accomplishes exactly what I was looking for.