Php 访问刚刚创建的帖子的URL
我正在使用WordPress创建一个网站,允许用户上传徒步路径文件(gpx(xml)文件) 为此,用户访问一个名为“创建新曲目”的页面(这是一个带有特定模板的WordPress页面)。通过php创建的表单,用户输入远足的名称,一个简短的描述,并选择要上传的文件。然后,我的代码对输入的数据和选择的文件进行常规检查。如果所有检查都通过,文件将上载到服务器,并创建一篇新文章(添加输入的标题和说明以及附加到文章的文件) 我想,一旦文件已经上传,新的帖子已经创建,然后用户访问一个网页,他可以查看新创建的文章。我想这个页面是第二个WordPress页面,名为“编辑轨迹”,它使用第二个特定的模板 我目前的计划是使用$track_ID(参见代码-这是新创建的帖子的ID)并以url参数的形式将其添加到“Edit track”url的url中。成功创建曲目后,当“编辑曲目”页面自动打开时,将读取url参数,并可编辑相应的曲目 我的问题是,我需要编写什么代码,以便在成功创建新帖子后访问“编辑跟踪”页面 我完全被难住了!我尝试过使用php和Javascript,但无法解决如何做到这一点。欢迎所有想法 我的代码框架附在后面Php 访问刚刚创建的帖子的URL,php,wordpress,Php,Wordpress,我正在使用WordPress创建一个网站,允许用户上传徒步路径文件(gpx(xml)文件) 为此,用户访问一个名为“创建新曲目”的页面(这是一个带有特定模板的WordPress页面)。通过php创建的表单,用户输入远足的名称,一个简短的描述,并选择要上传的文件。然后,我的代码对输入的数据和选择的文件进行常规检查。如果所有检查都通过,文件将上载到服务器,并创建一篇新文章(添加输入的标题和说明以及附加到文章的文件) 我想,一旦文件已经上传,新的帖子已经创建,然后用户访问一个网页,他可以查看新创建的文
add_shortcode('sut_form', 'sut_form_shortcode');
function sut_form_shortcode() {
if (isset( $_POST['sut_form_create_track_submitted'] ) &&
wp_verify_nonce($_POST['sut_form_create_track_submitted'], 'sut_form_create_track') ) {
// LOTS OF CHECKS ON WHAT HAS BEEN ENTERED
}
else // ALL CHECKS PASSED, SO WE CAN CREATE THE POST
{
$track_data = array(
'post_title' => $sut_track_name,
'post_content' => $sut_track_text,
'post_status' => 'pending',
'post_author' => $current_user->ID,
'post_type' => 'tracks'
);
// Create track post and attach image
if ($track_id = wp_insert_post($track_data)) { // POST CREATED
wp_set_object_terms( $track_id, (int)$_POST['sut_track_category'], 'track_category'); // CATEGORY ASSIGNED TO POST
update_field('field_5bf39d97d1e8d', $movefile['url'], $track_id); // UPLOADED FILE ATTACHED TO POST
// PROBLEM!!! HOW DO I KNOW ACCESS THE URL FOR POST WHICH HAS JUST BEEN CREATED?
}
}
}
您的函数是用add_shortcode注册的,所以它是在页面内容呈现期间执行的,现在使用header(“location…”已经太晚了,因为header可能已经发送到客户端 我能想到的唯一解决方案是,在不更改代码和不了解整个项目的情况下,打印JavaScript代码段,如下所示:
$permalink = get_permalink($track_id);
echo("<script>window.location.replace('$permalink');</script>");
$permalink=get\u permalink($track\u id);
echo(“window.location.replace(“$permalink”);”;
它不太整洁,但应该可以工作。使用
get_permalink($track_id);
Hmm。不确定。我可以在帖子创建后使用一点javascript——但是,我如何将$track_id传递给javascript?或者我可以使用php代码,但是,什么php代码可以打开新的url?使用标题(“位置:url”):
SUCCESS!感谢您的介绍,也感谢您解释如何/何时使用快捷码注册函数。我不知道这一点。谢谢。