Editing functions.php
-
New to making child themes and your plugin seems to be really easy to understand so far. Just would like to know how to make changes to the functions.php file. In the plugin it says “The functions.php file is generated separately and cannot be copied here”, so do I do this through FTP or is there a way to do it on wordpress? Even if you have a tutorial you could link me it would be awesome.
Using iFeature Pro, https://www.weeaboodesu.com/
Thanks
https://www.ads-software.com/plugins/child-theme-configurator/
-
weeaboodesu,
The best place to start is the WordPress Codex.
Editing functions.php is dangerous territory if you are new to WordPress or PHP. Because the file is included (run) by WordPress, any mistakes in the code will throw errors, and possibly crash your site.
If your site allows it, Child Theme Configurator provides a quick link to the Theme Editor from the Files tab. Just click the link from the message you mentioned in your post above.
Because this is such a vast topic, we would prefer that if you have general WordPress or PHP questions you do not post them here. Instead, use the many forums available on the subject, like WordPress Development.
Hi, Thanks for a great, well-thought-out plugin!
I need to override functions.php in my child theme. Please advise where my code should go relative to the boilerplate code that CTC adds.
In other words, should I place my code:
A. Between the opening php tag, and the “// Exit if accessed directly” code,
B. Between the “// Exit if accessed directly” code and the “// BEGIN ENQUEUE PARENT ACTION”,
C. After the “// END ENQUEUE PARENT ACTION”.Thanks!
The “exit if directly” code should be at the top. It prevents direct execution of the php file.
Your code can go anywhere else, as long as it does not fall inside any of the //BEGIN and //END markers. Anything between them will be automatically replaced by the plugin when the files are updated by CTC.
CTC uses the same method to configure the functions file that WordPress uses to update the .htaccess file for permalinks.
Thank you. This is exactly what I needed to know. Much appreciated.
Hey! Sorry for late reply your posts were extremely helpful!!
Just another quick question, how would you go about editing plugin files? In particular the Woocommerce content-product.php. Can you edit this file like the functions.php and maintain the changes after an update? Is this an option for the Pro upgrade?
Thanks!
The correct way to customize a plugin is to hook into the action and filter hooks using your child theme functions file. Do not edit the plugin code directly or your changes will be overwritten with the next update.
Start with this Codex article:
WooCommerce is well documented. You can often do exactly what you need with a few lines of code.
This is an example of a woocommerce hook I use to generate the update key for each order:
function lilaea_add_update_key($order) { $key = ''; foreach($order->get_items() as $item): $download_file_urls = $order->get_item_downloads( $item ); foreach ( $download_file_urls as $id => $downloadarr ): $regex = '#\&order=wc_order_(.+?)\&#'; preg_match($regex, $downloadarr['download_url'], $matches); if (!empty($matches[1])): $key = $matches[1]; break; endif; endforeach; if ($key) break; endforeach; if (!empty($key)) echo '<tr class="product-purchase-note"><td colspan="3">Update Key: <strong>' . $key . '_' . $order->id . '</td></tr>'; } add_action( 'woocommerce_order_items_table', 'lilaea_add_update_key' );
This is an example of a hook I use with Contact Form 7:
function lilaea_filter_components($components, $form) { if ($counter = get_option('lilaea_contact_counter')) $counter++; else $counter = 1; update_option('lilaea_contact_counter', $counter); $components['subject'] .= ' [' . sprintf("%05d", $counter) . ']'; return $components; } function lilaea_additional_mail($additional_mail, $form) { remove_filter('wpcf7_mail_components', 'lilaea_filter_components'); return $additional_mail; } add_filter('wpcf7_additional_mail', 'lilaea_additional_mail', 10, 2); add_filter('wpcf7_mail_components', 'lilaea_filter_components', 10, 2);
OK thanks so much for your help!
Hi,
I have successfully used this plugin to format fonts in my site
textiletrails.com.au
Thankyou!
Now I want to add a Mailchimp newsletter form to all my individual posts.
MailChimp support says (at https://mc4wp.com/kb/add-form-posts-automatically/) to paste this into my functions.php:
/**
* Adds a form to the end of all single posts
*
* @param string $content
*
* @return string $content
*/
function myprefix_add_form_to_posts( $content ) {// Change to ID of the form you want to add
$form_id = 0;// Check if this is a single post.
if ( is_singular( ‘post’ ) ) {// Add the form to the end of the post content.
$content .= mc4wp_get_form( $form_id );}
// Returns the content.
return $content;
}add_filter( ‘the_content’, ‘myprefix_add_form_to_posts’ );
Firstly, this does not look to me like something I should paste in exactly as it is.
Secondly, I’m not sure how to add this correctly using your plugin, but really don’t want to add it manually and risk crashing my site.
Thankyou for any help you can provide!
Wendy,
This code is fine but to be safe, deactivate the child theme first (by activating the parent theme).
You should also enable debugging by modifying wp-config.php around line 80:
define('WP_DEBUG', false);
to:
define('WP_DEBUG', TRUE );
This has to be done manually as it is not accessible to the Editor.
Then go to Appearance > Editor and select the child theme from the menu at the top right.
When the child theme file menu loads on the right, click “Theme Functions.”
Paste the code at the bottom of the input area. Make sure it is outside (after) the CTC auto-generated code and comments.
Everywhere you see “myprefix” change it to something unique to your theme, like “textiletrails.”
Test the code by going to Appearance > Themes and clicking “Live Preview” under the child theme panel.
Navigate to a post and you should see the mailchimp form.
If there are any syntax errors, they will be displayed in the browser. Since the child theme is not active, this will not crash your site.
Once everything looks right, turn off debugging and reactivate the child theme.
Hi, the child theme plugin is great, but I have paste e short code on the funtions.php file, then cancel it and now my site has crushed…is there a way to recover the funtions.php code?
I cannot identify the error in the code…can you help me please? the code as I see it right nos is this:
<?php
// Exit if accessed directly
if ( !defined( ‘ABSPATH’ ) ) exit;// BEGIN ENQUEUE PARENT ACTION
// AUTO GENERATED – Do not modify or remove comment markers above or below:if ( !function_exists( ‘chld_thm_cfg_parent_css’ ) ):
function chld_thm_cfg_parent_css() {
wp_enqueue_style( ‘chld_thm_cfg_parent’, trailingslashit( get_template_directory_uri() ) . ‘style.css’ );
}
endif;
add_action( ‘wp_enqueue_scripts’, ‘chld_thm_cfg_parent_css’ );// END ENQUEUE PARENT ACTION
Rcai:
Follow these instructions:
https://www.childthemeconfigurator.com/child-theme-faqs/#broken_theme
Then enable debugging by modifying wp-config.php around line 80:
define(‘WP_DEBUG’, false);
to:
define(‘WP_DEBUG’, TRUE );
This has to be done manually as it is not accessible to the Editor.
- The topic ‘Editing functions.php’ is closed to new replies.