阿树工作室—主题后台框架

下载最新版本

2014.10.23更新1.3版本

修改了配置文件的示例代码,1.2版本的示例代码中,配置两个设置页面的变量名重复,导致很多网友直接用示例数据测试时输出失败。

2014.7.17更新1.2版本

修改metaboxclass.php,对wp_enqueue_media()函数的加载做了判断,避免在自定义文章类型时,不加载media相关js和css,以及重复加载造成特色图像等无法使用的问题。

2014.5.28 更新1.1版本。

更新了设置文件中数组选线(numbers_array),在值为空的时候提示出错。更新:在三个类文件中加了非空的判断

简介

本框架由阿树工作室发布,众网友可自由使用,使用本框架需要一定的代码基础,所以使用之前请先确保已经具有适量的php语法知识以及对wordpress有一定的了解。
本框架的用途是:

  1. 给你的wordpress文章发布页面添加自定义面板和自定义字段
  2. 给你的wordperss网站后台添加设置页面
  3. 给你的wordpress分类页面以及分类编辑页面添加自定义字段

本框架可以添加的表单元素类型有,以下所有元素都支持上面三项。

  1. 普通提示文字
  2. 文本输入框 input[text]
  3. 文本输入域 input[textarea]
  4. 图片上传 media upload 使用wordpress 3.5以后的新媒体中心
  5. 单选框 radio
  6. 复选框 checkbox
  7. 下拉框 select (可选择 页面、分类、侧边栏、菜单、自定义的下拉项)
  8. 数组输入 number_array (可保存为一个数字数组)
  9. 文本编辑器 tinymce (调用wordpress默认的tinymce编辑器)

 

使用方法

(一) 文件介绍

  1. 本压缩包下面包含了两个文件 add-functions.php readme.html以及三个文件夹css include js
  2. add-functions.php文件有五行代码,用来包含必要的5个文件
  3. css文件夹下有一个css文件,是后台表单元素的样式文件
  4. js文件夹里面有三个文件,其中只有metabox_fields.js是必须的。用来支持后台图片上传(无需改动)
  5. include文件夹中的class-taxonomy-feild.php文件,是给分类添加自定义字段的类文件(无需改动)
  6. include文件夹中的metaboxclass.php是给文章编辑页面添加自定义面板的类文件(无需改动)
  7. include文件夹中的options.php文件时给后台添加设置页面的类文件(无需改动)
  8. include文件夹中的simple-term-meta.php文是从插件“Simple Term Meta”中拷贝出来,里面是分类字段的保存和获取所需要的函数(无需改动)
  9. include文件夹中的config.php文件是配置文件,需要添加的任何字段请编辑此文件添加配置(请编辑此文件)
  10. include文件夹中的config-example.php文件时配置文件的示例代码(可删除)

(二) 使用方法

  1. 将本框架的所有文件和文件夹拷贝到你的主题文件夹下。(若有同名的文件夹,合并即可。若有同名的文件则请慎重)
  2. 将add-functions.php文件中的5行代码复制到你主题的functions.php文件中(建议代码放到最前面)
  3. 编辑配置include文件夹中的config.php文件,添加你所需要的字段或设置页面

数据的获取

所有数据的获取都依赖配置数组中id参数的值

(一) 文章自定义字段值的获取

以config-example.php中的Text Input为例: 获取数据,其中'id' => '_id_text'

<?php $meta = get_post_meta($post_id, '_id_text', true); ?>

更多数据的获取和输出方法请访问 http://www.treework.cn

 

(二) 分类自定义字段值的获取

以config-example.php中的Text Input为例: 获取数据,其中'id' => '_id_text'

<?php $meta = get_term_meta($term_id, '_id_text', true); ?>

更多数据的获取和输出方法请访问 http://www.treework.cn

 

(三) 设置页面设置数据的获取

以config-example.php中optionname为general的设置页面下属的Text Input为例: 获取数据,其中'id' => '_id_text

