是否在发布/更新帖子时自动将固定链接复制到剪贴板?

时间:2020-05-30 作者:Fofen

发布/更新帖子时,将显示一条消息,提供永久链接。是的,我们可以手动将永久链接复制到剪贴板,但我希望它自动复制,就像它显示消息一样。

我的计划是,在save\\u post操作时将我的自定义javascript文件排队。

1. First, test if the script will run successfully.

function ff_load_scripts() {
    wp_enqueue_script(\'custom-js\', get_stylesheet_directory_uri() . \'/js/custom.js\', false);
}
add_action(\'admin_enqueue_scripts\', \'ff_load_scripts\');
这个custom.js 只是一个警报():

alert("Yes it run.");
是的,它可以成功地发出警报。

2. Second, hook it to the \'save_post\' action.

function ff_load_scripts() {
    wp_enqueue_script(\'custom-js\', get_stylesheet_directory_uri() . \'/js/custom.js\', false);
}
function ff_copy_permalink() {
    add_action(\'admin_enqueue_scripts\', \'ff_load_scripts\');
}
add_action(\'save_past\', \'ff_copy_permalink\');
但是,它不会运行。

请告知,提前谢谢!

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

最后,我做到了!Use the post_updated_messages hook instead.

add_filter( \'post_updated_messages\', function( $messages )
{
    // Get the permalink
    $link = esc_url( get_permalink($post_ID) );

    // Copy the permalink automatically
    $autocopy = \'<script type="text/javascript">navigator.clipboard.writeText("%s");</script>\';

    // `6` is for publishing
    $messages[\'post\'][6] = sprintf( __(\'Post published. <a href="%s">View post</a>\'. $autocopy), $link, $link);

    // `1` is for updating
    $messages[\'post\'][1] = sprintf( __(\'Post updated. <a href="%s">View post</a>\'. $autocopy), $link, $link);

    return $messages;
} );

相关推荐