山毛竹 發表於 2023-6-6 00:00:00

在WordPress中获取数据库字段内容和添加主题设置菜单

<p>
<strong>get_option() 函数使用技巧</strong><br>
get_option()这个函数,实际上我们在整合后台功能的时候经常会用到的一个函数,主要用来从 WordPress 博客数据库 option 表中取得我们想要的字段内容的一个函数,在目前大部分的主题中,只要是主题集成了后台控制页面,也大都用到了这个函数,虽然 WP 给了我们很多方法去临时存储我们对主题的设置,但是用比较稳定的数据库去存储主题设置还是大部分主题作者的首选。</p>
<p>
get_option() 函数的解释、用法网上还是有很多中文文献的,包括官方文档该函数也有中文版的解释,因为使用起来简单,思路比较清晰所以这里就不过多解释。<br>
官方API :get_option<br>
直接备忘用法</p>
<p>
使用技巧<br>
通常我们取设置的时候,会加一个判断,因为我们不知道主题是不是第一次在系统中安装,</p>
<div>
<div>
<div id="highlighter_228574">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
<div>
2</div>
<div>
3</div>
<div>
4</div>
<div>
5</div>
<div>
6</div>
<div>
7</div>
<div>
8</div>
<div>
9</div>
</td>
<td>
<div>
<div>
<code>if</code> <code>(!get_option(</code><code>'xiangzi'</code><code>)){</code><code>//判断是否存在</code>
</div>
<div>
<code> </code><code>$default_xiangzi</code> <code>= </code><code>array</code> <code>(</code><code>//先设置一个默认值</code>
</div>
<div>
<code> </code><code>'title'</code><code>=&gt;</code><code>'博客'</code><code>,</code>
</div>
<div>
<code> </code><code>'name'</code><code>=&gt;</code><code>'翔子'</code><code>,</code>
</div>
<div>
<code> </code><code>'url'</code><code>=&gt;</code><code>'pangbu.com'</code><code>);</code>
</div>
<div>
<code> </code><code>update_option(</code><code>'xiangzi'</code><code>, </code><code>$default_xiangzi</code><code>);</code>
</div>
<div>
<code> </code><code>//设置option的默认值</code>
</div>
<div>
<code>}</code>
</div>
<div>
<code>$xiangzi</code> <code>= get_option(</code><code>'xiangzi'</code><code>);</code><code>//获取设置</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div id="codetool">
<div>
<textarea></textarea>
</div>
</div>
</div>
<p>
很凑巧,出于某种原因 WP 官方为我们增设了get_option 函数的第二个参数<br>
所以我们可以这样</p>
<div>
<div>
<div id="highlighter_483492">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
<div>
2</div>
<div>
3</div>
<div>
4</div>
<div>
5</div>
<div>
6</div>
</td>
<td>
<div>
<div>
<code>$default_xiangzi</code> <code>= </code><code>array</code> <code>(</code><code>//先设置一个默认值</code>
</div>
<div>
<code> </code><code>'title'</code><code>=&gt;</code><code>'博客'</code><code>,</code>
</div>
<div>
<code> </code><code>'name'</code><code>=&gt;</code><code>'翔子'</code><code>,</code>
</div>
<div>
<code> </code><code>'url'</code><code>=&gt;</code><code>'pangbu.com'</code><code>)</code>
</div>
<div>
<code>$xiangzi</code> <code>= get_option(</code><code>'xiangzi'</code><code>,</code><code>$default_xiangzi</code><code>);</code>
</div>
<div>
<code>//这样是不是很简单?</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div id="codetool">
<div>
<textarea></textarea>
</div>
</div>
</div>
<p>
<strong>add_theme_page()函数-添加你的主题设置菜单</strong><br>
也许你会觉得,Wordpress 官方默认主题,是一个很蛋疼的主题,样式丑陋、并且功能简陋,有一种只有陋室铭这种励志类的文章才能鼓励你用下去的感觉,也许你会觉得这个主题除了给那些不会安装主题的菜菜菜菜菜鸟用之外几乎毫无用处,那你就错了。官方默认主题的最大用处就是有很大的研究价值,至少我目前的 WP 主题知识大部分都是通过研究默认主题得来的,今天研究的是add_theme_page()函数。</p>
<p>
描述<br>
add_theme_page()函数,在 WordPress 后台添加页面。在这里我们一般都是为了添加设置页面才用到该函数,当然你要是闲的蛋疼的话,你可以添加诸如个人说明的页面在后台。</p>
<p>
使用</p>
<p>
 </p>
