Google Website Optimizer

Vladimir
Опубликовано в: Плагины

А Вы знаете, в чём разница между add_action() и add_filter()?

Google Website Optimizer — плагин, интегрирующий одноимённый сервис Google с WordPress.

У плагина есть один недостаток: на данный момент он написан криво и, как следствие, конфликтует со всеми плагинами, которые устанавливают свой фильтр на событие the_content.

Продолжая тему об ошибках при написании плагинов: основная ошибка состоит в том, что плагин устанавливает обработчик действия (action) вместо фильтра (filter), в результате чего все обработчики the_content, выполняющиеся после плагина, получают пустую строку (фильтры возвращают результат, а обработчики действий — нет).

Исправленная версия плагина выглядит следующим образом:

<?php
/*
Plugin Name: Google Website Optimizer for WordPress
Plugin URI: http://websiteoptimizer.contentrobot.com
Description: A plugin for integrating <a href="http://services.google.com/websiteoptimizer">Google Website Optimizer</a> into blog posts and pages. Please read the <a href="http://websiteoptimizer.contentrobot.com/2007/03/24/google-website-optimizer-plugin/#setup">setup procedure</a> for more info. Developed in coordination with <a href="http://www.futurenowinc.com">Future Now</a>.
Author: ContentRobot
Version: 0.2a
Author URI: http://www.contentrobot.com
*/


function go4wp_control_script() {
    global $wp_query;
    if (is_single() or is_page()) {
        if ($wp_query->post) {
            $post = $wp_query->post;
            //if the page/post has control code, display it
            if (get_post_meta($post->ID, 'go_control_script', true)) {
                echo get_post_meta($post->ID, 'go_control_script', true) . "\n";
            }
        }
    }
}
add_action('wp_head', 'go4wp_control_script');

function go4wp_tracking_script($content) {
    global $wp_query;
    if (is_single()) {
        if ($wp_query->post) {
            $post = $wp_query->post;
            //if the page/post has both test and conversion code, display both
            if (get_post_meta($post->ID, 'go_tracking_script_test', true) && get_post_meta($post->ID, 'go_tracking_script_conversion', true)) {
                return $content . "\n" . get_post_meta($post->ID, 'go_tracking_script_test', true) . "\n\n" . get_post_meta($post->ID, 'go_tracking_script_conversion', true) . "\n";
            }
            //if the page/post has test code display it
            if (get_post_meta($post->ID, 'go_tracking_script_test', true)) {
                return $content . "\n" . get_post_meta($post->ID, 'go_tracking_script_test', true) . "\n";
            }
            //if the page/post has conversion code, display it
            if (get_post_meta($post->ID, 'go_tracking_script_conversion', true)) {
                return $content . "\n" . get_post_meta($post->ID, 'go_tracking_script_conversion', true) . "\n";
            }
        }
    }
   
    return $content;
}
add_filter('the_content', 'go4wp_tracking_script');

?>
Добавить в закладки
  • del.ici.ous
  • Digg
  • Furl
  • Google
  • Simpy
  • Spurl
  • Y! MyWeb
  • БобрДобр
  • Мистер Вонг
  • Yandex.Закладки
  • Текст 2.0
  • News2
  • AddScoop
  • RuSpace
  • RUmarkz
  • Memori
  • Google Bookmarks
  • Писали
  • СМИ 2
  • Моё Место
  • 100 Закладок
  • Ваау!
  • Technorati
  • RuCity
  • LinkStore
  • NewsLand
  • Lopas
  • Закладки - IN.UA
  • Connotea
  • Bibsonomy
  • Trucking Bookmarks
  • Communizm
  • UCA
  • Slashdot
  • Magnolia
  • Blogmarks
  • Current
  • Meneame
  • Oknotizie
  • Diigo
  • Funp
  • Hugg
  • Dealspl.us
  • N4G
  • Mister Wong
  • Faves
  • Yigg
  • Fresqui
  • Care2
  • Kirtsy
  • Sphinn
  • SaveThis.ru

Связанные записи

20
Май
2009

Комментарии к статье «Google Website Optimizer»  »

К статье «Google Website Optimizer» комментариев пока нет. Не хотите ли стать первым?

Подписаться на RSS-ленту комментариев к статье «Google Website Optimizer» Trackback URL: http://blog.sjinks.org.ua/wordpress/plugins/561-google-website-optimizer/trackback/

Оставить комментарий к записи «Google Website Optimizer»

Изображения должны быть включены!

Вы можете использовать данные тэги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Оставляя комментарий, Вы выражаете своё согласие с Правилами комментирования.

Подписаться, не комментируя