您好我正在尝试将函数转换为短代码。我已经阅读了如何创建短代码,但是当我将我的函数转换为短代码时,我得到了不同的输出。
基本上,每当您点击焦点区域时,所有与该区域相关联的教师都会显示。
以下代码效果很好。
<?php $schools = $post->ID; // the current post id ?>
<?php
$args = array(
'post_type' => 'teacher',
'meta_query' => array(
array(
'key' => 'areas_of_focus',
'value' => $schools,
'compare' => 'LIKE',
),
),
);
$schools_data_query = new WP_Query($args);
?>
<?php
if ( $schools_data_query->have_posts() ) {
echo '<ul>';
while ( $schools_data_query->have_posts() ) {
$schools_data_query->the_post();
//echo '<li>' . get_the_title() . '</li>';
//echo '<li>' . get_permalink() . '</li>'; ?>
<li><a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></li>
<?php
}
echo '</ul>';
} else {
// no posts found
}
现在我想把它变成一个短代码。这是我到目前为止所拥有的
function gm_list_teacher_shortcode($atts){
$args = array(
'post_type' => 'teacher',
'meta_query' => array(
array(
'key' => 'areas_of_focus',
'value' => $schools,
'compare' => 'LIKE',
),
),
);
$schools_data_query = new WP_Query($args);
global $post;
$schools = $post->ID;
$content = '';
$content .= '<ul>';
while($schools_data_query->have_posts()) : $schools_data_query->the_post();
$content .= '<li><a href="'.get_permalink().'">'.get_the_title().'</a></li>';
endwhile;
$content .= '</ul>';
wp_reset_query();
return $content;
}
add_shortcode('gm_list_teacher', 'gm_list_teacher_shortcode');
然而,当我使用这个短代码时,无论在哪个焦点区域,我都会点击相同的教师节目。我相信在创建短代码时我没有正确处理以下行
$schools = $post->ID;
任何帮助都会非常感激。我绝不是一个优秀的程序员。谢谢
答案 0 :(得分:0)
试试这个我编辑这段代码请测试。
function gm_list_teacher_shortcode($atts){
global $post;
$schools = $post->ID;
$args = array(
'post_type' => 'teacher',
'meta_query' => array(
array(
'key' => 'areas_of_focus',
'value' => $schools,
'compare' => 'LIKE',
),
),
);
$schools_data_query = new WP_Query($args);
global $post;
$schools = $post->ID;
$content = '';
$content .= '<ul>';
while($schools_data_query->have_posts()) : $schools_data_query->the_post();
$content .= '<li><a href="'.get_permalink().'">'.get_the_title().'</a></li>';
endwhile;
$content .= '</ul>';
wp_reset_query();
return $content;
}
add_shortcode('gm_list_teacher', 'gm_list_teacher_shortcode');