<?php
global $ashu_option;
$value = $ashu_option['general']['_id_text'];
?>

更多数据的获取和输出方法请访问 http://www.treework.cn

 

最后

 

  • 对本框架有任何建议、想法、评论或者发现了bug。访问hppt://www.treework.cn/bbs/,或者联系作者admin@treework.cn
  • 如果你对本框架有更好的改进意见,请一定联系我们,帮助我们开发更完善更严谨的框架代码。谢谢。
  • 限于篇幅,本框架的使用方法和数据获取还有很多没有写到,如果使用中遇到问题,请访问hppt://www.treework.cn/bbs/,或者联系作者admin@treework.cn

此为发布页面,更多使用的详细教程将后续添加。请关注。

已有30条评论

  1. 华子
    华子 : 回复

    树哥,设置选项类文件后台默认值被清空再保存后就调不出默认值了,分类和文章的自定义可行,不知道能修复下这个吗?

    • 阿树工作室
      阿树工作室 回复华子: 回复

      个人认为这个有时候需要清空数据,给你几个建议,建议一、在输出数据的时候判断是否为空,设定默认值。 建议二、在设置的描述中加提示问题,提醒。
      当然如果要修改的话,主要修改ashuwp_options_feild.php这个文件中的make_data_available函数,将第40行的判断代码修改。
      默认的判断代码:if( isset($option[‘id’]) && isset($ashu_option[$this->pageinfo[‘optionname’]][$option[‘id’]]))
      修改为:if( isset($option[‘id’]) && isset($ashu_option[$this->pageinfo[‘optionname’]][$option[‘id’]]) && $ashu_option[$this->pageinfo[‘optionname’]][$option[‘id’]]!=” )

  2. 囧囧有神
    囧囧有神 : 回复

    你好,用了框架后显示ashu_taxonomy_feild语法错误?

    • 阿树工作室
      阿树工作室 回复囧囧有神: 回复

      请使用二进制模式上传文件。

  3. 不准
    不准 : 回复

    输出

    <img src="” />
    最好封装一下,直接传递两个参数,既可以输出,不知道可以不?

  4. 大刘
    大刘 : 回复
    • function hijack_preview_pic(){   
    •     jQuery(‘.kriesi_preview_pic_input’).each(function(){   
    •         jQuery(this).bind(‘change focus blur ktrigger’, function(){    
    •             $select = ‘#’ + jQuery(this).attr(‘name’) + ‘_div’;   
    •             $value = jQuery(this).val();   
    •             $image = ‘<img src =“‘+$value+'” />’;   
    •             var $image = jQuery($select).html().append($image).find(‘img’);   
    •             //set timeout because of safari   
    •             window.setTimeout(function(){   
    •                 if(parseInt($image.attr(‘width’)) < 20){       
    •                     jQuery($select).html();   
    •                 }   
    •             },500);   
    •         });   
    •     }); 

    框架中(包括这段代码),关于失焦后预览这部分代码,如果第一次上传前,点前面的input获得焦点后(或者离开),会出现一点小瑕疵,即显示图片不存在。(firefox中)

  5. 小安
    小安 : 回复

    分类字段 无法保存数据   和wp版本有关系么

    • 阿树工作室
      阿树工作室 回复小安: 回复

      如果你是在中途添加本框架,请重新启用主题

  6. laiydesign
    laiydesign : 回复
    • 单选框 radio
    • 复选框 checkbox
    • 下拉框 select (可选择 页面、分类、侧边栏、菜单、自定义的下拉项)
    • 数组输入 number_array (可保存为一个数字数组)

    这几个如何写判断语句呀?

  7. laiydesign
    laiydesign : 回复

    如何判断checkbox对应的值?

  8. dprince
    dprince : 回复

    下载404.。尽快修复吧。。

  9. 阿喵
    阿喵 : 回复

    老大,就近这句话该怎么理解呢?【这是在config.php里面配置,没有general的话,就说明你配置文件里面没有general

  10. 啊喵
    啊喵 : 回复

    老大,太牛x了。我刚去下载。

    我太菜了,我在后台用你的框架

    然后上传图片

    接着我就在index.php里输入

    <img src="<?php global $ashu_option; $value = $ashu_option['general']['_id_upload']; ?>">
    然后图片没出来,求帮助。不知道哪里写错了。
    • 阿树工作室
      阿树工作室 回复啊喵: 回复

      e …..php输出都不会。

      <?php
      global $ashu_option;
      $value = $ashu_option['general']['_id_upload'];
      ?>
      <img src="<?php echo $value; ?>" />

      • 阿喵
        阿喵 回复阿树工作室: 回复

        没有general的话怎么办呢?要怎么才能增加general?

      • 阿喵
        阿喵 回复阿树工作室: 回复

        经过测试,在childoption或者我自己再创建的子菜单都可以正常输出。只有在general下面的,都无法输出。

      • 阿喵
        阿喵 回复阿树工作室: 回复

        我发现一个现象

        用下面代码时,是可以显示的。也就是childoption是有效的,但是当我用general后,就无法输出了。

        <?php
        global $ashu_option;
        $value = $ashu_option['childoption']['_id_numbers'];
        ?>
        <?php echo $value; ?>
      • 阿喵
        阿喵 回复阿树工作室: 回复

        用了echo输出,还是没用。按f12,发现输出是空的。。。

        求救。。

        是不是给的config.php里的id有很多是重复的,所以无效?

        • 阿树工作室
          阿树工作室 回复阿喵: 回复

          id肯定不能重复啊,,,,而且要避开wp默认的关键词,比如post   title

          • 启点
            启点 回复阿树工作室: 回复

            确实存在这个问题,麻烦博主认真检查下。

            <?php global $ashu_option; print_r($ashu_option); ?>

            根本就没有‘general’这个组。。。

            • 阿树工作室
              阿树工作室 回复启点: 回复

              额,,,这是在config.php里面配置,没有general的话,就说明你配置文件里面没有general

  11. 小马
    小马 : 回复

    这边也是编辑器一块使用会有一些冲突。。不知道怎么解决。。。

    • 小马
      小马 回复小马: 回复

      写错地了。。。

      • 阿树工作室
        阿树工作室 回复小马: 回复

        以前有人把自定义字段值的ID设置为post等等词,会导致冲突,,,你看看你是不是这样的,字段的id要避免post   title 等词

  12. boy
    boy : 回复

    如果只用图片上传字段  会报错 那个wp.media 获取不到,必须和 编辑器字段同时使用才有效。博主这个怎么可以改进啊

    TypeError: ‘undefined’ is not a function (evaluating ‘wp.media({

     title: ‘Insert image’,
     button: {
       text: ‘Insert’,
     },
     multiple: false
    })’)

    • 阿树工作室
      阿树工作室 回复boy: 回复

      不知道你是在什么情况下用到。。。。一般添加文字有默认编辑器,默认就已经加载了media相关的所有js和css,如果你是在自定义文章类型没有默认编辑器的情况下使用,可以试试让自定义文章类型支持特色图像,,这样也会加载media相关的js和css…

      下一个版本修改。。

      • boy
        boy 回复阿树工作室: 回复

        我在自定义文章类型而且没有编辑器都情况下使用。 感谢博主奉献免费主题和教程。

  13. PC丶爱好者
    PC丶爱好者 : 回复

    灰常感谢树大神的框架~~哇咔咔这样以后就不愁主题设置的事情啦~~

  14. wkang956
    wkang956 : 回复

    图片上传功能不行啊,

    • 阿树工作室
      阿树工作室 回复wkang956: 回复

      不会吧。。。我测试了。。。请问你是在 文章自定义字段?还是设置页面?还是分类页面?

发表评论