Intereting Posts
как ограничить и отобразить тег? Показывать сообщения между двумя конкретными датами синтаксис Выделение на wordpress.com blog Запрос дополнительных пользовательских полей Как разрешить пользователю выбирать идентификатор пользователя в форме Formableable Pro? Сделайте отрывок из содержания сообщения и отправьте его в качестве заголовка для создания нового сообщения Как сохранить флажок в настраиваемом мета-окне для персонализированного типа сообщения, установленного по умолчанию для добавления нового сообщения? Обновить поле в базе данных для пользователей Преобразование категории сообщений в пользовательский тип сообщения с использованием (MySQL) запросов Есть ли способ запланировать изменения на странице? Не удается установить WordPress (локальный) Не удалось открыть файл wp-includes / wp-db.php Как обновить плагин без перезаписывания пользовательского кода Как отделить сообщения в цикле? Sticky Header в WordPress с использованием темы BootstrapWP Как создать алфавитную разбивку на страницы с диапазоном?

Справка, ошибка XML плагина

Я использовал этот плагин годами, но несколько месяцев назад он прекратил работать. Я получаю эту ошибку:

Эта страница содержит следующие ошибки:

ошибка в строке 2 в столбце 7: дополнительный контент в конце документа

Ниже представлена ​​рендеринг страницы до первой ошибки.

Вот плагин

