Show Custom Site Title or Tagline per Page

to have a custom site title and/or tagline on different pages (static pages only) of your WordPress site;
one possible approach:

* customize different Site Title 
* and Tagline per (static) page

// create meta boxe for 'Custom Site Title' field below page editor

add_action( 'admin_menu', 'custom_site_title' );
add_action( 'save_post', 'save_custom_site_title' );

function custom_site_title() {
	add_meta_box( 'custom_site_title', 'Custom Site Title for this page <small>(if left empty, the general Site Title will be used)</small>', 'custom_site_title_input_function', 'page', 'normal', 'high' );

function custom_site_title_input_function() {
	global $post;
	echo '<input type="hidden" name="custom_site_title_input_hidden" id="custom_site_title_input_hidden" value="'.wp_create_nonce( 'custom_site_title-nonce' ).'" />';
	echo '<input type="text" name="custom_site_title_input" id="custom_site_title_input" style="width:100%;" value="'.get_post_meta( $post->ID, '_custom_site_title', true ).'" />';

function save_custom_site_title( $post_id ) {
	if (isset( $_POST['custom_site_title_input_hidden'] )) if (!wp_verify_nonce($_POST['custom_site_title_input_hidden'], 'custom_site_title-nonce')) return $post_id;
	if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return $post_id;
	if (isset( $_POST['custom_site_title'] )) {
		$customSiteTitle = $_POST['custom_site_title_input'];
		update_post_meta( $post_id, '_custom_site_title', $customSiteTitle );

// create meta boxe for 'Custom Tagline' field below page editor

add_action( 'admin_menu', 'custom_site_tagline' );
add_action( 'save_post', 'save_custom_site_tagline' );

function custom_site_tagline() {
	add_meta_box( 'custom_site_tagline', 'Custom Tagline for this page <small>(if left empty, the general Tagline will be used)</small>', 'custom_site_tagline_input_function', 'page', 'normal', 'high' );

function custom_site_tagline_input_function() {
	global $post;
	echo '<input type="hidden" name="custom_site_tagline_input_hidden" id="custom_site_tagline_input_hidden" value="'.wp_create_nonce( 'custom_site_tagline-nonce' ).'" />';
	echo '<input type="text" name="custom_site_tagline_input" id="custom_site_tagline_input" style="width:100%;" value="'.get_post_meta( $post->ID, '_custom_site_tagline', true ).'" />';

function save_custom_site_tagline( $post_id ) {
	if (isset( $_POST['custom_site_tagline_input_hidden'] )) if (!wp_verify_nonce($_POST['custom_site_tagline_input_hidden'], 'custom_site_tagline-nonce')) return $post_id;
	if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return $post_id;
	if (isset( $_POST['custom_site_tagline'] )) {
		$customSiteTagline = $_POST['custom_site_tagline_input'];
		update_post_meta( $post_id, '_custom_site_tagline', $customSiteTagline );

//preparing the output

add_filter( 'bloginfo', 'custom_site_title_tagline_output', 2, 10 );

function custom_site_title_tagline_output( $site_bloginfo, $show ) {
	global $post;
	if( $show == 'name' && is_page() && get_post_meta( $post->ID, '_custom_site_title', true ) ) {
		$site_bloginfo = get_post_meta( $post->ID, '_custom_site_title', true );
	if( $show == 'description' && is_page() && get_post_meta( $post->ID, '_custom_site_tagline', true ) ) {
		$site_bloginfo = get_post_meta( $post->ID, '_custom_site_tagline', true );
	return $site_bloginfo;

add the code to functions.php of your theme; could also be made into a plugin as it is not theme dependant.
might also change meta title and/or tagline; not tested for interference with seo plugins.
code in pastebin

Adding Widgets Between Posts in the Index Page

For a child theme of the (current) default theme Twenty Fifteen – a way to add a new sidebar aka widget area to show after the first post in the index page; making use of the action hook ‘the_post’.


add_action( 'after_setup_theme', 'twentyfifteen_child_setup' );

function twentyfifteen_child_setup() {
add_action( 'widgets_init', 'twentyfifteen_child_widgets_init' );
add_action( 'the_post', 'twentyfifteen_child_inter_posts_sidebars' );

//register sidebar for inbetween posts

function twentyfifteen_child_widgets_init() {

	register_sidebar( array(
		'name' => __( 'First Inter-Posts Widget Area ', 'twentyfifteen' ),
		'id' => 'inter-posts-1',
		'description'   => __( 'Add widgets here to appear between post 1 and 2 in your index page.', 'twentyfifteen' ),
		'before_widget' => '<aside id="%1$s" class="widget inter-post-widget %2$s">',
		'after_widget'  => '</aside>',
		'before_title'  => '<h2 class="widget-title">',
		'after_title'   => '</h2>',
	) );


//widget output between posts in index page

function twentyfifteen_child_inter_posts_sidebars() {
	global $wp_query;
	if( is_home() && $wp_query->current_post == 1 ) {
		dynamic_sidebar( 'inter-posts-1' );

you will need to create your own CSS based on the CSS class .inter-post-widget …


.inter-post-widget { 
	margin: 20px 8.33%;
	padding: 3%;
	width: auto;

Injecting Multiple adsense Ads into a WordPress Loop

The versatile code injects for instance adsense ad codes several times into the posts of an index or archive page, starting with a pre-set post, and then repeated in regular intervals (up to a set limit of ads per page).

For example, in a child theme of Twenty Fourteen, this code would be added into content.php at a suitable location:

//set the variables//
$nth = 3; //1,2,3,,4...; repeated every n-th post
$snr = 1; //1,2,3...; pre-set start with post nr
$limit = 3; //adsene TOS limit of ads per web page

$lsnr = $snr - 1; // correct for loop counter start at zero

if( $wp_query->current_post >= $lsnr && ( $wp_query->current_post - $lsnr )%$nth == 0 && (int)(( $wp_query->current_post - $lsnr ) / $nth ) < $limit ) { ?>
<?php } ?>

The example values would start the add in the first post, and repeated every three posts for a maximum of 3 ads.

Alphabetize Category Posts Using ‘pre_get_posts’ Action

Occasionally you want to have a different sort order in some of the category archives, for example, you want to output the posts of a specific category in alphabetical order.
Instead of having to create a category template for each of those categories and to add a custom query to change the query parameters, WordPress providdes the ‘pre_get_posts’ action where you can add a corresponding function:

function category_archive_sort_alphabetical( $query ) {
    if ( is_admin() || ! $query->is_main_query() )

    if ( is_category( array( 'Category One', 'category-two', 'Another Cat' ) ) ) {
		$query->set( 'orderby', 'title' );
		$query->set( 'order', 'ASC' );
add_action( 'pre_get_posts', 'category_archive_sort_alphabetical', 1 );