基本上,我正在尝试这样做,如果用户登录,所有待处理的帖子都可以投票。一旦获得10多张选票,它将被公布。
好了,不再使用数据库连接,现在使用元键,因此代码已经更改,以显示我现在拥有的内容
<?php
//if the post is pending show
if(get_post_status() == \'pending\') {
//added a post_vote to the wp_posts database for use later
//if the user is logged in show
if ( is_user_logged_in() ) {
add_post_meta( get_the_ID(), \'post_vote\', \'0\', true );
$post_vote = get_post_meta( get_the_ID(), \'post_vote\' );
echo \'Votes: \' . print_r( $post_vote);
//form for submit button
echo "<form method=\\"POST\\" action=\\"";
echo \'\'; //code in here for adding 1 to meta
echo "\\">";
echo \'<input type="button" name="submit" value="+">\';
echo \'</form>\';
} else {
echo\'Please Sign in to Vote\';
}
} else {
// do nothing
}
?>
以下内容
add_post_meta( get_the_ID(), \'post_vote\', \'0\', true );
$post_vote = get_post_meta( get_the_ID(), \'post_vote\' );
echo \'Votes: \' . print_r( $post_vote);
返回此
Array ( [0] => 0 ) Votes: 1
.
它应该只说Votes: 0
最合适的回答,由SO网友:Tom J Nowell 整理而成
您需要的是post元/自定义字段,使用以下函数:
get_post_meta
add_post_meta
update_post_meta
在posts表中添加新列只会导致后续问题,例如:
WP Core中的数据库架构更改会破坏您的额外列,您必须为与投递投票相关的所有内容编写自己的自定义SQL,无需WP\\U查询、对象缓存和缓存插件的帮助,无需导入/导出支持所有投递类型都会有投票列,您是否需要附件、投递修订和页面上的投票数据例如。
update_post_meta(76, \'my_key\', \'Steve\');
将更新/保存“my\\u key”meta值“steve”至第76页,稍后我们可以使用以下方法检索:
echo get_post_meta( 76, \'my_key\', true );
用户和评论也有类似的元API