48 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
 | 
						|
/**
 | 
						|
 * Returns a HTML formatted string of the table of contents without the surrounding UL or OL
 | 
						|
 * tags to enable the theme editor to supply their own ID and/or classes to the outer list.
 | 
						|
 *
 | 
						|
 * There are three optional parameters you can feed this function with:
 | 
						|
 *
 | 
						|
 *  - $content is the entire content with headings.  If blank, will default to the current $post
 | 
						|
 *
 | 
						|
 *  - $link is the URL to prefix the anchor with.  If provided a string, will use it as the prefix.
 | 
						|
 *    If set to true then will try to obtain the permalink from the $post object.
 | 
						|
 *
 | 
						|
 *  - $apply_eligibility bool, defaults to false.  When set to true, will apply the check to
 | 
						|
 *    see if bit of content has the prerequisites needed for a TOC, eg minimum number of headings
 | 
						|
 *    enabled post type, etc.
 | 
						|
 */
 | 
						|
function toc_get_index( $content = '', $prefix_url = '', $apply_eligibility = false ) {
 | 
						|
	global $wp_query, $toc_plus;
 | 
						|
 | 
						|
	$return  = '';
 | 
						|
	$find    = [];
 | 
						|
	$replace = [];
 | 
						|
	$proceed = true;
 | 
						|
 | 
						|
	if ( ! $content ) {
 | 
						|
		$post    = get_post( $wp_query->post->ID );
 | 
						|
		$content = wptexturize( $post->post_content );
 | 
						|
	}
 | 
						|
 | 
						|
	if ( $apply_eligibility ) {
 | 
						|
		if ( ! $toc_plus->is_eligible() ) {
 | 
						|
			$proceed = false;
 | 
						|
		}
 | 
						|
	} else {
 | 
						|
		$toc_plus->set_option( [ 'start' => 0 ] );
 | 
						|
	}
 | 
						|
 | 
						|
	if ( $proceed ) {
 | 
						|
		$return = $toc_plus->extract_headings( $find, $replace, $content );
 | 
						|
		if ( $prefix_url ) {
 | 
						|
			$return = str_replace( 'href="#', 'href="' . $prefix_url . '#', $return );
 | 
						|
		}
 | 
						|
	}
 | 
						|
 | 
						|
	return $return;
 | 
						|
}
 |