我正在尝试制作一个小插件,可以创建一个有培训师的团队。团队是一个定制的职位类型,培训师是一个定制的职位类型。当我创建一个新团队时,我在一个组合框中阅读所有培训师,其中自定义帖子的标题类型traener 是培训师的名称。
我的问题是,当我在标题框中键入团队名称时,会使用traener 自定义帖子类型标题。
这就是我到目前为止在创建register the Custom Post Type并使用trainer和som其他信息创建metabox时想到的。
global $post;
$title = $post->post_title;
echo "<script>alert (\'".$title.")</script>";
$args = array(
\'post_type\' => \'traener\',
\'posts_per_page\' => -1,
\'orderby\' => \'post_title\', // meta_value\',
\'order\' => \'ASC\',
);
$my_query = new WP_Query($args);
if ($my_query->have_posts()) {
while ($my_query->have_posts()) : $my_query->the_post();
if ($selectedtrainer == get_the_title()) {
echo \'<option value="\'.esc_html( get_the_title() ).\'"selected=selected>\'.esc_html( get_the_title() ).\'</option>\';
} else {
echo \'<option value="\'.esc_html( get_the_title() ).\'">\'.esc_html( get_the_title() ).\'</option>\';
}
endwhile;
}
wp_reset_postdata();
$post->post_title = $title;
是否有任何方法可以将帖子标题从
traener 自定义post类型,因此slug将基于
team 标题
我尝试过使用save\\u post操作来操纵标题,但运气不好,这也不是我想要的,因为使用制表器时,slug是在后台生成的(ajax/javascript)。
真的希望有人能在正确的方向上帮助我
最合适的回答,由SO网友:Jacob Thygesen 整理而成
我发现我只需要使用
$post->post_name
而不是
$post->post_title
因为
$post->post_name 如果不定义标题而另存为草稿,则会保存段塞并保存自动生成的段塞。
所以代码如下
global $post;
$slug = $post->post_name;
echo "<script>alert (\'".$title.")</script>";
$args = array(
\'post_type\' => \'traener\',
\'posts_per_page\' => -1,
\'orderby\' => \'post_title\', // meta_value\',
\'order\' => \'ASC\',
);
$my_query = new WP_Query($args);
if ($my_query->have_posts()) {
while ($my_query->have_posts()) : $my_query->the_post();
if ($selectedtrainer == get_the_title()) {
echo \'<option value="\'.esc_html( get_the_title() ).\'"selected=selected>\'.esc_html( get_the_title() ).\'</option>\';
} else {
echo \'<option value="\'.esc_html( get_the_title() ).\'">\'.esc_html( get_the_title() ).\'</option>\';
}
endwhile;
}
wp_reset_postdata();
$post->post_name = $slug;
希望这能对其他人有所帮助。