Roots Discourse

Is it possible to hard-extract a theme imbedded in bedrock and import it to a 'standard' wordpress setup?

Hi,

I have a bedrock made wordpress site, with the relative folder structure. I am not going to use this site, but I want to extract the theme and the plugins used on this site and move it over to my other ‘standard-made’ wordpress site.

I’ve tried to copy the theme folder over to my ‘standard’ wordpress page (not made with bedrock);
From …/web/app/themes/mytheme - to - …/wp-content/themes/mytheme

And I have done the same with the plugins:
From …/web/app/plugins/all_my_plugins_folders - to - …/wp-content/plugins/all_my_plugins_folders

I use the same database.sql from the bedrock site in the new standard wordpress site.

But when I activate the theme, I get the following error:
“There has been a critical error on this website. Please check your site admin email inbox for instructions.” - If I deactivate the theme by renaming the theme through ftp I get my site back, but without the theme.

Is there a way I can use the theme from a bedrock-made site? Kind of reverting the theme to its normal form?

Thanks alot for your help!

So you want to use a theme on a non-Bedrock site - the theme itself is not Sage-based?

Please check the error logs in your server to find out what exactly is missing or misconfigured with that theme.
A WordPress theme should run as fine on a non-Bedrock site as on a Bedrock-site.
In fact, Bedrock-sites require even a higher theme quality as hardcoded paths in the theme wouldn’t work.

Hi, thank you for answering.

Yes I want to use a theme on a non-Bedrock site. I am not quite sure if it is Sage-based, but here you can see the files inside the theme:
https://drive.google.com/file/d/1YCLSiQ4d1-bH-sTb1Sw6baUBzNMB7RJc/view?usp=sharing

I’ve sent an email to the shared hosting provider to send me the server error logs. (I don’t have access to them.)

Ok, that is good news. Now I just need to make it work with my non-bedrock site. (As it works fine in a bedrock-site)

Thanks again!

For many/cheap hosters the error logs should be accessible via FTP (logs/ directory).

Unfortunately they have specifically written on their pages that for security reasons, I cannot access them. But only through an email request. So I’ll be waiting.

Did you get any wiser on the theme folder I attached previously? Does it look okey?

Thanks!

Ideas for why the theme doesn’t work:

  • Incompatible PHP version
  • composer issue (need to run under that particular PHP version maybe)

Is this a new WordPress site on which the theme should be activated?

strarsis I’ve tried many things to make this work. But basically I received a bedrock-site, and they want me to deploy it to a shared host. I managed to deploy it on the shared host that I am using, but I am not able to set it up on theirs.

I’ve tried importing all the bedrock site files straight to the servers root, but then I only see the file directories like this: https://drive.google.com/file/d/1AU6m_53U-nYANnRNUp6NLaCkfpzrfHPr/view?usp=sharing

Now I am trying to install a non-bedrock-site and import the theme and plugins from the bedrock-site.

Both methods are failing me. Any tips here is greatly appreciated.

Thanks!

Okay so I got some more details regarding the error messages from the theme.

A fatal error regarding the theme:

  • Uncaught Error: Class 'Rareloop\Lumberjack\Application' not found in /home/5/i/mysite/www/wp-content/themes/mytheme/bootstrap/app.php:12 Stack trace: #0 /home/5/i/mysite/www/wp-content/themes/mytheme/functions.php(8): require_once() #1 /home/5/i/mysite/www/wp-settings.php(528): include('/home/5/i/mysit..') #2 /home/5/i/mysite/www/wp-config.php(91): require_once('/home/5/i/mysit...') #3 /home/5/i/mysite/www/wp-load.php(37): require_once('/home/5/i/mysit...') #4 /home/5/i/mysite/www/wp-blog-header.php(13): require_once('/home/5/i/mysit...') #5 /home/5/i/mysite/www/index.php(17): require('/home/5/i/mysit...') #6 {main} thrown in /home/5/i/mysite/www/wp-content/themes/mytheme/bootstrap/app.php on line 12

Any clue what this might mean?

This means that the composer dependency Rareloop\Lumberjack\Application is not found.
Is there a vendor/rareloop/lumberjack in the theme root folder?
Maybe run composer install/composer dump-autoload on your workstation with the same theme directory structure and PHP version as on production and re-upload vendor/?

And have you tested that theme on a case-insenstive file system by chance, WSL (2)?
This can also cause issues as most production systems are *nix, usually with a *nix file system that is case sensitive, hence e.g. attempting to locate App.php won’t wortk for app.php there.

My dear strarsis, I finally made it work. Thank you for sparring with me. You won’t believe how much that means. Even if we are strangers.

The solution was to upload the Bedrock-site to the shared web host and change the name of the ‘web’ folder to ‘www’. And then through the .htaccess file in root, set the ‘www’ folder as the new root.

I’ve been battering my head against a wall for seven days straight. And to finally make it, is unbelievable satisfying.

Again, thank you m8!

Next time you composer install / composer update from Bedrock root, it will install things into web instead of www.

Solution A: Change composer installer settings at https://github.com/roots/bedrock/blob/49aea830d5ab3760c984b751431894c6b75dbd28/composer.json#L55-L57

Solution B: Set web root to web (if your hosting supports it)