本文将分享通过Ajax手动解决WordPressWP-PostViews不计数的问题的详细内容,此外,我们还将为大家带来关于javascript–WordPress使用WordPress将ajax值传
本文将分享通过Ajax手动解决WordPress WP-PostViews不计数的问题的详细内容,此外,我们还将为大家带来关于javascript – WordPress使用WordPress将ajax值传递给特定页面、javascript – 通过Ajax加载WordPress帖子、javascript – 通过AJAX动态更改WordPress中的导航链接(下一个和上一个)、jquery – 如何使用Ajax onclick加载WordPress Post的相关知识,希望对你有所帮助。
本文目录一览:- 通过Ajax手动解决WordPress WP-PostViews不计数的问题
- javascript – WordPress使用WordPress将ajax值传递给特定页面
- javascript – 通过Ajax加载WordPress帖子
- javascript – 通过AJAX动态更改WordPress中的导航链接(下一个和上一个)
- jquery – 如何使用Ajax onclick加载WordPress Post
通过Ajax手动解决WordPress WP-PostViews不计数的问题
某个网站开启了Memcached,并安装了WP-PostViews,但是不知道咋滴文章的浏览计数不起作用了。
在经过一番摸索之后,发现WP-PostViews是通过ajax发送请求来计数的。再一看出问题的那个网站,根本就发送这个请求。
在经过一番wordpress后台设置和插件摸索后,还是没找到原因。
无奈,使出最终杀手锏,自己手动添加这个请求的script,添加到页面底部,代码如下:
<?PHP if (is_singular()) : ?> <!-- ajax post view --> <script type= "text/javascript" > $.ajax({ url: "http://***.com/wp-admin/admin-ajax.PHP",data: { "postviews_id" : "<?PHP the_ID(); ?>","action" : "postviews","_" : new Date ().getTime() } }); </script> <?PHP endif ; ?>
以上所述是本文给大家介绍的通过Ajax手动解决wordpress WP-PostViews不计数的问题,希望大家喜欢。
javascript – WordPress使用WordPress将ajax值传递给特定页面
我想将变量传递给特定页面.我找到了一个简单的例子,解释了如何在wordpress中使用ajax.
JavaScript的:
jQuery(document).ready(function($) {
// We'll pass this variable to the PHP function example_ajax_request
var fruit = 'Banana';
// This does the ajax request
$.ajax({
url: ajaxurl,
data: {
'action':'example_ajax_request',
'fruit' : fruit
},
success:function(data) {
// This outputs the result of the ajax request
console.log(data);
},
error: function(errorThrown){
console.log(errorThrown);
}
});
});
要在functions.PHP中插入的PHP片段
function example_ajax_request() {
// The $_REQUEST contains all the data sent via ajax
if ( isset($_REQUEST) ) {
$fruit = $_REQUEST['fruit'];
// Let's take the data that was sent and do something with it
if ( $fruit == 'Banana' ) {
$fruit = 'Apple';
}
// Now we'll return it to the javascript function
// Anything outputted will be returned in the response
echo $fruit;
// If you're debugging, it might be useful to see what was sent in the $_REQUEST
// print_r($_REQUEST);
}
// Always die in functions echoing ajax content
die();
}
add_action( 'wp_ajax_example_ajax_request', 'example_ajax_request' );
wp_localize_script( 'ajax-script', 'ajax_object', array( 'ajax_url' => admin_url( 'admin-ajax.PHP' ) ) );
不幸的是我无法传递变量.我检查了代码,我收到了这个错误:
Error: ajax_object is not defined
您是否知道另一种获得相同结果的方法?
解决方法:
你很近,但有一些小事丢失了……
我在评论中的意思是,你需要在两者中使用’ajax-script’这样使用它:
add_action('wp_enqueue_scripts', 'add_js_scripts');
add_js_scripts(){
wp_enqueue_script( 'ajax-script', get_template_directory_uri().'/js/script.js', array('jquery'), '1.0', true );
wp_localize_script( 'ajax-script', 'ajax_object', array( 'ajaxurl' => admin_url( 'admin-ajax.PHP' ) ) );
}
将$_REQUEST更改为$_POST:
function example_ajax_request() {
// The $_REQUEST contains all the data sent via ajax
if ( isset($_POST) ) {
$fruit = $_POST['fruit'];
// Let's take the data that was sent and do something with it
if ( $fruit == 'Banana' ) {
$fruit = 'Apple';
}
// Now we'll return it to the javascript function
// Anything outputted will be returned in the response
echo $fruit;
// If you're debugging, it might be useful to see what was sent in the $_POST
// print_r($_POST);
}
// Always die in functions echoing ajax content
die();
}
添加了add_action(‘wp_ajax_nopriv_ …):
add_action( 'wp_ajax_nopriv_example_ajax_request', 'example_ajax_request' ); // <= this one
add_action( 'wp_ajax_example_ajax_request', 'example_ajax_request' );
对于你的jQuery脚本script.js文件,有两件重要的遗漏:
jQuery(document).ready(function($) {
/* We'll pass this variable to the PHP function example_ajax_request */
var fruit = 'Banana';
/* This does the ajax request */
$.ajax({
url: ajax_object.ajaxurl, /* <====== missing here */
type : 'post', /* <========== and missing here */
data: {
'action':'example_ajax_request',
'fruit' : fruit
},
success:function(data) {
/* This outputs the result of the ajax request */
console.log(data);
},
error: function(errorThrown){
console.log(errorThrown);
}
});
});
这应该现在工作……
参考文献:
> Using AJAX With PHP on Your WordPress Site Without a Plugin
> How to use Ajax with your WordPress Plugin or Theme?
javascript – 通过Ajax加载WordPress帖子
这是我的代码
jQuery(function() { jQuery(".umrp-list li a").click(function(){ //here I select the links of the widget var post_url = jQuery(this).attr("href"); jQuery(".post").html('<div>Loading Content...</div>'); jQuery(".post").load(post_url); return false; }); });
所以我有两个问题
>每当我点击“最近的帖子”链接时,内容会加载我要加载的位置,但点击后我的网页会空闲/冻结约2秒.为什么会这样?
>当我第一次点击时,除了上面描述的细节之外,一切都有效.当我第二次点击(另一个链接或甚至是相同的)时,它不是加载我点击的帖子,而是将我的整个网页加载到.post容器上.任何想法为什么会这样?
解决方法
至于第二个问题,听起来像jQuery(this)以某种方式指向文档而不是元素的上下文.第二次检查你的“this”值,它可能会为你提供一些见解.
javascript – 通过AJAX动态更改WordPress中的导航链接(下一个和上一个)
在更改所选选项时,我有许多javascript函数运行良好,但它们中的最后一个函数(函数f_next-prevIoUs),似乎不起作用.
此功能的目的是更新下一个和上一个链接而不重新加载页面.
相对于我的模板中的导航链接(下一个和上一个)的代码运行良好,并在上面:
<div id="nav-above"> <divhttps://www.jb51.cc/tag/IoU/" target="_blank">IoUs"><?PHP prevIoUs_post_link( '%link','<img height="34" src="' . get_bloginfo("template_directory") . '/images/prevIoUs.png" />' ); ?></div> <div><?PHP next_post_link( '%link','<img height="34" src="' . get_bloginfo("template_directory") . '/images/next.png" />' ); ?></div> </div><!-- #nav-above -->
这个函数的javascript代码是:
function f_next-prevIoUs(id) { $.ajax({ cache: true,type: "GET",timeout: 5000,url: 'wp-content/themes/twentyten/pages/next-prevIoUs.PHP?p='+id,success: function(msg) { $('#nav-above').html(msg); },error: function(msg) { alert("Your browser broke!"); return false; } }); }
文件next-prevIoUs.PHP的内容是:
<?PHP $p=$_GET['p']; require( '../../../wp-load.PHP' ); $my_query = new WP_Query(); $my_query->query(array( 'post__in' => array($p))); if ($my_query->have_posts()) : while ($my_query->have_posts()) : $my_query->the_post(); ?> <divhttps://www.jb51.cc/tag/IoU/" target="_blank">IoUs"><?PHP prevIoUs_post_link( '%link','<img height="34" src="' . get_bloginfo("template_directory") . '/images/prevIoUs.png" />' ); ?></div> <div><?PHP next_post_link( '%link','<img height="34" src="' . get_bloginfo("template_directory") . '/images/next.png" />' ); ?></div> <?PHP endwhile; endif; ?>
在通过给p参数赋值来测试这个PHP文件时,它在浏览器中给出了逻辑结果. Jquery和函数脚本都包含在内,我网站上的所有AJAX都可以.我在这项工作中缺少什么?
更新:
请注意,负责触发AJAX调用的single.PHP文件部分是:
<form method="post" action=""> <selectname="" id="" > <option value="<?PHP the_ID();?>"><?PHP the_title();?></option> <?PHP global $post; $paged = get_query_var( 'paged' ) ? get_query_var( 'paged' ) : 1; $myposts = get_posts("paged=$paged&category=4"); foreach($myposts as $post) :?> <option value="<?PHP the_ID();?>"><?PHP the_title();?></option> <?PHP endforeach; wp_reset_postdata(); ?> </select> </form>
解决方法
换句话说,对我来说最好的方法是使用wp-admin / admin-ajax.PHP在wordpress中使用内置的AJAX.应将AJAX请求定向到此文件.我知道文件名的“admin”部分有点误导.但是前端(查看方)和管理面板中的所有请求都可以在admin-ajax.PHP中处理,具有很多好处,特别是对于安全性.
步骤是:
1.提交AJAX请求的JavaScript代码应如下所示:
$(document).ready(function() { $('.select2').change(function(e) { e.preventDefault(); var v = $('.select2 option:selected').val(); $.ajax({ type: "GET",url: "wp-admin/admin-ajax.PHP",// check the exact URL for your situation dataType: 'html',data: ({ action: 'nextPrevIoUs',id: v}),success: function(data){ $('#nav-above').html(data); },error: function(data) { alert("Your browser broke!"); return false; } }); }); });
请注意,在放置JS脚本时应该尊重wordpress的要求(通常在wp-footer()之前的footer.PHP中)
2-处理行动:
在您主题的functions.PHP中(或直接在您的插件文件中),添加:
add_action('wp_ajax_nextPrevIoUs','nextPrevIoUs'); add_action('wp_ajax_nopriv_nextPrevIoUs','nextPrevIoUs');
并在同一个文件中定义nextPrevIoUs回调函数,如下所示:
function nextPrevIoUs() { $p= $_GET['id']; $my_query = new WP_Query(); $my_query->query(array( 'post__in' => array($p))); if ($my_query->have_posts()) : while ($my_query->have_posts()) : $my_query->the_post(); ?> <divhttps://www.jb51.cc/tag/IoU/" target="_blank">IoUs"><?PHP prevIoUs_post_link( '%link','<img height="34" src="' . get_bloginfo("template_directory") . '/images/next.png" />' ); ?></div> <?PHP endwhile; endif; wp_reset_query(); die(); }
不要忘记模具功能,这是强制性的.
有关wordpress中AJAX的更多详细信息,Google首页教程很好.
jquery – 如何使用Ajax onclick加载WordPress Post
总结
以上是小编为你收集整理的jquery – 如何使用Ajax onclick加载WordPress Post全部内容。
如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。
关于通过Ajax手动解决WordPress WP-PostViews不计数的问题的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于javascript – WordPress使用WordPress将ajax值传递给特定页面、javascript – 通过Ajax加载WordPress帖子、javascript – 通过AJAX动态更改WordPress中的导航链接(下一个和上一个)、jquery – 如何使用Ajax onclick加载WordPress Post的相关信息,请在本站寻找。
本文标签: