lấy biến php từ các hàm php và lặp lại nó trong các tệp mẫu chủ đề [đã đóng]


8

Đây có vẻ là một câu hỏi ngớ ngẩn nhưng tôi không thể tìm ra điều này.

Tôi đã tạo một biến trong hàm.php của mình - và tôi đang cố gắng lặp lại nó trong các tệp mẫu của mình.

Tôi đoán đó là vì phạm vi.

Điều gì đơn giản nhất để lặp lại một biến hoặc tạo một hàm để cho phép tôi xuất ID facebook này trong các tệp mẫu khác nhau.

Đây là những gì tôi hiện đang có trong các chức năng của mình.php ...

$fb_app_id = '68366786876786';

Và đây là cách tôi cố gắng lặp lại ...

<?php echo $fb_app_id; ?>


Bất kỳ ý tưởng sẽ rất hữu ích, cảm ơn bạn rất nhiều



1
Bình chọn gần như lạc đề . Đây là một câu hỏi lập trình / PHP , không phải là một câu hỏi WordPress .
Chip Bennett

Sử dụng global $your_var; echo $your_var;hoặc echo $GLOBALS['your_var'];.
kaiser

Câu trả lời:


15

Nếu bạn không có quyền truy cập vào giá trị, đó có thể là vấn đề phạm vi. Hãy chắc chắn rằng bạn toàn cầu hóa nó trước:

<?php
global $fb_app_id;
echo $fb_app_id;
?>

Hoặc

Tôi không phải là người hâm mộ các biến toàn cầu, vì vậy giải pháp thay thế tôi khuyên dùng là sử dụng cơ chế lọc tích hợp của WordPress. Bạn thêm bộ lọc trong functions.phptệp của bạn và áp dụng nó khi cần thiết.

Trongfunctions.php :

add_filter( 'fb_app_id', 'return_fb_app_id' );
function return_fb_app_id( $arg = '' ) {
    return '68366786876786';
}

Trong tệp mẫu của bạn :

echo apply_filters( 'fb_app_id', '' );

Hoặc sử dụng móc hành động

Trong functions.php

add_action( 'fb_app_id', 'echo_fb_app_id' );
function echo_fb_app_id() {
    echo '68366786876786';
}

Trong tệp mẫu của bạn:

do_action( 'fb_app_id' );

Cho dù bạn sử dụng hook hành động hay bộ lọc hoàn toàn tùy thuộc vào bạn. Tôi khuyên bạn nên một bộ lọc vì nó có thể trả về một giá trị. Điều này linh hoạt hơn nhiều so với việc chỉ thực hiện echocác cuộc gọi trong mẫu của bạn.


1
Upvote cho phương pháp dựa trên bộ lọc. Sạch sẽ hơn nhiều.
Rutwick Gangurde

2

Tôi sẽ sử dụng các tùy chọn Wordpress trong trường hợp này. Bạn có thể đặt tùy chọn bằng cách sử dụng add_option () hoặc update_option () (có thể tốt hơn cho trường hợp của bạn). Bạn sẽ sử dụng update_option('fb_app_id', '68366786876786');một nơi nào đó trong tệp của bạn tệp.php (chức năng hook hook có thể là một nơi tốt).

Sau đó, bạn có thể hiển thị tùy chọn này trong các tệp chủ đề của mình bằng cách sử dụng echo get_option('fb_app_id');

Lý do tôi muốn đề xuất theo cách này, thay vì sử dụng toàn cầu (ick) hoặc móc hành động / bộ lọc là nếu bạn dự định phát hành chủ đề của mình ra công chúng, việc tạo fb_app_idtùy chọn có thể chỉnh sửa trong trang tùy chọn chủ đề sẽ dễ dàng hơn nhiều .


1

Cách dễ nhất là chỉ cần tạo một hàm có thể gọi được, bạn không thực sự cần một cái móc ở đây

function get_fb_app_id() {
    $fb_app_id = '68366786876786';
    return $fb_app_id;
}

và trong mẫu:

echo get_fb_app_id();

Một hàm bao bọc để trả về một var toàn cầu ??
kaiser

không, tôi sẽ không đặt nó thành toàn cầu, đó là lý do tại sao tôi không thêm dòng toàn cầu.
fischi

Đồng ý. Vậy tại sao nó không ở trong function? Hiện tại các chức năng sẽ chỉ ném một Error: undefined (...).
kaiser
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.