selamat sore mas ellyx...

saat ini saya sedang belajar membuat link referral di blog WordPress. sementara ini sudah cukup berhasil untuk menampilkannya di sebuah post/page. script yang saya gunakan adalah sebagai berikut:
1. di dalam file functions.php
function username($atts) {
	$user = $_GET['name'];
	
	if (isset($user) != ""){
		return ''.$user.'';
	}
	else {
		return 'FULAN';
	}
}
add_shortcode('username', 'username');

2. untuk menampilkannya di dalam post/page:
Hallo, <b><?php echo do_shortcode("[username]"); ?></b>. Selamat datang!


nah, manakala secara manual saya mengetikkan tautan http://domainsaya.ext/?name=Anton maka di dalam post/page sudah berhasil merekam sebagai "Hallo, Anton. Selamat datang!" namun jika dalam URL tidak didefinisikan, yang terekam adalah "Hallo, FULAN. Selamat datang!".

Permasalahannya, bagaimana membuat url ini tetap memiliki identitas "name" (duh, maaf ga tau saya istilah teknisnya :() meskipun saya pindah-pindah halaman? jadi misalkan saya ketik http://domainsaya.ext/?name=Anton sementara mau pindah ke halaman "About", maka ia akan menjadi http://domainsaya.ext/about/?name=Anton dan bukan cuma http://domainsaya.ext/about?

syukur2 mas ellyx bisa bantu memperbaiki script saya diatas sehingga akan menjadi misalnya, http://domainsaya.ext/id/Anton (utk halaman utama) dan http://domainsaya.ext/Anton/about (untuk halaman about, dst)...

terima kasih sebelumnya mas ellyx
Silahkan login untuk menjawab!
0
Loading...
Fadli · Nov 1, 2011 · 0 Suka · 0 Tidak Suka
duh, maaf. sepertinya script diatas terpotong :( ini baris pertama di file functions.php itu mas:
function username($atts) {
0
Loading...
Fadli · Nov 1, 2011 · 0 Suka · 0 Tidak Suka
saya baru nemuin soal cookies di wordpress mas http://wptheming.com/2011/04/set-a-cookie-in-wordpress/, tapi masih belum bisa mengkombinasikannya dengan script diatas. mohon dibantu.
0
Loading...
Ellyx Christian · Nov 1, 2011 · 0 Suka · 0 Tidak Suka
saya kurang mengerti dengan wordpress. Coba pake ini:
function username(){
if(isset($_GET['name']) && $_GET['name']){
	setcookie('username', $_GET['name'], time() + 86400, '/'); //set cookie 1 hari
	return $_GET['name'];
}elseif(isset($_COOKIE['username']) && $_COOKIE['username']){
	return $_COOKIE['username'];
}else{
	return 'FULAN';
}
}
0
Loading...
Fadli · Nov 2, 2011 · 0 Suka · 0 Tidak Suka
masih belum bisa mas. muncul error:
Warning: Cannot modify header information - headers already sent by (output started at D:\web\www\test\wp-content\plugins\all-in-one-seo-pack\aioseop.class.php:221) in D:\web\www\test\wp-content\themes\spirit\functions.php on line 7

sementara baris 221 di file aioseop.class.php adalah:
ob_end_flush();

dan baris 7 file functions.php:
setcookie('username', $_GET['name'], time() + 86400, '/'); //set cookie 1 hari

lagipula kalau pindah halaman dia masih belum merekam GET nya :(
0
Loading...
Ellyx Christian · Nov 2, 2011 · 0 Suka · 0 Tidak Suka
saya kurang mengerti dengan cara wordpress, yang jelas error itu terjadi karena function setcookie dipanggil setelah ada output. Coba pakai yang ini:
function init_username(){
if (!isset($_COOKIE['username']) || !$_COOKIE['username']) {
	if(isset($_GET['name']) && $_GET['name']){
		setcookie('username', 1, time()+86400, COOKIEPATH, COOKIE_DOMAIN, false);
	}
}
}
action( 'init', 'init_username');
function username($atts){
if(isset($_GET['name']) && $_GET['name']){
	return $_GET['name'];
}elseif(isset($_COOKIE['username']) && $_COOKIE['username']){
	return $_COOKIE['username'];
}else{
	return 'FULAN';
}
}
add_shortcode('username', 'username'); 
0
Loading...
Fadli · Nov 2, 2011 · 0 Suka · 0 Tidak Suka
makasih mas, tapi saya udah coba juga cara dari php.net, dikasih ob_start(); & exit; jadinya begini:
ob_start();
function username(){
if(isset($_GET['name']) && $_GET['name']){
setcookie('username', $_GET['name'], time() + 86400, '/'); //set cookie 1 hari
return $_GET['name'];
}elseif(isset($_COOKIE['username']) && $_COOKIE['username']){
return $_COOKIE['username'];
}else{
return 'FULAN';
}
exit;
}

simple sih menurut saya, tapi "clear" ga yah scriptnya?
0
Loading...
Fadli · Nov 2, 2011 · 0 Suka · 0 Tidak Suka
duh, itu ob_start(); nya di paling atas ga ngikut :(