WordPress - Выполнение PHP в панели параметров темы - PullRequest
2 голосов
/ 24 февраля 2012

Я создал панель опций темы для клиента, однако он хотел бы иметь возможность вводить код PHP в текстовые области и запускать его на внешнем интерфейсе.

Однако, когда они вводят код, он не отображается должным образом во внешнем интерфейсе, см. Следующие два снимка экрана:

http://i.imgur.com/alOAD.png

http://i.imgur.com/pYhW0.png

Похоже, код удаляется при отображении на переднем конце. Отображается с использованием этого кода:

    <?php global $options;
foreach ($options as $value) {
    if (get_settings( $value['id'] ) === FALSE) { $$value['id'] = $value['std']; } else { $$value['id'] = get_settings( $value['id'] ); }
}
?>

<?php echo $ag_footer_top; ?>

Как мне заставить его работать должным образом? Возможно ли это?

Если я введу следующее в опции темы:

<?php wp_nav_menu( array( 'theme_location' => 'first','fallback_cb'=> ” ) ); ?>

Сохраняется в базу данных как:

<?php wp_nav_menu( array( \'theme_location\' => \'first\',\'fallback_cb\'=> ” ) ); ?>

И он отображается на передней панели как:

\'first\',\'fallback_cb\'=&gt; ” ) ); ?&gt;

Ответы [ 5 ]

5 голосов
/ 29 февраля 2012

Прежде всего вы должны запретить WordPress добавлять косые черты в ваш контент, используя что-то вроде:

update_option('my_option',stripslashes($_POST['my_option']));

Другое дело, что вы хотите, чтобы ваш код выполнялся ... ну, я не знаю, как именно это сделать, но многие плагины предоставляют такую ​​функциональность, как

Связываемый заголовок HTML и виджет Php

Вам следует скачать плагин и выяснить, как он работает.

Просто возьмите содержимое поля из базы данных и попробуйте каким-то образом его проанализировать.

2 голосов
/ 02 марта 2012

Используйте stripslashes для удаления строки перед оценкой / отображением кода.

0 голосов
/ 05 марта 2012

Я лично использую Exec-PHP .Клиентам должно быть легко пользоваться.

0 голосов
/ 29 февраля 2012

вы можете использовать эту функцию PHP

PHP: eval ();

вы можете взять код в textarea, сохранить его в настройках в виде строки, и всякий раз, когда вы захотите выполнить его, получить из параметров и передать его в eval.

Спасибо

-Shak

0 голосов
/ 29 февраля 2012

Вы должны заменить на ''

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