Hướng dẫn check file exist wordpress - kiểm tra tập tin tồn tại wordpress

Tôi đang cố gắng nhập một tệp trong WordPress, nhưng nó hoạt động với RAW (tệp cục bộ trong localhost) hoặc tệp được gói trên máy chủ sau khi "webpacking" và phục vụ từ /dist /. Tôi đang cố gắng đưa ra một logic kiểm tra xem tệp cục bộ có tồn tại hay không - nếu vậy, hãy sử dụng nó, nếu không hãy lấy nó từ Dist:
I am trying to make a logic that checks whether the local file exists - if so, use it, otherwise get it from dist:

$file = file_exists('/src/javascript/pages/linksCount.js')
    ? get_template_directory_uri() . '/src/javascript/pages/linksCount.js'
    // : get_template_directory_uri() . '/dist/linksCount.js';
    : get_template_directory_uri() . 'non-existent.js';
wp_register_script('links_count', $file, array(), '1.0', true);
wp_enqueue_script('links_count');

Dòng nhận xét là những gì nên hoạt động trên máy chủ, nhưng nếu tôi không nhận xét, nó hoạt động cục bộ và chạy tệp từ cục bộ /dist /, vì vậy tôi không thể thấy sự khác biệt. Không có cách nào để làm cho nó hoạt động ... đã thử với get_template_directory_uri() . '/src/javascript/pages/linksCount.js''../../src/javascript/pages/linksCount.js' (liên quan đến tệp thực tế). Tôi bị mắc kẹt, có lẽ đã phạm một sai lầm ngớ ngẩn nhưng tôi thực sự sẽ đánh giá cao một số trợ giúp. Tôi không có kinh nghiệm lắm trong WordPress hoặc PHP và hy vọng sẽ tìm hiểu thêm một chút, vì vậy, nếu có một cách tiếp cận hoàn toàn khác để khắc phục điều này, xin vui lòng cho tôi và tôi tái cấu trúc toàn bộ. .
There's no way to make it work... tried with get_template_directory_uri() . '/src/javascript/pages/linksCount.js' and '../../src/javascript/pages/linksCount.js' (relative to the actual file).
I am stuck, probably making a dumb mistake but I would really appreciate some help. I am not very experienced in Wordpress or PHP and hope to learn a bit more, so, if there is a complete different approach to fix this, please show me and I refactor the whole thing.
(BTW): calling wp_register_script with get_template_directory_uri() . '/src/javascript/pages/linksCount.js' works perfectly, so I think it's something about the is_file or

