使用自定义帖子类型中的最新标题自动更新插件

时间:2018-03-03 作者:Dom

我正在尝试更新特定自定义帖子类型中所有帖子的slug,比如说“音乐”。

代码如下:

/* Update slug with the latest post title */
function auto_update_post_slug($postId, $after, $before) {
    if ($after->post_title != $before->post_title) {
        $after->post_name = \'\';
        wp_update_post($after);
    }
}

/* Check if custom post type music, if true, add action to auto update slug */
function enqueue_music_features( $hook_suffix ){
    $my_custom_post_type = \'music\';

    if( in_array($hook_suffix, array(\'post.php\', \'post-new.php\') ) ){
        $screen = get_current_screen();

    if( is_object( $screen ) && $my_custom_post_type == $screen->post_type ){

        /* add custom post type music features */
        add_action(\'post_updated\', \'auto_update_post_slug\', 10, 3);

        echo "<script type=\'text/javascript\'>alert(\'This has been called\');</script>";

        }
    }
}
add_action( \'admin_enqueue_scripts\', \'enqueue_music_features\');
我所知道的是enqueue_music_features 仅调用alert 在自定义post中键入音乐auto_update_post_slug 如果你把它放在外面,它会自动工作enqueue_music_features.

我还试着把整个auto_update_post_slug 在钩子里,这也不起作用。

主要的问题是,我无法将这两个部分结合起来,即使它们是自己完成的。

1 个回复
最合适的回答,由SO网友:Dom 整理而成

在的帮助和指导下bosco 我成功了!下面的代码是找到的答案的修改版本here.

function my_enqueue_music_features( $hook_suffix ){


$posts = get_posts( array (  
    \'numberposts\' => -1, //this will get all
    \'post_type\'   => \'music\'
) );

foreach ( $posts as $post ) {
    // check the slug and run an update if necessary 
    $new_slug = sanitize_title( $post->post_title );
    if ( $post->post_name != $new_slug )
    {
        wp_update_post(
            array (
                \'ID\'        => $post->ID,
                \'post_name\' => $new_slug
            )
        );
    }
}

}
add_action( \'admin_enqueue_scripts\', \'my_enqueue_music_features\');
我只补充了以下内容:\'post_type\' => \'music\'. 将“音乐”更改为您的自定义帖子类型。

结束

相关推荐

WordPress如何以正确的方式覆盖link-template.php中的邻近_POSTS_REL_LINK_WP_HEAD()函数

我对WordPress开发很陌生。我正在使用WordPress 4.9.2。我目前正在研究以下问题。我有几个博客类别,它们彼此没有关系。例如“我们的服务”和“新闻”。现在我想确保每个帖子页面上的上一页/下一页链接只指向同一类别中的上一页/下一页。这应该适用于页面上的链接和head部分中的rel链接。我已经想好了,我只需要将标志$in\\u same\\u term设置为true。对于文章末尾的链接,我通过添加正确的参数解决了主题中已经存在的问题。只有head部分中的rel链接不是这样工作的。Needed