我使用简单的URL在我的博客上设置重定向。我试图在发布帖子时自动创建重定向。例如,如果我发布了一篇关于StudioPress的文章,它将自动发布一个标题类似于博客文章的重定向。i、 e研究压力。“URL”自定义字段将更新简单URL插件中的重定向URL。
简单地说,我想克隆具有类似标题的“surl”(简单url插件的CPT名称)帖子类型的博客帖子,对于重定向url,我将设置一个名为“url”的自定义字段。
我成功地克隆了帖子标题,但重定向url没有复制。这是我的密码。请查看并更正自定义字段URL的错误。
add_action( \'save_post\', \'save_postdata_wpse_76945\', 10, 2 );
function save_postdata_wpse_76945( $post_id, $post_object )
{
// Auto save?
if ( defined( \'DOING_AUTOSAVE\' ) && DOING_AUTOSAVE )
return;
// Correct post_type
if ( \'post\' != $post_object->post_type )
return;
// Security
if (
!isset($_POST[\'noncename_wpse_76945\'])
|| !wp_verify_nonce( $_POST[\'noncename_wpse_76945\'], plugin_basename( __FILE__ ) )
)
return;
// Prepare contents
$add_cpt_clone = array(
\'post_title\' => $post_object->post_title,
\'_surl_redirect\' => get_post_meta( get_the_ID(), \'url\' ),
\'post_status\' => \'publish\',
\'post_type\' => \'surl\'
);
// Insert the post into the database
$p_id = wp_insert_post( $add_cpt_clone );
// Use $p_id to insert new terms
}
我知道我犯了一些错误
\'_surl_redirect\' => get_post_meta( get_the_ID(), \'url\' ),
但我不知道如何纠正它。我正在使用ACF生成自定义字段URL。
任何想法。这非常紧急,我正在使用Genesis,因此,我不想使用Genesis团队没有完成的任何其他插件。当做
最合适的回答,由SO网友:Mridul Aggarwal 整理而成
像这样的东西应该有用-
if( get_post_meta( $post_id, \'_surl_post_id\', true ) ) {
// we have an old post created here
update_post_meta( get_post_meta( $post_id, \'_surl_post_id\', true ), \'_surl_redirect\', get_post_meta( $post_id, \'url\', true ) );
return;
}
// Prepare contents
$add_cpt_clone = array(
\'post_title\' => $post_object->post_title,
\'post_status\' => \'publish\',
\'post_type\' => \'surl\'
);
// Insert the post into the database
$p_id = wp_insert_post( $add_cpt_clone );
// Insert the meta key for redirect
update_post_meta( $p_id, \'_surl_redirect\', get_post_meta( $post_id, \'url\', true ) );
// save the id for future use
update_post_meta( $post_id, \'_surl_post_id\', $p_id );
// Insert any other meta keys that might be needed
SO网友:Rogger
我尝试了上述代码。它完全停止了工作。如果我正确粘贴了完整的代码,请您重新检查一下。谢谢
add_action( \'save_post\', \'save_postdata_wpse_76945\', 10, 2 );
function save_postdata_wpse_76945( $post_id, $post_object )
{
// Auto save?
if ( defined( \'DOING_AUTOSAVE\' ) && DOING_AUTOSAVE )
return;
// Correct post_type
if ( \'post\' != $post_object->post_type )
return;
// Security
if (
!isset($_POST[\'noncename_wpse_76945\'])
|| !wp_verify_nonce( $_POST[\'noncename_wpse_76945\'], plugin_basename( __FILE__ ) )
)
return;
if( get_post_meta( $post_id, \'_surl_post_id\', true ) ) {
// we have an old post created here
update_post_meta( get_post_meta( $post_id, \'_surl_post_id\', true ), \'_surl_redirect\', get_post_meta( $post_id, \'url\', true ) );
return;
}
// Prepare contents
$add_cpt_clone = array(
\'post_title\' => $post_object->post_title,
\'post_status\' => \'publish\',
\'post_type\' => \'surl\'
);
// Insert the post into the database
$p_id = wp_insert_post( $add_cpt_clone );
// Insert the meta key for redirect
update_post_meta( $p_id, \'_surl_redirect\', get_post_meta( $post_id, \'url\', true ) );
// save the id for future use
update_post_meta( $post_id, \'_surl_post_id\', $p_id );
// Insert any other meta keys that might be needed
}