Independent Publisher is a WordPress Theme. This README contains documentation for theme options and features, along with a list of known issues and frequently asked questions. It also contains a list of theme filters and action hooks that can be used to modify and hook into various areas of the theme, as well as a list of functions that can be overidden in a Child Theme.
The main site for this project, along with a demo of this theme, is located at http://independentpublisher.me.
- Theme Options
- Post Covers (Full-Width Featured Images)
- Post Subtitles
- Using a Child Theme to Customize Independent Publisher
- Known Issues
- Frequently Asked Questions
- Why is my Header Image not showing on Single posts?
- How do I get the small logo to show up in the top-left corner?
- Why is my Author Bio and picture at the top of my home page (or below a blog post) and not on the side?
- How do I add Social Media Buttons below the Logo?
- How do I make the JetPack Sharing Buttons look better?
- How do I make the Subscribe to Comments Reloaded Advanced Options look better?
- How do I make MailChimp Signup Forms look better?
- How do I add an Archive Page?
- How do I show a menu on the Single Post pages?
- How do I change the footer credits?
- How do I add my own Social Icons to the Social Menu?
- Color Schemes
- Theme Filters and Actions
- Functions you can Override in a Child Theme
Theme Options can be found in Dashboard → Appearance → Customize
.
The following colors can be changed via the Colors section:
- Text Color
- Background Color
- Link Color
- Title and Header Text Color
- Primary Meta Text Color
- Secondary Meta Text Color
- Single-Column Layout. Disabled by default. This option allows you to force the site layout to a single-column, regardless of the browser width.
- Post Excerpts. Disabled by default. If you enable Post Excerpts the post excerpt will be shown on Blog, Archive, and Search pages instead of the full post content. If no excerpt is set, one is generated using the first 55 words (see
the_excerpt()
). This setting only applies to Standard and Chat post formats. - Generate One-Sentence Excerpts. Disabled by default. When this option is enabled, a one-sentence excerpt will be generated for all posts that don't have an excerpt set. A "Continue Reading →" link is also placed below the generated excerpt. This setting only applies to Standard post formats and is only relevant when Post Excerpts are enabled.
- Always Show Full Content for First Post. When Post Excerpts are enabled, this option ensures that the very first post on the home page (or Posts Page, if different) shows the full post content instead of the excerpt.
- Show Widgets on Single Posts. Disabled by default. When this option is enabled, sidebar widgets will also be shown on Single Post pages.
- Show Post Date in Entry Meta. Disabled by default. When this option is enabled, the post date will be shown in the entry meta on Blog, Archive, and Search pages. It uses the date format specified in Dashboard → Settings → General → Date Format.
- Show Post Word Count in Entry Meta. Disabled by default. Shows the post word count in the entry meta on Blog, Archive, and Search pages. Only shows post word count for posts with the Standard Post Format.
- Show Nav Menu on Single Posts. Disabled by default. When this option is enabled, the primary navigation menu will also be shown on Single Post pages.
- Show Updated Date on Single Posts. Disabled by default. When this option is enabled, the post's last modified date will be shown underneath the published date. If you enable this, you can disable this on a per-post basis by adding a Custom Field to a post with the name
independent_publisher_hide_updated_date
and any value (yes
ortrue
will do). - Auto-Set Featured Image as Post Cover. Disabled by default. When this option is enabled, any Featured Image set for a post will automatically be used as a Post Cover (see Post Covers (Full-Width Featured Images)).
- Show Page Load Progress Bar. Disabled by default. When enabled, a progress bar will appear across the top of the page as the page is loading. The color of the progress bar is determined by the Link Color setting in Appearance → Customizer → Colors.
- Enable Multi-Author Mode. Disabled by default. Enabling Multi Author Mode changes the behavior of the site to better support multiple authors. The author name is mentioned in the entry meta and the authors name always links to the author page instead of the home page. The Header Image (Dashboard → Appearance → Customize → Header Image) is treated as the site logo and placed as a small icon in top left of the single pages to provide a way of getting back to the home page.
- Comments Call to Action. "Write a Comment" by default. This allows you to change the label that shows up on the 'Write a Comment' button and also changes the title of the comment form itself.
Post Covers are full-width featured images that stretch across the entire top of the page.
When setting a Featured Image as a Post Cover, it's important that you use an image that works for displaying full-width; 1200x600 is a good starting point. WordPress contains an Image Editor that you can use to crop images to the necessary dimensions.
To set a Featured Image as a Post Cover, first select the image from the Featured Image meta box and then press the Update button. When the page reloads you will see a checkbox that says "Use as post cover (full-width)". Check the box and then save the changes by pressing the Update button again.
You can add a post subtitle at the top of your post content like this:
<h2 class="subtitle">Do what you love and do it often.</h2>
The subtitle
class will style it like so:
If there are things you want to tweak in the Independent Publisher theme, a Child Theme is the recommended method for doing so. By using a Child Theme, you can make changes without worrying about those changes being overwritten by a future update to the parent theme.
After you've installed the Independent Publisher theme, download the Independent Publisher Child Theme and install and activate it. You can then start making changes to the Child Theme's files to override the parent theme. The Independent Publisher Child Theme comes with a few examples to help you get started.
For more information on using Child Themes, see the WordPress Codex.
- If you're using the W3 Total Cache plugin, you must disable the JS/CSS Minify option, as that doesn't play well with jQuery, which Independent Publisher makes use of. See also Issue 46.
On Single Post pages, the Author Image (the image of the post author) is shown. On non-Single pages like the Home Page, the Header Image (Dashboard → Appearance → Header) is shown. If you see something like the screenshot above on your Single Post pages, that means you haven't configured an Author Image.
WordPress uses Gravatar to link your email address with the image you want to show up when posting comments and publishing posts. If you don't already have a Gravatar account, signup using the same email address that you have configured in Dashboard → Users → Your Profile. After you upload and associate an image with the email address you have configured in WordPress, you should see the new image appear on your Single Post pages. (Sometimes it take a little while for Gravatar to update things, so if you don't see it immediately, give it some time.)
Note that if there is only one author on your site, you probably want to set the Header Image to be the same as the author Gravatar. (You also probably want the site Tagline, Dashboard → Settings → General → Tagline, to be the same as your bio in Dashboard → Users → Your Profile → Biographical Info.)
First you need to enable Multi-Author Mode in Dashboard → Appearance → Customizer → General Options . With Multi-Author Mode enabled, the theme Header Image (Dashboard → Appearance → Header Image) will be placed in the top-left corner on all Single pages.
Why is my Author Bio and picture at the top of my home page (or below a blog post) and not on the side?
Independent Publisher is a responsive theme, which fits the size of your browser depending on the size of your screen. If you are on a computer, making your browser window wider will automatically move the Author Bio and picture to the side instead of at the top on your homepage or at the bottom of a blog post.
First you need to go to Dashboard → Appearance → Menu. Once there, create a new menu called Social. After that, add your social media links to it. For example:
After you're done, below in Theme Locations (located in the Menu Settings tab), choose Social.
If you clear the JetPack Sharing Buttons "Sharing label" field so that it's empty, Independent Publisher will force the sharing buttons to float right and will remove the right padding so that the buttons look nicer.
Go to Settings -> Subscribe to Comments -> Comment Form -> Custom HTML and wrap the contents in a paragraph tag with the comment-form-subscriptions
class. For example:
<p class='comment-form-subscriptions'><label for='subscribe-reloaded'>[checkbox_label]</label> [checkbox_field]</p>
Note that double-quotes are not allowed in that field and that you must use single quotes, i.e., class='comment-form-subscriptions'
, NOT class="comment-form-subscriptions"
.
MailChimp includes its own CSS in the HTML embed code that, by default, doesn't look quite right with Independent Publisher. To fix the MailChimp CSS, you can add the following to the style.css
file of a Child Theme (or if you're using JetPack, simply go to Appearance → Edit CSS and insert the following):
#mc_embed_signup .button {
padding-left: 15px !important;
padding-right: 15px !important;
padding-top: 2px !important;
padding-bottom: 3px !important;
line-height: 1.45 !important;
height: 36px !important;
font-weight: normal !important;
width: 100% !important;
}
.entry-content #mc_embed_signup h2 {
font-size: 1.8em !important;
}
.entry-content #mc_embed_signup input.email {
width: 100% !important;
}
.entry-content #mc_embed_signup label {
padding-bottom: 0 !important;
}
.entry-content #mc_embed_signup .mc-field-group {
width: 99% !important;
}
.widget #mc_embed_signup form {
text-align: center !important;
font-family: "Myriad Pro", "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", Geneva, Verdana, sans-serif;
}
.widget #mc_embed_signup input.email {
width: 100% !important;
text-align: center;
}
.widget #mc_embed_signup input.button {
width: 100% !important;
}
The Independent Publisher theme includes a Page Template called "Archive Page" that you can use to create an Archive page. Simply create a new Page (Pages -> Add New), give it a title (e.g., "Archives"), then select the "Archive Page" template from the Template section in the Page Attributes meta box:
By default, the Archives Page Template will load the following:
- Recent Posts
- Most Used Categories
- Yearly Archives
- Monthly Archives
- Search
- Explore by Tag
If you'd like to use your own custom set of widgets, you can simply add widgets to the Archive Page widget area (Appearance -> Widgets):
To get the default set of widgets back, simply remove all widgets from the Archive Page widget area.
By default, the main navigation menu (Primary Menu) only appears on non-Single pages. This is meant to keep the Single Post pages clean and simple. You can change this default behavior by enabling "Show Nav Menu on Single Posts" in Appearance -> Customize -> General Options.
If you want your Single Posts menu to be differnet than your Primary Navigation menu, you can select a different menu for Single Posts in Apperanace -> Menus -> Manage Locations -> Single Posts Menu.
You can change the footer credits by overriding the function that displays them (independent_publisher_footer_credits()
) and making that function return something else (or return blank to remove footer content entirely).
Before making such a change, you'll want make sure you're using a Child Theme so that future theme updates don't override your modifications. The functions.php
file that comes with the Independent Publisher Child Theme includes an example for overriding the footer credits function.
The Social Menu works by detecting the social media URL you're using and matching that URL to an icon. If you want to add a new social media icon to use on the Social Menu, you can do so by adding the following block of code to your child theme's style.css
file:
#menu-social li a[href*="example.com"]::before {
content: url('http://example.com/logo.png');
opacity: 0.5;
}
#menu-social li a[href*="example.com"]:hover::before {
opacity: 1;
}
You'll simply need to replace example.com
and http://example.com/logo.png
in the code with the domain for the new social media site and the URL to the logo you want to appear on the social menu.
You can modify the color scheme in Appearance → Customize → Colors. Here are a few recommended color schemes:
- Set Link Color to
#26759e
- Set Text color to
#f7f7f7
- Set Background Color to
#000000
- Set Link Color to
#1a609e
- Set Title and Header Text Color to
#d1d1d1
- Set Primary Meta Text Color to
#8e8e8e
- Set Secondary Meta Text color to
#666666
WordPress Filters and Actions allow you to modify the theme without actually modifying any theme code. To use any of these filters or actions, start by creating a Child Theme and then adding the relevant function to the functions.php
file. See also add_filter() and add_action() on the WordPress Codex.
independent_publisher_taxonomy_category_stats
- Allows you to override the Category Archive stats that are appended to the category archive description.independent_publisher_taxonomy_tag_stats
- Allows you to override the Tag Archive stats that are appended to the Tag Archive description.independent_publisher_entry_meta_separator
- Allows you to override the default separator character that is used in the Entry Title Meta and Entry Post Meta (default is '|').independent_publisher_entry_meta_category_prefix
- Allows you to override the default Category prefix (default is 'in'; e.g., " in ").independent_publisher_entry_meta_author_prefix
- Allows you to override the default Author prefix (default is 'by'; e.g., "by ").independent_publisher_search_stats
- Allows you to override the Search stats shown on Search pages.independent_publisher_tag_list_title
- Allows you to override the default Tag List Title of 'Related Content by Tag' at the bottom of Single posts.independent_publisher_pingslist_title
- Allows you to override the default Pings List title of 'Readers who Shared This' at the bottom of Single posts.independent_publisher_pingslist_end_note
- Allows you to override the default Pings List end note of 'Thank you!' at the bottom of Single posts.
independent_publisher_entry_meta_top
- Located at the top of post Entry Meta, just before the 'Write a Comment' button.independent_publisher_before_bottom_comment_button
- Located just before the second 'Write a Comment' button that shows up underneath post comments when there are more than 4 comments visible.independent_publisher_before_post_bottom_tag_list
- Located before the bottom 'Related Content by Tag' tag list on Single posts.
independent_publisher_content_nav()
- Display navigation to next/previous pages when applicableindependent_publisher_comment()
- Template for comments and pingbacks.independent_publisher_pings()
- Creates a custom query for pingbacks/trackbacks (i.e., 'pings') and displays them. Using this custom query instead ofwp_list_comments()
allows us to always show all pings, even when we're showing paginated comments.independent_publisher_posted_author()
- Prints HTML with meta information for the current author.independent_publisher_posted_author_cats()
- Prints HTML with meta information for the current author and post categories. Only prints author name when Multi-Author Mode is enabled.independent_publisher_posted_on_date()
- Prints HTML with meta information for the current post-date/time.independent_publisher_post_updated_date()
- Prints HTML with meta information for the current post's last updated date/time.independent_publisher_continue_reading_link()
- Prints HTML with Continue Reading linkindependent_publisher_continue_reading_text()
- Returns Continue Reading text for usage inthe_content()
independent_publisher_categorized_blog()
- Returns true if a blog has more than 1 categoryindependent_publisher_wp_title()
- Filterswp_title
to print a neat<title>
tag based on what is being viewed.independent_publisher_post_categories()
- Returns categories for current post with separator. Optionally returns only a single category.independent_publisher_site_info()
- Outputs site info for display on non-single pagesindependent_publisher_posted_author_card()
- Outputs post author info for display on single postsindependent_publisher_posted_author_bottom_card()
- Outputs post author info for display on bottom of single postsindependent_publisher_get_post_word_count()
- Returns number of words in a post formatted for display in themeindependent_publisher_full_width_featured_image()
- Show Full Width Featured Image on single pages if post has full width featured image selectedindependent_publisher_search_stats()
- Returns stats for search resultsindependent_publisher_taxonomy_archive_stats()
- Returns taxonomy archive stats and current page info for use in taxonomy archive descriptionsindependent_publisher_date_archive_description()
- Returns the Date Archive descriptionindependent_publisher_min_comments_bottom_comment_button()
- Returns the minimum number of comments that must exist for the bottom 'Write a Comment' button to appearindependent_publisher_min_comments_comment_title()
- Returns the minimum number of comments that must exist for the comments title to appearindependent_publisher_hide_comments()
- Determines if the comments and comment form should be hidden altogether. This differs from disabling the comments by also hiding the "Comments are closed." message and allows for easily overriding this function in a Child Theme.independent_publisher_footer_credits()
- Echoes the theme footer credits. Overriding this function in a Child Theme also applies the changes to JetPack's Infinite Scroll footer.
independent_publisher_setup()
- Sets up theme defaults and registers support for various WordPress features.independent_publisher_stylesheet()
- Enqueue the main stylesheet.independent_publisher_wp_fullscreen_title_editor_style()
- Enqueue the stylesheet for styling the full-screen visual editor post title so that it closely matches the front-end theme design. To disable, simply override this function in a Child Theme and return nothing.independent_publisher_author_comment_reply_link()
- Change the comment reply link to use 'Reply to [Author First Name]'independent_publisher_comment_form_args()
- Arguments forcomment_form()
independent_publisher_remove_textarea()
- Move the comment form textarea above the comment fieldsindependent_publisher_add_textarea()
- Recreates the comment form textarea HTML for reinclusion in comment formindependent_publisher_enhanced_comment_form()
- Enqueue enhanced comment form JavaScriptindependent_publisher_site_logo_icon_js()
- Enqueue Site Logo Icon JavaScript if Multi-Author Site enabledindependent_publisher_is_multi_author_mode()
- Returns true if Multi-Author Mode is enabledindependent_publisher_single_author_link()
- Returns the author link; defaults to home page when not using multi-author modeindependent_publisher_post_word_count()
- Returns number of words in a postindependent_publisher_first_sentence_excerpt()
- Return the post excerpt. If no excerpt set, generates an excerpt using the first sentence.independent_publisher_clean_content()
- Cleans the content for display as a Quote or Aside by stripping anything that might screw up formattingindependent_publisher_maybe_linkify_the_content()
- Returns the post content for Asides and Quotes with the content linked to the permalink, for display on non-Single pagesindependent_publisher_maybe_linkify_the_excerpt()
- Returns the excerpt with the excerpt linked to the permalink, for display on non-Single pagesindependent_publisher_html_tag_schema()
- Returns the proper schema typeindependent_publisher_show_page_load_progress_bar()
- Echos the HTML and JavScript necessary to enable page load progress bar