使用 jquery 或类似于 ajax 重新加载 WordPress 页面的一部分 [已关闭]

Reload a part of the WordPress page with jquery or similar to ajax [closed]

提问人:sara 提问时间:11/14/2023 最后编辑:sara 更新时间:11/16/2023 访问量:72

问:


想改进这个问题吗?更新问题,使其仅通过编辑这篇文章来关注一个问题。

5天前关闭。

嗨,我是一个新程序员,我想更新我的部分 wordpress 页面内容,这是 php 文件中的简码,而无需刷新整个页面。 但是我不知道如何在子主题的函数.php文件中使用钩子和动作,也不知道如何使用jquery和ajax编写abc.js文件

我的简码 php 文件是 SetP.php

<?php
global $wpdb;
global $current_user; get_currentuserinfo();
$postname="$current_user->user_login";
$result=$wpdb->get_results("select Set_P_Ref from mainlogs where Srl_Pro='$postname'");
echo "<style>";
    echo ".tt {
        color:white;
  font-weight: normal;
font-family: refled;
     }";

echo "</style>";
echo "<body>";
echo "<div class=\"table\"><table>";
foreach($result as $row){
    echo "<tr><td class=tt >" .$row->Set_P_Ref ."</td></tr>";
}

echo "</table></div>";

此程序处于活动状态,但由于我的输出参数已更改,因此除非刷新整个页面,否则不会更新此值。

我将非常感谢您的帮助

php jquery wordpress

评论

1赞 disinfor 11/14/2023
欢迎来到 Stack Overflow!对于SO来说,要求一个完整的AJAX解决方案是一个过于宽泛的问题。我强烈建议您阅读以下内容:smashingmagazine.com/2011/10/how-to-use-ajax-in-wordpress 它已经有 10 多年的历史了,但信息仍然非常相关。
0赞 Chris Haas 11/14/2023
忽略 AJAX,这甚至有效吗?在哪里定义?我不得不查找settype,除了一些非常特殊的情况,我觉得应该避免它。 似乎很可疑。它关闭了什么? 已弃用。您要求进行 SQL 注入,请使用 wpdb::p repare()$Set_P_Refecho "</head>"get_currentuserinfo
0赞 sara 11/14/2023
是的,它通过忽略ajax来工作,我只需要不断刷新整个页面即可查看输出更改,get_currentuserinfo已被弃用,但它仍然对我有用,所以我没有用它的新功能替换它,settype是不必要的和多余的,我编辑了程序
0赞 Chris Haas 11/14/2023
感谢您解决其中的大部分问题。您是否尝试过从手札中编写任何 AJAX 代码
1赞 Jarmo T 11/14/2023
您的代码容易受到 sql 注入的攻击,您应该使用 wpdb->prepare() 来清理您的查询。

答:

1赞 O. Jones 11/14/2023 #1

新程序员:欢迎来到我们的伟大交易!尊重你,你选择了一个相当精致的第一个WordPress项目。解释这一切远远超出了WordPress答案的范围。

以下是您的问题解决方案的大纲,希望能为您指明一些有用的方向。

  1. 写一个插件来...

  2. 实现一个简码自定义块来写出一些简单的 HTML,以显示带有 id 的 HTML 元素中自动更新的信息,类似于

    <div id='saras-plugin'>whatever information</div> 
    
  3. 在插件中,实现一个自定义 REST API 端点,该端点返回您需要的更新信息。

  4. 编写需要放入页面的 Javascript,从浏览器点击自定义 REST API 并获取信息。您可以使用 AJAX 或更新更好的 fetch API 来执行此操作。然后,您的 Javascript 将使用 getElementById() 来查找您在第 2 步中写出的 html,并更改其内容以保存您的新信息。

  5. 在您的简码或自定义块处理程序中,调用 wp_enqueue_script() 以告诉 WordPress 将您的 Javascript 代码放入页面中。

  6. 将您刚刚创建的简码或块放入您希望显示动态信息的网站内容中。

当然,很多编程步骤。但是当你掌握了这些东西时,你就会拥有一些超级有价值的技能。

评论

1赞 Chris Haas 11/14/2023
感谢您抽出宝贵时间写这篇文章。当我看到新程序员被告知 RTFM 或“放弃一切并重新开始”或类似的东西时,我感到非常沮丧,所以看到有人真的试图提供帮助,即使任务比这个人想象的要复杂,这非常美妙。
0赞 sara 11/15/2023
非常感谢您抽出时间接受采访。我才刚刚起步,我喜欢结识像您这样经验丰富的专业人士,他们提供有用和富有同情心的指导。项目的所有部分都很简单,我做了,除了这部分,我没有