我如何找出网站的某个部分由什么人控制?

时间:2021-12-31 作者:shenkwen

我一直在努力让自己熟悉WordPress,但以Joomla的心态,我发现这相当困难。在Joomla,当你试图找出一个区域的控制权时,你只需要找出它的位置,然后你就可以很容易地找出它是一个模块还是一个组件。但在WordPress中,情况完全不同。例如,在此网站上:https://fedlearningcenter.com/ 我正试图为学习目的重新制作它,并且知道它是使用BuddyBoss构建的,在我登录后,客户登录区域将如下图所示enter image description here

虽然我知道这个地区是Buddyboss建造的,但我仍然不知道如何建造它。它在导航栏中,可能是一个小部件(不太可能,但仍然可能,不是吗?),它可以由主题控制,也可以由页面生成器控制,甚至可以由其他一些可能影响导航栏的插件控制。那么,我如何找出谁是真正的控制者,并将我的好友设置与之联系起来呢?

P、 S:我的问题不仅仅是关于Buddyboss。我的问题是了解wordpress如何在更基本的层面上管理页面上的元素。

1 个回复
最合适的回答,由SO网友:Tom J Nowell 整理而成

不管WordPress怎么做,如果BuddyBoss决定实现自己的系统(几乎所有的pagebuilder插件或定制系统都是这样),它就无法在BuddyBoss内部进行对等。

前端的基本职责分为以下几方面:

主题过滤块/短代码/小部件导航菜单,如ACF field layouts、WP Bakery、Elementor、Learndash、WooCommerce等插件生成的UI该主题对所有人都是免费的,大多数主题(但不是所有主题)都有几个共同的功能和过滤器,插件等可以连接这些功能和过滤器来添加额外的内容。主题具有模板层次结构,任何模板都可以通过get_template_part. 如果正在使用子主题,也可以从该主题加载模板。

请记住,主题可能会忽略其中的大部分内容,并提供一个带有脚本标记的裸体前端,该脚本标记使用Vue或React加载无头应用程序。

过滤器使任何代码都有机会将自身插入某个位置或修改正在过滤的内容。例如,您的帖子内容末尾可能有大量附加内容,可以通过任何插件或任何位置的主题添加这些内容。没有清晰的逻辑将其与特定的地方联系起来。

块/短代码/小部件最接近您的习惯,随着基于块的主题变得越来越普遍,WordPress的输出越来越面向块。由于遗留的原因,短代码和小部件仍将存在,但它们正被大量淡化,并被块取代,例如新的基于块的小部件编辑器。

导航菜单通过walker类显示其HTML,这些菜单通常由wp_nav_menu 呼叫许多主题覆盖walker来实现定制菜单HTML,尤其是引导UI。

插件生成的UI是单独唯一和定制的。E、 g.有加载Laravels刀片模板系统的主题和插件。我见过一些使用细枝生成HTML输出的网站。一些插件在带有自定义过滤器的自定义接口中重用短代码。自定义是关键,它们都有唯一的和单独的实现,没有通用的共享解决方案。

例如,重力表单中的表单和忍者表单中的表单是不兼容的,它们不使用公共框架,它们是完全定制的独立代码库,使用不同的方法来呈现HTML。它们可能提供一个块或短代码,但其内部以及在该位置输出的内容是一个具有自己文档和API的黑盒。

P、 S:我的问题不仅仅是关于Buddyboss。我的问题是了解wordpress如何在更基本的层面上管理页面上的元素。

不幸的是,一般的答案对你来说不是很有用,也不令人满意。

检查你感兴趣的物品的代码,寻找线索。HTML类名可以给出很大的提示,例如,如果它有类名wp-popular-posts-widget, 这可能是流行的posts小部件grep 或者在Visual Studio代码中右键单击“在文件夹中查找”

您想要更改或添加的HTML位于BuddyBoss文件中,或者可以通过BuddyBoss API或修改进行更改的可能性是overwhelming。你需要的是BuddyBoss的帮助,而不是WordPress的帮助。甚至可能你永远也无法从你复制的网站上找到HTML,因为他们聘请了一名开发人员专门为他们编写自定义代码。

WP的模板系统本身提供的最接近的模板系统是:

如果主题构建正确,它将调用body_class 这将提示WP试图从模板层次结构加载的内容,例如。post-template-defaultarchiveget_template_part这两者都不会告诉您页面的哪些部分映射到哪些部分,并且并不是页面的所有部分都来自模板,假设模板做了任何事情。甚至有可能插件或主题代码在早期完全绕过模板系统。