在Auth.php中按作者统计帖子(自定义帖子类型)

时间:2018-10-09 作者:mems

这是我用来统计一个post\\u类型的帖子的代码,我想使用多个post\\u类型(post\\u type\\u 1,post\\u type\\u 2…)有人能帮我吗?

谢谢你的帮助。

<?php
global $wp_query;
$curauth = $wp_query->get_queried_object();
$post_count = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->posts WHERE post_author = \'" . $curauth->ID . "\' AND post_type = \'post\' AND post_status = \'publish\'");
?>

<h2>Post Count: <?php echo $post_count; ?></h2>

1 个回复
最合适的回答,由SO网友:Krzysiek Dróżdż 整理而成

好的,那么您的代码有一些问题。。。

您的SQL不是很安全。如果您使用prepare方法,会更好:

$wpdb->get_var(
    $wpdb->prepare(
        "SELECT COUNT(*) FROM {$wpdb->posts} WHERE post_author = %d AND post_type = %s AND post_status = %s",
        $curauth->ID, \'post\', \'publish\'
    )
);
你清楚地说,你只想统计帖子post_type = \'post\' 是负责这一点的部分。因此,只需删除该部分或根据需要进行修改即可。

仔细计算不同的帖子类型——记住附件(等等)也是一种帖子类型。

使用内置函数。使用它会更好count_user_posts.

<?php $curauth = $wp_query->get_queried_object(); ?>
<h2>Post Count: <?php echo count_user_posts( $curauth->ID, \'post_type\' ); ?></h2>

结束

相关推荐