<?php /* Plugin Name: WooCommerce produktu eksports Plugin URI: Description: Darbojas ar cenu meklētājiem: <a href="http://salidzini.lv">salidzini.lv</a> <a href="http://kurpirkt.lv">kurpirkt.lv</a> <a href="http://tavacena.lv">tavacena.lv</a> Version: 1.0 Author: <a href="#">LM</a> PHP version 5 Requirements: PHP5,MySQL @category PHP @author: Lauris Mierkalns latpages@gmail.com @copyright: 2012 Lauris Mierkalns */ // Izslēgt kešošanu header('Pragma: no-cache'); header('Cache-Control: no-cache, must-revalidate'); header('Expires: -1'); /** * Inicializē pluginu * */ add_action('init', 'startExportPlugin'); /** * Callback funkcija,izsaukta iekš add_action "hook" * Ja padots $_GET parametrs: 'export', izveidot klases objektu * Izvade tiek izsaukta konstruktorā automātiski */ function startExportPlugin() { if(isset($_GET['export'])) { $export = new ExportProducts(); } } /** * Visas plugina funkcijas atrodas klasē: ExportProducts */ class ExportProducts { // Visi "zināmie" meklētāji tiks definēti masīvā $_directories. private $_directories; // XML starta tags (mainās atkarībā no meklētāja) private $_xmlRootStart; // XML beigu tags (mainās atkarībā no meklētāja) private $_xmlRootEnd; // Saita URL private $_baseUrl; /** * Klases konstruktors. */ public function __construct() { /* Inicializē klases mainīgos */ $this->_directories = array('kurpirkt', 'salidzini', 'tavacena'); $this->_xmlRootStart = ''; $this->_xmlRootEnd = ''; $this->_directory = ''; $this->_baseUrl = 'http://' . $_SERVER['HTTP_HOST'] . '/testesanai/'; /* Nolasa direktorijas nosaukumu no $_GET parametra */ $directory = trim($_GET['export']); /* Ja nosaukums nav tukšs,tad "apgriezt" 20 simbolu garumā */ if($directory !== '') { $directory = substr($directory,0, 20); /* Ja nosaukums ir iepriekš definēts masīvā,tad izsaukt export metodi. Ja padots "nezināms" nosaukums,izvadīt kļūdas paziņojumu */ if (!in_array($directory, $this->_directories)) { echo 'Nav datu šai direktorijai...'; } else { /* Dinamiski izsaukt attiecīgo metodi, pēc formāta: exportTomeklētājaVārds */ call_user_func(array($this, 'exportTo' . $directory)); } } exit; } /** * Eksporta funkcija izvada XML meklētājam: kurpirkt.lv */ private function exportTokurpirkt() { // SQL pieprasījums $sql = "SELECT p.ID, p.post_content, p.post_title, p.guid, pm.meta_key, pm.meta_value FROM wp_posts AS p LEFT JOIN wp_postmeta AS pm ON p.ID = pm.post_id WHERE p.post_type = 'product'"; // XML "root" starta tags $this->_xmlRootStart = '<root>'; // XML "root" beigu tags $this->_xmlRootEnd = '</root>'; $this->_directory = 'kurpirkt'; // Izsaukt funkciju,kura ģenerē XML $this->listProducts($sql); } /** * Eksporta funkcija izvada XML meklētājam: salidzini.lv */ private function exportTosalidzini() { // SQL pieprasījums $sql = "SELECT p.ID, p.post_content, p.post_title, p.guid, pm.meta_key, pm.meta_value FROM wp_posts AS p LEFT JOIN wp_postmeta AS pm ON p.ID = pm.post_id WHERE p.post_type = 'product'"; // XML "root" starta tags $this->_xmlRootStart = '<root>'; // XML "root" beigu tags $this->_xmlRootEnd = '</root>'; $this->_directory = 'salidzini'; // Izsaukt funkciju,kura ģenerē XML $this->listProducts($sql); } /** * Eksporta funkcija izvada XML meklētājam: tavacena.lv */ private function exportTotavacena() { // SQL pieprasījums $sql = "SELECT p.ID, p.post_content, p.post_title, p.guid, pm.meta_key, pm.meta_value FROM wp_posts AS p LEFT JOIN wp_postmeta AS pm ON p.ID = pm.post_id WHERE p.post_type = 'product'"; // XML "root" starta tags(i) $this->_xmlRootStart = '<tavacena> <info> <datetime>' . date('Ymd H:i:s') . '</datetime> </info>'; // XML "root" beigu tags $this->_xmlRootEnd = '</tavacena>'; $this->_directory = 'tavacena'; // Izsaukt funkciju,kura ģenerē XML $this->listProducts($sql); } /** * Funkcija apstrādā atlasītos preču rezultātus un izsauc XML ģenerēšanu precei * * @param string $sql - SQL pieprasījums datu bāzei */ private function listProducts($sql) { // DB konekcijai tiek izmantots globālais WordPress datu bāzes objekts global $wpdb; // Izpildīt SQL pieprasījumu,atlasot rezultātus (veikala preces) $items = $wpdb->get_results($sql, ARRAY_A); // Ja rezultāts tukšs (nav atrastu preču),XML netiek izvadīts. if (empty($items[0])) { echo 'Nav datu...'; } // Izskatās OK. Var izvadīt XML else { // Definēt satura tipu header ('Content-type: text/xml; charset=utf-8'); echo '<?xml version="1.0" encoding="utf-8"?>'; // Izvadīt starta tagu(us) echo "\n$this->_xmlRootStart\n"; // Preces dati tiek saglabāti masīvā $product = array(); // Atlasītie dati atrodas masīvā,kuru apstrādāt ciklā,iegūstot preču datus foreach($items as $item) { // Ja produkta nosaukums nav tukšs,preces dati ir ok. if (empty($product['post_title'])) { $product = $item; $product['meta_values'] = array($item['meta_key'] => $this->sanitize($item['meta_value'])); } elseif ($product['post_title'] == $item['post_title']) { $metaValue = $this->sanitize($item['meta_value']); $product['meta_values'][$item['meta_key']] = $metaValue; } else { // Izsaukt funkciju,kura ģenerē preces datus XML $this->renderItem($product); echo "\n"; $product = array(); } } // Izvadīt beigu tagu echo $this->_xmlRootEnd; } } /** * Funkcija izvada preces datus XML formātā * */ private function renderItem($item) { // Iegūt preces attēla URL,izmantojot wp 'wp_get_attachment_image_src' funkciju $imageData = wp_get_attachment_image_src($item['meta_values']['_thumbnail_id'], 'thumbnail_name'); $image_url = $imageData[0]; $category = ''; $categoryLink = ''; $brand = ''; // Iegūt preces cenu $price = round(str_replace(',', '.', $item['meta_values']['_price']), 2); // Iegūt preces lapas URL $link = $this->sanitize(get_permalink($item['ID'])); // SQL pieprasījums $query = "SELECT t.name, t.slug, tt.description FROM wp_term_relationships AS tr RIGHT JOIN wp_term_taxonomy AS tt ON tt.term_taxonomy_id=tr.term_taxonomy_id AND (tt.taxonomy='product_cat' OR tt.taxonomy='product_brands') JOIN wp_terms AS t ON t.term_id=tt.term_id WHERE tr.object_id=" . $item['ID']; //echo $query; exit; // Izpildīt SQL pieprasījumu ielasot preces datus $res = mysql_query($query); if ($res && mysql_num_rows($res) > 0) { $i = 0; while($row = mysql_fetch_assoc($res)) { if ($i == 0) { $categoryName = $row['name']; $categoryLink = $this->_baseUrl . '?product_cat=' . $row['slug']; } elseif ($i > 0) { $brand = $row['description']; } $i++; } } // Atkarībā no meklētāja nosaukuma,ģenerēt vajadzīgo XML switch ($this->_directory) { case 'kurpirkt': ?> <item> <name><?php echo $this->sanitize($item['post_title']); ?></name> <link><?php echo $link; ?></link> <price><?php echo $price; ?></price> <image><?php echo $image_url; ?></image> <category_full><?php echo $this->sanitize($categoryName); ?></category_full> <category_link><?php echo $categoryLink; ?></category_link> <in_stock><?php echo intval($item['meta_values']['stock']); ?></in_stock> </item> <?php break; case 'salidzini': ?> <item> <name><?php echo $this->sanitize($item['post_title']); ?></name> <link><?php echo $link; ?></link> <price><?php echo $price; ?></price> <image><?php echo $image_url; ?></image> <category_full><?php echo $this->sanitize($categoryName); ?></category_full> <category_link><?php echo $categoryLink; ?></category_link> <manufacturer><?php echo $this->sanitize($brand); ?></manufacturer> <in_stock><?php echo intval($item['meta_values']['stock']); ?></in_stock> <delivery_cost_riga>2</delivery_cost_riga> </item> <?php break; case 'tavacena': ?> <prod> <id><?php echo intval($item['ID']); ?></id> <name><?php echo $this->sanitize($item['post_title']); ?></name> <link><?php echo $link; ?></link> <price><?php echo $price; ?></price> <image><?php echo $image_url; ?></image> <category_full><?php echo $this->sanitize($categoryName); ?></category_full> <category_link><?php echo $categoryLink; ?></category_link> <in_stock><?php echo intval($item['meta_values']['stock']); ?></in_stock> </prod><?php } } /** * Funkcija speciālo simbolu eskeipošanai */ private function sanitize($str) { $str = htmlspecialchars($str, ENT_QUOTES, "UTF-8"); $str = str_replace('&', '&amp;', $str); $str = str_replace('`', '&apos;', $str); return $str; } } 

Solutions Collecting From Web of "Справка, ошибка XML плагина"