Php bao gồm một phần của tập tin

Bạn có thể đưa nội dung của một tệp PHP vào một tệp PHP khác trước khi máy chủ thực thi nó. Có hai hàm PHP có thể được sử dụng để bao gồm một tệp PHP vào một tệp PHP khác

  • Hàm bao gồm ()
  • Hàm yêu cầu ()

Đây là điểm mạnh của PHP giúp tạo các hàm, header, footer hay các phần tử có thể sử dụng lại trên nhiều trang. Điều này sẽ giúp các nhà phát triển dễ dàng thay đổi bố cục của trang web hoàn chỉnh với nỗ lực tối thiểu. Nếu có bất kỳ thay đổi nào cần thiết thì thay vì thay đổi hàng nghìn tệp, chỉ cần thay đổi tệp được bao gồm

Hàm bao gồm ()

Hàm bao gồm () lấy tất cả văn bản trong một tệp được chỉ định và sao chép nó vào tệp sử dụng hàm bao gồm. Nếu có bất kỳ vấn đề nào khi tải tệp thì hàm include() sẽ tạo cảnh báo nhưng tập lệnh sẽ tiếp tục thực thi

Giả sử bạn muốn tạo một menu chung cho trang web của mình. Sau đó tạo một menu tập tin. php với nội dung sau

Home - 
ebXML - 
AJAX - 
PERL 

Bây giờ hãy tạo bao nhiêu trang tùy thích và bao gồm tệp này để tạo tiêu đề. Ví dụ bây giờ bài kiểm tra của bạn. tệp php có thể có nội dung sau

   
   
      include("menu.php"); ?>
      

This is an example to show how to include PHP file!

Nó sẽ tạo ra kết quả sau -

Php bao gồm một phần của tập tin

Hàm yêu cầu ()

Hàm request() lấy tất cả văn bản trong một tệp đã chỉ định và sao chép nó vào tệp sử dụng hàm bao gồm. Nếu có bất kỳ sự cố nào khi tải tệp thì hàm request() sẽ tạo ra lỗi nghiêm trọng và tạm dừng việc thực thi tập lệnh

Vì vậy, không có sự khác biệt trong yêu cầu () và bao gồm () ngoại trừ chúng xử lý các điều kiện lỗi. Bạn nên sử dụng hàm require() thay vì include(), vì các tập lệnh sẽ không tiếp tục thực thi nếu các tệp bị thiếu hoặc đặt tên sai

Bạn có thể thử sử dụng ví dụ trên với hàm require() và nó sẽ tạo ra kết quả tương tự. Nhưng nếu bạn thử làm theo hai ví dụ trong đó tệp không tồn tại thì bạn sẽ nhận được kết quả khác

   
   
      
      

This is an example to show how to include wrong PHP file!

Điều này sẽ tạo ra kết quả sau -

This is an example to show how to include wrong PHP file!

Bây giờ hãy thử ví dụ tương tự với hàm require()

   
       
       require("xxmenu.php"); ?>
       

This is an example to show how to include wrong PHP file!

Lần này việc thực thi tệp tạm dừng và không có gì được hiển thị

LƯU Ý – Bạn có thể nhận được thông báo cảnh báo đơn giản hoặc thông báo lỗi nghiêm trọng hoặc không có gì cả. Điều này phụ thuộc vào cấu hình Máy chủ PHP của bạn

Bao gồm phần mẫu được đặt tên cho một chủ đề hoặc nếu một tên được chỉ định thì một phần chuyên biệt sẽ được bao gồm. Nếu chủ đề không chứa {slug}. php thì sẽ không có mẫu nào được đưa vào

Mẫu được bao gồm bằng cách sử dụng yêu cầu, không phải request_once, vì vậy bạn có thể bao gồm cùng một phần mẫu nhiều lần

Đối với tham số $name, nếu tệp có tên "{slug}-special. php" thì chỉ định "đặc biệt"


get_template_part(
	'template-part',
	'name',
	array(
		'key'	=> 'value',
		'key2'	=> 'value2'
	)
);
2 chuỗi Bắt buộc

Tên sên cho mẫu chung

get_template_part(
	'template-part',
	'name',
	array(
		'key'	=> 'value',
		'key2'	=> 'value2'
	)
);
3 chuỗi Tùy chọn

Tên tiêu bản chuyên ngành

Vỡ nợ.

get_template_part(
	'template-part',
	'name',
	array(
		'key'	=> 'value',
		'key2'	=> 'value2'
	)
);
4

get_template_part(
	'template-part',
	'name',
	array(
		'key'	=> 'value',
		'key2'	=> 'value2'
	)
);
5 mảng Tùy chọn

