Title: How correctly define paths for wp plugins
Last modified: December 14, 2017

---

# How correctly define paths for wp plugins

 *  [neo332](https://wordpress.org/support/users/neo332/)
 * (@neo332)
 * [8 years, 5 months ago](https://wordpress.org/support/topic/how-correctly-define-paths-for-wp-plugins/)
 * Hi!
    Before I did one plugin where I’d defined paths like
 *     ```
        You should have received a copy of the GNU General Public License
         along with this program; if not, write to the Free Software
         Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
       */
   
       define('PLUGIN_FOLDER', dirname(__FILE__) );
       define('CORE_FOLDER', PLUGIN_FOLDER.'/core');
   
       require_once CORE_FOLDER.'/class/Select_car_brand.php';
   
       $scb = new Select_car_brand();
       $scb->ini();
   
       // add_shortcode( 'select-car-brand', 'handle_select_car_brand' );
       ```
   
 * But when I put this code in second plugin I got error, such file doesn’t exists,
   because there was already determined PLUGIN_FOLDER .
 * How correctly to determine plugin paths variables?
 * And I want use OOP for creating plugins and also don’t know how it use in correct
   way????

Viewing 8 replies - 1 through 8 (of 8 total)

 *  [ThemesGrove](https://wordpress.org/support/users/themesgrove/)
 * (@themesgrove)
 * [8 years, 5 months ago](https://wordpress.org/support/topic/how-correctly-define-paths-for-wp-plugins/#post-9783315)
 * Hello,
    Make sure core folder is exists in that directory. You can also var_dump()`
   define('PLUGIN_FOLDER', dirname(__FILE__) );` this and check if it is that file.
   You can also debug line by line. You will get answer. thanks.
 *  [kjodle](https://wordpress.org/support/users/kjodle/)
 * (@kjodle)
 * [8 years, 5 months ago](https://wordpress.org/support/topic/how-correctly-define-paths-for-wp-plugins/#post-9783334)
 * `plugin_dir_path()` will return the path of the directory the plugin is in. See
   [https://developer.wordpress.org/reference/functions/plugin_dir_path/](https://developer.wordpress.org/reference/functions/plugin_dir_path/)
 * With regard to using OOP, this isn’t really a WordPress issue. There are lots
   of sources online for learning it. Just make sure your code (whether procedural
   or object oriented) follows WordPress best practices:
 * [https://developer.wordpress.org/plugins/the-basics/best-practices/](https://developer.wordpress.org/plugins/the-basics/best-practices/)
 *  Thread Starter [neo332](https://wordpress.org/support/users/neo332/)
 * (@neo332)
 * [8 years, 5 months ago](https://wordpress.org/support/topic/how-correctly-define-paths-for-wp-plugins/#post-9783369)
 * I’m going to do it OOP style, but there only one example and file structure not
   like there. I’ll use my own structure /core /libs folders, and others files won’t
   like there in guide.
 *  [Keith](https://wordpress.org/support/users/keithdriscoll/)
 * (@keithdriscoll)
 * [8 years, 5 months ago](https://wordpress.org/support/topic/how-correctly-define-paths-for-wp-plugins/#post-9783415)
 * Have you taken a look at [WordPress Plugin Boilerplate](https://github.com/DevinVinson/WordPress-Plugin-Boilerplate)?
   It is exactly what the name implies and is written OOP style. As others have 
   mentioned, there are good tutorials online as well.
 *  Thread Starter [neo332](https://wordpress.org/support/users/neo332/)
 * (@neo332)
 * [8 years, 5 months ago](https://wordpress.org/support/topic/how-correctly-define-paths-for-wp-plugins/#post-9783457)
 * I’ve already seen it, I want other structure where will folder with classes that
   I’ll use in each other plugins, For example I created class CSV and I can use
   it in any other plugins, or class form for create form and again I won’t recreat
   it.
 * In some classes I will use path to this plugin and each plugin has other paths,
   path easy find dirname(__FILE__).
 * I have problem with url, it’s I’ve little confused theme.
    I’ve created class
   Included_files, that is manage included files and I need to get url for my included
   files now there I include jQueryUI, that I placed in /libs, folder, This class
   Included_files placed in folder /core/class/Included_files.php,
 * For get url I did this code:
 *     ```
       function ini(){
             $this->url=plugin_dir_url(__FILE__)."../../libs";
           }
       ```
   
 * url for /lib where will all others libs.
    is it normally use ../../ ??? because
   plugin_dir_url(__FILE__) return dir to my current file.
 * I think probably should think self and create ideal structure. That structure
   that I saw in boilerplate seems not good. That is suite for procetural programming,
   for classes should to do other structure where will loaders of classes.
 * I don’t know, I’ve done it the second time and as usual problems with paths. 
   Can’t reuse next time the same code. I always change structure but I won’t to
   do it again….
 *  [Keith](https://wordpress.org/support/users/keithdriscoll/)
 * (@keithdriscoll)
 * [8 years, 5 months ago](https://wordpress.org/support/topic/how-correctly-define-paths-for-wp-plugins/#post-9783522)
 * Well, you certainly are free to create a structure and style that makes sense
   to you. I would just recommend that it meets the WordPress coding standards.
 * I should point out that the boilerplate I pointed you towards is sorta like the“
   underscores” (starter them by Automattic) of plugins. It was created by some 
   popular and experienced WordPress contributors and I can’t imagine not being 
   able to build upon it. Before writing off the idea of starting with it, I hope
   you took a moment to read the docs and study the code.
 * Good luck!
 *  Thread Starter [neo332](https://wordpress.org/support/users/neo332/)
 * (@neo332)
 * [8 years, 5 months ago](https://wordpress.org/support/topic/how-correctly-define-paths-for-wp-plugins/#post-9783542)
 * Ok, Thanks, I haven’t read yet that code, but I’ll do…
    code in wp documentation
   I mean.
    -  This reply was modified 8 years, 5 months ago by [neo332](https://wordpress.org/support/users/neo332/).
 *  [catacaustic](https://wordpress.org/support/users/catacaustic/)
 * (@catacaustic)
 * [8 years, 5 months ago](https://wordpress.org/support/topic/how-correctly-define-paths-for-wp-plugins/#post-9784121)
 * The problem is that you can only define a value once. So when you try to defne
   that same thing in the second plugin it fails, as it’s meant to.
 * The way to get around this is to call the second variable a different name. eg:
 * Plugin 1:
    `define( 'PLUGIN_1_URI', __FILE__ );`
 * Plugin 2:
    `define( 'PLUGIN_2_URI', __FILE__ );`
 * Remember that any value that’s defined using define() is global no matter where
   it’s called from (even inside namespaces).

Viewing 8 replies - 1 through 8 (of 8 total)

The topic ‘How correctly define paths for wp plugins’ is closed to new replies.

 * In: [Developing with WordPress](https://wordpress.org/support/forum/wp-advanced/)
 * 8 replies
 * 5 participants
 * Last reply from: [catacaustic](https://wordpress.org/support/users/catacaustic/)
 * Last activity: [8 years, 5 months ago](https://wordpress.org/support/topic/how-correctly-define-paths-for-wp-plugins/#post-9784121)
 * Status: not resolved

## Topics

### Topics with no replies

### Non-support topics

### Resolved topics

### Unresolved topics

### All topics
