snipt

Ctrl+h for KB shortcuts

PHP

addition to meta boxes script 3.0.1

/* this is how to define the "menu" meta field at the metabox-usage.php - very simple */

'fields' => array(						
		array(
			'name' => 'menus',
			'id' => $prefix . 'menus',
			'type' => 'menu',					
			'desc' => 'please choose a menu'
		),
	)

/* the addition to the functions in meta-box.php */
function show_field_menu($field, $meta) {
		if (!is_array($meta)) $meta = (array) $meta;
		$this->show_field_begin($field, $meta);
		echo "<select style=\"width:150px\" name='{$field['id']}" . ($field['multiple'] ? "[]' multiple='multiple' style='height:auto'" : "'") . ">";
		$nav_menus = wp_get_nav_menus( array('orderby' => 'name') );
		$meta = get_post_meta(get_the_ID(),'rw_menus', true);

		echo '<option value="none"';
		if ($meta =="none") echo ' selected="selected" ';
		echo '>-- none --</option>';
		
		foreach( (array) $nav_menus as $key => $_nav_menu ) {
			$_nav_menu->truncated_name = trim( wp_html_excerpt( $_nav_menu->name, 40 ) );
			if ( $_nav_menu->truncated_name != $_nav_menu->name )
			$_nav_menu->truncated_name .= '&hellip;';
			$nav_menus[$key]->truncated_name = $_nav_menu->truncated_name;	
			echo '<option value="';
			echo esc_html( $_nav_menu->truncated_name ).'"';
			if (esc_html( $_nav_menu->truncated_name ) == $meta) echo ' selected="selected" ';
			echo '>';
			echo esc_html( $_nav_menu->truncated_name );
			echo '</option>';

		}
		echo "</select>";
		$this->show_field_end($field, $meta);
	}
https://snippets.siftie.com/embed/4aa17af3a03d637c8fd1c5411f6ad655/
/raw/4aa17af3a03d637c8fd1c5411f6ad655/
4aa17af3a03d637c8fd1c5411f6ad655
php
PHP
39
2019-03-19T16:42:04
True
False
False
/api/public/snipt/25904/
addition-to-meta-boxes-script-301
<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></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 is how to define the &quot;menu&quot; meta field at the metabox-usage.php - very simple */</span> </span><span id="L-2"><a name="L-2"></a> </span><span id="L-3"><a name="L-3"></a><span class="x">&#39;fields&#39; =&gt; array( </span> </span><span id="L-4"><a name="L-4"></a><span class="x"> array(</span> </span><span id="L-5"><a name="L-5"></a><span class="x"> &#39;name&#39; =&gt; &#39;menus&#39;,</span> </span><span id="L-6"><a name="L-6"></a><span class="x"> &#39;id&#39; =&gt; $prefix . &#39;menus&#39;,</span> </span><span id="L-7"><a name="L-7"></a><span class="x"> &#39;type&#39; =&gt; &#39;menu&#39;, </span> </span><span id="L-8"><a name="L-8"></a><span class="x"> &#39;desc&#39; =&gt; &#39;please choose a menu&#39;</span> </span><span id="L-9"><a name="L-9"></a><span class="x"> ),</span> </span><span id="L-10"><a name="L-10"></a><span class="x"> )</span> </span><span id="L-11"><a name="L-11"></a> </span><span id="L-12"><a name="L-12"></a><span class="x">/* the addition to the functions in meta-box.php */</span> </span><span id="L-13"><a name="L-13"></a><span class="x">function show_field_menu($field, $meta) {</span> </span><span id="L-14"><a name="L-14"></a><span class="x"> if (!is_array($meta)) $meta = (array) $meta;</span> </span><span id="L-15"><a name="L-15"></a><span class="x"> $this-&gt;show_field_begin($field, $meta);</span> </span><span id="L-16"><a name="L-16"></a><span class="x"> echo &quot;&lt;select style=\&quot;width:150px\&quot; name=&#39;{$field[&#39;id&#39;]}&quot; . ($field[&#39;multiple&#39;] ? &quot;[]&#39; multiple=&#39;multiple&#39; style=&#39;height:auto&#39;&quot; : &quot;&#39;&quot;) . &quot;&gt;&quot;;</span> </span><span id="L-17"><a name="L-17"></a><span class="x"> $nav_menus = wp_get_nav_menus( array(&#39;orderby&#39; =&gt; &#39;name&#39;) );</span> </span><span id="L-18"><a name="L-18"></a><span class="x"> $meta = get_post_meta(get_the_ID(),&#39;rw_menus&#39;, true);</span> </span><span id="L-19"><a name="L-19"></a> </span><span id="L-20"><a name="L-20"></a><span class="x"> echo &#39;&lt;option value=&quot;none&quot;&#39;;</span> </span><span id="L-21"><a name="L-21"></a><span class="x"> if ($meta ==&quot;none&quot;) echo &#39; selected=&quot;selected&quot; &#39;;</span> </span><span id="L-22"><a name="L-22"></a><span class="x"> echo &#39;&gt;-- none --&lt;/option&gt;&#39;;</span> </span><span id="L-23"><a name="L-23"></a><span class="x"> </span> </span><span id="L-24"><a name="L-24"></a><span class="x"> foreach( (array) $nav_menus as $key =&gt; $_nav_menu ) {</span> </span><span id="L-25"><a name="L-25"></a><span class="x"> $_nav_menu-&gt;truncated_name = trim( wp_html_excerpt( $_nav_menu-&gt;name, 40 ) );</span> </span><span id="L-26"><a name="L-26"></a><span class="x"> if ( $_nav_menu-&gt;truncated_name != $_nav_menu-&gt;name )</span> </span><span id="L-27"><a name="L-27"></a><span class="x"> $_nav_menu-&gt;truncated_name .= &#39;&amp;hellip;&#39;;</span> </span><span id="L-28"><a name="L-28"></a><span class="x"> $nav_menus[$key]-&gt;truncated_name = $_nav_menu-&gt;truncated_name; </span> </span><span id="L-29"><a name="L-29"></a><span class="x"> echo &#39;&lt;option value=&quot;&#39;;</span> </span><span id="L-30"><a name="L-30"></a><span class="x"> echo esc_html( $_nav_menu-&gt;truncated_name ).&#39;&quot;&#39;;</span> </span><span id="L-31"><a name="L-31"></a><span class="x"> if (esc_html( $_nav_menu-&gt;truncated_name ) == $meta) echo &#39; selected=&quot;selected&quot; &#39;;</span> </span><span id="L-32"><a name="L-32"></a><span class="x"> echo &#39;&gt;&#39;;</span> </span><span id="L-33"><a name="L-33"></a><span class="x"> echo esc_html( $_nav_menu-&gt;truncated_name );</span> </span><span id="L-34"><a name="L-34"></a><span class="x"> echo &#39;&lt;/option&gt;&#39;;</span> </span><span id="L-35"><a name="L-35"></a> </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"> echo &quot;&lt;/select&gt;&quot;;</span> </span><span id="L-38"><a name="L-38"></a><span class="x"> $this-&gt;show_field_end($field, $meta);</span> </span><span id="L-39"><a name="L-39"></a><span class="x"> }</span> </span></pre></div> </td></tr></table>
metaboxs, wordpress.