SongKer 发布时间:2014-09-12 分类:Web 阅读:5608次 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> — 黑色样式.'); ?></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> — 红色样式.'); ?></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> — 绿色样式.'); ?></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版本下测试运行。
发布于 2014-09-16 21:15:32 回复该评论
发布于 2014-09-13 23:03:52 回复该评论
发表评论:
◎欢迎您的参与讨论。