2012-08-03 19 views
5

Sto provando a impostare un cookie in wordpress. Ho il mio biscotto impostato in questo modo:Come impostare un cookie in Wordpress

<?php setcookie('test', 'test', 0, '/', '/'); ?> 

in header.php del mio tema, ma quando vado al mio browser per vedere il mio sito ho ottenere questo errore

Warning: Cannot modify header information - headers already sent by (output started at /home/content/19/9468119/html/wp-content/themes/twentyeleven/header.php:27) in /home/content/19/9468119/html/wp-content/themes/twentyeleven/header.php on line 201 

e anche il mio biscotto doesnt impostato. Come posso impostare un cookie in wordpress?

Ho anche provato questa

function set_new_cookie() { 
    setcookie('test', 'test', 0, '/', '/'); 
} 
add_action('init', 'set_new_cookie'); 
+0

in WordPress, si dovrebbe usare '' COOKIEPATH' e COOKIE_DOMAIN', altrimenti si rischia di avere problemi con i biscotti di lavoro corretto (vedi [questa risposta] (http://stackoverflow.com/a/ 30665891/870729)) –

risposta

3

È necessario impostare loro prima di tutto viene emesso

sguardo c'è: How can I set, get and destroy cookies in Wordpress?

Se si utilizza un tema in function.php

function set_new_cookie() { 
    //setting your cookies there 
} 
add_action('init', 'set_new_cookie'); 

La data di scadenza è 0 così voi cookie sarà cancellato subito guardare il doc php:

http://php.net/manual/en/function.setcookie.php

È necessario impostare in questo modo, ad esempio:

setcookie("TestCookie", $value, time()+3600); /* expire in 1 hour */ 
+0

ciò che è suggerito su quello non funzionerà, ho provato a mettere nella mia pagina function.php ma mi ha dato errori php sulla sintassi – user1269625

+0

è la sintassi giusta qui c'è più esempio: http: //wptheming.com/2011/04/set-a-cookie-in-wordpress/quali errori hai? –

+0

Ho provato anche il tuo codice Jerome e non ha creato il mio cookie ... devo chiamarlo da qualche parte? e come? – user1269625

1
  1. impostando un cookie: Il sotto l'esempio verrà impostato il cookie scaduto per un'ora (60 * 60 secondi) poiché impostato con COOKIEPATH e COOKIE_DOMAIN è stato definito da WordPress in base al percorso e al dominio del sito.

    setcookie('my-cookie-name', 'my-cookie-value', time() + 3600, COOKIEPATH, COOKIE_DOMAIN); 
    
  2. Ottenere un Cookie: Per un cookie può essere fatto utilizzando $ _COOKIE variabile che contiene un array associativo.

    $myCookie = isset($_COOKIE['my-cookie-name']) ? $_COOKIE['my-cookie-name'] : 'Not Set!!'; 
    
  3. Eliminare o Unset un cookie: è stesso come sopra istruzioni # 1, solo con un tempo negativo per scadere il cookie;

    setcookie('my-cookie-name', '', time() - 3600, COOKIEPATH, COOKIE_DOMAIN); 
    
Problemi correlati