2015-01-13 2 views
-1

Как установить значение cookie, которое получается из атрибутов короткого кода.?Предупреждающее сообщение заголовка WordPress

Например, в этом коротком коде [shortcode ids="12"][/shortcode] мне нужно установить эти идентификаторы в файл cookie. Когда я пытался использовать setcookie ('ids', '12', time()+31536000, '/', 'localhost', '0'); я получаю предупредительное сообщение

Предупреждение: Не удается изменить информацию в заголовке - заголовки уже прислал (выход начался в /var/www/wordpress_retail/wp-content/themes/twentythirteen/header.php : 13).

В чем может быть проблема?

Я использовал этот код внутри функции custom_feilds add_shortcode('shortocode', array(&$this, 'custom_feilds'));

+1

возможно дубликат [Как исправить "заголовки уже отправлены" ошибка в PHP] (http://stackoverflow.com/questions/8028957/how-to-fix-headers-already -sent-error-in-php) – Chris

ответ

0

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

Что-то вроде

add_action('init', function() { 
    if (!isset($_COOKIE['ids'])) { 
     setcookie('ids', '12', time()+31536000, '/', 'localhost', '0'); 
    } 
}); 
+0

Привет, Дакер, спасибо за ответ. Как вы упомянули, мы можем установить cookie в функции «init». но проблема в том, как мы можем получить значение идентификаторов (здесь значение «12»), в это время init. потому что это значение находится в [shortcode ids = "12"] [/ shortcode], который мы получаем во время получения содержимого страницы. ? – sarath

+0

@sarath посмотреть на http://codex.wordpress.org/Shortcode_API - может быть, вы можете сохранить файл cookie в shortcode init? Что ты пытаешься сделать? – daker

+0

спасибо daker. Я обязательно проверю. – sarath

Смежные вопросы