我正在尝试创建一个子主题来覆盖我父主题中的某些功能
我在父function.php主题
中有这个 include_once('admin/functions-extended/fn-typography.php'); //User Typography
这是我的尝试:
include_once(get_stylesheet_directory().'admin/functions-extended/fn-typography.php' );
更多细节
我正在尝试在此文件中添加自定义字体,但在子主题中 父fn-typography.php中的代码是
function mgm_get_google_fonts() {
// Google Font Defaults
$google_faces = array(
"Abel" => "Abel",
"Abril Fatface" => "Abril Fatface",
"Aclonica" => "Aclonica",
"Acme" => "Acme",
"Actor" => "Actor",
"Adamina" => "Adamina",
"Advent Pro" => "Advent Pro",
"Aguafina Script" => "Aguafina Script",
"Aladin" => "Aladin",
"Aldrich" => "Aldrich",
"Alegreya" => "Alegreya",
"Alegreya SC" => "Alegreya SC",
"Alex Brush" => "Alex Brush",
"Alfa Slab One" => "Alfa Slab One",
"Alice" => "Alice",
"Alike" => "Alike",
"Alike Angular" => "Alike Angular",
"Allan" => "Allan",
);
return $google_faces;
}
我想删除这些字体并添加其他字体
答案 0 :(得分:0)
无论您的父系统中发生什么,您的子主题也将完成,因此您不必单独包含该文件,因为在激活您的子主题时它将被包含在内。
如果要更改主题所包含的文件中的行为,而不能通过get_template_part(如库PHP文件)覆盖,则应该查找主题构建器为您实现的技术(如果有)。主要是通过钩子。
答案 1 :(得分:0)
在您显示的代码中,mgm_get_google_fonts()实际上并未加载字体,但显然会为其他一些要加载的函数提供字体列表。
父函数中的注释将其描述为提供默认值,因此暗示有一些方法可以覆盖它们。通过查看父函数.php,您可以找出如何做到这一点。
例如,如果父主题允许您覆盖此功能,它可能会说:
if ( !function_exists( 'mgm_get_google_fonts') {
...the function definition you have above...
}
此测试用于查看您是否在子主题中定义了相同名称的功能,如果有,则使用您的功能。
如果父主题没有执行此操作,则您需要查看调用mgm_get_google_fonts的位置并跟踪如何覆盖。