WordPress를 통해 액세스할 수 있는 커스텀 기능 필요
이 알림 기능이 있어 코드의 다른 위치에 호출해야 합니다.플러그인 디렉토리뿐만 아니라 내 아이 테마 내의 파일에서도 액세스할 수 있는 위치에 저장해야 합니다.
function send_notification($tokens, $message)
{
$url = 'https://fcm.googleapis.com/fcm/send';
$fields = array(
'registration_ids' => $tokens,
'data' => $message
);
$headers = array(
'Authorization:key = My_Token',
'Content-Type: application/json'
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields));
$result = curl_exec($ch);
if ($result === FALSE) {
die('Curl failed: ' . curl_error($ch));
}
curl_close($ch);
return $result;
}
- 첫 번째 질문: 어디에 둘 것인가, 현재 기능하고 있다.php?
- 두 번째 질문은 어떻게 다른 장소에서 부를까요?
어떤 솔루션이나 참고 자료라도 주시면 감사하겠습니다.감사해요.
범위가 넓은 함수가 있기 때문에 다음과 같은 이름 경합을 방지하기 위해 함수에 고유한 이름을 붙이는 것이 좋습니다.naser_send_notitification()
뿐만 아니라send_notification
또는 가능한 경우 네임스페이스 또는 클래스 사용을 고려하십시오.
자, 이제 당신의 질문에 답하기 위해,functions.php
는, 어느 장소에서도 액세스 할 필요가 있는 「광범위」기능에 있어서, 실제로는 안심입니다.Action Reference를 보시면after_setup_theme
는 비교적 초기에 실행되므로 해당 후크나 그 이후에 기능에 액세스할 수 있습니다.이때 기능을 사용할 수 있기 때문입니다.하지만, 그것은 다음이다.plugins_loaded
그 전에 필요한 경우는, 파일 헤더 또는 「MU 플러그인」이 있는 플러그인으로 할 필요가 있습니다.
초기 단계에서 효과적으로 액세스할 수 있어야 하는 경우, 파일 내의 파일에 저장하는 것을 고려하십시오./wp-content/mu-plugins/
이름을 지어줘도 돼custom-functions.php
이러한 파일을 Must-Use Plugins라고 합니다.이 디렉토리의 파일은 항상 로드되고 항상 먼저 실행되므로 파일에 선언된 함수는 매우 빨리 액세스할 수 있습니다.이것은 일반적으로 테마에 의존하지 않고 항상 켜져 있고 비활성화할 수 없는 코드를 넣어야 합니다.
효과적인 방법:
1) 기능의 이름을 조금 더 독특한 것으로 변경한다.naser_send_notitification()
2) 이 코드를 입력합니다./wp-content/mu-plugins/custom-funtions.php
3) 전화할 수 있게 되었습니다.naser_send_notification( $tokens, $message )
(거의 어느 곳에나 있는) 후크 뒤에 오는 기능 또는 후크에서
다음은 해결책입니다.각 행에 코멘트가 기재되어 있습니다.
function do_something( $a = "", $b = "" ) { // create your function
echo '<code>';
print_r( $a ); // `print_r` the array data inside the 1st argument
echo '</code>';
echo '<br />'.$b; // echo linebreak and value of 2nd argument
}
add_action( 'danish', 'do_something', 10, 2 );
// create your own action with params('action name', 'callback funtion', priority, num_of params)
필요한 곳에 걸어두면
$a = array(
'eye patch' => 'yes',
'parrot' => true,
'wooden leg' => 1
);
$b = __( 'And Hook said: "I ate ice cream with Peter Pan."', 'textdomain' );
// Executes the action hook named 'danish'
do_action('danish', $a, $b);
바로 그겁니다.
워드프레스 쇼트코드가 이 문제를 해결할 수 있는 최선의 방법이라고 생각합니다.워드프레스 코어 파일을 조작하는 것은 좋은 방법이 아니며 업그레이드 시 코드 삭제 등 여러 가지 문제로 이어지기 때문입니다.
쇼트 코드에는 몇 가지 이점이 있습니다.특정 문제에 도움이 되는 이유는 다음과 같습니다.
- 에 넣을 수 .
functions.php
- 에서 할 수
php
및 내의 및 대시보드 에디터 내의 코드 파일
컴플리트 코드: (내부 배치만 가능)functions.php
)
function send_notification( $atts )
{
extract(shortcode_atts(array(
"tokens" => '',
"message" => ''
), $atts));
$url = 'https://fcm.googleapis.com/fcm/send';
$fields = array(
'registration_ids' => $tokens,
'data' => $message
);
$headers = array(
'Authorization:key = My_Token',
'Content-Type: application/json'
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields));
$result = curl_exec($ch);
if ($result === FALSE) {
die('Curl failed: ' . curl_error($ch));
}
curl_close($ch);
return $result;
}
add_shortcode('send-notification', 'send_notification');
테마 또는 플러그인의 어느 곳에서도 사용할 수 있습니다. (이렇게)
워드프레스 편집기:
[send-notification token=XXXX message="hello"]
테마/메시지 파일:
<?php echo do_shortcode('[send-notification token=XXXX message="hello"]'); ?>
유용한 자원:
이 질문에 따르면:
내 . 1 : 러인인내내 inside step step step step step step step step step step step step step step step step step step step 。
그 .2단계: 이 클래스의 오브젝트를 만듭니다.
순서 3: 그 오브젝트로 기능에 액세스 합니다.
// inside your plugin
class foo {
public function send_notification() {
return "whatever you want";
}
}
// inside your themes functions.php
$foo_object = new foo();
// use the object to access your function:
$foo_object->send_notification();
언급URL : https://stackoverflow.com/questions/51586862/need-a-custom-function-to-be-accessible-throughout-wordpress
'programing' 카테고리의 다른 글
React Native에서 ScrollView의 현재 스크롤 위치를 가져옵니다. (0) | 2023.03.19 |
---|---|
OPTIONS http 메서드의 스프링 보안 비활성화 (0) | 2023.03.19 |
jQuery click 기능이 Ajax 호출 후 작동하지 않습니까? (0) | 2023.03.19 |
Sys.WebForms.PageRequestManagerServerErrorException:서버에서 요청을 처리하는 동안 알 수 없는 오류가 발생했습니다." (0) | 2023.03.19 |
Zend 프레임워크 및 Wordpress 통합 (0) | 2023.03.19 |