这是自定义帖子声明
function ts_result_reg() {
$labels = array(
'name' => _x( 'Students Result', 'post type general name' ),
'singular_name' => _x( 'Students Result', 'post type singular name' ),
'add_new' => _x( 'Add New Result', 'result' ),
'add_new_item' => __( 'Add New Result' ),
'edit_item' => __( 'Edit Result' ),
'new_item' => __( 'New Result' ),
'all_items' => __( 'All Results' ),
'view_item' => __( 'View Result' ),
'search_items' => __( 'Search Results' ),
'not_found' => __( 'No result found' ),
'not_found_in_trash' => __( 'No result found in the Trash' ),
'parent_item_colon' => '',
'menu_name' => 'Student Results'
);
$args = array(
'labels' => $labels,
'description' => 'Add new custom post type students result',
'public' => true,
'menu_position' => 5,
'supports' => array( 'thumbnail','title', ),
'taxonomies' => array( 'classes' ),
'has_archive' => true,
'rewrite'=> array ('slug' => 'tscheck'),
);
register_post_type( 'ts_students_result', $args );
}
add_action( 'init', 'ts_result_reg' );
后端元框
array(
'name' => 'French',
'id' => $prefix . 'subject_french_exam_total',
'type' => 'text_small',
// 'repeatable' => true,
),
array(
'name' => 'Business Education,
'id' => $prefix . 'subject_business_edu_exam_total',
'type' => 'text_small',
// 'repeatable' => true,
),
...
前端查询
query_posts( array(
...
)
),
'posts_per_page' => 100
)
);
?>
<table style="border:1px solid black" cellpadding="1.5" cellspacing="5">
<tbody>
<tr>
<th><strong>NAME\SUBJECT</strong></th>
<th align='center'><strong>French</strong></th>
<th align='center'><strong>Business Education</strong></th>
<th align='center'><strong>Total</strong></th>
<th align='center'><strong>Average</strong></th>
<th align='center'><strong>Position</strong></th>
</tr>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<!-- Initializing count and sum -->
<?php
$subject_count=0;
$subject_sum_total=0;
$subject_french_exam_total= get_post_meta(get_the_ID(),'_ts_subject_french_exam_total',true );
if($subject_french_exam_total):
$subject_count++;
$subject_sum_total+=$subject_french_exam_total;
endif;
$subject_business_edu_exam_total= get_post_meta(get_the_ID(),'_ts_subject_business_edu_exam_total',true );
if($subject_business_edu_exam_total):
$subject_count++;
$subject_sum_total+=$subject_business_edu_exam_total;
endif;
$store_student_avg=array();
if($subject_sum_total>0.1):
$subject_avg_total= $subject_sum_total/$subject_count;
array_push($store_student_avg,$subject_avg_total);
endif;
?>
<tr>
<td><?php the_title(); ?></td>
<td><?php echo $subject_french_exam_total ;?></td>
<td><?php echo $subject_business_edu_exam_total ;?></td>
<td><?php echo $subject_sum_total ;?></td>
<td><?php echo $subject_avg_total ;?></td>
<?php
rsort($store_student_avg);
$arrlength = count($store_student_avg);
$rank = 1;
$prev_rank = $rank;
for($x = 0; $x < $arrlength; $x++)
if ($x==0): ?>
<td><?php echo $rank; ?></td>
<?php elseif ($numbers[$x] != $numbers[$x-1]):
$rank++;
$prev_rank = $rank;
?>
<td><?php echo $rank; ?></td>
<?php else:
$rank++;
?>
<td><?php echo $prev_rank; ?></td>
<?php endif; ?>
</tr>
<?php endwhile;endif; ?>
</tbody>
</table>
编辑:在上面的代码(缩短)中,我需要计算每个帖子平均值的位置(排名)。似乎整个循环在输出之前没有在 wordpress 中运行,因此,每个帖子的输出为 1(输出截图)。我该如何解决这个问题?