Ashuwp_framework icon indicating copy to clipboard operation
Ashuwp_framework copied to clipboard

需要更详细的使用教程

Open mochen91 opened this issue 7 years ago • 7 comments

CSS略懂,PHP小白一个,自己做了WP主题准备自己用,又不想来回改代码,所以打算做个后台一劳永逸。刚好在阿树博客看到这个框架,能省去不少功夫啊,不然一些自定义字段什么的都要自己写了。不过苦闷的是,相关文档里面说的不够细致,网上也找不到相关的教程,所以只能自己摸索了。我主要有三个需求,已经配置了,前段页面还没做完,一些数据不还没调用,还不知道,这里一并贴出来,希望大大能帮忙参考下。

**1.遇到问题:**后台设置更新后前台调出来的数据仍然是旧数据。后台配置代码如下:

$page_info = array(
  'full_name'  => '主题设置',
  'optionname' => 'general',
  'child'      => false,
  'filename'   => 'generalpage'
);
$ashu_options[] = array(
  'name' => '上传logo',
  'id'   => 'logo_URI',
  'desc' => '上传网站logo,尺寸200pxx50px;',
  'std'  => '',
  'button_text' => '上传',
  'type' => 'upload'
);
$option_page = new ashuwp_options_feild($ashu_options, $page_info);

前端调用代码: <?php echo get_option('logo_URI');?>

2.怎么把做出来的设置页面放在外观菜单下,和主题一起生效?child那里怎么设置?

$page_info = array(
  'full_name'  => '主题设置',
  'optionname' => 'general',
  'child'      => false,
  'filename'   => 'generalpage'
);

配置文档里面是有说明

child - 是否为顶级页面,若设置为true,则必须设置parent_slug参数

parent_slug - 父级页面的名称,可以是使用本框架配置的页面filename的值,也可以是wordpress默认已经存在的页面,比如'parent_slug'=>'edit.php?post_type=product',设置页面将会出现在自定义文章类型product的下面。

但父级页面的名称是什么?不知道了,试了好多都不对,这些在官方文档里面列出来就好了。

3.利用array Input类型做热搜标签是否可以,我看后面的type是numbers_array,内容必须是数字吗?如果是汉字是否可以正常使用。

$ashu_options[] = array(
  'name' => 'Array Input',
  'id'   => 'array_input',
  'desc' => 'Set type as numbers array, Input numbers separated by commas, The data saved as array.',
  'type' => 'numbers_array'
);

4.在文章页面需要添加两个自定义字段,一个是相关阅读,一个是参考资料,但在config-example.php里面没有找到相应的实例,所以我就用Input And Upload Multiple改了个,把upload改成了text,不知道这样是否生效。

修改前的代码是:

$tab_meta[] = array(
  'name' => 'Input And Upload Multiple',
  'id'   => 'input_upload_multiple',
  'desc' => 'Set the type as group, Set the subtype as array, And set the multiple as true, The group fields is multiple.',
  'std'  => '',
  'subtype' => array(
    array(
      'name' => 'Link',
      'id'   => 'link',
      'desc' => 'Link for image',
      'std'  => 'Hello ashuwp.',
      'type' => 'text'
    ),
    array(
      'name' => 'Image',
      'id'   => 'image',
      'desc' => 'Pleas upload a image, Or fill the blank with image uri.',
      'std'  => '',
      'button_text' => 'Upload',
      'type' => 'upload'
    ),
  ),
  'multiple' => true,
  'type' => 'group'
);
$tab_meta[] = array(
  'type' => 'close'
);

$tab_box = new ashuwp_postmeta_feild($tab_meta, $tab_conf);

修改后的代码是:

$tab_meta[] = array(
  'name' => '参考资料',
  'id'   => 'reference_material',
  'desc' => '',//字段说明
  'std'  => '',//默认内容
  'subtype' => array(
    array(
      'name' => '链接',
      'id'   => 'reference_material_link',
      'desc' => '',
      'std'  => '',
      'type' => 'text'
    ),
    array(
      'name' => '文字说明',
      'id'   => 'reference_material_title',
      'desc' => '参考资料的标题。',
      'std'  => '',
      'type' => 'text'
    ),
  ),
  'multiple' => true,
  'type' => 'group'
);
$tab_meta[] = array(
  'type' => 'open'
);

$tab_box = new ashuwp_postmeta_feild($tab_meta, $tab_conf);

当然我把tab取消了,只保留了一个。效果是这样的: 效果图 还有这种以数组形式保存的数据怎么调用,大大能给个实例就好了。譬如把上面的参考资料排列成无序列表。

mochen91 avatar Jan 01 '18 16:01 mochen91

