首页 > 解决方案 > 如何在 wordpress 中使输入值永久化或使用全局变量

问题描述

我目前使用 Java 脚本片段制作我的第一个 Wordpress 网站,以进行倒计时,该倒计时会不断刷新并允许我每 6 小时单击一次按钮。所以我设法让时间自行刷新,但我需要一个永久变量来告诉我是否已经点击了按钮(因为无论我刷新页面、转到另一边甚至与另一个用户登录,它都应该有效)。基本上我只想要一个在 0 和 1 之间变化的变量。我实现了一个隐藏的输入字段,只要我留在一边(刷新一边也可以),它就可以正常工作,但是一旦我更改了它设置的页面变回。我试图在我的主题的 function.php 中实现一个全局变量(以及一个函数),但它仍然不起作用。

我试过这样:

global $x;
echo $x;

和这个:

function displayX() {
  global $x; 
  $x = "0";
  echo $x;
}

问题是我不想设置一个值,因为该变量需要随时更改。

那是我当前的html:

<input type="text" id="id1" value="<?php echo $x; ?>" <="" input="">

但它只是行不通。

我的第二种方法是使输入字段永久化(但可更新) - 只要我不改变侧面,这种方法同样有效。我试过这样:

<span id="00">
<input type="text" id="id1">
        </span>

有人可以帮我吗?另外请指定我必须在哪里设置全局变量,因为有这么多的 function.php 文件。

谢谢你!

标签: javascriptphphtmlwordpressglobal-variables

解决方案


最简单的方法是使用update_optionand get_optionupdate_option用于将数据保存到永久的数据库中。 get_option用于从数据库中获取数据。

<form method="post">
    <input type="text" name="permanent" id="permanent"  value="<?php echo get_option('permanent_data'); ?>"/>
    <input type="submit" name="save" value="submit"/>
</form>

您可以使用如下操作在后端捕获表单数据:在functions.php中

add_action('init','save_permanent');

function save_permanent(){
    if(isset($_POST['save'])){
        update_option('permanent_data', $_POST['permanent']);
    }
}

下面的代码检查是否提交了表单:

if(isset($_POST['save'])){
    update_option('permanent_data', $_POST['permanent']);
}

如果表单提交,它会获取输入文本的值,命名为permanent 提及的代码永久数据库中的数据作为名称permanent_data

如果您想获取存储的数据,您只需get_option(option name)像这样调用:

<?php echo get_option('permanent_data'); ?>

对于第一个问题,您可以这样做:在functions.php中

<?php
if(if(isset($_POST['save']))){
    update_option('already_clicked', '1');
}

对于获取存储的数据,您可以使用:

<?php 
if(get_option('already_clicked') == '1'){
    //do somthing
}
?>

推荐阅读