나중에 사용할 수 있도록 일부 PHP 변수를 자바 스크립트로 전달할 가능성이 있습니까?
에서만 single.php
.
나는 들었지만 wp_enqueue_scripts
JS 파일의 경로를 선언하는 것이 필요하지만 필요하지는 않습니다.
나중에 사용할 수 있도록 일부 PHP 변수를 자바 스크립트로 전달할 가능성이 있습니까?
에서만 single.php
.
나는 들었지만 wp_enqueue_scripts
JS 파일의 경로를 선언하는 것이 필요하지만 필요하지는 않습니다.
답변:
wp_localize_script
정확히 그렇게하기위한를 살펴보십시오 .
그러나 이전에의 사용법wp_enqueue_scripts
이 필요하므로 JS를 실제로 별도의 파일로 이동해야합니다.
그래도 몇 분 동안 노력할 가치가 있습니다.
function wpse_96370_scripts()
{
if ( is_single() ) {
wp_register_script(
'your_script_handle',
get_template_directory_uri() . '/js/your-script.js',
array( /* dependencies*/ ),
1.0,
true
);
wp_enqueue_script( 'your-script-handle' );
$script_params = array(
/* examples */
'post' => 99,
'users' => array( 1, 20, 2049 )
);
wp_localize_script( 'your-script-handle', 'scriptParams', $script_params );
}
}
add_action( 'wp_enqueue_scripts', 'wpse_96370_scripts' );
JS에서는 전달 된 매개 변수를 다음과 같이 사용할 수 있습니다.
var posts = scriptParams.post,
secondUser = scriptParams.users[1]; /* index starts at 0 */
// iterate over users
for ( var i = 0; i < scriptParams.users.length; i++ ) {
alert( scriptParams.users[i] );
}
귀하의 의견에 따라
response.id
페이스 북 API에서 일부를 사용하여 새 DB 테이블을 만들었습니다 . action_id, user_id, post_id, fb_id 테이블입니다. 여기서 fb_id는 페이스 북 조치의 response.id입니다. 그런 다음 single.php에 버튼을 누르면 api로 fb 작업을 삭제해야합니다.FB.api('/'+fb.response, 'delete');
어디 에서 테이블에fb.response
있어야합니까fb_id
?
다음을 테마 /js/
폴더에 넣고 존재하지 않는 경우 만듭니다.
파일을 호출 해 봅시다 fb-response.js
:
jQuery( '#button_id' ).click( function() {
FB.api( '/' + fbParams.id, 'delete' );
});
그런 다음 위와 같이 등록하고 대기열에 넣고 지역화하십시오. 전달하려는 ID가 있다고 가정 해 봅시다 $fb_id
.
wp_register_script(
'fb-response',
get_template_directory_uri() . '/js/fb-response.js',
array( 'jquery' ),
1.0,
true
);
wp_enqueue_script( 'fb-response' );
wp_localize_script( 'fb-response', 'fbParams', array( 'id' => $fb_id ) );
NB 분명히 위는 이것이 주제에 있다고 가정합니다. "플러그인"이라고 말하는 경우 그에 따라 위치를 변경하십시오.
귀하의 의견을 읽은 후 다음과 같이하고 싶습니다.
// Do something to get the ID
$facebook_id = ...
// Create and print the button
echo '<input onclick="FB.api('/'+'.$facebook_id.', 'delete')" />';
<input ... />
과 그 기능은 목적을 설명하기위한이었다. 내가 당신을 이해하는 한, 당신이 필요로하는 모든 것이 있습니다. 그렇지 않은 경우 의견이 아닌 질문에 더 자세히 설명하십시오.