Z-Blog 发布文章时添加额外字段
目标效果
在后台:
文章编辑页
↓
标题
↓
【新增一个下拉框】
文章类型:
▼ 原创
转载
翻译
并且保存到数据库。
一、创建插件(或在已有插件修改)
目录:
/zb_users/plugin/postselect/
include.php
三、include.php
<?php
RegisterPlugin("postselect","ActivePlugin_postselect");
function ActivePlugin_postselect() {
// 在文章编辑页添加字段
Add_Filter_Plugin('Filter_Plugin_Edit_Response5', 'postselect_add_field');
// 文章保存时
Add_Filter_Plugin('Filter_Plugin_PostArticle_Core', 'postselect_save_field');
}
/**
* 添加下拉框
*/
function postselect_add_field() {
global $article;
$value = $article->Metas->post_type ?? '';
echo '
<div class="editmod">
<label>文章类型:</label>
<select name="post_type">
<option value="原创" '.($value=='原创'?'selected':'').'>原创</option>
<option value="转载" '.($value=='转载'?'selected':'').'>转载</option>
<option value="翻译" '.($value=='翻译'?'selected':'').'>翻译</option>
</select>
</div>
';
}
/**
* 保存字段
*/
function postselect_save_field($article) {
if (isset($_POST['post_type'])) {
$article->Metas->post_type = $_POST['post_type'];
}
}
四、原理解释
Z-Blog 有一个 Meta 机制:
$article->Metas->key = value;
会自动保存到:
zb_postmeta 表
读取:
$article->Metas->post_type
五、前台调用
模板里:
{$article.Metas.post_type}或者:
<?php echo $article->Metas->post_type; ?>