对于我的wordpress网站php文件之一,我具有以下代码:
<div class="tabs">
<a href="#tab1" id="items_id">Items</a>
</div>
<div class="section" id="tab1">
<?php get_template_part('page/tab1'); ?>
</div>
因此,它将把tab1.php
文件调用到该div id="tab1"
部分。
但是,我要使其get_template_part
仅在Items
单击选项卡时执行或调用。
调用或执行该get_template_part
函数的jQuery是什么?
编辑:
因此,我想要实现的目标类似于Ajax。由于在单击选项卡get_template_part
之前不会调用该函数"Items"
,因此浏览器不必调用不必要的文件并降低页面速度。
让我知道您是否认为这是最好的方法。
谢谢!
尽管拉斐尔(Raphael)在回答中已经说明了背后的想法,但我还是想补充一些细节。
将AJAX与Wordpress结合使用的最佳方法是使用其内置的处理方式,并且通过将请求发送到wp-admin/admin- ajax.php
(我知道文件名的“ admin”部分有点误导。但是所有请求都位于前面,可以在其中处理终端(查看端)和管理员admin- ajax.php
,这有很多好处,尤其是在安全方面;对于将要执行的服务器端代码php,应将其放置在中functions.php
。
您的jQuery代码如下所示:
$(document).ready(function() {
$('.tabs a').click(function(e) {
e.preventDefault();
var tab_id = $(this).attr('id');
$.ajax({
type: "GET",
url: "wp-admin/admin-ajax.php",
dataType: 'html',
data: ({ action: 'yourFunction', id: tab_id}),
success: function(data){
$('#tab'+tab_id).html(data);
},
error: function(data)
{
alert("Error!");
return false;
}
});
});
});
在functions.php
您的主题中(或直接在您的插件文件中),添加:
add_action('wp_ajax_yourFunction', 'yourFunction');
add_action('wp_ajax_nopriv_yourFunction', 'yourFunction');
并在相同的文件yourFunction
回调函数中定义如下:
function yourFunction() {
// get id
// your php code
die();
}
对于javascript部分,请看ajax()及其简写get()。对于将AJAX与Wordpress结合使用的最佳做法,网络上有很多教程(我会再提供一个)。祝好运
编辑:
正如Karl所提到的,您可以使用.load()
代替ajax()
,应该注意的.load()
是只是包装$.ajax()
。它添加了功能,使您可以定义将返回的数据插入到文档中的何处。因此,仅在调用仅会导致HTML时才真正可用。它的名称与其他名称略有不同,因为它是与特定的jQuery包装的DOM元素绑定的方法。因此,可以这样做:$('#divWantingContent').load(...)
内部调用.ajax()
。
但是我最初的答案是关于如何按照WordPress
最佳实践来组织php代码。
我需要在我的服务器上运行函数 但是由于安全原因被禁用,但是PHP执行函数正在运行和。 是否可以使用php函数执行相同的操作? 禁用功能 链接,符号链接,执行,通过,proc_close,proc_get_status,proc_open,shell_exec,系统,流行,关闭
本文向大家介绍使用php-timeit估计php函数的执行时间,包括了使用php-timeit估计php函数的执行时间的使用技巧和注意事项,需要的朋友参考一下 废话不多说了,直接把我写的timeit函数分享给大家,具体内容如下: 测试一下自己写的一个求根算法与系统内置求根函数的执行时间,如下: 测试结果如下: 0.028280019760132 0.0041000843048096 可
问题内容: 我正在寻找一种仅单击 a-tag* 即可调用 PHP函数 的简单解决方案。 * PHP: HTML: 更新: html和PHP代码在同一个PHP文件中 问题答案: 首先,请了解您有三种语言一起使用: PHP:它仅由服务器运行,并响应诸如单击链接(GET)或提交表单(POST)之类的请求。 HTML和JavaScript:它只能在某人的浏览器中运行(NodeJS除外)。 我假设您的文件如
我需要一个for循环中的click函数,这样每个id元素都可以单击。但是我还需要click函数中的I,这就是为什么我认为自动执行匿名函数是最好的方法。但出于某种原因,这不起作用,可能是因为单击函数不允许我转发参数?我做错了什么?
我试图从父组件按钮单击调用每个子组件函数。尝试使用道具并在componentDidMount函数中将按钮单击指定给新函数,但结果是只有最后一个函数警报(“child2保存”);在按钮点击时被分配和执行,我期望警报(“child1保存”);也将被执行。 如何在父组件上单击要调用的每个子函数按钮,注意子组件在父组件内部有相当大的嵌套级别。
问题内容: 总的来说,我对Swift和Xcode还是比较陌生,并且发现很多困难要设法解决。 我正在开发一个利用后端服务器的应用程序。为了不阻塞主线程,每当应用程序从服务器下载任何内容时,它都会异步地在其他线程上完成。但是,其余代码将继续在主线程上执行,并且当应该从服务器下载的数据尚未下载时,它将崩溃。我想知道如何在异步函数完成后调用函数来运行,这对于单独文件中的函数必须完成。 我读过闭包可能对此有