天涯论坛

 找回密码
 立即注册
搜索
查看: 23|回复: 1

真香,30天做一套wordpress主题(第2天):吃透主题设置

[复制链接]

3123

主题

3万

回帖

9910万

积分

论坛元老

Rank: 8Rank: 8

积分
99108625
发表于 2024-10-6 12:40:41 | 显示全部楼层 |阅读模式

欢迎来到《真香,30天做一套wordpress主题》系列文案咱们目的是(蛀牙!)创立一套全新的wordpress主题,花上30天的时间闭关修炼,倘若你看到的第1文案不是《基本框架搭建》,意见你关注咱们数字江湖异志录),从该系列的第1起始阅读。

咱们尽可能保持文案循序渐进通俗易懂,请确保自己已然把握了那一篇文案所有内容时才选取跳过,否则可能会错失关键的信息噢~

这儿咱们假定你已然知晓了以下基本知识,这些基本知识对理解文案内容是至关重要的:

1. HTML/CSS/JS基本

2. PHP基本

3. 怎样运用Wordpress

4. 怎样搭建web环境

倘若已然知晓了以上基本知识,恭喜你,本系列的任何文案内容对你而言都什么难度。

直奔主题

新版的wordpress增多了自定义主题设置的功能,并且官方举荐研发者把关联的设置放到主题自定义里。默认的状况下,主题会自动开启有些自定义参数(即使咱们的主题还运用它们):

咱们在主题文件夹下创立一个functions.php文件,这个文件会影响到主题的方方面面,首要咱们创立自定义的主题参数连接:

// Customizer function my_customize_register($wp_customize) { }; add_action( customize_register, my_customize_register );

关联的主题设定咱们都会写到my_customize_register里,咱们先来认识三个基本概念:

1. Section

2. Settings

3. Control

为了方便理解,咱们能够把section当成设置的一级菜单,control是菜单里的设置控件,settings则是存储设置的容器。

经过查阅wordpress文档,咱们找出了哪些默认开启的section的独一id,而后咱们在代码里把它们去除:

// Customizer function my_customize_register($wp_customize) { // remove default section $wp_customize->remove_section(title_tagline); $wp_customize->remove_section(custom_css); $wp_customize->remove_section(static_front_page); };

而后咱们添加自己的section、control、settings,这儿咱们先盘点一下日前需要咱们需要对页面的公共顶部进行设置,公共顶部含有以下元素:

1. 博客标题

2. 主标语(slogan/tagline)

3. 副标语

那样咱们在functions.php里实现代码是像这般的:

$wp_customize->add_section( header_setting , array( title => __( Header Setting), priority => 10, ) ); $wp_customize->add_setting( blog_title , array( default => get_bloginfo(name), transport => refresh, ) ); $wp_customize->add_setting( main_tagline , array( default => Free the Internet, transport => refresh, ) ); $wp_customize->add_setting( sub_tagline , array( default => Across the Great Wall we can reach every corner in the world, transport => refresh, ) ); $wp_customize->add_control( input_blog_title, array( label => __( Blog Title), section => header_setting, settings => blog_title, type => text, ) ); $wp_customize->add_control( input_main_tagline, array( label => __( Main tagline), section => header_setting, settings => main_tagline, type => text, ) ); $wp_customize->add_control( input_sub_tagline, array( label => __( Sub tagline), section => header_setting, settings => sub_tagline, type => textarea, ) );

这儿咱们用到了三个办法

1. add_section

2. add_settings

3. add_control

对应section、settings、control的添加,需要重视的是,咱们在设置文本的title输出那里用到了魔术办法__(),这是为后期主题的国际化做准备,魔术办法__()和魔术办法_e()都是为了主题多语言而存在的,它们之间的区别便是__()返回字符串,而_e()直接把文本在页面里输出,当然,它们都是按照当前系统设定的语言找到对应的语言包输出的,主题国际化的关联内容咱们在本系列的后期进行展开。

这般设定之后,咱们能够在主题的任意位置调用这些设置好的内容,此刻咱们把它们在home.php里表示出来瞧瞧

<body> <header> <?php echo get_theme_mod(blog_title) ?> <?php echo get_theme_mod(main_tagline, Free the Internet) ?> <?php echo get_theme_mod(sub_tagline, Across the Great Wall we can reach every corner in the world) ?> Header Area </header> </body>

这儿咱们用到的内置办法是get_theme_mod,咱们传两个参数给它,一个是主题设置的settings id,一个是默认值。

还记得咱们在第1天创立框架时有添加的style amp-custom吗,咱们在里面添加一段css,让咱们的header凸显出来:

<style amp-custom> header { width: 100vw; height: 18.5185vw; bac公斤round: gray; } </style>

刷新页面,咱们应该能看到这般的页面输出:

这儿,Hhackers blog是我的blog名叫作,其它的便是刚才咱们设定的主标语和副标语的默认值了。

咱们在主题自定义那里设定这些settings并点击发布时,页面里对应的部分就会发生变化了。

接下来咱们顺便把主题的favicon参数实现了吧,favicon是表示在浏览器标签页上的小图标,咱们根据之前的办法创立一套settings和control,并绑定到咱们的section里:

$wp_customize->add_setting( favicon , array( default => , transport => refresh, sanitize_callback => absint, ) ); $wp_customize->add_control( new WP_Customize_Site_Icon_Control( $wp_customize, set_favicon, array( label => __( Favicon ), description => __( Favicon is what you see in <strong>browser tabs</strong>, bookmark bars), section => header_setting, settings => favicon, width => 32, height => 32, ) ) );

这儿咱们直接运用了wordpress的内置控件

WP_Customize_Site_Icon_Control,这个控件能够直接对照片进行上传和裁剪。

而后咱们在header.php公共头里运用运用这个favicon:

<?php if ($icon = wp_get_attachment_url(get_theme_mod(favicon))) { echo <link rel="shortcut icon" href=".$icon.">; } ?>

这儿需要重视的是咱们直接get_theme_mod取到的内容是一个数字id,咱们需要运用wp_get_attachment_url获取照片id对应的url路径。

这般咱们刷新页面 ,就能在标签页上看到咱们设置好的的favicon了。

总结和预告

今天咱们定义了一套主题的设置选项,之后咱们会把所有跟主题关联的设置统统放到里面,wordpress的主题自定义设置设计得非常优雅,相针对以往的创立专门的主题设置页面而言,在自定义设置里添加相应的掌控选项非常简单和直接,让咱们能够对主题设定进行统一管理。

明天(第3天)咱们将真正将这一套公共顶部搭建起来,并且实现页面在PC、平板、手机上的响应式布局。

倘若爱好这个系列的文案,赶快关注咱们吧,不要错失后续的更加多干货噢。





上一篇:WP主题研发02:wordpress主题研发流程
下一篇:港协暨奥委会设置大型主题安装迎奥运
回复

使用道具 举报

3069

主题

3万

回帖

9913万

积分

论坛元老

Rank: 8Rank: 8

积分
99138952
发表于 2024-10-19 05:19:34 | 显示全部楼层
可以发布外链的网站 http://www.fok120.com/
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

站点统计|Archiver|手机版|小黑屋|天涯论坛 ( 非经营性网站 )|网站地图

GMT+8, 2024-11-23 01:32 , Processed in 0.126485 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.