WordPressでの言及リンク等が楽になる、URLからリンク先のタイトルを取得してリンクタグを生成するスクリプト。


WordPressでfunctions.phpに書いておくと、言及リンク等が楽になるかもしれないスクリプトです。

使い方

記事中に[link:リンクを貼りたいURL]が含まれていたら、それらのタイトルタグの中身を取得し、それをアンカー文字列としたリンクタグに置き換えます。。
具体的には…。
[link:https://otapps.net]
という文字列が記事中に含まれていた場合、https://otapps.net のタイトルタグの中身を取得し、

<a href="https://otapps.net">Otapps</a>

といった感じのリンクタグに置き換えます。

ついでにエディタに「get_title」というクイックタグも追加しているので入力時に便利かもしれません。

ソース

以下をfunctions.phpに貼り付けます。


<?php
new Get_Title();
class Get_Title {
    function __construct() {
        add_filter('content_save_pre', array($this, 'get_titles'));
        add_action('admin_print_footer_scripts', array($this, 'add_tags'));
    }

    function get_titles($article) {
        
        preg_match_all('/\[link:(.*?)\]/', $article, $targets);
        foreach ($targets[1] as $key => $url) {
            $target_html = mb_convert_encoding(@file_get_contents($url), 'utf-8', 'ASCII,JIS,UTF-8,EUC-JP,SJIS');
            $anchor_text = preg_match('/<title>(.*?)<\/title>/i', $target_html, $titles) ? htmlspecialchars($titles[1] , ENT_QUOTES): $url;
            $link = sprintf('<a href="%s">%s</a>', $url, $anchor_text);
            $article = str_replace('[link:' . $url . ']', $link, $article);
        }
        return $article;
    }
    function add_tags() {
        
        echo '<script type="text/javascript">';
            QTags.addButton('get_title', 'get_title', '[link:]');
        echo '</script>';
        
    }


}
?>
スポンサード リンク

公開日:2013年12月18日
タグ:, , ,