wordpress不使用插件,自定义字段的添加与调用

2023-03-2410:23:48网站建设与开发Comments797 views字数 4064阅读模式

WordPress 自定义字段是对网站内容的一种扩充,WordPress已经为我们提供了博客日志的作者,分类,标签,时间等一些常用的字段,但是这样还远远不们满足我们的需求,比如系统参数字段如:备案号、统计代码、版权所有和缩略图字段已经常用的TDK(标题,关键词,描述)字段等;你可以根据你的需要自定义出一系列的其他信息来满足我们网站的功能需求,下来就一起来看看wordpress如何添加自定义字段和调用调用自定义字段吧。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/31556.html

一、wordpress不使用插件,添加自定义字段

1、常规里面添加自定义系统参数字段文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/31556.html

在wordpress主题文件functions.php中添加如下代码就可以添加一些我们常用的系统常规字段,在数据库表 wp_options 中保存文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/31556.html

function set_global_seo() {
$global_seo = new GlobalSeo();
$global_seo->setting_fields();
}
add_action( 'admin_init', 'set_global_seo' );文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/31556.html

class GlobalSeo
{
public function setting_fields()
{
$text_input = [
'contact' => '联系人',
'email' => '邮箱',
'address' => '地址',
'phone' => '电话',
'wechat' => '微信',
'qq' => 'QQ',
'copyright' => '备案号',
'seo_title' => 'seo标题',
'seo_keywords' => 'seo关键字',
];
$textarea_input = [ 'seo_description' => 'seo描述','tongji' => '统计代码' ];
foreach($text_input as $key => $val)
{
$this->sonliss_settings_field($key, $val, 'sonliss_textbox_callback', [$key]);
$this->sonliss_register_setting($key);
}
foreach($textarea_input as $key => $val)
{
$this->sonliss_settings_field($key, $val, 'sonliss_textareabox_callback', [$key]);
$this->sonliss_register_setting($key);
}
}文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/31556.html

2、不使用插件利用function.php添加自定义字段文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/31556.html

wordpress分类栏目添加自定义字段 ,将下方代码复制到 function.php 中文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/31556.html

<?php文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/31556.html

class Ludou_Tax_Image{文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/31556.html

function __construct(){文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/31556.html

// 新建分类页面添加自定义字段输入框
add_action( 'category_add_form_fields', array( $this, 'add_tax_image_field' ) );
// 编辑分类页面添加自定义字段输入框
add_action( 'category_edit_form_fields', array( $this, 'edit_tax_image_field' ) );文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/31556.html

// 保存自定义字段数据
add_action( 'edited_category', array( $this, 'save_tax_meta' ), 10, 2 );
add_action( 'create_category', array( $this, 'save_tax_meta' ), 10, 2 );文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/31556.html

} // __construct文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/31556.html

/**
* 新建分类页面添加自定义字段输入框
*/
public function add_tax_image_field(){
?>
<div class="form-field">
<label for="term_meta[tax_image]">分类封面</label>
<input type="text" name="term_meta[tax_image]" id="term_meta[tax_image]" value="" />
<p class="description">输入分类封面图片URL</p>
</div><!-- /.form-field -->文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/31556.html

<!-- TODO: 在这里追加其他自定义字段表单,如: -->文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/31556.html

<!--
<div class="form-field">
<label for="term_meta[tax_keywords]">分类关键字</label>
<input type="text" name="term_meta[tax_keywords]" id="term_meta[tax_keywords]" value="" />
<p class="description">输入分类关键字</p>
</div>
-->
<?php
} // add_tax_image_field文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/31556.html

/**
* 编辑分类页面添加自定义字段输入框
*
* @uses get_option() 从option表中获取option数据
* @uses esc_url() 确保字符串是url
*/
public function edit_tax_image_field( $term ){文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/31556.html

// $term_id 是当前分类的id
$term_id = $term->term_id;文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/31556.html

// 获取已保存的option
$term_meta = get_option( "ludou_taxonomy_$term_id" );
// option是一个二维数组
$image = $term_meta['tax_image'] ? $term_meta['tax_image'] : '';文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/31556.html

/**
* TODO: 在这里追加获取其他自定义字段值,如:
* $keywords = $term_meta['tax_keywords'] ? $term_meta['tax_keywords'] : '';
*/
?>
<tr class="form-field">
<th scope="row">
<label for="term_meta[tax_image]">分类封面</label>
<td>
<input type="text" name="term_meta[tax_image]" id="term_meta[tax_image]" value="<?php echo esc_url( $image ); ?>" />
<p class="description">输入分类封面图片URL</p>
</td>
</th>
</tr><!-- /.form-field -->文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/31556.html

<!-- TODO: 在这里追加其他自定义字段表单,如: -->文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/31556.html

<!--
<tr class="form-field">
<th scope="row">
<label for="term_meta[tax_keywords]">分类关键字</label>
<td>
<input type="text" name="term_meta[tax_keywords]" id="term_meta[tax_keywords]" value="<?php echo $keywords; ?>" />
<p class="description">输入分类关键字</p>
</td>
</th>
</tr>
-->文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/31556.html

<?php
} // edit_tax_image_field文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/31556.html

/**
* 保存自定义字段的数据
*
* @uses get_option() 从option表中获取option数据
* @uses update_option() 更新option数据,如果没有就新建option
*/
public function save_tax_meta( $term_id ){文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/31556.html

if ( isset( $_POST['term_meta'] ) ) {文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/31556.html

// $term_id 是当前分类的id
$t_id = $term_id;
$term_meta = array();文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/31556.html

// 获取表单传过来的POST数据,POST数组一定要做过滤
$term_meta['tax_image'] = isset ( $_POST['term_meta']['tax_image'] ) ? esc_url( $_POST['term_meta']['tax_image'] ) : '';文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/31556.html

/**
* TODO: 在这里追加获取其他自定义字段表单的值,如:
* $term_meta['tax_keywords'] = isset ( $_POST['term_meta']['tax_keywords'] ) ? $_POST['term_meta']['tax_keywords'] : '';
*/文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/31556.html

// 保存option数组
update_option( "ludou_taxonomy_$t_id", $term_meta );文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/31556.html

} // if isset( $_POST['term_meta'] )
} // save_tax_meta文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/31556.html

} // Ludou_Tax_Image文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/31556.html

$wptt_tax_image = new Ludou_Tax_Image();
不使用插件添加自定义字段的网站主题调用方法文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/31556.html

// $term_id 是当前分类的id,自行想办法获取
$term_id = $term->term_id;文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/31556.html

// 获取已保存的option
$term_meta = get_option( "ludou_taxonomy_$term_id" );文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/31556.html

// 取值
$tax_image = $term_meta['tax_image'] ? $term_meta['tax_image'] : '';文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/31556.html

二、wordpress使用插件 Advanced Custom Fields (高级自定义字段) 添加自定义字段

安装好插件后,在后台会出现字段一栏,点击进入即可添加自定义字段,具体的添加方法可以查看该插件的具体使用方法(该插件无法添加系统常规字段,可配合方法一使用)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/31556.html

wordpress不使用插件,自定义字段的添加与调用文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/31556.html

版权声明:本文为CSDN博主「zzsi」的原创文章,
原文链接:https://blog.csdn.net/qq_39339179/article/details/119168754文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/31556.html

  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/cms/31556.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定