WordPress.org

Make WordPress Core

Opened 8 months ago

Last modified 7 weeks ago

#52575 new defect (bug)

get_home_path() returns "/" instead of path to WordPress directory

Reported by: pixellogik Owned by:
Milestone: Awaiting Review Priority: normal
Severity: major Version: 5.6.1
Component: Filesystem API Keywords: reporter-feedback dev-feedback close
Focuses: Cc:

Description

Wrong return value from get_home_path() in /wp-admin/includes/file.php
https://developer.wordpress.org/reference/functions/get_home_path/

Expected result: Absolute filesystem path to the root of the WordPress installation
Result in situation below: /

Context
A WordPress in its own directory installed according method II mentioned here
https://wordpress.org/support/article/giving-wordpress-its-own-directory/

Settings (Example)
Wordpress: https://pixellogik.de/wp
Website: https://pixellogik.de

Plugin WP-SCSS installed

Reproduce
Open https://pixellogik.de in a browser

The plugin calls get_home_path() in enqueue_files() in line 213
/www/htdocs/w012345/pixellogik.de/wp/wp-content/plugins/wp-scss/class/class-wp-scss.php

Due to the unexpected value "/" of get_home_path() the URL of the generated CSS file does not point to a file.
The CSS won't be loaded, the site looks scrambled.

What went wrong?
If SCRIPT_FILENAME is outside the installation directory, the directory can't be found. This case is not handled, hence value "/" is returned

Possible fix:
return ABSPATH in that case

Change History (1)

#1 @costdev
7 weeks ago

  • Keywords reporter-feedback dev-feedback close added

I just followed Method II here as the ticket mentions. My custom scss is compiled and correctly loaded into the theme.

Notes:

  1. I used pretty permalinks i.e. /%postname%/, which meant copying the .htaccess file from wp/ back to the root directory as stated in the guide linked above. I also had to refresh permalinks in the admin.
  2. Once this is done, I had to go to the WP SCSS settings and click Save Settings, which correctly pointed the plugin to the new location for the files.

There don't seem to be any commits to this function since the ticket was raised. It's possible that one of the steps above or in the guide were missed.

Pending reporter feedback, or dev feedback regarding whether or not there is a sufficient number of edge cases to suggest that get_home_path() should handle when SCRIPT_FILENAME is outside the installation directory, I think this ticket is ready to close.

Note: See TracTickets for help on using tickets.