WordPress: Override parent theme class function in child theme
I want to override function in child theme, which is defined inside a class in parent theme.
Here is the sample code:
class A extends B
function __construct()
$this->add_ajax('sync_post_data', 'need_to_override');
//other functions
function need_to_override()
//function code
Additional Information:
Class B extends Class C and Class C is the root class where add_ajax
is defined.
What I've tried:
- As the function is not pluggable so I can't override function directly in child theme.
Secondly I tried to remove ajax action and add my custom action. It throws 500 internal server error.
remove_action( 'wp_ajax_sync_post_data', 'need_to_override' );
add_action( 'wp_ajax_sync_post_data', 'custom_function' );
function custom_function()
//function code with my custom modification
Any help please...
wordpress wordpress-theming parent-child
add a comment |
I want to override function in child theme, which is defined inside a class in parent theme.
Here is the sample code:
class A extends B
function __construct()
$this->add_ajax('sync_post_data', 'need_to_override');
//other functions
function need_to_override()
//function code
Additional Information:
Class B extends Class C and Class C is the root class where add_ajax
is defined.
What I've tried:
- As the function is not pluggable so I can't override function directly in child theme.
Secondly I tried to remove ajax action and add my custom action. It throws 500 internal server error.
remove_action( 'wp_ajax_sync_post_data', 'need_to_override' );
add_action( 'wp_ajax_sync_post_data', 'custom_function' );
function custom_function()
//function code with my custom modification
Any help please...
wordpress wordpress-theming parent-child
add a comment |
I want to override function in child theme, which is defined inside a class in parent theme.
Here is the sample code:
class A extends B
function __construct()
$this->add_ajax('sync_post_data', 'need_to_override');
//other functions
function need_to_override()
//function code
Additional Information:
Class B extends Class C and Class C is the root class where add_ajax
is defined.
What I've tried:
- As the function is not pluggable so I can't override function directly in child theme.
Secondly I tried to remove ajax action and add my custom action. It throws 500 internal server error.
remove_action( 'wp_ajax_sync_post_data', 'need_to_override' );
add_action( 'wp_ajax_sync_post_data', 'custom_function' );
function custom_function()
//function code with my custom modification
Any help please...
wordpress wordpress-theming parent-child
I want to override function in child theme, which is defined inside a class in parent theme.
Here is the sample code:
class A extends B
function __construct()
$this->add_ajax('sync_post_data', 'need_to_override');
//other functions
function need_to_override()
//function code
Additional Information:
Class B extends Class C and Class C is the root class where add_ajax
is defined.
What I've tried:
- As the function is not pluggable so I can't override function directly in child theme.
Secondly I tried to remove ajax action and add my custom action. It throws 500 internal server error.
remove_action( 'wp_ajax_sync_post_data', 'need_to_override' );
add_action( 'wp_ajax_sync_post_data', 'custom_function' );
function custom_function()
//function code with my custom modification
Any help please...
wordpress wordpress-theming parent-child
wordpress wordpress-theming parent-child
asked Nov 14 '18 at 4:43
AlenaAlena
127313
127313
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
You can just override that method of class in just two simple steps.
Here's how:
- Open child theme
functions.php
Create new class like this:
add_action( 'after_setup_theme', function()
class D extends A
function need_to_override()
//original function code with your custom modifications
new D();
);
PS: It will work but I'm not sure if it is the best way or not!
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53293310%2fwordpress-override-parent-theme-class-function-in-child-theme%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
You can just override that method of class in just two simple steps.
Here's how:
- Open child theme
functions.php
Create new class like this:
add_action( 'after_setup_theme', function()
class D extends A
function need_to_override()
//original function code with your custom modifications
new D();
);
PS: It will work but I'm not sure if it is the best way or not!
add a comment |
You can just override that method of class in just two simple steps.
Here's how:
- Open child theme
functions.php
Create new class like this:
add_action( 'after_setup_theme', function()
class D extends A
function need_to_override()
//original function code with your custom modifications
new D();
);
PS: It will work but I'm not sure if it is the best way or not!
add a comment |
You can just override that method of class in just two simple steps.
Here's how:
- Open child theme
functions.php
Create new class like this:
add_action( 'after_setup_theme', function()
class D extends A
function need_to_override()
//original function code with your custom modifications
new D();
);
PS: It will work but I'm not sure if it is the best way or not!
You can just override that method of class in just two simple steps.
Here's how:
- Open child theme
functions.php
Create new class like this:
add_action( 'after_setup_theme', function()
class D extends A
function need_to_override()
//original function code with your custom modifications
new D();
);
PS: It will work but I'm not sure if it is the best way or not!
answered Nov 16 '18 at 5:13
Atlas_GondalAtlas_Gondal
1,356718
1,356718
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53293310%2fwordpress-override-parent-theme-class-function-in-child-theme%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown