标签: 知识点

  • wordpress原生主题二次开发常用到的一些知识点

    WordPress原生主题二次开发时,下面这些“高频知识点”建议先吃透。它们既能帮你快速定位要改的文件,也能避免破坏升级路径,90%的日常需求都能覆盖。

    模板层级(Template Hierarchy)

    先判断“WordPress现在会加载谁?”——同一类页面可以有多份模板,系统按固定优先级依次命中。

    单篇文章:single-{post-type}.php→single.php→singular.php→index.php

    分类目录:category-{slug}.php→category-{id}.php→category.php→archive.php→index.php

    页面:自定义模板(后台可选)→page-{slug}.php→page-{id}.php→page.php→singular.php→index.php

    404:404.php→index.php

    牢记这条“降级链”,就能精准地把代码写到“最小粒度”文件里,避免整站通用模板写满if/else。

    目录组织与最小可用文件

    纯技术上index.php+style.css就能被WP识别,但二次开发建议先补齐“安全7件套”:

    header.php/footer.php/sidebar.php/functions.php/single.php/page.php/404.php

    再按类型分目录:

    assets/
    ├─ css/ ├─ js/ ├─ images/
    template-parts/
    ├─ post/ ├─ page/ ├─ navigation/
    inc/
    ├─ custom-post-type.php ├─ shortcode.php …

    在functions.php用require_onceget_template_directory().’/inc/xxx.php’;按需加载,保持主函数文件不过千行。

    functions.php的“钩子思维”

    只改“钩子”不动核心:

    注册菜单register_nav_menus()

    注册侧边栏register_sidebar()

    注册主题支持add_theme_support(‘post-thumbnails’)

    引入资源

    add_action('wp_enqueue_scripts', function () {
        wp_enqueue_style('main', get_stylesheet_uri(), [], '1.0');
        wp_enqueue_script('main', get_template_directory_uri() . '/assets/js/main.js', [], '1.0', true);
    });

    这样parent主题升级不会覆盖你的逻辑。

    子主题(ChildTheme)——二次开发第一站

    新建文件夹父主题-child,里面放style.css与functions.php即可。

    在style.css头部Template:行填写父主题目录名,WP会自动把父子样式与功能串起来。

    想改哪份模板,就把父主题同名文件复制过来再改;父主题升级时你的文件安然无恙。

    模板片段(TemplatePart)

    复用利器:get_template_part(‘template-parts/content’,’product’)会尝试加载

    template-parts/content-product.php→不存在则降级到template-parts/content.php。

    把循环(loop)、卡片、导航拆成碎片,代码可读性直接翻倍。

    TheLoop循环

    任何要输出文章列表的地方都离不开它,最小骨架:

    if (have_posts()) :
        while (have_posts()) : the_post();
            the_title('<h2>', '</h2>');
            the_content();
        endwhile;
    endif;

    二次开发常配合setup_postdata($post)或自定义WP_Query做多重循环,记得wp_reset_postdata()还原全局变量。

    自定义文章类型&字段(CPT+Meta/ACF)

    用register_post_type()与register_taxonomy()写在inc/cpt.php里,模板按层级命名:

    archive-{post_type}.php、single-{post_type}.php即可自动命中。

    字段输出用get_post_meta(get_the_ID(),’price’,true)或者AdvancedCustomFields的the_field(‘price’)都行,模板里尽量保持“数据–表现”分离,方便后期换前端。

    国际化(i18n)

    在functions.php里load_theme_textdomain(‘textdomain’,get_template_directory().’/languages’),

    模板里用__()/_e()包起需要翻译的字符串,配合Poedit生成.po/.mo扔到languages目录,后续做多语言站直接上WPML或Polylang即可。

    版本与调试

    开发阶段wp-config.php里打开WP_DEBUG/WP_DEBUG_LOG,浏览器即时报红。

    上线前把style.cssVersion号与wp_enqueue_*的$ver统一,清缓存无烦恼。

    任何修改先在子主题或专属插件完成,避免“直接动父主题→升级被覆盖→一夜回到解放前”。

    掌握以上9块,就能在不碰WP核心的前提下,把原生主题改造成“高度可维护、可升级、可交接”的定制站。

  • wordpress主题模板开发必须要掌握的知识点

    使用wordpress主题搭建网站非常简单,但是要修改wordpress主题模板,或者是开发wordpress主题模板,就需要掌握必要的知识。精通HTML、熟悉CSS,懂PHP语言。

    HML5

    HTML的全称为超文本标记语言,是一种标记语言。它包括一系列标签,通过这些标签可以将网络上的文档格式统一,使分散的Internet资源连接为一个逻辑整体。HTML文本是由HTML命令组成的描述性文本,HTML命令可以说明文字,图形、动画、声音、表格、链接等。

    超文本是一种组织信息的方式,它通过超级链接方法将文本中的文字、图表与其他信息媒体相关联。这些相互关联的信息媒体可能在同一文本中,也可能是其他文件,或是地理位置相距遥远的某台计算机上的文件。这种组织信息方式将分布在不同位置的信息资源用随机方式进行连接,为人们查找,检索信息提供方便。

    CSS3

    层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。CSS不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。

    CSS 能够对网页中元素位置的排版进行像素级精确控制,支持几乎所有的字体字号样式,拥有对网页对象和模型样式编辑的能力。

    PHP

    PHP(PHP: Hypertext Preprocessor)即“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法学习了C语言,吸纳Java和Perl多个语言的特色发展出自己的特色语法,并根据它们的长项持续改进提升自己,例如java的面向对象编程,该语言当初创建的主要目标是让开发人员快速编写出优质的web网站。 PHP同时支持面向对象和面向过程的开发,使用上非常灵活。