<?php /* Short Title * return a short title with ellipsis if the title is too long * accepts a maxchar value * Usage Example: echo short_title( $maxchar = 100 ); * Place the code inside the loop and set the character limit. If the title is longer than the character limit set, * it will display ellipsis at the end. --------------------------------------------------------------------*/ function short_title( $maxchar = 90 ) { $fullTitle = get_the_title(); // get the length of the title $titleLength = strlen($fullTitle); if($maxchar > $titleLength) { return $fullTitle; } else { $shortTitle = substr( $fullTitle, 0, $maxchar ); return $shortTitle . " …"; } } /* Short Excerpt * return a short excerpt with ellipsis if the excerpt is too long * If excerpt is empty, then the content is used as backup * accepts a maxchar value * Usage Example: echo short_excerpt( $maxchar = 100 ); * Place the code inside the loop and set the character limit. If the excerpt is longer than the character limit set, * it will display ellipsis at the end. --------------------------------------------------------------------*/ function short_excerpt( $maxchar = 90 ) { $get_excerpt = get_the_excerpt(); if(empty($get_excerpt)) { $get_excerpt = get_the_content(); } // get the length of the title $excerptLength = strlen($get_excerpt); if($maxchar > $excerptLength) { return $get_excerpt; } else { $shortExcerpt = substr( $get_excerpt, 0, $maxchar ); return $shortExcerpt . " …"; } } // SHORTCODES // This shortcode will allow you to add a link to a wysiwyg box and have event tracking added to the link // Use like this, for example: // [analyticsLink url='http://www.crosbymarketing.com' target='_blank' evcat='external_links' evaction='click' evlabel='home_learn_more' textlink='Learn More'] // target="_blank" is the default behavior for the link. // ga_link is the default event category; click is the default event action; learn_more is the default event label; Read More is the default textlink // It will output the hyperlink and use the textlink as the clickable text for the link. The event are the values you want to set for Google Analytics if ( ! function_exists( 'analyticsLink' ) ) : function analyticsLink( $atts ) { extract( shortcode_atts( array( 'url' => 'http://www.crosbymarketing.com/', 'target' => '_blank', 'evcat' => 'ga_link', 'evaction' => 'click', 'evlabel' => 'learn_more', 'textlink' => 'Read More' ), $atts ) ); $alink = "<a href='".$url."' target='".$target."' onClick=\"ga('send','event','".$evcat."','".$evaction."','".$evlabel."');\">"; $alink .= $textlink; $alink .= "</a>"; return $alink; } add_shortcode("analyticslink", "analyticsLink"); // name of shortcode, function called endif; // #### ?> <h2>Most Popular "<?php the_title('<em>','</em>'); ?>" Content</h2> <p>This section displays the child pages of this section.</p> <?php // Define the array container $data = array('child_page_array' => array()); // Load the child pages of this page $args = array( 'post_type' => 'page', 'post_parent' => $page_id, 'posts_per_page' => 10, 'ignore_sticky_posts' => 1 ); $qry_child_pages = new WP_Query($args); if( $qry_child_pages->have_posts() ): while ($qry_child_pages->have_posts()) : $qry_child_pages->the_post(); $child_page_id = get_the_ID(); $page_icon = get_field('page_icon'); $child_page_title = get_the_title(); $child_page_slug = $post->post_name; ?> <p><img src="<?php echo $page_icon; ?>"><br/><a href="<?php echo the_permalink(); ?>"><?php echo the_title(); ?></a></p> <?php // Fill the array with the slug and title of the child pages $data['child_page_array'][$child_page_id] = array( // need to fix this. 'child_page_id' => $child_page_id, 'child_page_title' => $child_page_title, 'child_page_slug' => $child_page_slug ); ?> <?php endwhile; endif; ?> <?php /* [Repeater field with two relationship fields, one to choose parent page and the other to pick 6 related posts] */ ?> <?php foreach($data['child_page_array'] as $child_page){ // setup the values from the array into variables $child_page_id = $child_page['child_page_id']; $child_page_title = $child_page['child_page_title']; $child_page_slug = $child_page['child_page_slug']; echo "<h3>".$child_page_title."</h3>"; // custom function for displaying posts tagged with the slug of this page // alternately we can add in a text field and put a matching value to the tag if it turns out the page slug can't match the tag slug. // Right now, this relies on that, but would be easy to change display_child_pages( $child_page_slug ); } wp_reset_query(); // Add this to your functions.php file // Display 6 child pages using the child page id function display_child_pages( $child_page_slug ) { // Load the child pages of this page $args = array( 'post_type' => 'post', 'posts_per_page' => 6, 'ignore_sticky_posts' => 1, 'tag' => $child_page_slug ); $qry_by_tag = new WP_Query($args); if( $qry_by_tag->have_posts() ): echo "<ul>"; while ($qry_by_tag->have_posts()) : $qry_by_tag->the_post(); $qbt_title = get_the_title(); $qbt_permalink = get_the_permalink(); echo '<li><a href="'.$qbt_permalink.'">'.$qbt_title.'</a></li>'; endwhile; echo "</ul>"; endif; } ?>