Como replace uma function quando não está em functions.php

Estou tentando replace uma function para um tema no tema infantil, mas não posso fazê-lo funcionar. Em functions.php no tema, eu posso ver essa linha require_once :

 require_once("inc/alterna-functions.php"); 

E eu quero replace uma function dentro desse arquivo. Acabei de copiar o código original de alterna/functions.php para alterna-child/functions.php e fiz minhas alterações da seguinte maneira:

 if (!function_exists('alterna_get_social_list')) : function alterna_get_social_list($extra_name = '', $topbar = false, $data = null, $target = '_blank') { global $alterna_options; $str = ""; $social_list = array( array('twitter', 'Twitter'), array('twitter_1', 'Twitter #1'), // this is new array('twitter_2', 'Twitter #2'), // this is new array('twitter_3', 'Twitter #3'), // this is new array('twitter_4', 'Twitter #4'), // this is new array('facebook', 'Facebook'), array('facebook_1', 'Facebook #1'), // this is new array('facebook_2', 'Facebook #2'), // this is new array('facebook_3', 'Facebook #3'), // this is new array('facebook_4', 'Facebook #4'), // this is new array('google', 'Google Plus', 'google-plus'), array('google_1', 'Google Plus #1', 'google-plus_1'), // this is new array('google_2', 'Google Plus #2', 'google-plus_2'), // this is new array('google_3', 'Google Plus #3', 'google-plus_3'), // this is new array('google_4', 'Google Plus #4', 'google-plus_4'), // this is new array('youtube', 'Youtube'), array('linkedin', 'Linkedin'), array('instagram', 'instagram'), array('whatsapp', 'Whatsapp'), array('email', 'Email', 'envelope'), array('rss', 'Rss') ); if ($data != null) { foreach ($social_list as $social_item) { if (isset($data['type']) && $data['type'] == $social_item[0]) { if (!isset($data['url'])) { $data['url'] = '#'; } if (!isset($data['target'])) { $data['target'] = '_blank'; } $str .= ''; } } } else { foreach ($social_list as $social_item) { if (penguin_get_options_key('social-' . $social_item[0]) != '') { if (!$topbar) { $str .= ''; } else { $str .= ''; } } } } return $str; } endif; 

Mas não está funcionando, pois não consigo ver as mudanças no tema. O que estou fazendo errado? Qual é o caminho certo para conseguir isso?

Solutions Collecting From Web of "Como replace uma function quando não está em functions.php"

A nova function nas funções do tema do seu if (!function_exists('alterna_get_social_list')) não pode replace uma function do arquivo functions.php do pai, a menos que essa function seja escrita para ser conectável, ou seja, declarada com if (!function_exists('alterna_get_social_list'))

Por documentação sobre Temas Infantis e como eles herdam dos arquivos filho functions.php:

Usando functions.php Ao contrário de style.css, as funções.php de um tema filho não substituem sua contrapartida do pai. Em vez disso, é carregado para além das funções do pai.php. (Especificamente, é carregado logo antes do arquivo do pai.)

[ https://codex.wordpress.org/Child_Themes#Using_functions.php%5D%5B1%5D

Além disso, e isso é super importante:

Não copie o conteúdo completo de functions.php do tema pai em functions.php no tema filho.

A única maneira de re-definir completamente uma function que não é conectável é se isso for adicionado através de uma ação de algum tipo – então você pode primeiro remover a ação chamando a function do tema pai e adicionar uma nova ação que chama seu novo Funcione com um nome diferente.