snipt

Ctrl+h for KB shortcuts

PHP

Code to implement iThemes' LoopBuddy in any WordPress theme - place in the functions.php file of your theme

/* This first part goes in the active theme's functions.php file. */

<?php
add_theme_support( 'loop-standard' );

if ( ! function_exists( 'dynamic_loop' ) ) {
	function dynamic_loop() {
		global $dynamic_loop_handlers;
		if ( empty( $dynamic_loop_handlers ) || ! is_array( $dynamic_loop_handlers ) )
			return false;
		ksort( $dynamic_loop_handlers );
		foreach ( (array) $dynamic_loop_handlers as $handlers ) {
			foreach ( (array) $handlers as $function ) {
				if ( is_callable( $function ) && ( false != call_user_func( $function ) ) ) {
					return true;
				}
			}
		}
		return false;
	}
}
if ( ! function_exists( 'register_dynamic_loop_handler' ) ) {
	function register_dynamic_loop_handler( $function, $priority = 10 ) {
		global $dynamic_loop_handlers;
		if ( ! is_numeric( $priority ) )
			$priority = 10;
		if ( ! isset( $dynamic_loop_handlers ) || ! is_array( $dynamic_loop_handlers ) )
			$dynamic_loop_handlers = array();
		if ( ! isset( $dynamic_loop_handlers[$priority] ) || ! is_array( $dynamic_loop_handlers[$priority] ) )
			$dynamic_loop_handlers[$priority] = array();
		$dynamic_loop_handlers[$priority][] = $function;
	}
}
?>
- - - - - - - - -
    
<!-- 
Then you need to go find the "LOOP" and add two lines of code BEFORE and AFTER the loop.
This will be found in a few places of the theme.
index.php
single.php
page.php
Remember your Template Hiearchy information... you may also need to edit an archive.php and other theme template files if that theme has those files.
-->
    

<?php if (!dynamic_loop()) : ?>  <!-- Add this line before the loop -->

	<?php if(have_posts()) : while(have_posts()) : the_post(); ?>
		<?php get_template_part('content', 'page'); ?>
	<?php endwhile; endif; ?>

<?php endif; ?>  <!-- Add this line after the loop -->

Description

