Wordpress mesajlar bağlantıları url kısaltıcı API eklemek nasıl?

2 Cevap php

Bir yazı tüm bağlantıları bir kısaltılmış url yapmak için wordpress için bir API eklemek mümkün olduğunu merak ediyordum (linkbee için bu durumda - http://linkbee.com/api%5Fdoc.php) bu yüzden bu nasıl yapardın?

2 Cevap

Evet, WordPress ile yapabilirsiniz. Ben yapılan benzer bir (çok basit) plug-in me StackOverflow.com Çok etrafında önce sonra, CODE etiketleri gibi vurgulanmış olur ters tırnak tarzı düzenleme yapalım! Sen http://santiance.com/bzr/wp-backticks bir Bazaar deposunda kodumu bulabilirsiniz ama burada kaynak eksi meta bilgiler bulunuyor:

add_filter('the_content', 'backticks_filter_post', 5);

function backticks_filter_post($post) {
    $post = preg_replace('/[“”]/i', '"', $post);
    return preg_replace('/`([^`]+)`/i', '<code>$1</code>', $post);
}

Burada sadece küçük URL'ler içine URL'leri çevirmek benim backticks_filter (muhtemelen de bunu yeniden adlandırmak gerekir) işlevini değiştirmek zorunda. Sonrası özel bir alan olarak WordPress teslim olduğunda performans için bir önbellek ilk defa bu saklayabilirsiniz ya da olabilir.

Sen WordPress the_content filtre filtreler bir eklenti oluşturmak için PHPShortener library kullanabilirsiniz:

class Foo_UrlShortener_Plugin {
    const SERVICE = 'is.gd';
    private $_shortener;

    public function __construct() {
        $this->_shortener = new PHPShortener();
        add_filter('the_content', array($this, 'filterContent')); 
        add_filter('the_content_rss', array($this, 'filterContent')); 
    }

    public function filterContent($content) {
        return preg_replace_callback('#(http://\S+)#', array($this, 'handlePregCallback'), $content);
    }

    public function handlePregCallback($matches) {
        return $this->_shortener->encode($matches[1], self::SERVICE);
    }
}

Temelde bu kısaltılmış sürümü ile değiştirir sonra, http:// ile başlar onu yakalar şey arar.