ID, '_meta_example_name', true) . '_7_SM.jpg') ) {
?>
    
...
0that I can't grasp.

Bối cảnh: Đối với hình ảnh của một trang web được sử dụng trong một phần cụ thể, mỗi bài đăng dựa trên một tên cơ sở được đặt vào dữ liệu meta, sau đó được sử dụng với các tiện ích mở rộng tự động để tạo hình ảnh lớn, hình ảnh thu nhỏ của bộ sưu tập và hình thu nhỏ trang chỉ mục.

Ví dụ: nếu example_name là tên cơ sở, thì:

ID, '_meta_example_name', true) . '_7_SM.jpg') ) {
?>
    
...
1 là hình ảnh lớn thứ hai trong sê -ri
ID, '_meta_example_name', true) . '_7_SM.jpg') ) {
?>
    
...
2 là hình thu nhỏ bộ sưu tập thứ hai tương ứng
ID, '_meta_example_name', true) . '_7_SM.jpg') ) {
?>
    
...
1 is the second large image in the series
ID, '_meta_example_name', true) . '_7_SM.jpg') ) {
?>
    
...
2 is the corresponding second gallery thumbnail image
ID, '_meta_example_name', true) . '_7_SM.jpg') ) {
?>
    
...
3 is the index thumbnail chosen to represent the set

Bằng cách sử dụng dữ liệu meta và điều kiện PHP, tất cả các máy khách phải làm là đặt tên cơ sở một lần và tải các hình ảnh được đặt tên phù hợp vào thư mục tải lên và mẫu trang điền vào chỗ trống.

Tất cả điều này đang hoạt động tốt, với một lần bắt. Có bảy vị trí cho hình thu nhỏ và trang hiển thị tất cả các div hình thu nhỏ, ngay cả khi có ít hơn bảy hình ảnh hình thu nhỏ trong thư mục tải lên.

Tôi muốn bọc từng con số hình thu nhỏ với một điều kiện sử dụng

ID, '_meta_example_name', true) . '_7_SM.jpg') ) {
?>
    
...
0 để kiểm tra sự tồn tại của hình ảnh thu nhỏ thực sự trong thư mục tải lên, để nếu hình ảnh được đặt tên không tồn tại ở đường dẫn tệp được chỉ định, div trống tương ứng ( và siêu liên kết của nó) sẽ không xuất hiện.

Tôi đã thử xây dựng các đường dẫn tuyệt đối bằng cách sử dụng hàm

ID, '_meta_example_name', true) . '_7_SM.jpg') ) {
?>
    
...
5, cũng như
ID, '_meta_example_name', true) . '_7_SM.jpg') ) {
?>
    
...
6 và thậm chí cả
ID, '_meta_example_name', true) . '_7_SM.jpg') ) {
?>
    
...
7 không dùng nữa, nhưng chỉ thành công trong việc tạo lỗi PHP. Tôi cho rằng đây là một vấn đề đường dẫn hoặc một cái gì đó đặc biệt tôi không hiểu về chức năng PHP ____10.

Ví dụ về vụ nổ trang bằng WP_UPLOAD_DIR:

ID, '_meta_example_name', true) . '_7_SM.jpg') ) {
?>
    
...

Bất kỳ đề xuất đánh giá cao.

Trong COBOL, khi một chương trình cố gắng tải một tệp không tồn tại, chương trình thường tồn tại với một thông điệp của biểu mẫu:

libcob: error: file does not exist (status = 35) for file ifile ('student_txt' =>
       10  stdnt-idno  pic x(7).

Đây là loại lộn xộn. Vậy làm thế nào để chúng tôi kiểm tra sự tồn tại của tệp? Sử dụng chức năng tích hợp, CBL_CHECK_FILE_EXIST. Nó yêu cầu hai tham số: tên tệp và cấu trúc để chứa thông tin về tệp. Chương trình dưới đây kiểm tra để xem một tập tin tồn tại. Nếu tệp không tồn tại, một thông báo lỗi là đầu ra và chương trình chấm dứt. Nếu một tệp tồn tại, nó sẽ in ra tên, kích thước và năm được tạo. Việc kiểm tra thực tế được thực hiện bởi đoạn kiểm tra đoạn văn-tồn tại. Tệp cấu trúc-INFO là bắt buộc và giữ thông tin được trích xuất từ ​​tệp.CBL_CHECK_FILE_EXIST“. It requires two parameters: the file name, and a structure to hold information about the file. The program below checks to see a file exists. If the file doesn’t exists, a error message is output and the program terminates. If a file does exist, it prints out the name, size, and year created. The actual checking is done by the paragraph check-file-exists. The structure file-info is required, and holds the information extracted from the file.

identification division.
program-id. fileio.

environment division.
input-output section.
file-control.
select ifile assign to dynamic ws-fname.

data division.
file section.
fd ifile
    record contains 88 characters.
01 student-info.
   05  student-name occurs 4 times.
       10  stdnt-name  pic x(15).
       10  stdnt-idno  pic x(7).

working-storage section.
01 i                   pic  9.
77 ws-fname            pic x(30).
01 file-info.
   05 file-size        pic x(8) comp-x.
   05 file-date.
      10 f-day         pic x comp-x.
      10 f-month       pic x comp-x.
      10 f-year        pic xx comp-x.
   05 file-time.
      10 f-hours       pic x comp-x.
      10 f-minutes     pic x comp-x.
      10 f-seconds     pic x comp-x.
      10 f-hundredths  pic x comp-x.

procedure division.

   display "Filename? ".
   accept ws-fname.
   perform check-file-exists.
   stop run.

check-file-exists.
   call "CBL_CHECK_FILE_EXIST" using ws-fname file-info.
   if return-code not equal zero then
      display "Error: File " ws-fname(1:20) " does not exist"
   else
      display ws-fname(1:20) "-> size: " file-size ", year: " f-year
   end-if.

Muốn một cách dễ dàng hơn để làm điều đó, mà không cần chỉ số?Bạn có thể sử dụng trạng thái tệp được trả về khi tệp được mở, nhưng nó yêu cầu tệp phải được mở.Đầu tiên

ID, '_meta_example_name', true) . '_7_SM.jpg') ) {
?>
    
...
9 được liên kết với biến
libcob: error: file does not exist (status = 35) for file ifile ('student_txt' =>
       10  stdnt-idno  pic x(7).
0 (trong
libcob: error: file does not exist (status = 35) for file ifile ('student_txt' =>
       10  stdnt-idno  pic x(7).
1).Sau đó, khi một nỗ lực được thực hiện để mở tệp và giá trị của
libcob: error: file does not exist (status = 35) for file ifile ('student_txt' =>
       10  stdnt-idno  pic x(7).
0 là 35 tệp không tồn tại.

identification division.
program-id. fileio.

environment division.
input-output section.
file-control.
select ifile assign to dynamic ws-fname
       file status is file-stat.

data division.
file section.
fd ifile
    record contains 88 characters.
01 student-info.
   05  student-name occurs 4 times.
       10  stdnt-name  pic x(15).
       10  stdnt-idno  pic x(7).

working-storage section.
01 i                   pic  9.
77 ws-fname            pic x(30).
77 file-stat           pic xx.

procedure division.

   display "Filename? ".
   accept ws-fname.
   open input ifile.

   if (file-stat = "35") then
      display "Error: File " ws-fname(1:20) " does not exist"
   end-if.
   close ifile.
   stop run.