Child theme - enqueue

Hi guys,

I'm an idiot and can't figure this out for some reason (it's been a while working on child themes).

Here is the code to functions.php in our staging site child theme:

-------------------
<?php
function my_theme_enqueue_styles() {
wp_register_style( 'parent_style', get_template_directory_uri() .'/style.css', array(), null, 'all' );
wp_register_style( 'parent_style_main', get_template_directory_uri() .'/css/main.css', array(), null, 'all' );
wp_enqueue_style( 'parent_style' );
wp_enqueue_style( 'parent_style_main');
}

add_action( 'wp_enqueue_scripts', 'my_theme_enqueue_styles' );
?>

-------------------------------

We just can't get the headers, menus, etc. to style correctly even after we re-save all options, titles, headers, menus, etc.

Can you please help? We just need to create a child theme footer.php file (to troubleshoot google maps API).

Thanks so much,
Derek

  • Kasia Swiderska
    • Support nomad

    Hello Derek,

    What theme are you using? Sad fact is that there are some themes that will not work with child themes - and many themes have problem when it comes to options (options are working in parent theme - but not in child theme).

    However did you try using sample code from Codex https://codex.wordpress.org/Child_Themes#How_to_Create_a_Child_Theme - they are not recommending registering styles - enqueue is enough.

    kind regards,
    Kasia

  • Adam Czajczyk
    • Support Gorilla

    Hello Derek!

    Actually "The7" is very complex theme and like many of "ultimate purpose all-in-one highly customizable" themes it doesn't exactly follow all the WordPress standards.

    It's a premium theme to which I don't have access unfortunately but I'm telling this from my experience with sites of many other members of our community that are/were based on that theme and that I had a chance to work with.

    Dont' get me wrong please, I'm not saying that it's not the good theme - it's just that it's not so "standard" as it's claimed to be :slight_smile:

    Still though, the most basic example of enqueing styles that Kasia suggested theoretically should work with it. As it's not, I'd like to take a direct look at it but since I don't have an access to the theme I hope I could give it a try with your staging site.

    That said, if you are fine with letting me access your staging site so I could check it and hopefully find a solution please send in:

    Subject: "Attn: Adam Czajczyk"

    - Mark to my attention, the subject line should contain only: ATTN: Adam Czajczyk
    - Do not include anything else in the subject line, doing so may delay our response due to how email filtering works.
    - Link back to this thread
    - login URL and admin account login credentials (may be a temporary admin account) data
    - Include FTP log-in details (hostname, username & password)
    - Include hosting control panel access details (login address, username & password) - cPanel's usually the control panel used for this, but your provider may use something else; I may need this for accessing your site's database, preferably via phpMyAdmin
    - Include any relevant URLs for your site

    Please use our contact form here http://premium.wpmudev.org/contact/

    Select "I have a different question" from the drop-down list. 

    Best regards,
    Adam

  • Kasia Swiderska
    • Support nomad

    Hello Derek,

    I also pinged Adam, but I also noticed that you wrote

    Our theme is one of the best - The7 - they even have a sample child theme base included.

    Do you have access to that sample child theme? Did you check how they did it? Maybe copying functions.php from that sample child theme would be solution here?

    kind regards,
    Kasia

  • Derek
    • Site Builder, Child of Zeus

    Hi Kasia,

    Thanks for the note. Unfortunately their child theme sample, has a blank functions.php file. It's as basic as you can get, so not any help.

    Hopefully Adam can lend his super expertise :slight_smile:

    Thanks again!
    Derek

  • Adam Czajczyk
    • Support Gorilla

    Hello Derek!

    I received your e-mail and I think I made the child theme work for you. There were two issues that had to be addressed, one "general" and one specific to the The7 theme. See below :slight_smile:

    1. General style enqueueing

    The code that was in your child theme's functions.php file was fine except it only enqueued parent theme styles. Since all the CSS changes to the child theme should be made to the child-theme's style.css file it should as well be enqueued. I commented out your current code and used the generic one from WP Codex:

    function my_theme_enqueue_styles() {
    
        $parent_style = 'parent-style'; // This is 'twentyfifteen-style' for the Twenty Fifteen theme.
    
        wp_enqueue_style( $parent_style, get_template_directory_uri() . '/style.css' );
        wp_enqueue_style( 'child-style',
            get_stylesheet_directory_uri() . '/style.css',
            array( $parent_style ),
            wp_get_theme()->get('Version')
        );
    }
    add_action( 'wp_enqueue_scripts', 'my_theme_enqueue_styles' );

    I then made sure that the styles are included as expected.

    2. The The7 theme issue

    I was a bit puzzled with this because I could see that the styles are included and the site seems to be working fine except the header and menus, just like you mentioned in your initial question.

    It turnes out that in case of The7 theme there's an additional step to be taken. When you activate the child-theme it reverts all the settings to default. The solution here is:

    - keep the parent theme active
    - go to "Theme Options -> Import/Export settings" page
    - copy entire "mambo-jumbo-code" from there :slight_smile:
    - enable child theme
    - got to "Theme Options -> Import/Export settings" page again
    - paste the copied code there and save settings
    - make sure that the page cache is cleared meanwhile.

    I already did that and it did the trick so currently the child theme is active and you should be able to proceed with further development. Just a side note: I would suggest keeping all the caches disabled during development for easier testing.

    Best regards,
    Adam

  • Derek
    • Site Builder, Child of Zeus

    Hi Adam,

    Sorry to bother you again, but we have a little problem actually. We tried to login onto the site this morning and have the dreaded white screen of death! We didn't login or make any changes after you made yours so not sure how to fix this one.

    Please help when you can or let me know what I can do.

    Thanks,
    Derek

  • Derek
    • Site Builder, Child of Zeus

    Ok, I enabled debug and got this in the error log -

    [13-Oct-2016 15:28:36 UTC] PHP Warning: Cannot modify header information - headers already sent by (output started at /themes/dt-the7-child/functions.php:29) in /stage4231/wp-admin/post.php on line 197.

    We can try and fix but don't want to undo your work obviously.

    Thanks!

  • Dimitris
    • Support Star

    Hey there Derek,

    I trust you're doing good today and don't mind me jumping in here! :slight_smile:

    Could you please access your server through FTP, edit the wp-config.php file, find a line like
    define('WP_DEBUG', false);
    and replace it with the following (if the above line doesn’t exist, simply insert next snippet just above the /*That’s it! Stop editing… */ comment)

    // Enable WP_DEBUG mode
    define('WP_DEBUG', true);
    // Enable Debug logging to the /wp-content/debug.log file
    define('WP_DEBUG_LOG', true);
    // Disable display of errors and warnings
    define('WP_DEBUG_DISPLAY', false);
    @ini_set('display_errors', 0);

    Then go ahead and try to replicate the error (is this happening when you go to the login page or after hitting the Login button actually?).
    By doing so, a /wp-content/debug.log file should be created. Simply download it, rename it to debug.txt and attach it here in your next reply to see what's going wrong in there.

    Warm regards,
    Dimitris

  • Derek
    • Site Builder, Child of Zeus

    Hi Dimitris,

    Thanks for your help. Now it's being really weird - it initially happened when go to the login page. Now it's allowing us to login and view homepage correctly, however when try to edit page and hit 'preview changes' we get white screen again with the /wp-admin/post.php path.

    It's so weird. File is attached.

  • Adam Czajczyk
    • Support Gorilla

    Hello Derek!

    I used the credentials that you provided me with once again and checked the site. That's entirely my fault and I sincerely apologize for that. I made a small mistake in the child theme's "functions.php" file and that was causing it.

    I didn't noticed that before because I was already logged in into the site and then didn't try to logout and login again. I already fixed that and the site should be fully up and running again.

    I'm really sorry for that!

    Kind regards,
    Adam

Thank NAME, for their help.

Let NAME know exactly why they deserved these points.

Gift a custom amount of points.