PHP do_shortcode в пользовательском php файле - PullRequest
0 голосов
/ 30 марта 2020

Я создал немного js, который передает три переменные в мою php загружаемую таблицу скриптов. php. Этот php файл хранится в папке моей дочерней темы, и его содержимое выглядит следующим образом:

<?php

$d = Date('Y-m-d', strtotime($_GET['d']));
$c = $_GET['c'];
$b = $_GET['b'];

$shortcode = "[wpdatatable id=3 var1=".$b." var2=".$d." var3=".$c."]";
echo do_shortcode('$shortcode');

Часть js на странице:

window.onload = selectChart;

function selectChart () {
  var date = document.getElementById("date");
  var country = document.getElementById("country");
  var label = document.getElementById("label");
  var xDate = date.value.toString();
  var xCountry = country.value.toString();
  var xLabel = label.value.toString();

if (window.XMLHttpRequest) {
            // code for IE7+, Firefox, Chrome, Opera, Safari
            xmlhttp = new XMLHttpRequest();
        } else {
            // code for IE6, IE5
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
        xmlhttp.onreadystatechange = function() {
            if (this.readyState == 4 && this.status == 200) {
                 document.getElementById("chartTable").innerHTML = this.responseText;
            }
        };
        xmlhttp.open('GET','/wp-content/themes/Avada-Child-Theme/loadtable.php?d='+xDate+'&c='+xCountry+'&b='+xLabel,true);
        xmlhttp.send();
    }

Я просто могу ' t получить скрипт do_shortcode php для отображения таблицы при загрузке страницы или при вызове selectChart (). Кто-нибудь из вас знает, какое у меня решение? Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 31 марта 2020

Вы должны сначала использовать автозагрузку wordpress, чтобы убедиться, что все необходимые файлы wordpress, такие как wp-config. php загружены в ваш скрипт, а затем использовать функцию wordpress do_shortcode ().

Итак, ваша таблица загрузки. Сценарий php должен выглядеть примерно так:

<?php

require_once("../../../wp-load.php"); // wordpress autoloader

$d = Date('Y-m-d', strtotime($_GET['d']));
$c = $_GET['c'];
$b = $_GET['b'];

$shortcode = "[wpdatatable id=3 var1=".$b." var2=".$d." var3=".$c."]";
echo do_shortcode('$shortcode');

Он работает только тогда, когда ваш сценарий находится в папке root вашей дочерней темы. Поэтому, если ваш скрипт находится где-то еще, ваш путь (../../../wp-load.php) должен быть изменен.

0 голосов
/ 31 марта 2020

Я думаю, что вам нужно импортировать файл wp-load. php. require_once ("../../../ wp-load. php");

А затем echo do_shortcode ('$ shortcode'); Я не уверен, что код работает. echo do_shortcode ("$ shortcode");

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...