我遇到的问题是,即使用户登录,私有帖子的标签也不会显示在小部件标签云中。原因似乎是函数中“post\\u status”的值_update_post_term_count
在wp包括/分类中。php。至少当我将此值更改为“private”时,会显示私有标记。
我的问题是:如何在不编辑分类法的情况下更改此值。php,那么核心呢?这是已更改的功能(在
**...**
):
function _update_post_term_count( $terms, $taxonomy ) {
global $wpdb;
$object_types = (array) $taxonomy->object_type;
foreach ( $object_types as &$object_type )
list( $object_type ) = explode( \':\', $object_type );
$object_types = array_unique( $object_types );
if ( false !== ( $check_attachments = array_search( \'attachment\', $object_types ) ) ) {
unset( $object_types[ $check_attachments ] );
$check_attachments = true;
}
if ( $object_types )
$object_types = esc_sql( array_filter( $object_types, \'post_type_exists\' ) );
foreach ( (array) $terms as $term ) {
$count = 0;
// Attachments can be \'inherit\' status, we need to base count off the parent\'s status if so
if ( $check_attachments )
$count += (int) $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(*) FROM $wpdb->term_relationships, $wpdb->posts p1 WHERE p1.ID = $wpdb->term_relationships.object_id AND ( post_status = \'**private**\' OR ( post_status = \'inherit\' AND post_parent > 0 AND ( SELECT post_status FROM $wpdb->posts WHERE ID = p1.post_parent ) = \'**private**\' ) ) AND post_type = \'attachment\' AND term_taxonomy_id = %d", $term ) );
if ( $object_types )
$count += (int) $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(*) FROM $wpdb->term_relationships, $wpdb->posts WHERE $wpdb->posts.ID = $wpdb->term_relationships.object_id AND post_status = \'**private**\' AND post_type IN (\'" . implode("\', \'", $object_types ) . "\') AND term_taxonomy_id = %d", $term ) );
do_action( \'edit_term_taxonomy\', $term, $taxonomy );
$wpdb->update( $wpdb->term_taxonomy, compact( \'count\' ), array( \'term_taxonomy_id\' => $term ) );
do_action( \'edited_term_taxonomy\', $term, $taxonomy );
}
}