How to move theme directory but not plugins/uploads out of WordPress root directory?

I am trying to set up a few local multisite installs that will share the same themes folder, but have separate upload and plugin folders that will be in the usual places in wp-content.

UPDATED:

Read More

WordPress is installed at /Users/josh/Documents/Websites/themedev.dev/ and I’ve create the new theme directory at Users/josh/Documents/jp-content/jp-themes and put twenty twelve into it for testing purposes.

Per Otto’s suggestion below I created and activated a plugin that is just this:

$directory = '/Users/josh/Documents/Websites/jp-content/jp-themes';
register_theme_directory( $directory );

That showed twenty twelve in the theme admin page, but on the front-end I got a blank page, and the page source was totally empty.

When I changed the first line to $directory = '/Users/josh/Documents/Websites/jp-content/jp-themes/' (note the trailing slash,) I got the theme, but not the style. When I echoed the value ofget_template_directory_uri()I gotUsers/josh/Documents/Websites/jp-content/jp-themes//twentytwelvewhich would explain it. I tried usingtrailingslashit` instead of adding the slash like this:

$string = '/Users/josh/Documents/Websites/jp-content/jp-themes';
$directory = trailingslashit( $string );
register_theme_directory( $directory );

and got the same results.

I still can’t figure out what I’m doing wrong here…

Related posts

1 comment

  1. http://codex.wordpress.org/Function_Reference/register_theme_directory

    /**
     * Register a directory that contains themes.
     *
     * @since 2.9.0
     *
     * @param string $directory Either the full filesystem path to a theme folder or a folder within WP_CONTENT_DIR
     * @return bool
     */
    function register_theme_directory( $directory )
    

    You should be able to call register_theme_directory('/full/path/to/directory') and thus add a new path full of themes. This eliminates the need to use any defines as you’re attempting to do. You could do this in a mu-plugin on each installation, to force the whole install to have those themes available.

    I would leave the default themes in the wp-content/themes directory on each install, and just add your custom themes in your new theme path.

Comments are closed.