Các đối số bổ sung được chuyển đến mẫu

Vỡ nợ.

get_template_part(
	'template-part',
	'name',
	array(
		'key'	=> 'value',
		'key2'	=> 'value2'
	)
);
6


khoảng trống. false Vô hiệu khi thành công, sai nếu mẫu không tồn tại.


get_template_part( $slug );
get_template_part( $slug, $name );

Ghi chú.

get_template_part(
	'template-part',
	'name',
	array(
		'key'	=> 'value',
		'key2'	=> 'value2'
	)
);
7 âm thầm thất bại


Tập tin.

get_template_part(
	'template-part',
	'name',
	array(
		'key'	=> 'value',
		'key2'	=> 'value2'
	)
);
8. Xem tất cả tài liệu tham khảo

function get_template_part( $slug, $name = null, $args = array() ) {
	/**
	 * Fires before the specified template part file is loaded.
	 *
	 * The dynamic portion of the hook name, `$slug`, refers to the slug name
	 * for the generic template part.
	 *
	 * @since 3.0.0
	 * @since 5.5.0 The `$args` parameter was added.
	 *
	 * @param string      $slug The slug name for the generic template.
	 * @param string|null $name The name of the specialized template.
	 * @param array       $args Additional arguments passed to the template.
	 */
	do_action( "get_template_part_{$slug}", $slug, $name, $args );

	$templates = array();
	$name      = (string) $name;
	if ( '' !== $name ) {
		$templates[] = "{$slug}-{$name}.php";
	}

	$templates[] = "{$slug}.php";

	/**
	 * Fires before an attempt is made to locate and load a template part.
	 *
	 * @since 5.2.0
	 * @since 5.5.0 The `$args` parameter was added.
	 *
	 * @param string   $slug      The slug name for the generic template.
	 * @param string   $name      The name of the specialized template.
	 * @param string[] $templates Array of template files to search for, in order.
	 * @param array    $args      Additional arguments passed to the template.
	 */
	do_action( 'get_template_part', $slug, $name, $templates, $args );

	if ( ! locate_template( $templates, true, false, $args ) ) {
		return false;
	}
}


do_action ( 'get_template_part', chuỗi $slug, string $name, string[] $templates, array $args )

Kích hoạt trước khi cố gắng định vị và tải một phần mẫu

do_action ( "get_template_part_{$slug}", chuỗi $slug, string|null $name , mảng $args )

Kích hoạt trước khi tệp phần mẫu được chỉ định được tải


UsesUsesDescriptionlocate_template() wp-includes/template. php

Truy xuất tên của tệp mẫu có mức ưu tiên cao nhất đang tồn tại

do_action() wp-gộp/plugin. php

Gọi các chức năng gọi lại đã được thêm vào hook hành động


