Я почти всегда выбираю «Открыть ссылку в новом окне» при создании URL / HREF. Есть ли способ установить этот вариант по умолчанию.
Даже если это требует небольшого изменения исходного кода, я думаю, что было бы полезно (если кто-то может сказать мне, где это может быть.)
Кажется, TinyMCE не дает простой настройки для выбора значения по умолчанию. Но есть еще один бэкдор: опция external_link_list_url
TinyMCE может указывать на дополнительный файл Javascript, который будет загружен в окне редактора ссылок. Вы можете использовать его для заполнения выпадающего списка частых ссылок, но поскольку он является обычным файлом Javascript, мы можем также отбросить в нем другой контент. Как код, который изменит выбранное значение раскрывающегося списка целевого списка, если мы не редактируем существующую ссылку:
tinyMCEPopup.onInit.add( function() { if ( ! tinyMCEPopup.editor.dom.getParent( tinyMCEPopup.editor.selection.getNode(), 'A' ) ) { selectByValue( document.forms[0], 'target_list', '_blank' ); } } );
Вы можете создать плагин WordPress для этого, чтобы он выжил в обновлениях WP. Создайте новый каталог под wp-content/plugins/
(назовите его как хотите, чтобы его можно было найти позже). Создайте в нем файл PHP (также называемый как угодно) со следующим содержимым. Вы можете изменить содержание комментария, это определит, что вы видите в области администрирования плагинов .
<?php /* Plugin Name: WPSE 7785 Plugin URI: http://wordpress.stackexchange.com/questions/7785/is-there-any-way-to-set-default-for-insertedit-link-to-open-link-in-new-window-- Description: Is there any way to set default for "Insert/Edit Link" to "Open link in new window"? Version: 1.0 Author: Jan Fabry */ add_filter( 'tiny_mce_before_init', 'wpse7785_tiny_mce_before_init' ); function wpse7785_tiny_mce_before_init( $initArray ) { $initArray['external_link_list_url'] = plugins_url( 'wpse-7785.js', __FILE__ ); return $initArray; }
Теперь также создайте файл Javascript в этом каталоге плагина, рядом с файлом PHP. Я назвал его wpse-7785.js
, вы можете выбрать что-то еще, но не забудьте обновить имя в plugins_url()
выше. Поместите содержимое первого блока в этот файл Javascript.
Активируйте плагин и перейдите в свой редактор. Когда вы перейдете к редактору почты и нажмите кнопку «Изменить ссылку», необходимо установить правильное значение для раскрывающегося списка «Цель».
Я выполнил ваши инструкции и не работал вообще, потому что wordpress немного изменил идентификатор ссылки. Я исправил себя, и я создал плагин.
<?php /* Plugin Name: Default New Window Link Opener Plugin URI: https://github.com/eballo Description: Plugin for wordpress that allow you to enable the check in the popup "Insert/Edit Link” to open a link in new window by default Version: 1.0 Author: eballo This plugin is based on the solution made by Jan Fabry and lewayotte in wordpress stackexchange forum. http://wordpress.stackexchange.com/questions/7785/is-there-any-way-to-set-default-for-insert-edit-link-to-open-link-in-new-wind */ /** * Sets "Open link in a new window/tab" to checked by default */ function wplink_tiny_mce_init() { ?> <script type="text/javascript"> jQuery(function () { jQuery('input#wp-link-target').prop('checked',true); }); </script> <?php } add_action( 'before_wp_tiny_mce', 'wplink_tiny_mce_init' ); ?>
Если кто-то хочет мое решение, он работает здесь: https://github.com/eballo/DefaultCheckedLink/
UPDATE : плагин создан и опубликован: http://www.wordpress.org/plugins/default-new-window-link-opener
Это сработало для меня …
/* * Sets "Open link in a new window/tab" to checked by default */ function ahu_after_wp_tiny_mce() { ?> <script type="text/javascript"> jQuery( function() { jQuery( 'input#link-target-checkbox' ).prop( 'checked', true ); } ); </script> <?php } add_action( 'after_wp_tiny_mce', 'ahu_after_wp_tiny_mce' );
Я застрял в файле PHP в каталоге wp-content / mu-plugins (который вам нужно создать, если он не существует).
Вы можете создать фильтр для hook edit_tag_link
и edit_tag_link
ссылку по вкусу. Это одно из огромного количества недокументированных (или задокументированных) перехватов в WP.
Я бы попробовал что-то вроде (warning: untested):
function edit_tag_link_new_window($content) { $content = preg_replace('/href/', 'target="_blank" href', $content); return $content; } add_filter('edit_tag_link', 'edit_tag_link_new_window');
Я попробовал идею Plugin Name: WPSE 7785 выше – плагин установлен успешно, но не изменил настройку по умолчанию для «Открыть ссылку в новом окне / вкладке», что, я считаю, является намерением первоначального запроса.
Я немного больше искал / тестировал и обнаружил, что элемент управления для этого фактически находится в следующем файле WordPress: /wp-admin/includes/internal-linking.php
Вокруг линии 85 находится следующее:
<input type="checkbox" id="link-target-checkbox" tabindex="30" /> <?php _e( 'Open link in a new window/tab' ); ?></label>
Я просто добавил «проверено» на вход:
<input type="checkbox" id="link-target-checkbox" checked tabindex="30" /> <?php _e( 'Open link in a new window/tab' ); ?></label>
Недостатком является то, что этот файл перезаписывается при обновлении WordPress, но на данный момент у меня есть файл «readme.txt» в моей папке WP для будущей ссылки / напоминания. Я уверен, что есть способ создать крючок за пределами папки администратора, который можно было бы использовать для управления этим и не подвергать влиянию обновлений, но пока я еще не достиг уровня WP.