В интернете лежит много видов кода для подставления источника при копировании текста. Но многие устарели, содержат дыры в безопасности и т.п. На данный момент я использую такой вариант, и по функциям он меня вполне устраивает:
add_action( 'wp_footer', function () {
if ( !current_user_can( 'manage_options' ) ) {
$source_text = __( '<br><br>Источник: %link%' );
$source_text = str_replace('"', '\"', $source_text);
echo '<script>';
echo 'document.oncopy = function () {';
echo 'var bodyElement = document.body;';
echo 'var selection = getSelection();';
echo 'var link_url = document.URL;';
echo 'var page_link = "' . $source_text . '";';
echo 'page_link = page_link.replace("%link%", " " + link_url + " ");';
echo 'var copy_text = selection + page_link;';
echo 'var divElement = document.createElement("div");';
echo 'divElement.style.position="absolute";';
echo 'divElement.style.left="-99999px";';
echo 'bodyElement.appendChild(divElement);';
echo 'divElement.innerHTML = copy_text;';
echo 'selection.selectAllChildren(divElement);';
echo 'window.setTimeout(function() {';
echo 'bodyElement.removeChild(divElement);';
echo '},0);';
echo '}';
echo '</script>';
}
});
Можете подсказать, какой современный, чистый, безопасный код лучше всего использоваться в functions.php темы сайта (Вордпресс) для тех же целей? Чтобы он грузился в футере, содержал абзацные отступы для источника, не работал для админов сайта (а в идеале чтобы ещё и срабатывал только в типе страниц post - в теле статей, а не на всех страницах сайта + срабатывал только при выделении минимум стольки-то символов + срабатывал всего 1 раз на одну страницу, если такое возможно).