WordPress给已有的表添加新字段

SongKer 发布时间:2014-09-12 分类:Web 阅读:3532次 2 条评论

WordPress给已有的表添加新字段,修改已有的数据库及程序,使之符合自己的需求。昨晚弄了2个小时,终于添加了自定义的字段。以wp_links友情链接表添加一个字段link_css为例,详细步骤及代码(刚学php,只会改代码不会做插件):

第一步: 

给wp_links友情链接表添加字段:link_css。mysql添加代码:

ALTER TABLE `wp_links`  ADD COLUMN `link_css` varchar(20) NULL DEFAULT 'black' AFTER `link_rss`;

第二步:

修改wp-admin/includes/meta-boxes.php,该页面是添加链接时候的表单页面。

在link_target_meta_box函数的下面添加如下代码:(添加3个单选按钮供选择样式)

//link_Class
function link_css_meta_box($link) { ?>
<fieldset><legend class="screen-reader-text"><span><?php _e('样式') ?></span></legend>
<p><label for="link_css_black" class="selectit">
<input id="link_css_black" type="radio" name="link_css" value="black" <?php echo ( isset( $link->link_css ) && ($link->link_css == 'black') ? 'checked="checked"' : ''); ?> />
<?php _e('<code>black</code> &mdash; 黑色样式.'); ?></label></p>
<p><label for="link_css_red" class="selectit">
<input id="link_class_red" type="radio" name="link_css" value="red" <?php echo ( isset( $link->link_css ) && ($link->link_css == 'red') ? 'checked="checked"' : ''); ?> />
<?php _e('<code>red</code> &mdash; 红色样式.'); ?></label></p>
<p><label for="link_css_green" class="selectit">
<input id="link_css_green" type="radio" name="link_css" value="green" <?php echo ( isset( $link->link_css ) && ($link->link_css == 'green') ? 'checked="checked"' : ''); ?> />
<?php _e('<code>green</code> &mdash; 绿色样式.'); ?></label></p>
</fieldset>
<p><?php _e('给链接选择样式.'); ?></p>
<?php
}

第三步:

修改wp-admin/edit-link-form.php,将第二步的box添加到 链接添加修改 的页面

在  add_meta_box('linktargetdiv', __('Target'), 'link_target_meta_box', null, 'normal', 'core'); 

代码后面添加如下代码:

add_meta_box('linkcssdiv', __('Css'), 'link_css_meta_box', null, 'normal', 'core');

第四步:

修改wp-admin/includes/bookmark.php,该页面是添加链接时候插入或者更新数据库php代码。

在代码$_POST['link_rss'] = esc_url($_POST['link_rss']);后面添加:

$_POST['link_css'] = esc_html( $_POST['link_css'] );

用来接受传递的字段数据。

将原来的更新代码:

$wpdb->update( $wpdb->links, compact('link_url', 'link_name', 'link_image', 'link_target', 'link_description', 'link_visible', 'link_rating', 'link_rel', 'link_notes', 'link_rss')

改为:

$wpdb->update( $wpdb->links, compact('link_url', 'link_name', 'link_image', 'link_target', 'link_description', 'link_visible', 'link_rating', 'link_rel', 'link_notes', 'link_rss','link_css')

将原来的添加代码:

$wpdb->insert( $wpdb->links, compact('link_url', 'link_name', 'link_image', 'link_target', 'link_description', 'link_visible', 'link_owner', 'link_rating', 'link_rel', 'link_notes', 'link_rss')

改为:

$wpdb->insert( $wpdb->links, compact('link_url', 'link_name', 'link_image', 'link_target', 'link_description', 'link_visible', 'link_owner', 'link_rating', 'link_rel', 'link_notes', 'link_rss','link_css')

完成。

自己不会做插件,看了下源代码,进行修改的。

备注:WordPress 3.9~4.0版本下测试运行。

已有2条留言

发表评论:

◎欢迎您的参与讨论。