Разбор XML в WordPress WYSIWYG редактор только для сообщений

Я столкнулся с небольшой ситуацией, которую, надеюсь, можно решить. Моя цель — взять существующий XML-файл с сервера, проанализировать его, а затем вставить его в виде списка в оригинальный редактор WYSIWYG в WordPress, чтобы у владельца сайта был доступный список, когда он пишет новое сообщение. Прямо сейчас у меня есть этот код в моем файле wp-admin / edit-form-advanced.php:

/**
* Fires after the title field.
*
* @since 3.5.0
*
* @param WP_Post $post Post object.
*/
do_action( 'edit_form_after_title', $post );

if ( post_type_supports($post_type, 'editor') ) {
?>
<div id="postdivrich" class="postarea<?php if ( $_wp_editor_expand ) { echo ' wp-editor-expand'; } ?>">
<?php

/** LOAD XML FROM SERVER AND PARSE AS UL INTO EACH NEW WP POST **/
$xml = simplexml_load_file('../my-folder/file.xml');

$product = "<br/><br/><h2 style='text-align:center; color:#003300;'><u>Products Available Now</u></h2><br/><ul style='text-align:center; list-style:none; color:#003300;'>";
foreach( $xml as $value ) {
$product .= "<li>";
$product .= $value->Description .= " $";
$product .= $value->Price .= " / ";
$product .= $value->QtyUnit .= "\n";
$product .= "</li>";
};
?><?php wp_editor($product, 'content', array(
'_content_editor_dfw' => $_content_editor_dfw,
'drag_drop_upload' => true,
'tabfocus_elements' => 'content-html,save-post',
'editor_height' => 300,
'tinymce' => array(
'resize' => false,
'wp_autoresize_on' => $_wp_editor_expand,
'add_unload_trigger' => false,
),
) ); ?>

Хотя это работает, это вызывает пару проблем.

1) Он вводит данные в каждый Редактор WYSIWYG, включая страницы, которых я хотел бы избежать. Содержание должно появляться только в редакторах постов, если это возможно.

2) Это вызывает довольно серьезную ошибку, которая стирает все, кроме списка, каждый раз, когда эта конкретная страница администратора перезагружается. Я не могу ни сохранять черновики, ни редактировать посты или страницы, пока не оставлю эту сессию открытой в браузере во время процесса редактирования.

Не уверен, что эти проблемы могут быть решены, но любая помощь искренне ценится !!

2

Решение

Вам следует никогда не изменяйте файлы WP core. Желательно, чтобы вы обновить или восстановить оригинальные файлы.

То, что вам нужно, может быть достигнуто с помощью этого небольшого плагина:

<?php
/**
* Plugin Name: Default Post Content
*/

add_action( 'load-post-new.php', 'new_post_so_44123076' );

function new_post_so_44123076() {
# Only load if post type not defined (only occurs for Posts)
if( isset($_GET['post_type']) )
return;
add_filter( 'default_content', 'default_content_so_44123076' );
}
function default_content_so_44123076( $content ) {
# Build your own custom content
$content = "My html content.";
return $content;
}

Создайте папку для плагина, поместите код в файл (custom-content.php) и поместите XML в ту же папку.

Его можно получить так:

$xml = plugins_url( '/file.xml', __FILE__ );
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]