Version 1.0.0 · by themestick.com · Free, GPL v2 or later
Ideo is a fast, modular WordPress theme for blogs, magazines and news sites. You build the homepage yourself from ready-made modules, switch between light and dark mode, collect newsletter subscribers without any extra plugin, and keep your Core Web Vitals healthy.
This guide takes you from installation to a finished homepage. It is written for everyone, so you do not need any coding knowledge.
Contents
- Requirements
- Installation
- Quick start: your site in 10 minutes
- Menus
- Building the homepage
- Homepage modules in detail
- Customizer settings
- Dark mode
- Newsletter
- Recent Posts page
- Contact page
- Footer
- Post and page layout
- Images
- Performance
- Translation
- Developer notes
- Troubleshooting
- FAQ
- Changelog
- Support Ideo
- Credits and license
Requirements
- WordPress 6.0 or newer
- PHP 7.4 or newer
- Any standard hosting. A page cache plugin is recommended for the best speed.
Installation
- In your WordPress admin, go to Appearance > Themes > Add New > Upload Theme.
- Choose the theme zip file (
ideo.zip) and click Install Now. - Click Activate.
If you are installing on an existing site with many images, see Images to regenerate thumbnails once.
Quick start: your site in 10 minutes
Follow these steps in order. Each one is explained in more detail later in this guide.
- Set your logo and site name. Go to Appearance > Customize > Site Identity. Upload a logo, or leave it empty to show your site title as text.
- Create your menus. Go to Appearance > Menus, create a menu, and assign it to Main Menu. Create a second one for Footer Menu if you want it.
- Publish a few posts with featured images. Cards look best when every post has an image.
- Look at your homepage. On first activation, Ideo fills the homepage with a starter layout, so you see your posts right away. To change it, go to Appearance > Widgets, open the Homepage Modules area, and edit, reorder, add or delete modules.
- Pick your colors. In Appearance > Customize > Ideo Theme Options, choose your accent color and your default theme (Light, Dark or System).
- Set up the footer. In Appearance > Customize > Ideo Footer, choose your pages and edit the copyright line.
Your site is now live. Everything else is optional.
Tip: You do not need to set a static front page in Settings > Reading. Ideo builds the homepage itself.
Menus
Ideo has two menu locations:
| Location | Where it appears |
|---|---|
| Main Menu | The header menu and the side drawer (hamburger) menu |
| Footer Menu | The bottom line of the footer. It is shown when you have not chosen any Bottom bar (legal) pages (see Footer) |
To create a menu
- Go to Appearance > Menus.
- Name your menu and add pages, categories or custom links.
- Under Display location, tick Main Menu (or Footer Menu) and save.
Submenus. Drag an item slightly to the right under another item to create a submenu. In the side drawer, submenus open with an arrow button.
Mega menu. When a top-level item in the Main Menu is a category and it has posts, Ideo opens a mega menu panel for it with the category’s latest posts and up to 8 of the sub-items you placed under it. Other items open as regular dropdowns.
Side drawer. The hamburger button opens a drawer with your main menu, the 5 latest posts and your social icons. The latest posts load only when the drawer is opened, so they never slow down your page.
Building the homepage
The homepage is made of modules. You choose which modules to show and in which order.
- Go to Appearance > Widgets.
- Find the area called Homepage Modules.
- Add modules (see the list below) and drag them into the order you like. You can add the same module more than once, and each copy has its own settings.
If your Widgets screen shows blocks: click the + button and search for Ideo. All Ideo modules appear in the list.
Starter layout. The first time Ideo is activated on a site, the Homepage Modules area is filled automatically with 7 modules: Main Headline, Scrolling Posts, Category and Tag Strip, Headlines Board, Editor’s Picks, Post Feed and Sidebar and Newsletter Signup Strip. They show your latest posts, and a module with no posts to show simply stays hidden. Ideo never replaces modules you already have, and it does not add them again if you delete them.
If you delete everything, the homepage shows a hero section with your 3 latest posts, so it is never empty.
Choosing posts for a module. Most modules let you control which posts they show:
- Post IDs / links. Type one post ID or one post link per line. Posts you enter manually always come first, in the order you typed them. (To find a post ID, open the post in the editor and look at the address bar:
post=123.) - Category and Tag. Fill the remaining slots with posts from a category or tag.
- Auto-fill order. Choose Latest posts (default) or Random posts. Random picks from the newest 100 matching posts.
- If you select nothing at all, the module shows your latest posts automatically.
No repeated posts. By default, a post that appears in one module is not suggested again in the next modules on the same page. You can turn this off in Customize > Ideo Theme Options. Posts you pick by hand are never affected.
You decide what goes where
Most themes fill the homepage with “latest posts” and give you no say in where a post lands. In Ideo, every module has its own post selection, so you work like an editor:
| You want | Use |
|---|---|
| A specific post in a specific spot | Post IDs / links |
| A topic section | Category or Tag |
| Fresh content that updates itself | Latest posts |
| Variety on every rebuild | Random posts |
You can mix them inside one module. Hand-picked posts always come first, and the remaining slots are filled by category, tag, latest or random.
Recipe: a homepage that reshuffles itself
- Add your modules (for example Main Headline, Headlines Board, Scrolling Posts, Editor’s Picks, Post Feed).
- In each module, leave the post IDs empty and choose a Category or Tag, or leave all of them empty to use all posts.
- Set Auto-fill order to Random posts.
- Make sure Prevent the same post from repeating across modules is on (Customize > Ideo Theme Options). It is on by default.
Each module now picks different posts, no post appears twice, and the homepage is composed differently every time it is built.
Good to know:
- Page cache. The random choice is made on the server when the page is built. With a page cache plugin, the homepage stays the same until the cache is refreshed. Without a page cache, it changes on every visit.
- Keep the top steady. The hero image is the first thing visitors see and is preloaded for speed. A random hero cannot be preloaded in advance, so for the best mobile speed set the Main Headline module to Latest posts or pick its posts by hand, and let the modules below it shuffle.
- Hand-picked posts are never touched by the no-repeat rule, so a pinned post can still appear wherever you placed it.
Homepage modules in detail
Ideo: Main Headline (hero)
The big opening block: 1 large post and 2 side posts. Turn on Split the bottom-right card in two to show 4 posts (the 1st large, the 2nd at top right, the 3rd and 4th as two half cards at the bottom right). Use the Admin label field to name the module in the admin panel; it is not shown on your site.
Ideo: Scrolling Posts
A horizontal strip of post cards that visitors scroll with arrow buttons. Set your own section title.
Ideo: Category and Tag Strip
A filter strip of categories and tags. When there are many items it becomes a carousel automatically. You can choose the default order (Popular by post count, or A–Z), and visitors can switch the order with a toggle. Pick categories from the list, and type tags separated by commas. If you pick nothing, all categories and the most used tags are shown.
Ideo: News Ticker
A thin strip that scrolls headlines and announcements. It pauses when visitors hover over it or focus it with the keyboard. You can add your own lines (one per line); to turn a line into a link, add | https://your-link at the end. Choose Slow, Normal or Fast speed. If you do not add this module, no ticker is shown.
Ideo: Headlines Board
A news-style block that shows exactly 7 posts: 3 small items on the left, 1 large featured story, and a row of 3 cards below it. The posts are used in the order you enter them.
Ideo: Discover Strip
The “Browse by mood” strip with 6 colorful circles. Each circle can link to a category, a tag or a single post. You can change its color or upload a custom image, and edit the three lines of text on the left. Circles with nothing selected are not shown.
Ideo: Showcase and Sidebar
Left side: an optional large post and a grid of cards (1, 2 or 3 columns). Right side: a sticky sidebar where you can add up to 15 items. Press Add item and choose one of:
- Small Post: a thumbnail with title and category
- Card: an image card
- Banner: an image banner or an ad code
Reorder items with the arrow buttons and remove them with the cross. If the left side has nothing selected, it is hidden, so you can add a second copy of this module just to continue the sidebar.
Ideo: Editor’s Picks
One large featured post on the left and up to 2 compact cards on the right. Great for hand-picked content.
Ideo: Post Feed and Sidebar
A list of posts, one under another, with a sticky sidebar. You can show the excerpt under each title. If you do not add anything to the sidebar, the 5 most read posts are shown automatically. If you add items, you can still show Most read below them.
Ideo: Popular Posts
A short list with small images. By default it shows the posts with the most comments, excluding the post currently being viewed. You can also enter posts manually. This module works in the homepage and in the post and page sidebars.
Ideo: Banner and Ad Space
Shows one banner image (any size, it never breaks your layout) or an ad code such as Google AdSense. If you fill in an ad code, it is used instead of the image. You can set a minimum height so the ad space does not shift your page while loading.
Security note: Only users who are allowed to post unfiltered HTML (usually administrators) can save ad codes.
Ideo: Newsletter Signup Strip
An email signup strip. You can edit the small top label, the two title lines, the description, the field label and placeholder, the button text, the footnote and the background color. It uses the same newsletter system as the rest of the theme (see Newsletter).
Ideo: Company Pages
A list of pages you tick with checkboxes (About, Contact, Imprint, Privacy and so on). Pages are sorted by their Order value, then alphabetically. Use it in the footer areas (see Footer).
Customizer settings
Open Appearance > Customize. Ideo adds these sections:
| Section | What it controls |
|---|---|
| Support Ideo | A short note about supporting the project |
| Ideo Theme Options | Colors, default theme, newsletter target, social links, homepage behavior |
| Recent Posts Page | The all-posts page and its menu options |
| Ideo Header Button (Subscribe) | The button in the top menu |
| Ideo Newsletter Modal | The newsletter pop-up window |
| Ideo Post Page | Details shown on single posts |
| Ideo Contact Page | The details of the Contact template |
| Ideo Footer | Footer pages, texts and copyright line |
| Site Identity | Logo, site title and the extra Dark theme logo |
Ideo Theme Options
- Accent color: The main color used for highlights, buttons and labels.
- Hover color: The color used when hovering over menus, buttons, icons and links.
- Default theme: Light, Dark or System. It is used until a visitor makes their own choice with the moon/sun button. System follows the visitor’s device setting.
- Prevent the same post from repeating across modules: On by default.
- Show excerpt in the feed: Shows the post excerpt under titles in the Post Feed module.
- Newsletter form target URL: Optional. See Newsletter.
- Social media URLs: Facebook, X / Twitter, YouTube, Pinterest, Instagram, LinkedIn and Other (shown with a three-dot icon). Filled fields appear in the header, the side drawer and the footer, in the same order.
Ideo Header Button (Subscribe)
- Button text (default: Subscribe)
- Button link: A full URL (
https://...), a path on your site (/contact) or an in-page link (#newsletter). If you leave it empty, the newsletter window opens. - Open link in a new tab
Dark mode
- Visitors switch between light and dark with the moon/sun button next to the search button. Their choice is remembered in their browser.
- Without a saved choice, your Default theme setting is used (Light, Dark or System).
- To show a better logo on dark backgrounds, go to Customize > Site Identity and upload a Dark theme logo (for example a white version). If you do not upload one, your normal logo is automatically turned white on dark backgrounds.
- The theme is applied before the page first paints, and only colors change, so there is no flash and no layout shift.
Newsletter
Ideo includes a complete newsletter signup system. You do not need any plugin.
Option A: collect subscribers inside WordPress (default)
If the Newsletter form target URL is empty, submitted emails are stored in your site. A Newsletter Subscribers screen appears in the admin menu, where you can view, search and delete subscribers. Only administrators can see it, because email addresses are personal data.
The form is protected with a security token, email format validation, duplicate prevention and a hidden spam-trap field.
Option B: send subscribers to your email service
Paste the form address from Mailchimp or another service into Customize > Ideo Theme Options > Newsletter form target URL. The form then posts directly to that address.
Newsletter window (modal)
If the Button link of the header Subscribe button is empty, a newsletter window opens when it is clicked. In Customize > Ideo Newsletter Modal you can:
- Edit the window title and description.
- Choose to open it automatically after a visitor scrolls, with separate settings for the homepage and post pages (the percentage of the page scrolled).
- Choose how many days it stays closed after a visitor dismisses it.
Visitors who subscribe or close the window are not shown it again during that time.
SEO tip: Automatic pop-ups that cover the content on mobile can run into Google’s “intrusive interstitial” rules. If you use them, keep the scroll percentage high (for example 60% or more).
Recent Posts page
Ideo can add a page that lists all your posts, newest first, in the same design as the category pages. You do not need to create a page.
- Go to Customize > Recent Posts Page.
- Tick Enable the Recent Posts page. The page opens at
yoursite.com/recent-posts/. - Choose where it appears: Show in the header menu and Show in the side drawer (hamburger) menu. When on, it is added right after the Home item (first, if your menu has no Home item).
- Optional: change the Menu and page title (default: Recent Posts).
If you added a menu item that points to this page by hand, Ideo does not add a second one. When the option is off, the address shows a 404 page.
Contact page
- Go to Pages > Add New, create a page called, for example, “Contact”.
- In the page settings, choose the page template Contact.
- Publish.
- Go to Customize > Ideo Contact Page to set the email, address and phone you want to display, and the email address the form messages are sent to (if you leave it empty, your admin email is used).
Lines you leave empty are not shown. The form is sent without reloading the page and is protected with a security token and a hidden spam-trap field.
Footer
The footer is built from widget areas and Customizer settings.
Widget areas (Appearance > Widgets):
| Area | Use |
|---|---|
| Footer – Discover | The “Discover” column |
| Footer – Recent Posts | The second column. If empty, the latest 3 posts are shown automatically |
| Footer – Pages (Below Categories) | Below the Categories column. Use Ideo: Company Pages to pick About, Contact and so on |
| Footer – Bottom Bar (Legal Pages) | The right side of the bottom line. Use Ideo: Company Pages for Terms and Privacy |
| Footer – About | The logo/description column |
Customizer (Customize > Ideo Footer):
- Copyright line: Type
{year}for the current year and{site}for your site name. You can use simple HTML for links. Leave empty to hide the line. - Description under the logo: If empty, your site tagline is used.
- Newsletter box title
- Privacy Policy page and Terms of Use page: Used for the links in the newsletter consent text.
- Pages below categories: Pick pages from lists, with an optional title (default: Links).
- Bottom bar (legal) pages: Pick pages shown side by side at the bottom right.
Post and page layout
Single posts. In Customize > Ideo Post Page you can show or hide each of these under the post excerpt: the author (avatar and name), the publish date, the reading time, the comment count and the share buttons. A separate option shows or hides the text size buttons (A- / A+) above the post text. All are shown by default.
Author image and author page. Under Customize > Ideo Post Page you can upload an Author image. It is shown next to the author name on every post (leave it empty to use each author’s own avatar, for example from Gravatar). The author name and image link to the author’s archive page, which lists all of that author’s posts in the same design as the category pages. The address looks like yoursite.com/author/username/ and uses the author’s login name, so for public sites use an author account whose login name you are happy to show.
Sidebars. The Post Sidebar and Page Sidebar widget areas control the sidebar on posts and on pages. If you leave them empty, a Popular Posts module is shown automatically. If you add widgets, yours are shown instead.
Related posts are shown automatically under each post.
Comments can be shown or hidden with a toggle button, so long discussions do not push the rest of the page away.
Images
Ideo uses these image sizes:
| Name | Size | Used for |
|---|---|---|
| Hero | 1200 × 820 | Large hero and feature images |
| Hero (mobile) | 768 × 525 | Hero image on small screens |
| Card | 640 × 440 | Standard cards |
| Compact | 480 × 480 | Small square thumbnails |
| Post thumbnail | 940 × 650 | Single posts |
Recommendations
- Upload featured images that are at least 1200 px wide, in landscape orientation.
- Posts without a featured image show a dark placeholder so the design never breaks.
- If you install Ideo on a site that already has images, run a thumbnail regeneration plugin once so older images get the new sizes.
Performance
Ideo is built with speed and Core Web Vitals in mind.
- Local fonts. DM Sans, Playfair Display and Poppins are served from the theme itself with
font-display: swap. There are no Google Fonts requests, and the critical fonts are preloaded. - Light scripts. A single small script loads with
defer. No jQuery or other runtime library is needed. - Less clutter. Emoji scripts, unused head links and jQuery Migrate are removed from the front end.
- Fast first screen. The hero image is the main visual on your homepage, so it is loaded with high priority and preloaded. Other images use lazy loading with built-in width and height, which prevents layout shift.
- No database writes while browsing. “Most read” lists use comment counts instead of a view counter, so heavy traffic does not slow your database.
Tips for the best results
- Use a page cache plugin and a good host. Page speed depends on both.
- Compress your images before uploading.
- For the best mobile speed, set the hero module to Latest posts or pick its posts by hand. A random hero image cannot be preloaded in advance.
- If you use a page cache with the random auto-fill order, the random list stays fixed until the cache is refreshed.
Translation
Ideo is translation-ready. The theme’s original language is English and a Turkish (tr_TR) translation is included.
- Your site language is set in Settings > General > Site Language. Each user can also choose an admin language in Users > Profile.
- To add another language, open
languages/ideo.potin a free tool such as Poedit, translate it, and save the.poand.mofiles in the samelanguagesfolder, named for your locale (for examplede_DE.poandde_DE.mo). - Text you typed into widgets or the Customizer is saved as you wrote it and is not translated automatically.
Developer notes
You do not need any of this for normal use.
- Minified files.
style.min.cssandassets/js/main.min.jsare minified copies ofstyle.cssandassets/js/main.jsand are loaded when present. If you edit the readable file, either minify it again or delete the matching.minfile (the theme falls back to the readable one). Settingdefine( 'SCRIPT_DEBUG', true );inwp-config.phpalways loads the readable files. - Child theme. If you want to customize the templates, use a child theme so your changes survive updates.
- Filters
| Filter | Purpose |
|---|---|
ideo_recent_slug |
Change the address of the Recent Posts page (default recent-posts) |
ideo_random_pool_size |
Change how many newest posts the “Random” auto-fill chooses from (default 100) |
ideo_content_width |
Change the content width (default 940) |
ideo_contact_recipient |
Change the email address contact form messages are sent to |
Troubleshooting
My homepage only shows a hero.
That is what Ideo shows when the Homepage Modules area is empty. Add modules in Appearance > Widgets.
My homepage has empty gaps or fewer sections than I expected.
A module is hidden when it has no posts to show. With the “no repeated posts” option on, a small site can run out of posts for the later modules. Publish more posts, or turn the option off in Customize > Ideo Theme Options.
I can’t find the Ideo modules on the Widgets screen.
Click the + button and search for Ideo. Make sure you are inside the Homepage Modules area.
The Recent Posts page shows a 404 page.
Make sure Enable the Recent Posts page is ticked in the Customizer. If it still shows 404, go to Settings > Permalinks and click Save Changes once.
The Subscribers screen is empty.
If you entered a Newsletter form target URL, emails are sent to that service and not stored in WordPress. Clear the field to store them in WordPress.
My images look blurry or are cropped oddly.
Upload larger, landscape images (1200 px wide or more) and regenerate thumbnails once on existing sites.
The text on my site is in a different language than I expected.
Check Settings > General > Site Language and your user language in Users > Profile. Text you saved earlier in widgets stays in the language you typed it.
The Contact form says the message could not be sent.
Your hosting may block WordPress email. Install an SMTP plugin so your site can send mail reliably.
My changes don’t appear.
Clear your page cache and your browser cache.
FAQ
Is Ideo really free?
Yes. Ideo is free and licensed under GPL v2 or later.
Can I use it on client sites and commercial projects?
Yes, the GPL license allows personal and commercial use on as many sites as you like.
Does it work for both blogs and news sites?
Yes. Use the modules that fit you: a few cards for a personal blog, or a full homepage with ticker, headlines and sidebar for a news site.
Do I need a page builder or extra plugins?
No. The homepage builder, dark mode, newsletter system, contact form and mega menu are all built in.
Can I remove the credit in the footer?
You can edit or remove the copyright line in Customize > Ideo Footer.
Does it support WooCommerce?
No. Ideo is designed for blogs, magazines and news sites.
Where can I get help?
Visit themestick.com.
Changelog
1.0.0
- Initial release.
Support Ideo
Ideo is free, and building and maintaining it takes a lot of time. If it helps your site, please consider a small donation. It keeps the updates coming and means a lot. Thank you!
Credits and license
- Ideo is licensed under the GNU General Public License v2 or later. See the
LICENSEfile. - Fonts: DM Sans, Playfair Display and Poppins are licensed under the SIL Open Font License 1.1. The license text is in
assets/fonts/OFL.txt. - Design and development: © themestick.com. All rights reserved for the project name and branding.