Cách gọi hàm plugin từ index.php


7

Tôi đã tạo một hàm trong plugin của mình mypluginvới tên foo, làm thế nào để gọi nó từ frontend?

 e.g. index.php?

2
hmmm, tỷ lệ chấp nhận 25% là khá thấp
Tom J Nowell

1
Cách gọi hàm PHP trong tệp PHP là câu hỏi PHP , không phải câu hỏi WordPress .
Chip Bennett

1
nghĩa đen của nó là một câu hỏi về plugin wordpress @ChipBennett ....
nick

Câu trả lời:


12

Giống như bất kỳ cách nào khác:

foo();

Các plugin hoạt động được tải trước các tệp chủ đề

Bạn có thể muốn kiểm tra xem plugin của bạn đã được kích hoạt chưa và chức năng có sẵn để mọi thứ không thành hình quả lê nếu bạn quên kích hoạt nó, như:

if(function_exists('foo')){
    foo();
} else {
    echo "oh dear you haven't activated/installed 'myplugin', go do that before the 'foo' feature is available";
}

Ngoài ra, hãy nhớ rằng foomột tên hàm rất chung chung, có lẽ plugin "omgfoo" cũng có một foochức năng. Vì vậy, tiền tố / không gian tên hàm của bạn thành một cái gì đó độc đáo

Cuối cùng, bạn sẽ muốn sử dụng các hành động và bộ lọc, vì chúng an toàn hơn và thực hành tốt hơn, bạn có thể tiếp tục đọc về điều đó tại đây


5

Bạn không. Một Theme không nên dựa vào một plugin ngoại trừ trong một môi trường được kiểm soát chặt chẽ. Sử dụng hành động và bộ lọc thay thế.

Vì vậy, trong chủ đề của bạn, bạn có thể sử dụng:

do_action( 'before_header' );

… hoặc là …

$bg_options = array (
    'wp-head-callback' => 't5_custom_background_frontend',
    'default-color'    => 'f0f0f0',
    'default-image'    => '',
);
$bg_options = apply_filters( 't5_theme_bg_options', $bg_options );
add_theme_support( 'custom-background', $bg_options );
add_action( 'login_head', $bg_options['wp-head-callback'] );

Trong plugin của bạn, bạn sử dụng add_action()add_filter()để thay đổi hoặc thêm nội dung mới. Bằng cách này, chủ đề sẽ vẫn hoạt động khi plugin đã bị hủy kích hoạt và bạn không phải sử dụng function_exists().


2

Các plugin hoạt động được tải (như về mặt kỹ thuật - các tệp của chúng được PHP đưa vào và xử lý trong quá trình tải WordPress) theo các mẫu chủ đề thời gian chạy.

Vì vậy, chức năng của bạn nên có sẵn và có thể được gọi là bất kỳ chức năng nào khác:

<?php foo(); ?>

ví dụ.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.