ChangelogVersionDescription5. 5. 0 Tham số
get_template_part(
	'template-part',
	'name',
	array(
		'key'	=> 'value',
		'key2'	=> 'value2'
	)
);
5 đã được thêm vào.
3. 0. 0Giới thiệu.

  1. Bạn phải đăng nhập để bình chọn về mức độ hữu ích của ghi chú nàyKết quả bình chọn cho ghi chú này. 57Bạn phải đăng nhập để bình chọn về mức độ hữu ích của ghi chú này

    Đóng góp bởi Codex

    Sử dụng với các thư mục con chủ đề

    Để sử dụng chức năng này với các thư mục con trong thư mục chủ đề của bạn, chỉ cần thêm tên thư mục trước sên. Ví dụ: nếu bạn có một thư mục có tên là “partials” trong thư mục chủ đề của mình và một phần mẫu có tên là “content-page. php” trong thư mục con đó, bạn sẽ sử dụng

    get_template_part(
    	'template-part',
    	'name',
    	array(
    		'key'	=> 'value',
    		'key2'	=> 'value2'
    	)
    );
    7 như thế này

    Đăng nhập để thêm phản hồi
  2. Bạn phải đăng nhập để bình chọn về mức độ hữu ích của ghi chú nàyKết quả bình chọn cho ghi chú này. 51Bạn phải đăng nhập để bình chọn về mức độ hữu ích của ghi chú này

    Đóng góp bởi Vinobe

    Truyền biến sau WordPress 5. 5 bản cập nhật
    =================================================================

    Khi gọi hàm

    get_template_part(
    	'template-part',
    	'name',
    	array(
    		'key'	=> 'value',
    		'key2'	=> 'value2'
    	)
    );

    Trong phần mẫu của bạn

    var_dump( $args );	// Everything
    echo $args['key'];	// Specific values

    Đăng nhập để thêm phản hồi
  3. Bạn phải đăng nhập để bình chọn về mức độ hữu ích của ghi chú nàyKết quả bình chọn cho ghi chú này. 34Bạn phải đăng nhập để bình chọn về mức độ hữu ích của ghi chú này

    Đóng góp bởi pcarvalho

    codex cũ có mục này về "Chuyển biến cho mẫu"

    Vì mẫu đang được yêu cầu, nên mẫu sẽ không có quyền truy cập vào bất kỳ biến nào bạn xác định trong mã PHP của chủ đề gọi điện, trừ khi bạn khai báo rõ ràng chúng là toàn cầu

    Tuy nhiên, load_template(), được gọi gián tiếp bởi get_template_part() trích xuất tất cả các biến truy vấn WP_Query, vào phạm vi của mẫu đã tải. Vì vậy, bạn có thể sử dụng set_query_var() để cung cấp biến của mình cho phần mẫu

    // You wish to make $my_var available to the template part at `content-part.php`
    set_query_var( 'my_var', $my_var );
    get_template_part( 'content', 'part' );

    • Đề xuất nhỏ, nó nên là 'Vì vị trí trong quá trình thực thi mã, mẫu đang được yêu cầu'. Thực tế là được yêu cầu so với được đưa vào không phải là lý do khiến người ta phải sử dụng các biến truy vấn WP_Query. — Bởi Jonathan Bossenger —

    • // Kể từ phiên bản WP 5. 5, chúng ta có thể đặt các đối số trực tiếp như sau // Lưu ý. phương thức mảng yêu cầu PHP 7. * $args = [ ‘my_var_1’ => $my_var_1, ‘my_var_2’ => $my_var_2, ];

    Đăng nhập để thêm phản hồi
  4. Bạn phải đăng nhập để bình chọn về mức độ hữu ích của ghi chú nàyKết quả bình chọn cho ghi chú này. 32Bạn phải đăng nhập để bình chọn về mức độ hữu ích của ghi chú này

    Đóng góp bởi Codex

    Sử dụng vòng lặp. php trong chủ đề con
    Giả sử thư mục chủ đề là

    var_dump( $args );	// Everything
    echo $args['key'];	// Specific values
    1, chủ đề gốc là 20 và chủ đề con là 20tenchild, thì đoạn mã sau —

    sẽ thực hiện PHP

    var_dump( $args );	// Everything
    echo $args['key'];	// Specific values
    2 cho tệp đầu tiên tồn tại trong số này, theo mức độ ưu tiên này

    wp-content/Themes/Twentytenchild/loop-index. php
    wp-content/Themes/Twentyten/loop-index. php
    nội dung wp/chủ đề/hai mươi mười con/vòng lặp. php
    nội dung wp/chủ đề/hai mươi/vòng lặp. php

    Đăng nhập để thêm phản hồi
  5. Bạn phải đăng nhập để bình chọn về mức độ hữu ích của ghi chú nàyKết quả bình chọn cho ghi chú này. 9Bạn phải đăng nhập để bình chọn về mức độ hữu ích của ghi chú này

    Đóng góp bởi Codex

    dẫn đường
    Thêm thanh điều hướng vào chủ đề bằng tệp mẫu

    var_dump( $args );	// Everything
    echo $args['key'];	// Specific values
    3 chung

    
    
    

    Đăng nhập để thêm phản hồi
  6. Bạn phải đăng nhập để bình chọn về mức độ hữu ích của ghi chú nàyKết quả bình chọn cho ghi chú này. 7Bạn phải đăng nhập để bình chọn về mức độ hữu ích của ghi chú này

    Đóng góp bởi đội trưởng cainer

    Một ví dụ đơn giản về cách sử dụng tham số

    get_template_part(
    	'template-part',
    	'name',
    	array(
    		'key'	=> 'value',
    		'key2'	=> 'value2'
    	)
    );
    5 trong WordPress 5. 5 trong phần mẫu của bạn

     'hello world' );
    
    get_template_part( 'template-parts/file', 'name', $args ); // template-parts/file-name.php

    Trong phần mẫu của bạn

    get_template_part( $slug, $name );
    0

    đầu ra

    get_template_part( $slug, $name );
    1

    Đăng nhập để thêm phản hồi
  7. Bạn phải đăng nhập để bình chọn về mức độ hữu ích của ghi chú nàyKết quả bình chọn cho ghi chú này. 4Bạn phải đăng nhập để bình chọn về mức độ hữu ích của ghi chú này

    Đóng góp bởi Andy Macaulay-Brook

    Đôi khi kể từ tháng 1 năm 2019, hàm đã thay đổi thành trả về false nếu không tìm thấy tệp mẫu. Điều này không được ghi chú trong các nhận xét mã hoặc thay đổi. Lưu ý rằng chức năng bị lỗi âm thầm không còn chính xác

    Điều này hiện giúp các plugin dễ dàng cung cấp dự phòng mẫu (hoặc cho phép ghi đè mẫu, tùy thuộc vào quan điểm của bạn) như thế này

    get_template_part( $slug, $name );
    2

    • Giá trị trả lại đã được thêm vào tháng 6 năm 2020 trong bộ thay đổi 48209 để sửa vé 40969. — Bởi crstauf —

    Đăng nhập để thêm phản hồi
  8. Bạn phải đăng nhập để bình chọn về mức độ hữu ích của ghi chú nàyKết quả bình chọn cho ghi chú này. 3Bạn phải đăng nhập để bình chọn về mức độ hữu ích của ghi chú này

    Được đóng góp bởi Selrond

    Nhận một tập tin cụ thể

    Mặc dù kiểu này làm mất đi mục đích của chức năng này, nhưng cũng có thể tải một tệp mẫu cụ thể với nó. Tất cả những gì bạn phải làm là chỉ sử dụng một đối số

    get_template_part( $slug, $name );
    3

    sẽ bao gồm

    var_dump( $args );	// Everything
    echo $args['key'];	// Specific values
    5 từ thư mục con template-parts được đặt trong thư mục gốc của thư mục chủ đề của bạn

    Đăng nhập để thêm phản hồi
  9. Bạn phải đăng nhập để bình chọn về mức độ hữu ích của ghi chú nàyKết quả bình chọn cho ghi chú này. 3Bạn phải đăng nhập để bình chọn về mức độ hữu ích của ghi chú này

    Đóng góp bởi jabbadu

    Kể từ WP 5. 5 tham số $args được sử dụng để chuyển các biến qua mẫu

    get_template_part( $slug, $name );
    4

    Đăng nhập để thêm phản hồi
  10. Bạn phải đăng nhập để bình chọn về mức độ hữu ích của ghi chú nàyKết quả bình chọn cho ghi chú này. 2Bạn phải đăng nhập để bình chọn về mức độ hữu ích của ghi chú này

    Được đóng góp bởi Ahmad Karim

    Bạn cũng có thể truy cập các biến mẫu trong tệp phần mẫu của mình bằng cách thực hiện việc này

    get_template_part( $slug, $name );
    5

    var_dump( $args );	// Everything
    echo $args['key'];	// Specific values
    6 của bạn sẽ giống như thế này

    get_template_part( $slug, $name );
    6

    – Hãy nhớ rằng đối số thứ ba

    get_template_part(
    	'template-part',
    	'name',
    	array(
    		'key'	=> 'value',
    		'key2'	=> 'value2'
    	)
    );
    5 đã được thêm vào kể từ phiên bản 5. 5

    • Các tiêu chuẩn mã hóa WordPress PHP không cho phép sử dụng

      var_dump( $args );	// Everything
      echo $args['key'];	// Specific values
      8. — Bởi crstauf —

    Đăng nhập để thêm phản hồi
  11. Bạn phải đăng nhập để bình chọn về mức độ hữu ích của ghi chú nàyKết quả bình chọn cho ghi chú này. 2Bạn phải đăng nhập để bình chọn về mức độ hữu ích của ghi chú này

    Được đóng góp bởi pixelstorm

    Sử dụng một boolean trong $args

    get_template_part( $slug, $name );
    7_______11_______8

    Đăng nhập để thêm phản hồi
  12. Bạn phải đăng nhập để bình chọn về mức độ hữu ích của ghi chú nàyKết quả bình chọn cho ghi chú này. 1Bạn phải đăng nhập để bình chọn về mức độ hữu ích của ghi chú này

    Đóng góp bởi Muhammad Jawad Abbasi

    get_template_part(tên thư mục/tên tệp không có. phần mở rộng php)

    get_template_part( $slug, $name );
    9

    Tạo một thư mục trong thư mục chính của chủ đề

    Tên thư mục “template-parts” sau đó thêm hai. php trong thư mục “template-parts” người dùng đăng nhập. php và người dùng không đăng nhập. php

    Nếu người dùng đăng nhập hiển thị loginuser. nội dung tệp php

    Nếu người dùng không đăng nhập hiển thị nonloginuser. nội dung tệp php

    Ghi chú. Sử dụng bất kỳ tên thư mục và tệp nào ở trên Tôi đã sử dụng tên thư mục và tên tệp ngẫu nhiên

    Đăng nhập để thêm phản hồi
  13. Bạn phải đăng nhập để bình chọn về mức độ hữu ích của ghi chú nàyKết quả bình chọn cho ghi chú này. 1Bạn phải đăng nhập để bình chọn về mức độ hữu ích của ghi chú này

    Đóng góp bởi theaquarium

    Xin lưu ý rằng chức năng này chỉ hoạt động đối với các chủ đề Wordpress cổ điển. Để in một phần mẫu trong chủ đề Khối, thay vào đó hãy sử dụng block_template_part()

    Đăng nhập để thêm phản hồi
  14. Bạn phải đăng nhập để bình chọn về mức độ hữu ích của ghi chú nàyKết quả bình chọn cho ghi chú này. -2Bạn phải đăng nhập để bình chọn về mức độ hữu ích của ghi chú này

    Được đóng góp bởi luboslives

    Nếu máy chủ web của bạn đang sử dụng ModSecurity, nó có thể sẽ chặn các nỗ lực nội tuyến SVG bằng phương pháp PHP như

    var_dump( $args );	// Everything
    echo $args['key'];	// Specific values
    9. Bạn có thể sử dụng
    get_template_part(
    	'template-part',
    	'name',
    	array(
    		'key'	=> 'value',
    		'key2'	=> 'value2'
    	)
    );
    7 để đặt SVG nội tuyến

    1. Tạo một bản sao SVG của bạn, trong đó
      // You wish to make $my_var available to the template part at `content-part.php`
      set_query_var( 'my_var', $my_var );
      get_template_part( 'content', 'part' );
      1 trở thành
      // You wish to make $my_var available to the template part at `content-part.php`
      set_query_var( 'my_var', $my_var );
      get_template_part( 'content', 'part' );
      2
    2. Nội tuyến chúng trong mẫu của bạn bằng cách sử dụng
      // You wish to make $my_var available to the template part at `content-part.php`
      set_query_var( 'my_var', $my_var );
      get_template_part( 'content', 'part' );
      3

    Tại thời điểm viết, điều này hoạt động để khắc phục quy tắc OWASP mặc định được đặt cho ModSecurity. Không được thử nghiệm với các bộ quy tắc khác

    Đăng nhập để thêm phản hồi
  15. Bạn phải đăng nhập để bình chọn về mức độ hữu ích của ghi chú nàyKết quả bình chọn cho ghi chú này. -3Bạn phải đăng nhập để bình chọn về mức độ hữu ích của ghi chú này

    Đóng góp bởi Felipe Marcos

    Truyền biến cho get_template_part()

    Không thể truyền biến cho mẫu được tải qua get_template_part(). Tôi đã nghĩ ra một giải pháp thay thế không dựa vào các biến toàn cục để nó hoạt động

    Làm cách nào để bao gồm phần trong PHP?

    PHP Bao gồm các tệp. Câu lệnh bao gồm (hoặc yêu cầu ) lấy tất cả văn bản/mã/đánh dấu tồn tại trong tệp đã chỉ định và sao chép nó vào tệp sử dụng câu lệnh bao gồm . Bao gồm các tệp rất hữu ích khi bạn muốn bao gồm cùng một PHP, HTML hoặc văn bản trên nhiều trang của một trang web.

    Sự khác biệt giữa các chức năng bao gồm () và yêu cầu () là gì?

    bao gồm() Vs yêu cầu() . Đồng thời, câu lệnh require() tạo ra lỗi nghiêm trọng và chấm dứt tập lệnh. the include() statement generates a PHP alert but allows script execution to proceed if the file to be included cannot be found. At the same time, the require() statement generates a fatal error and terminates the script.

    Sự khác biệt giữa bao gồm và bao gồm trong PHP là gì?

    bao gồm so với bao gồm_once. Chỉ có một sự khác biệt giữa bao gồm() và bao gồm_once(). Nếu mã từ một tệp đã được đưa vào thì mã đó sẽ không được đưa vào lại nếu chúng ta sử dụng include_once() . Có nghĩa là include_once() chỉ bao gồm tệp một lần tại một thời điểm.

    Làm cách nào để bao gồm nhiều tệp trong PHP?

    Redis và PHP .
    Tên đầu vào phải được định nghĩa là một mảng i. e. tên = "tên đầu vào []"
    Phần tử đầu vào phải có nhiều = "nhiều" hoặc chỉ nhiều
    Trong tệp PHP, sử dụng cú pháp "$_FILES['inputName']['param'][index]"
    Tên tệp và đường dẫn trống phải được kiểm tra vì mảng có thể chứa các chuỗi trống