问题一:数据的获取问题 配置代码没有问题,注意配置代码里面中,$page_info数组里面的filename参数,你的代码中设置generalpage,还有optionname参数,你设置为general,这两个参数的效果分别是: 'filename' => 'generalpage', 那么你访问这个设置页面的url就是 xxx.com/wp-admin/admin.php?page=generalpage 'optionname' => 'general', 那么这个页面的设置数据保存的名称为ashuwp_general。 关于设置数据的保存,我们的框架并不是每个设置项保存一条数据,而是整个页面的所有数据以数组形式保存成一条数据,http://www.ashuwp.com/framework/getdata 中有说明,所以你那里获取设置数据应该是: $general_options = get_option('ashuwp_general'); echo $general_options['logo_URI'];

问题二:parent_slug的设置 parent_slug参数,可以是你自己添加的顶级设置页面,也就是你前面的filename参数。 如果你要放在“外观”项下面,你在后台打开“外观”页面,这个页面的url是 xxx.com/wp-admin/themes.php,那parent_slug设置为theme.php即可,其他页面依次。

问题三:numbers_array的使用 type是numbers_array的话,只能是数字,如果你要文字,用text即可,在前台输出时自己用explode函数切割成数组即可。

问题四: 这个配置的代码是没有问题的,在后台应该是出现两个 text的组合框,然后可以点击增加。 这种组合输入框的话,也是数组,所以获取的数据是多维数组,最好自己用var_dump打印查看一下结构具体是怎样的。

ashuwp avatar Jan 02 '18 02:01 ashuwp

谢谢大大,这下就明白了。我把$general_options = get_option('ashuwp_general');放在页头了,这样get一次就行了。 也就是说,框架里面的类型都是可以随意组合的,并不受实例的限制的,只需要把保存的数据类型改下就好了,对吧? 最后还有一个小问题,上传图片时能不能自定义上传目录呢?后台有上传网站logo,想把logo单独放在一个文件夹下方便管理。

在 2018年1月2日 上午10:11,ashuwp [email protected]写道:

问题一:数据的获取问题 配置代码没有问题,注意配置代码里面中,$page_info数组里面的filename参数,你的代码中设置generalpage, 还有optionname参数,你设置为general,这两个参数的效果分别是: 'filename' => 'generalpage', 那么你访问这个设置页面的url就是 xxx.com/wp-admin/admin.php? page=generalpage 'optionname' => 'general', 那么这个页面的设置数据保存的名称为ashuwp_general。 关于设置数据的保存,我们的框架并不是每个设置项保存一条数据,而是整个页面的所有数据以数组形式保存成一条数据,http:/ /www.ashuwp.com/framework/getdata 中有说明,所以你那里获取设置数据应该是: $general_options = get_option('ashuwp_general'); echo $general_options['logo_URI'];

问题二:parent_slug的设置 parent_slug参数,可以是你自己添加的顶级设置页面,也就是你前面的filename参数。 如果你要放在“外观”项下面,你在后台打开“外观”页面,这个页面的url是 xxx.com/wp-admin/themes.php, 那parent_slug设置为theme.php即可,其他页面依次。

问题三:numbers_array的使用 type是numbers_array的话,只能是数字,如果你要文字,用text即可,在前台输出时自己用explode函数切割成数组即可。

问题四: 这个配置的代码是没有问题的,在后台应该是出现两个 text的组合框,然后可以点击增加。 这种组合输入框的话,也是数组,所以获取的数据是多维数组,最好自己用var_dump打印查看一下结构具体是怎样的。

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/ashuwp/Ashuwp_framework/issues/3#issuecomment-354693689, or mute the thread https://github.com/notifications/unsubscribe-auth/AL5UG0ZkrSbkbf-FLyB-HsUioYoHE3joks5tGZBcgaJpZM4RQHF7 .

mochen91 avatar Jan 02 '18 11:01 mochen91

上传图片使用的是wp自带的媒体中心,所以并不能在上传的时候定义上传路径哦。

ashuwp avatar Jan 02 '18 11:01 ashuwp

@ashuwp 明白了,谢谢大大耐心解答。

mochen91 avatar Jan 02 '18 12:01 mochen91

@ashuwp 大大,textarea入库时是不是把换行符处理掉了呀,录入的时候是一行一个,前台输出时用explode分割的时候换行符分割不了了。

mochen91 avatar Jan 04 '18 15:01 mochen91

并没有... 范例:

<?php
$general_option = get_option('ashuwp_general'); //获取设置数据
$str = $general_option['_id_textarea']; 

$a = explode( PHP_EOL , $str );
var_dump($a);
?>

ashuwp avatar Jan 07 '18 14:01 ashuwp

谢谢大大,我用explode('\n',#str)切的没有成功。

2018-01-07 22:41 GMT+08:00 ashuwp [email protected]:

并没有... 范例:

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/ashuwp/Ashuwp_framework/issues/3#issuecomment-355827175, or mute the thread https://github.com/notifications/unsubscribe-auth/AL5UG6O1NoCTOILC59YSMV-7eUq_Rthvks5tINd7gaJpZM4RQHF7 .

mochen91 avatar Jan 09 '18 13:01 mochen91