修改 Lingonberry 主题子主题的 functions.php

/ 3,145 阅读 / 0

之前提到过 《给 Lingonberry 主题建立子主题》。也记录过一部分修改子主题的 CSS 样式。接下来通过修改子主题的 functions.php 增加一些我们需要的功能。

例如:


子主题的 functions.php 文件不像子主题的 style.css ,它不会覆盖父主题中已经写好的相对应功能,而是将新的功能加入到父主题的 functions.php 中(它会在父主题文件加载之前优先载入)。

因此,子主题的 functions.php 能更灵活的修改父主题。

最重要的一点:对于父主题以后的升级更新,子主题中加入的功能不会受到影响。


下面便是我修改的 Lingonberry 子主题 functions.php 的一些功能。

具体代码如下:

<?php

//禁用 Open Sans
add_filter( 'gettext_with_context', 'wpdx_disable_open_sans', 888, 4 );
function wpdx_disable_open_sans( $translations, $text, $context, $domain ) {
  if ( 'Open Sans font: on or off' == $context && 'on' == $text ) {
    $translations = 'off';
  }
  return $translations;
}

// 取消 css 和 js 后面的版本号
if(!function_exists('cwp_remove_script_version')){
    function cwp_remove_script_version( $src ){  return remove_query_arg( 'ver', $src ); }
    add_filter( 'script_loader_src', 'cwp_remove_script_version' );
    add_filter( 'style_loader_src', 'cwp_remove_script_version' );
}

// 取消 wordpress 默认 Gallery 样式
add_filter( 'use_default_gallery_style', '__return_false' );

// 加载 CSS 样式到可视化编辑器
add_editor_style('custom-editor-style.css');
// 添加 CSS 类匹配可视化编辑器内容
function mytheme_mce_settings( $initArray ){
$initArray['body_class'] = 'post';
return $initArray;
}
add_filter( 'tiny_mce_before_init', 'mytheme_mce_settings' );

// 加载 fontawesome 样式
add_action( 'wp_enqueue_scripts', 'load_fontawesome_styles' );
function load_fontawesome_styles(){
    global $wp_styles;
    wp_enqueue_style( 'font-awesome', get_template_directory_uri() . '/font-awesome/css/font-awesome.min.css' );
    wp_enqueue_style( 'font-awesome-ie7', get_template_directory_uri() . '/font-awesome/css/font-awesome-ie7.min.css' );
    $wp_styles->add_data( 'font-awesome-ie7', 'conditional', 'lte IE 7' );
}

// 禁止 MORE 标签跳转到锚点
function remove_more_link_scroll( $link ) {
  $link = preg_replace( '|#more-[0-9]+|', '', $link );
  return $link;
}
add_filter( 'the_content_more_link', 'remove_more_link_scroll' );

?>

避免 <?php 和 ?> 多重嵌套,在 <?php?> 之间,不要再添加 <?php?>。多重嵌套的后果会导致部分 PHP 代码失效,严重的可能会导致网站崩溃。