<div>
<div>
<div id="highlighter_605058">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
<div>
2</div>
<div>
3</div>
<div>
4</div>
<div>
5</div>
<div>
6</div>
<div>
7</div>
<div>
8</div>
</td>
<td>
<div>
<div>
<code>&lt;?php </code>
</div>
<div>
<code>add_theme_page( </code><code>$page_title</code><code>, </code><code>$menu_title</code><code>, </code><code>$capability</code><code>, </code><code>$menu_slug</code><code>, </code><code>$function</code><code>); </code>
</div>
<div>
<code>//page_titile-title标签的内容 </code>
</div>
<div>
<code>//menu_title-显示在后台左边菜单的标题 </code>
</div>
<div>
<code>//capability-访问这个页面需要的权限 </code>
</div>
<div>
<code>//menu_slug-别名,需要独一无二哦 </code>
</div>
<div>
<code>//function-执行的函数 </code>
</div>
<div>
<code>?&gt; </code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div id="codetool">
<div>
<textarea></textarea>
</div>
</div>
</div>
<p>
$page_title, $menu_title, $capability, $menu_slug, $function 这几个参数比较常用。</p>
<p>
因为add_theme_page()函数使用起来实在是太简单了,所以我们还是直接上代码吧。</p>
<p>
实例</p>
<div>
<div>
<div id="highlighter_285555">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
<div>
2</div>
<div>
3</div>
<div>
4</div>
<div>
5</div>
<div>
6</div>
<div>
7</div>
<div>
8</div>
<div>
9</div>
<div>
10</div>
<div>
11</div>
<div>
12</div>
<div>
13</div>
</td>
<td>
<div>
<div>
<code>function</code> <code>xz_theme_options_add_page() {</code>
</div>
<div>
<code> </code><code>$theme_page</code> <code>= add_theme_page(</code>
</div>
<div>
<code> </code><code>'主题设置'</code><code>, </code><code>//页面Titlee</code>
</div>
<div>
<code> </code><code>'主题设置'</code><code>, </code><code>// 在后台菜单中显示的名字</code>
</div>
<div>
<code> </code><code>'edit_theme_options'</code><code>,   </code><code>// 选项放置的位置</code>
</div>
<div>
<code> </code><code>'theme_options'</code><code>,    </code><code>// 别名,也就是get传送的参数</code>
</div>
<div>
<code> </code><code>'xz_theme_op_page'</code> <code>//调用显示内容调用的函数</code>
</div>
<div>
<code> </code><code>);</code>
</div>
<div>
<code>}</code>
</div>
<div>
<code>function</code> <code>xz_theme_op_page (){</code><code>//内容显示函数</code>
</div>
<div>
<code> </code><code>echo</code> <code>"我是主题编辑页面"</code><code>;</code>
</div>
<div>
<code>}</code>
</div>
<div>
<code>add_action( </code><code>'admin_menu'</code><code>, </code><code>'xz_theme_options_add_page'</code> <code>);</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div id="codetool">
<div>
<textarea></textarea>
</div>
</div>
</div>
<p>
效果</p>
<p>
<img style="max-width:100%!important;height:auto!important;"title="在WordPress中获取数据库字段内容和添加主题设置菜单" alt="在WordPress中获取数据库字段内容和添加主题设置菜单" src="https://zhuji.jb51.net/uploads/img/202305/39038ea38311563f556f12c0eadedd83.jpg"></p>
<p>
添加后台菜单效果</p>
頁: [1]
查看完整版本: 在WordPress中获取数据库字段内容和添加主题设置菜单