ГлавнаяWordpressПолезности → Исполняемый php код в записях Wordpress

Исполняемый php код в записях Wordpress

Комментариев: 32Исполняемый php код в записях Wordpress
  • Отлично, это то, что я искал. Только один вопрос, а как сделать, чтобы при просмотре анонса статьи php код тоже выполнялся или вообще не выполнялся. А то сейчас он просто показывается как есть, что не безопасно.

    ОТВЕТИТЬ ↓
    • Вообще, вроде как автоматом должен вырезаться, конструкция шоткода ведь.

      Чтобы поправить, добавьте еще такой хак в functions.php

      add_filter( 'the_excerpt', create_function('$a', 'return preg_replace("!\[exec.*/exec\]!isU","",$a);') );

      Он будет вырезать коды для функции the_excerpt(), которая используется WordPress для вывода анонсов.

      ОТВЕТИТЬ ↓
  • Спасибо, помогло. Теперь как надо!

    ОТВЕТИТЬ ↓
    • Я погорячился, все так же выводит весь код вставленный в [exec] [/exec].

      ОТВЕТИТЬ ↓
  • У меня в шаблоне это реализовано через the_content_rss, а не через the_excerpt(). Спасибо, разобрался.

    ОТВЕТИТЬ ↓
  • Приветствую. Подскажи в чем проблема, при вставке функции выдает такое сообщение на странице

    Parse error: syntax error, unexpected '<' in путь/functions.php(740) : eval()'d code on line 1

    то есть ругается на эту строку

    eval('ob_start();'.$matches[1].'$inline_execute_output = ob_get_contents();ob_end_clean();');
    ОТВЕТИТЬ ↓
  • "php код" - это код оформленный по всем правилам php.

    возможно дело в этом, покажи на примере пожалуйста smile

    ОТВЕТИТЬ ↓
  • Собственно хочу вставить в некоторые места вывод твоей функции вывода просмотров, поэтому вывести надо вот этот код

    Просмотров: <?php echo get_post_meta ($post->ID,'views',true); ?>  
    ОТВЕТИТЬ ↓
    • Ага, проблема в том что вставляемый код неправильный. *nea* Нужно так:

      echo 'Просмотров: ' . get_post_meta ($post->ID,'views',true);

      или

      ?> Просмотров: <?php echo get_post_meta ($post->ID,'views',true); 

      Точно не уверен второй пример сработает или нет, но логика думаю понятна. wink

      ОТВЕТИТЬ ↓
  • Ни то ни другое не выводят данные, хотя отрабатывают без ошибок

    ОТВЕТИТЬ ↓
    • Значит данных нет.
      Проверьте ключ произвольного поля, может он неправильно указан, это единственное что приходит на ум. *unknw*

      ОТВЕТИТЬ ↓
      • Ну поле точно не пустое это, а ключи даже другие пробовал выводить, но все равно пусто.

        ОТВЕТИТЬ ↓
      • Аааа, ну да, все правильно smile $post то глобально нужно определить, внутри функции же вызывается:

        global $post;
        echo 'Просмотров: ' . get_post_meta ($post->ID,'views',true);
        ОТВЕТИТЬ ↓
  • Спасибо wink

    ОТВЕТИТЬ ↓
  • можно сделать следующую простую защиту (то что сразу пришло мне в голову): включать исполнение конструкции [exec]php код[/exec], только в том случае, если, например, у поста есть какое-либо произвольное поле или, скажем, пост написан в 00 минут. Естественно только вы будете знать эту хитрость при которой код будет исполняться и соответственно только вам будет доступна возможность вставить php код в статью.

    А как это реализовать чайнику?

    ОТВЕТИТЬ ↓
  • Как заставить исполняться в рамках [exec]php код[/exec] процедуру include

    ОТВЕТИТЬ ↓
    • Как обычно в php это делается: [exec]include ('путь_к_файлу.php');[/exec]

      ОТВЕТИТЬ ↓
Форма комментирования

¤ Вставляйте код кнопкой: "Код" (php, js, html, css, sql);
¤ Выделяйте HTML код кнопкой: "Выделить" (<div>);
¤ Перед отправкой комментария используйте "Превью";
¤ Не пишите спам/бред — бесполезно!

Подписаться на комментарии без комментирования:

Wordpress

X

Забыли пароль?