Please note this is all "working" - the question is about the best practice and to try and work out why I need to include the PHP file which contains the class in two places for it to work correctly.
I'm working on a simple parent theme to speed up my own development cycle - and have got to the point of testing a simple child theme.
I understand that the functions.php
file for the child is called up before the parent functions.php
- which includes all the PHP functions and a class for adding CPT's.
I would like to build the CPT from the child theme - I want the parent to contain all the reusable and update-able functionality - but not to pre-build added features into each WP install it's used on.
To the code question:
I tried to include the class (which is in a separate PHP file) in the child functions.php
and then instantiate an instance - for example:
require_once TEMPLATEPATH."/library/cpt/cpt.php"; // CPT class ##
$cpt_tree = new Custom_Post_Type( "tree" ); // New CPT - "tree" ##
Reloading the page gives an error:
Fatal error: Class 'Custom_Post_Type' not found in C:\xampp\htdocs\site\wordpress\wp-content\themes\child\functions.php on line 14
So, then I included the same PHP file in the parent functions.php
file - and it all works - as an experiment I removed the class from the child theme - and it gives the same error.
I know this question is lacking lots of code examples - I'm hoping it will ring a bell with someone - or someone who understands more about using Classes will be able to give me some pointers - seems silly to require this file in two places and I'll like to keep the functions.php
file as clean as possible.