web-dev-qa-db-ja.com

「リンクの挿入/編集」のデフォルトを「リンクを新しいウィンドウで開く」に設定する方法はありますか?

URL/HREFを作成するとき、私はほとんど常に「新しいウィンドウでリンクを開く」を選択します。この選択をデフォルトにする方法はありますか。

たとえそれが小さなソースコードの変更を必要とするとしても、私はそれが価値があると思います(誰かがそれがどこにあるかもしれないか私に言うことができるならば)。

1
NealWalters

TinyMCEはデフォルト値を選択するための簡単な設定を提供していないようです。しかし別のバックドアがあります:TinyMCEの external_link_list_url オプションは、リンクエディタウィンドウにロードされる追加の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ファイルを作成します。コメントの内容を変更することができます。これはPlugins管理領域に表示される内容を定義します。

<?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;
}

そのプラグインディレクトリのPHPファイルの隣にJavascriptファイルも作成します。私はそれをwpse-7785.jsと呼びました、あなたは他の何かを選ぶことができますが、上のplugins_url()呼び出しで名前を必ず更新してください。最初のブロックの内容をそのJavascriptファイルに配置します。

プラグインを有効にしてエディタに移動してください。投稿エディタに移動して[リンクの編集]ボタンをクリックすると、[ターゲット]ドロップダウンに正しい値が設定されます。

6
Jan Fabry

Wordpressがリンクのidを少し変更したため、私はあなたの指示に従いましたが、まったく機能していませんでした。私は自分自身を直し、プラグインを作りました。

<?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-オープナー

3
eballo

これは私のために働きました...

/*
 * 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' );

これをwp-content/mu-pluginsディレクトリのPHPファイルに貼り付けました(存在しない場合は作成する必要があります)。

2
lewayotte

フック edit_tag_link 用のフィルタを作成して、好みに合わせてリンクを変更することができます。これはWPの文書化されていない(または文書化されていない)フックのうちの膨大な数のうちの1つです。

私は(警告:未テスト)のようなものを試してみます:

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');
0
Peter Rowell

私は上記のPlugin Name:WPSE 7785のアイデアを試しました - Pluginは首尾よくインストールされましたが、「新しいウィンドウ/タブでリンクを開く」のためのデフォルト設定を変えませんでした。

もう少し検索/テストをしたところ、このコントロールは実際には次の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>

入力に ​​"checked"を追加しただけです。

<input type="checkbox" id="link-target-checkbox" checked tabindex="30" /> <?php _e( 'Open link in a new window/tab' ); ?></label>

欠点は、WordPressが更新されたときにこのファイルが上書きされることですが、今のところ私はWPフォルダに "readme.txt"ファイルを持っています。これを制御するために使用され、更新の影響を受けないフックをadminフォルダの外に作成する方法があると確信していますが、私はまだWPスキルのレベルには達していません。

0
Michael