简体   繁体   中英

Call PHP Function before loading with jQuery

This is a bit of a follow on from this question/answer: https://stackoverflow.com/a/4152528/348922

I'm simply not sure how to apply this to my situation (if it's at all possible).

I have a container div that when a button is clicked a file is loaded into the div via jquery:

var root = location.protocol + '//' + location.host;

$(".button-book").click(function(e) {
    e.preventDefault();
    $('#container').load(root+'/loaded-file.php');
});

Fine. BUT that file has a number of text strings that I need wrapped in php in order to hook into them for translation purposes (using WPML plugin for Wordpress):

<?php _e('Arrival Date', 'mywptheme'); ?>
<?php _e("Day", 'mywptheme'); ?>
<?php _e("Month", 'mywptheme'); ?>
<?php _e("Year", 'mywptheme'); ?>
// etc...

Obviously this doesn't work when the file is loaded dynamically. Is it at all possible or am I completely wasting my time?

Your issue is that _e(...) is a wordpress function, so when this file ( loaded-file.php ) is executed outside of wordress, it does not work. Its not actually anything to do with jquery - if you visit the file directly in your browser it wont work either.

Simply add the following to the top of loaded-file.php:

require($_SERVER['DOCUMENT_ROOT'].'/blog/wp-blog-header.php');

Adjust for your actual wordress location, in the above case wordpress is in domain.com/blog/

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM