Get_home_path WordPress

Nhiều nhà phát triển WordPress thường nhầm lẫn giữa get_home_path() và ABSPATH. Cũng như vậy, Họ nhầm lẫn giữa get_home_url() và get_site_url(). Cả hai mã đều cho cùng một kết quả khi cài đặt WordPress bình thường. Nhưng cả hai mã đều cho kết quả khác nhau trong một trang cài đặt WordPress đặc biệt nơi các tệp cốt lõi của WordPress nằm ở một nơi khác với thư mục gốc của trang web

Ở đây, tôi sẽ giải thích sự khác biệt giữa get_home_path() và ABSPATH bằng cách lấy một ví dụ. Để hiểu nó, tôi đã tạo một trang web WordPress demo trong đó tôi đã tạo một thư mục con mã WordPress khác trong thư mục con /wordpress. Để hiểu cách di chuyển mã WordPress sang một thư mục con khác, bạn nên làm theo các bước được mô tả trong. Tôi đã cung cấp một thư mục con WordPress khác cho trang web WordPress của mình. Tôi đã sử dụng Phương pháp 2 được mô tả trong liên kết đã cho

Tôi đã thêm mã bên dưới vào wp-content/mu-plugins/test. tập tin php

';
    echo 'ABSPATH: '.ABSPATH;

    echo '

'; echo 'Home URL: '.get_home_url(); echo '
'; echo 'Site URL: '.get_site_url(); die; } );

Đầu ra của kịch bản như dưới đây

Home Path: //Users/prashant/Local Sites/wpsepdir/app/public/
ABSPATH: /Users/prashant/Local Sites/wpsepdir/app/public/wordpress/


Home URL: http://wpsepdir.local
Site URL: http://wpsepdir.local/wordpress

get_home_path() cung cấp đường dẫn gốc của trang web WordPress. `ABSPATH` cung cấp đường dẫn của thư mục con chứa mã WordPress

get_home_path() cung cấp URL nơi người dùng có thể truy cập trang web.

Home Path: //Users/prashant/Local Sites/wpsepdir/app/public/
ABSPATH: /Users/prashant/Local Sites/wpsepdir/app/public/wordpress/


Home URL: http://wpsepdir.local
Site URL: http://wpsepdir.local/wordpress
1 cung cấp URL chứa mã WordPress

Ở đây, từ Home đề cập đến trang chủ của trang web. Trang chủ là thư mục gốc của trang web. Trong khi trang web và ABSPATH đề cập đến thư mục con WordPress nơi tồn tại mã lõi WordPress

Nguồn

Tập tin. wp-admin/bao gồm/tệp. php

function get_home_path() {
	$home    = set_url_scheme( get_option( 'home' ), 'http' );
	$siteurl = set_url_scheme( get_option( 'siteurl' ), 'http' );

	if ( ! empty( $home ) && 0 !== strcasecmp( $home, $siteurl ) ) {
		$wp_path_rel_to_home = str_ireplace( $home, '', $siteurl ); /* $siteurl - $home */
		$pos                 = strripos( str_replace( '\\', '/', $_SERVER['SCRIPT_FILENAME'] ), trailingslashit( $wp_path_rel_to_home ) );
		$home_path           = substr( $_SERVER['SCRIPT_FILENAME'], 0, $pos );
		$home_path           = trailingslashit( $home_path );
	} else {
		$home_path = ABSPATH;
	}

	return str_replace( '\\', '/', $home_path );
}

Nó không có sẵn trên trang chủ, nó chỉ có sẵn từ wp-admin (phụ trợ). Bạn nên kiểm tra xem is_admin() nếu không bạn sẽ gặp “Lỗi nghiêm trọng. Lỗi chưa xử lý. Gọi hàm không xác định get_home_path()“

// make sure that get_home_path() is defined
require_once ABSPATH . 'wp-admin/includes/file.php';

echo get_home_path();
echo ABSPATH;                     
echo $_SERVER['SCRIPT_FILENAME'];
echo $_SERVER['DOCUMENT_ROOT'];

/* 
/
path/sites/site.com/www/wp/
path/sites/site.com/www/index.php
path/sites/site.com/www
*/

Ở phía trước, chức năng không hoạt động chính xác vì nó phụ thuộc vào sự khác biệt giữa các tùy chọn

