2014-03-04 104 views
0

我正在嘗試將Wordpress頁面標題轉換爲JavaScript代碼,但所有我迄今嘗試的操作都無法使用。這是一個WordPress插件。當有人滾動頁面時,我想發起一個事件。整個插件的工作原理,但我想添加頁面標題的事件腳本應該是這樣的,以便在數據分析,看看哪些頁面,他們已滾動將php添加到javascript

_gaq.push(['_trackEvent', 'scroll', 'the page title', 'scrolled']); 

我與<php? the_title() ?>get_the_title()品種試過,但我沒有管理。

這個插件運行在循環之外,所以我需要以某種方式獲得標題。任何人有想法?

<?php 
/* 
Plugin Name: Fix Bounce Rate 
Plugin URI: http://wordpress.org/extend/plugins/fix-bounce-rate 
Description: Fix Bounce Rate 
Author: Bounce rate fixer 
Version: 0.1 
*/ 

function plugin_options() { ?> 
<?php 
if($_POST['plugin_show'] == 'go') { 
$pluginscript = $_POST['plugin_script']; 
update_option('plugin_script', $pluginscript); 
?> 
<div class="notif"> <span> 
<?php _e('Options saved'); ?> 
</span> </div> 
<?php 
} else { 
$pluginscript = get_option('plugin_script'); 
} 
?> 
<form class="script-form" name="plugin_form" method="post" action="<?php echo str_replace('%7E', '~', $_SERVER['REQUEST_URI']); ?>"> 
<fieldset> 
<input type="hidden" name="plugin_show" value="go"> 
<textarea id="textarea" rows="25" name="plugin_script"> 
<?php 
if($pluginscript){echo stripslashes($pluginscript);} 
else { ?> 
<script> 
var _gaq = _gaq || []; 
(function (tos) { 
window.total_time = 0; 
window.setInterval(function() { 
total_time += 10; 
tos = (function (t) { 
return t[0] == 50 ? (parseInt(t[1]) + 1) + ':00' : (t[1] || '0') + ':' + (parseInt(t[0]) + 10); 
})(tos.split(':').reverse()); 
setTimeout(function() { 
window.onscroll = function() { 
window.onscroll = null; 
_gaq.push(['_trackEvent', 'scroll', 'scrolled']); 
} 
}, 2000); 
if (window.total_time <= 1800) { 
window.pageTracker ? pageTracker._trackEvent('Time', 'Log', tos) : _gaq.push(['_trackEvent', 'Time', 'Log', tos]); 
} 
}, 10000); 
})('00'); 
</script> 
<?php } ?> 
</textarea> 
<br /> 
<button type="submit">Save</button> 
</fieldset> 
</form> 
<?php 
} 

function plugin_settings() { 
add_options_page('plugin', 'Fix Bouncerate', 'manage_options', 'plugin', 'plugin_options'); 
} 
add_action('admin_menu', 'plugin_settings'); 

$pluginscript = get_option('plugin_script'); 

function pluginplace() { 
$pluginscript = get_option('plugin_script'); 
echo stripslashes($pluginscript); 
} 
add_action('wp_footer','pluginplace'); 
?> 

回答

0

當您從您的模板解決您的腳本的文件,你可以作爲一個GET參數添加標題腳本URL。您應該能夠讀取該文件中的標題。 然後在你的腳本文件中讀取$ _GET變量。

<script type="text/javascript" src="myscript.php?title=MY_PAGE_TITLE"></script> 

或者只設置在你的腦袋部分全球JS變量,你用PHP-填入值和參考,在腳本文件的變量。確保在腳本執行前設置變量!

<script type="text/javascript"> 
    var myTitle = '<?php echo $var_with_title; ?>'; 
</script> 
0

難道你不能使用JavaScript本機document.title?您的標題動態生成了嗎? ?

_gaq.push(['_trackEvent', 'scroll', document.title, 'scrolled']); 

這樣

_gaq.push(['_trackEvent', 'scroll', <?php echo("'".the_title()."'"); ?>, 'scrolled']); 

代碼

<?php 
/* 
Plugin Name: Fix Bounce Rate 
Plugin URI: http://wordpress.org/extend/plugins/fix-bounce-rate 
Description: Fix Bounce Rate 
Author: Bounce rate fixer 
Version: 0.1 
*/ 

function plugin_options() { ?> 
<?php 
if($_POST['plugin_show'] == 'go') { 
$pluginscript = $_POST['plugin_script']; 
update_option('plugin_script', $pluginscript); 
?> 
<div class="notif"> <span> 
<?php _e('Options saved'); ?> 
</span> </div> 
<?php 
} else { 
$pluginscript = get_option('plugin_script'); 
} 
?> 
<form class="script-form" name="plugin_form" method="post" action="<?php echo str_replace('%7E', '~', $_SERVER['REQUEST_URI']); ?>"> 
<fieldset> 
<input type="hidden" name="plugin_show" value="go"> 
<textarea id="textarea" rows="25" name="plugin_script"> 
<?php 
if($pluginscript){echo stripslashes($pluginscript);} 
else { ?> 
<script> 
var _gaq = _gaq || []; 
(function (tos) { 
window.total_time = 0; 
window.setInterval(function() { 
total_time += 10; 
tos = (function (t) { 
return t[0] == 50 ? (parseInt(t[1]) + 1) + ':00' : (t[1] || '0') + ':' + (parseInt(t[0]) + 10); 
})(tos.split(':').reverse()); 
setTimeout(function() { 
window.onscroll = function() { 
window.onscroll = null; 
_gaq.push(['_trackEvent', 'scroll', <?php echo("'".the_title()."'"); ?>, 'scrolled']); 
} 
}, 2000); 
if (window.total_time <= 1800) { 
window.pageTracker ? pageTracker._trackEvent('Time', 'Log', tos) : _gaq.push(['_trackEvent', 'Time', 'Log', tos]); 
} 
}, 10000); 
})('00'); 
</script> 
<?php } ?> 
</textarea> 
<br /> 
<button type="submit">Save</button> 
</fieldset> 
</form> 
<?php 
} 

function plugin_settings() { 
add_options_page('plugin', 'Reduce Bounce Rate', 'manage_options', 'plugin', 'plugin_options'); 
} 
add_action('admin_menu', 'plugin_settings'); 

$pluginscript = get_option('plugin_script'); 

function pluginplace() { 
$pluginscript = get_option('plugin_script'); 
echo stripslashes($pluginscript); 
} 
add_action('wp_footer','pluginplace'); 
?> 
+0

標題被動態地與''。當我使用上面的文件行時,只是打印出來的,而不是頁面標題。 – WendiT

+0

是啊,那是我第一次嘗試,但輸出是 '_gaq.push(['_ trackEvent','scroll','<?php the_title();?>','scrolled']);'它只是打印無論代碼在那裏。 – WendiT

+0

我只是試圖將腳本部分(包括the_title())直接添加到頁腳,然後顯示頁面標題。所以,最大的問題是,爲什麼當我通過插件執行操作時不顯示? – WendiT