2014-03-04 142 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