Home Path: //Users/prashant/Local Sites/wpsepdir/app/public/
ABSPATH: /Users/prashant/Local Sites/wpsepdir/app/public/wordpress/


Home URL: http://wpsepdir.local
Site URL: http://wpsepdir.local/wordpress
2 và
Home Path: //Users/prashant/Local Sites/wpsepdir/app/public/
ABSPATH: /Users/prashant/Local Sites/wpsepdir/app/public/wordpress/


Home URL: http://wpsepdir.local
Site URL: http://wpsepdir.local/wordpress
3. Trong trường hợp này, nó là (chuỗi)
Home Path: //Users/prashant/Local Sites/wpsepdir/app/public/
ABSPATH: /Users/prashant/Local Sites/wpsepdir/app/public/wordpress/


Home URL: http://wpsepdir.local
Site URL: http://wpsepdir.local/wordpress
4. Sau đó, từ
echo get_home_path();
echo ABSPATH;                     
echo $_SERVER['SCRIPT_FILENAME'];
echo $_SERVER['DOCUMENT_ROOT'];

/*
path/sites/site.com/www/
path/sites/site.com/www/wp/
path/sites/site.com/www/wp/wp-admin/options-permalink.php
path/sites/site.com/www
*/
0, mọi thứ từ đầu đến vị trí này đều bị cắt bỏ - đây là kết quả được hàm trả về với dấu gạch chéo được thêm vào cuối. Và vì ở phía trước
echo get_home_path();
echo ABSPATH;                     
echo $_SERVER['SCRIPT_FILENAME'];
echo $_SERVER['DOCUMENT_ROOT'];

/*
path/sites/site.com/www/
path/sites/site.com/www/wp/
path/sites/site.com/www/wp/wp-admin/options-permalink.php
path/sites/site.com/www
*/
0 hoàn toàn không chứa chuỗi con
Home Path: //Users/prashant/Local Sites/wpsepdir/app/public/
ABSPATH: /Users/prashant/Local Sites/wpsepdir/app/public/wordpress/


Home URL: http://wpsepdir.local
Site URL: http://wpsepdir.local/wordpress
4, nên đường dẫn trống - không thể xác định được

Nó trông giống như một lỗi

0

Nhận đường dẫn đến thư mục chính của trang web

Thư mục này thường chứa tệp

echo get_home_path();
echo ABSPATH;                     
echo $_SERVER['SCRIPT_FILENAME'];
echo $_SERVER['DOCUMENT_ROOT'];

/*
path/sites/site.com/www/
path/sites/site.com/www/wp/
path/sites/site.com/www/wp/wp-admin/options-permalink.php
path/sites/site.com/www
*/
3 và
echo get_home_path();
echo ABSPATH;                     
echo $_SERVER['SCRIPT_FILENAME'];
echo $_SERVER['DOCUMENT_ROOT'];

/*
path/sites/site.com/www/
path/sites/site.com/www/wp/
path/sites/site.com/www/wp/wp-admin/options-permalink.php
path/sites/site.com/www
*/
4. Giả sử chúng ta cần thay đổi tệp
echo get_home_path();
echo ABSPATH;                     
echo $_SERVER['SCRIPT_FILENAME'];
echo $_SERVER['DOCUMENT_ROOT'];

/*
path/sites/site.com/www/
path/sites/site.com/www/wp/
path/sites/site.com/www/wp/wp-admin/options-permalink.php
path/sites/site.com/www
*/
4

Đường dẫn tuyệt đối trong WordPress là gì?

Đường dẫn tuyệt đối chứa tất cả các thành phần và danh sách đầy đủ các thư mục để tìm một thư mục hoặc tệp cụ thể và bắt đầu bằng URL tên miền . Một đường dẫn tuyệt đối có thể là một phiên bản đầy đủ hoặc ngắn. Phiên bản ngắn bắt đầu bằng dấu gạch chéo lên phía trước và một phần của URL đầy đủ nhưng không có tên miền.

Thư mục gốc trong WordPress là gì?

Bản cài đặt WordPress nằm trong thư mục gốc, thường là public_html hoặc public và mọi thứ khác nằm trong đó. Có 3 thư mục cốt lõi trong thư mục gốc của WordPress. wp-content, wp-gồm và wp-admin .