将帖子站点和自定义字段克隆到自定义帖子类型中

时间:2016-02-24 作者:Rogger

我使用简单的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团队没有完成的任何其他插件。当做

2 个回复
最合适的回答,由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

}

相关推荐

WP_ENQUEUE_STYLE-css未加载-ERR_TOO_MANY_REDIRECTS

更改为后。在public\\u html中使用htaccess尝试HTTP->;我的网站的HTTPS重定向CSS开始失败。恢复文件没有帮助,所以我选择按forward来更改的所有实例http://domain->;https://domain在线使用推荐的方法。然而,我的CSS仍然没有加载。。。(已尝试清除本地和wordpress缓存)。通过浏览器检查开发人员,我发现以下错误:告诉我CSS文件没有被加载。检查这些表明CSS文件没有被带到本地计算机,复制链接我无法检索文件。。。但是,如果我删除?ve