首先,您应该考虑使用构建WordPress功能,而不是直接链接到PHP文件。任何人都可以很容易地利用这一点,人为地为帖子投票。
要使用wordpress ajax功能,请将ajax请求发送到您的站点。com/wp-admin/admin-ajax。php,并使用标准插件挂钩系统。
托尔曼兹的回答是正确的:你的更新post-meta和get-post-meat调用不起作用,因为WordPress环境没有加载到评级中。php。使用管理ajax的另一个原因。php来处理您的响应。
下面是一个示例:
<?php
add_action( \'wp_ajax_nopriv_wpse26789_action\', \'wpse26789_ajax_cb\' );
add_action( \'wp_ajax_wpse26789_action\', \'wpse26789_ajax_cb\' );
function wpse26789_ajax_cb()
{
// Verify the nonce to make sure the request came from an actual page...
if( !isset( $_REQUEST[\'nonce\'] ) || ! wp_verify_nonce( $_REQUEST[\'nonce\'], \'wpse26789_nonce\' ) ) die( \'-1\' );
$post_id = isset( $_REQUEST[\'post_id\'] ) ? absint( $_REQUEST[\'post_id\'] ) : 0;
if( ! $post_id ) die( \'-1\' );
$counter = get_post_meta( $post_id, \'good_post\', true );
$counter = absint( $counter );
if( $counter )
{
$counter++;
}
else
{
$counter = 1;
}
update_post_meta( $post_id, \'good_post\', $counter );
echo $counter;
die();
}
那么你的前端可能需要稍微改变一下。
这里有一个函数可以放在单曲的循环中。php文件:
<?php
function wpse26789_good_bad()
{
global $post;
$count = get_post_meta( $post->ID, \'good_post\', true );
?>
<p id="wpse26789_click">Click Here to Vote this Post up</p>
<p>This post has <span id="wpse26789_count"><?php echo strip_tags( $count ); ?></span> votes</p>
<?php
}
某处单身。php插入
wpse26789_good_bad()
或者将函数中的代码插入到single中。php(除了
global $post
) 回路中的任何位置。
然后,您需要稍微修改一下javascript。我刚刚在这里连接到wp\\u head,将javascript添加到<head>
任何单数岗位的部门。
<?php
add_action( \'wp_head\', \'wpse26789_head\' );
function wpse26789_head()
{
if( ! is_singular() ) return;
$post_id = get_queried_object_id();
?>
<script type="text/javascript">
var wpse26789_data = {
action: \'wpse26789_action\',
post_id: \'<?php echo absint( $post_id ); ?>\',
nonce: \'<?php echo wp_create_nonce( \'wpse26789_nonce\' ); ?>\',
}
jQuery(document).ready(function(){
jQuery( \'#wpse26789_click\' ).click(function(){
jQuery.get(
\'<?php echo site_url( \'wp-admin/admin-ajax.php\' ); ?>\',
wpse26789_data,
function( data ){
if( \'-1\' != data )
{
jQuery( \'span#wpse26789_count\' ).html( data );
alert( \'Your Message!\' );
}
}
);
});
});
</script>
<?php
}
作为插件:
http://pastie.org/2423993