Use this code inside the functions.php file for your custom theme to allow the iThemes LoopBuddy plugin to work with your theme.
https://snipt.net/embed/c3a9333851cc07af7107d0c2bc08545b/
/raw/c3a9333851cc07af7107d0c2bc08545b/
c3a9333851cc07af7107d0c2bc08545b
php
PHP
53
2019-06-20T04:55:30
True
False
False
Jun 02, 2016 at 12:56 PM
/api/public/snipt/147097/
code-to-implement-ithemes-loopbuddy-in-any-wordpress-theme-place-in-the-functionsphp-file-of-your-theme
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><a href="#L-1"> 1</a> <a href="#L-2"> 2</a> <a href="#L-3"> 3</a> <a href="#L-4"> 4</a> <a href="#L-5"> 5</a> <a href="#L-6"> 6</a> <a href="#L-7"> 7</a> <a href="#L-8"> 8</a> <a href="#L-9"> 9</a> <a href="#L-10">10</a> <a href="#L-11">11</a> <a href="#L-12">12</a> <a href="#L-13">13</a> <a href="#L-14">14</a> <a href="#L-15">15</a> <a href="#L-16">16</a> <a href="#L-17">17</a> <a href="#L-18">18</a> <a href="#L-19">19</a> <a href="#L-20">20</a> <a href="#L-21">21</a> <a href="#L-22">22</a> <a href="#L-23">23</a> <a href="#L-24">24</a> <a href="#L-25">25</a> <a href="#L-26">26</a> <a href="#L-27">27</a> <a href="#L-28">28</a> <a href="#L-29">29</a> <a href="#L-30">30</a> <a href="#L-31">31</a> <a href="#L-32">32</a> <a href="#L-33">33</a> <a href="#L-34">34</a> <a href="#L-35">35</a> <a href="#L-36">36</a> <a href="#L-37">37</a> <a href="#L-38">38</a> <a href="#L-39">39</a> <a href="#L-40">40</a> <a href="#L-41">41</a> <a href="#L-42">42</a> <a href="#L-43">43</a> <a href="#L-44">44</a> <a href="#L-45">45</a> <a href="#L-46">46</a> <a href="#L-47">47</a> <a href="#L-48">48</a> <a href="#L-49">49</a> <a href="#L-50">50</a> <a href="#L-51">51</a> <a href="#L-52">52</a> <a href="#L-53">53</a></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span id="L-1"><a name="L-1"></a><span class="x">/* This first part goes in the active theme&#39;s functions.php file. */</span> </span><span id="L-2"><a name="L-2"></a> </span><span id="L-3"><a name="L-3"></a><span class="cp">&lt;?php</span> </span><span id="L-4"><a name="L-4"></a><span class="nx">add_theme_support</span><span class="p">(</span> <span class="s1">&#39;loop-standard&#39;</span> <span class="p">);</span> </span><span id="L-5"><a name="L-5"></a> </span><span id="L-6"><a name="L-6"></a><span class="k">if</span> <span class="p">(</span> <span class="o">!</span> <span class="nb">function_exists</span><span class="p">(</span> <span class="s1">&#39;dynamic_loop&#39;</span> <span class="p">)</span> <span class="p">)</span> <span class="p">{</span> </span><span id="L-7"><a name="L-7"></a> <span class="k">function</span> <span class="nf">dynamic_loop</span><span class="p">()</span> <span class="p">{</span> </span><span id="L-8"><a name="L-8"></a> <span class="k">global</span> <span class="nv">$dynamic_loop_handlers</span><span class="p">;</span> </span><span id="L-9"><a name="L-9"></a> <span class="k">if</span> <span class="p">(</span> <span class="k">empty</span><span class="p">(</span> <span class="nv">$dynamic_loop_handlers</span> <span class="p">)</span> <span class="o">||</span> <span class="o">!</span> <span class="nb">is_array</span><span class="p">(</span> <span class="nv">$dynamic_loop_handlers</span> <span class="p">)</span> <span class="p">)</span> </span><span id="L-10"><a name="L-10"></a> <span class="k">return</span> <span class="k">false</span><span class="p">;</span> </span><span id="L-11"><a name="L-11"></a> <span class="nb">ksort</span><span class="p">(</span> <span class="nv">$dynamic_loop_handlers</span> <span class="p">);</span> </span><span id="L-12"><a name="L-12"></a> <span class="k">foreach</span> <span class="p">(</span> <span class="p">(</span><span class="k">array</span><span class="p">)</span> <span class="nv">$dynamic_loop_handlers</span> <span class="k">as</span> <span class="nv">$handlers</span> <span class="p">)</span> <span class="p">{</span> </span><span id="L-13"><a name="L-13"></a> <span class="k">foreach</span> <span class="p">(</span> <span class="p">(</span><span class="k">array</span><span class="p">)</span> <span class="nv">$handlers</span> <span class="k">as</span> <span class="nv">$function</span> <span class="p">)</span> <span class="p">{</span> </span><span id="L-14"><a name="L-14"></a> <span class="k">if</span> <span class="p">(</span> <span class="nb">is_callable</span><span class="p">(</span> <span class="nv">$function</span> <span class="p">)</span> <span class="o">&amp;&amp;</span> <span class="p">(</span> <span class="k">false</span> <span class="o">!=</span> <span class="nb">call_user_func</span><span class="p">(</span> <span class="nv">$function</span> <span class="p">)</span> <span class="p">)</span> <span class="p">)</span> <span class="p">{</span> </span><span id="L-15"><a name="L-15"></a> <span class="k">return</span> <span class="k">true</span><span class="p">;</span> </span><span id="L-16"><a name="L-16"></a> <span class="p">}</span> </span><span id="L-17"><a name="L-17"></a> <span class="p">}</span> </span><span id="L-18"><a name="L-18"></a> <span class="p">}</span> </span><span id="L-19"><a name="L-19"></a> <span class="k">return</span> <span class="k">false</span><span class="p">;</span> </span><span id="L-20"><a name="L-20"></a> <span class="p">}</span> </span><span id="L-21"><a name="L-21"></a><span class="p">}</span> </span><span id="L-22"><a name="L-22"></a><span class="k">if</span> <span class="p">(</span> <span class="o">!</span> <span class="nb">function_exists</span><span class="p">(</span> <span class="s1">&#39;register_dynamic_loop_handler&#39;</span> <span class="p">)</span> <span class="p">)</span> <span class="p">{</span> </span><span id="L-23"><a name="L-23"></a> <span class="k">function</span> <span class="nf">register_dynamic_loop_handler</span><span class="p">(</span> <span class="nv">$function</span><span class="p">,</span> <span class="nv">$priority</span> <span class="o">=</span> <span class="mi">10</span> <span class="p">)</span> <span class="p">{</span> </span><span id="L-24"><a name="L-24"></a> <span class="k">global</span> <span class="nv">$dynamic_loop_handlers</span><span class="p">;</span> </span><span id="L-25"><a name="L-25"></a> <span class="k">if</span> <span class="p">(</span> <span class="o">!</span> <span class="nb">is_numeric</span><span class="p">(</span> <span class="nv">$priority</span> <span class="p">)</span> <span class="p">)</span> </span><span id="L-26"><a name="L-26"></a> <span class="nv">$priority</span> <span class="o">=</span> <span class="mi">10</span><span class="p">;</span> </span><span id="L-27"><a name="L-27"></a> <span class="k">if</span> <span class="p">(</span> <span class="o">!</span> <span class="nb">isset</span><span class="p">(</span> <span class="nv">$dynamic_loop_handlers</span> <span class="p">)</span> <span class="o">||</span> <span class="o">!</span> <span class="nb">is_array</span><span class="p">(</span> <span class="nv">$dynamic_loop_handlers</span> <span class="p">)</span> <span class="p">)</span> </span><span id="L-28"><a name="L-28"></a> <span class="nv">$dynamic_loop_handlers</span> <span class="o">=</span> <span class="k">array</span><span class="p">();</span> </span><span id="L-29"><a name="L-29"></a> <span class="k">if</span> <span class="p">(</span> <span class="o">!</span> <span class="nb">isset</span><span class="p">(</span> <span class="nv">$dynamic_loop_handlers</span><span class="p">[</span><span class="nv">$priority</span><span class="p">]</span> <span class="p">)</span> <span class="o">||</span> <span class="o">!</span> <span class="nb">is_array</span><span class="p">(</span> <span class="nv">$dynamic_loop_handlers</span><span class="p">[</span><span class="nv">$priority</span><span class="p">]</span> <span class="p">)</span> <span class="p">)</span> </span><span id="L-30"><a name="L-30"></a> <span class="nv">$dynamic_loop_handlers</span><span class="p">[</span><span class="nv">$priority</span><span class="p">]</span> <span class="o">=</span> <span class="k">array</span><span class="p">();</span> </span><span id="L-31"><a name="L-31"></a> <span class="nv">$dynamic_loop_handlers</span><span class="p">[</span><span class="nv">$priority</span><span class="p">][]</span> <span class="o">=</span> <span class="nv">$function</span><span class="p">;</span> </span><span id="L-32"><a name="L-32"></a> <span class="p">}</span> </span><span id="L-33"><a name="L-33"></a><span class="p">}</span> </span><span id="L-34"><a name="L-34"></a><span class="cp">?&gt;</span><span class="x"></span> </span><span id="L-35"><a name="L-35"></a><span class="x">- - - - - - - - -</span> </span><span id="L-36"><a name="L-36"></a><span class="x"> </span> </span><span id="L-37"><a name="L-37"></a><span class="x">&lt;!-- </span> </span><span id="L-38"><a name="L-38"></a><span class="x">Then you need to go find the &quot;LOOP&quot; and add two lines of code BEFORE and AFTER the loop.</span> </span><span id="L-39"><a name="L-39"></a><span class="x">This will be found in a few places of the theme.</span> </span><span id="L-40"><a name="L-40"></a><span class="x">index.php</span> </span><span id="L-41"><a name="L-41"></a><span class="x">single.php</span> </span><span id="L-42"><a name="L-42"></a><span class="x">page.php</span> </span><span id="L-43"><a name="L-43"></a><span class="x">Remember your Template Hiearchy information... you may also need to edit an archive.php and other theme template files if that theme has those files.</span> </span><span id="L-44"><a name="L-44"></a><span class="x">--&gt;</span> </span><span id="L-45"><a name="L-45"></a><span class="x"> </span> </span><span id="L-46"><a name="L-46"></a> </span><span id="L-47"><a name="L-47"></a><span class="cp">&lt;?php</span> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">dynamic_loop</span><span class="p">())</span> <span class="o">:</span> <span class="cp">?&gt;</span><span class="x"> &lt;!-- Add this line before the loop --&gt;</span> </span><span id="L-48"><a name="L-48"></a> </span><span id="L-49"><a name="L-49"></a><span class="x"> </span><span class="cp">&lt;?php</span> <span class="k">if</span><span class="p">(</span><span class="nx">have_posts</span><span class="p">())</span> <span class="o">:</span> <span class="k">while</span><span class="p">(</span><span class="nx">have_posts</span><span class="p">())</span> <span class="o">:</span> <span class="nx">the_post</span><span class="p">();</span> <span class="cp">?&gt;</span><span class="x"></span> </span><span id="L-50"><a name="L-50"></a><span class="x"> </span><span class="cp">&lt;?php</span> <span class="nx">get_template_part</span><span class="p">(</span><span class="s1">&#39;content&#39;</span><span class="p">,</span> <span class="s1">&#39;page&#39;</span><span class="p">);</span> <span class="cp">?&gt;</span><span class="x"></span> </span><span id="L-51"><a name="L-51"></a><span class="x"> </span><span class="cp">&lt;?php</span> <span class="k">endwhile</span><span class="p">;</span> <span class="k">endif</span><span class="p">;</span> <span class="cp">?&gt;</span><span class="x"></span> </span><span id="L-52"><a name="L-52"></a> </span><span id="L-53"><a name="L-53"></a><span class="cp">&lt;?php</span> <span class="k">endif</span><span class="p">;</span> <span class="cp">?&gt;</span><span class="x"> &lt;!-- Add this line after the loop --&gt;</span> </span></pre></div> </td></tr></table>
functions.php, ithemes, loopbuddy, php, wordpress
--- 
+++ 
@@ -0,0 +1,53 @@
+/* This first part goes in the active theme's functions.php file. */
+
+<?php
+add_theme_support( 'loop-standard' );
+
+if ( ! function_exists( 'dynamic_loop' ) ) {
+	function dynamic_loop() {
+		global $dynamic_loop_handlers;
+		if ( empty( $dynamic_loop_handlers ) || ! is_array( $dynamic_loop_handlers ) )
+			return false;
+		ksort( $dynamic_loop_handlers );
+		foreach ( (array) $dynamic_loop_handlers as $handlers ) {
+			foreach ( (array) $handlers as $function ) {
+				if ( is_callable( $function ) && ( false != call_user_func( $function ) ) ) {
+					return true;
+				}
+			}
+		}
+		return false;
+	}
+}
+if ( ! function_exists( 'register_dynamic_loop_handler' ) ) {
+	function register_dynamic_loop_handler( $function, $priority = 10 ) {
+		global $dynamic_loop_handlers;
+		if ( ! is_numeric( $priority ) )
+			$priority = 10;
+		if ( ! isset( $dynamic_loop_handlers ) || ! is_array( $dynamic_loop_handlers ) )
+			$dynamic_loop_handlers = array();
+		if ( ! isset( $dynamic_loop_handlers[$priority] ) || ! is_array( $dynamic_loop_handlers[$priority] ) )
+			$dynamic_loop_handlers[$priority] = array();
+		$dynamic_loop_handlers[$priority][] = $function;
+	}
+}
+?>
+- - - - - - - - -
+    
+<!-- 
+Then you need to go find the "LOOP" and add two lines of code BEFORE and AFTER the loop.
+This will be found in a few places of the theme.
+index.php
+single.php
+page.php
+Remember your Template Hiearchy information... you may also need to edit an archive.php and other theme template files if that theme has those files.
+-->
+    
+
+<?php if (!dynamic_loop()) : ?>  <!-- Add this line before the loop -->
+
+	<?php if(have_posts()) : while(have_posts()) : the_post(); ?>
+		<?php get_template_part('content', 'page'); ?>
+	<?php endwhile; endif; ?>
+
+<?php endif; ?>  <!-- Add this line after the loop -->