Java, UX, HTML, CSS, WEB-design

Как использовать пользовательские типы сообщений для организации маркетинговых кампаний в Интернете

Краткое описание по статье Как использовать пользовательские типы сообщений для организации маркетинговых кампаний в Интернете

Название: Как использовать пользовательские типы сообщений для организации маркетинговых кампаний в Интернете . Краткое описание: [ad_1] ⭐ Джошуа . Дата публикации: 18.02.2022 . Автор: Алишер Валеев .

Для чего создан сайт Novosti-Nedeli.ru

Данный сайт посвящен новостям мира и мира технологий . Также тут вы найдете руководства по различным девайсам.

Сколько лет сайту?

Возраст составляет 3 года

[ad_1]

  • Джошуа Додсон

  • 0 Комментарии

Как использовать пользовательские типы сообщений для организации маркетинговых кампаний в Интернете

  • 18 минут чтения

  • WordPress, Методы, Плагины

Краткое резюме ↬

Пользовательские типы записей добавляют уровень гибкости WordPress, что делает эту платформу веб-разработки с открытым исходным кодом более полезной на многих уровнях. Всякий раз, когда я сталкиваюсь с веб-задачей, особенно с организацией информации, первое, что я делаю, это проверяю WordPress, чтобы определить, справится ли он с этой задачей. Обычно может.

Как интернет-маркетологу и аналитику, мне нужно уметь организовывать онлайн-маркетинговые кампании таким образом, чтобы их можно было отслеживать в Google Analytics. Это идеальная задача для пользовательских типов записей WordPress.

В этой статье мы объясним, как создать плагин WordPress, который позволит вам организовывать кампании интернет-маркетинга с использованием отслеживаемых URL-адресов, сокращенных версий этих URL-адресов и отслеживаемых QR-кодов, которые вы также можете использовать для маркетинговых мероприятий в автономном режиме.

Дальнейшее чтение на SmashingMag:

  • Расширение WordPress с помощью настраиваемых типов контента
  • Подробное руководство по шаблонам пользовательских страниц WordPress
  • Настройка архивов WordPress для категорий, тегов
  • Создание пользовательской страницы архива для WordPress

Еще после прыжка! Продолжить чтение ниже ↓

Мы покажем вам, как создать этот плагин таким образом, чтобы максимально упростить его использование и повысить функциональность. Если у вас есть другие методы, которые вы нашли полезными, поделитесь ими в комментариях. Кроме того, давайте помнить, что мы стоим на плечах разработчиков WordPress, которые заложили основу для упрощения кодирования.

Вот критерии для нашего плагина пользовательского типа записи:

  • Он должен предоставить форму, в которой пользователи могут указать целевую страницу для отслеживания, якорный текст или контент, термин (если эта ссылка является рекламой PPC) и любую дополнительную информацию об этой ссылке.
  • Он должен предоставлять три настраиваемых типа таксономии, чтобы пользователи могли выбирать переменные URL для источника, канала и названия кампании. Это тип таксономии, потому что их можно будет повторно использовать в кампаниях и публикациях.
  • Он должен быть организован в административной области и отображаться в пользовательском интерфейсе.
  • Выходные данные должны включать URL-адрес, отслеживаемый кампанией Google Analytics, информацию об URL-адресе в удобочитаемом формате, сокращенную версию URL-адреса с помощью средства сокращения URL-адресов и QR-код сокращенного URL-адреса.

Файловая структура

Этот плагин будет использовать три файла. Чтобы настроить структуру, создайте папку плагина с именем campaign-tracker. Внутри campaign-tracker папку, создайте следующие три файла PHP:

  • campaign-tracker.php
  • ga-functions.php
  • campaign-template.php

После того, как вы создали файлы, мы готовы начать добавлять код.

Файл плагина

Основной файл плагина будет campaign-tracker.php. Содержимое этого файла начнется стандартным образом, предоставив WordPress информацию, необходимую для распознавания его как плагина. Затем мы погрузимся в настройку CampaignTracker10 класс и функции. Мы настроим пользовательский тип публикации для нашей кампании и зарегистрируем таксономии, которые нам понадобятся. Мы также запустим наш интерфейс администратора.

<?php
   /*
   Plugin Name: Campaign Tracking 1.0
   Plugin URI: https://www.convergeconsulting
   description: >-
   Google Analytics Campaign Tracking system for WordPress 3.0 and above.
   Author: Joshua Dodson
   Version: 1.0
   Author URI: https://www.convergeconsulting
   */

   // Include the ga-functions.php helper functions
   include_once('ga-functions.php');

   if(!class_exists('CampaignTracker10'))
   {

      class CampaignTracker10 {

         var $meta_fields = array("gaca10-gaurl","gaca10-gaterm","gaca10-gacontent","gaca10-gadescription");

         // This function will create the custom post type. Thanks to Konstantin Kovshenin's example for additional examples of how to construct custom post types (https://kovshenin.com/2010/03/custom-post-types-in-wordpress-3-0-2089/), which inspired much of this.
         function __construct(){
            // Register custom post types
            register_post_type('campaign', array(
            'label' => _x('Campaigns','campaigns label'), // We're labeling the custom posts as Campaigns and also accounting for gettext appropriately
            'singular_label' => _x('Campaign','campaign singular label'), // Each post will be called a Campaign
            'public' => true, // These will be public
            'show_ui' => true, // Show the UI in admin panel
            '_builtin' => false, // This is a custom post type, not a built in post type
            '_edit_link' => 'post.php?post=%d',
            'capability_type' => 'post',
            'hierarchical' => false,
            'rewrite' => array("slug" => "campaign"), // This is for the permalinks
            'query_var' => "campaign", // This goes to the WP_Query schema
            'supports' => array('title'/* We only need the default title field, but we could use others such as 'author', 'excerpt', 'editor' ,'custom-fields'*/)
            ));

            add_filter("manage_edit-campaign_columns", array(&$this, "edit_columns"));
            add_action("manage_posts_custom_column", array(&$this, "custom_columns"));

            // Register custom taxonomies gasource (for the Campaign Source), gamedium (for the Campaign Medium), and ganame (for Campaign Name)
            // Campaign Source
            register_taxonomy("gasource", array("campaign"), array("hierarchical" => true, "label" => _x( 'Campaign Sources', 'campaign sources taxonomy label' ), "singular_label" => "Campaign Source", "rewrite" => true));
            // Campaign Medium
            register_taxonomy("gamedium", array("campaign"), array("hierarchical" => true, "label" => _x( 'Campaign Mediums', 'campaign mediums taxonomy label' ), "singular_label" => "Campaign Medium", "rewrite" => true));
            // Campaign Name
            register_taxonomy("ganame", array("campaign"), array("hierarchical" => true, "label" => _x( 'Campaign Names', 'campaign names taxonomy label' ), "singular_label" => "Campaign Name", "rewrite" => true));

            add_action("admin_init", array(&$this, "admin_init"));
            add_action("template_redirect", array(&$this, 'template_redirect'));

            add_action("wp_insert_post", array(&$this, "wp_insert_post"), 10, 2);

         }

Давайте дадим столбцам на экране администратора некоторые заголовки:

function edit_columns($columns)
   {
      $columns = array(
      'cb' => '<input type="checkbox" />',
      'title' => _x('Campaign Title','campaign title label for edit columns'),
      'gaca10_ganame' => _x('Campaign Name','campaign name label for edit columns'),
      'gaca10_gasources' => _x('Campaign Source','campaign source label for edit columns'),
      'gaca10_gasmedium' => _x('Campaign Medium','campaign medium label for edit columns'),
      );
      return $columns;
   }

Давайте укажем, какие столбцы мы хотели бы отображать на экране администратора для этого пользовательского типа сообщений. У нас будут столбцы для источника кампании, канала и названия, в дополнение к заголовку сообщения.

function custom_columns($column)
   {
      global $post;
      switch ($column)
      {
         // The campaign source
         case "gaca10_gasources":
         $gasources = get_the_terms(0, "gasource");
         if ( $gasources && ! is_wp_error( $gasources ) ) :
         $gasources_html = array();
         foreach ($gasources as $gasource)
         array_push($gasources_html, '<a href="' . get_term_link($gasource->slug, "gasource") . '">' . $gasource->name . '</a>');

         echo implode($gasources_html, ", ");
         endif;
         break;

         // The campaign medium
         case "gaca10_gasmedium":
         $gamediums = get_the_terms(0, "gamedium");
         if ( $gamediums && ! is_wp_error( $gamediums ) ) :
         $gamediums_html = array();
         foreach ($gamediums as $gamedium)
         array_push($gamediums_html, '<a href="' . get_term_link($gamedium->slug, "gamedium") . '">' . $gamedium->name . '</a>');

         echo implode($gamediums_html, ", ");
         endif;
         break;

         // The campaign name
         case "gaca10_ganame":
         $ganames = get_the_terms(0, "ganame");
         if ( $ganames && ! is_wp_error( $ganames ) ) :
         $ganames_html = array();
         foreach ($ganames as $ganame)
         array_push($ganames_html, '<a href="' . get_term_link($ganame->slug, "ganame") . '">' . $ganame->name . '</a>');

         echo implode($ganames_html, ", ");
         endif;
         break;
      }
   }

Как только наши столбцы настроены должным образом, мы должны увидеть следующие столбцы (обратите внимание, что в этом примере уже добавлена ​​одна кампания):

Кампании в столбцах

Следующий раздел позволяет нам указать, какой шаблон мы хотели бы использовать для отображения этого пользовательского типа сообщений. Мы будем использовать campaign-template.php шаблон:

function template_redirect()
   {
      global $wp;

      // If the post type is set and is campaign…
      if (isset($wp->query_vars["post_type"])) {
         if ($wp->query_vars["post_type"] == "campaign")
         {
            // Then use the campaign-template.php file from this plugin directory
            include WP_PLUGIN_DIR.'/campaign-tracker/campaign-template.php';
            die();
         }
      }
   }

Если сообщение вставлено или обновлено, выполните цикл по массиву и обновите или добавьте метаданные сообщения.

function wp_insert_post($post_id, $post = null)
   {
      if ($post->post_type == "campaign")
      {
         foreach ($this->meta_fields as $key)
         {
            $value = $_POST[$key];
            if (empty($value))
            {
               delete_post_meta($post_id, $key);
               continue;
            }

            if (!is_array($value))
            {
               if (!update_post_meta($post_id, $key, $value))
               {
                  add_post_meta($post_id, $key, $value);
               }
            }
            else
            {
               delete_post_meta($post_id, $key);

               foreach ($value as $entry){
                  add_post_meta($post_id, $key, $entry);
               }
            }
         }
      }
   }

С помощью следующей функции мы можем добавить пользовательские мета-поля для экрана администратора, где мы редактируем кампанию:

function admin_init()
   {
      // Add custom meta boxes for the edit campaign screen
      add_meta_box("gaca10-meta", "Campaign Information", array(&$this, "meta_options"), "campaign", "normal", "core");
   }

Следующая функция предназначена для мета-контента поста администратора. Это позволяет нам создать форму, в которой мы указываем некоторые переменные для нашего отслеживаемого URL (кроме таксономий). Он также предоставляет поле только для чтения, которое показывает сокращенный URL-адрес после сохранения переменных URL-адреса.

function meta_options()
   {
      global $post;
      $custom = get_post_custom($post->ID);
      if($custom["gaca10-gaurl"][0]){
         $gaurl = $custom["gaca10-gaurl"][0];
      }
      else{ $gaurl = ’; }
      if($custom["gaca10-gaterm"][0]) {
         $gaterm = $custom["gaca10-gaterm"][0];
      }
      else { $gaterm = ’; }
      if ($custom["gaca10-gacontent"][0]) {
         $gacontent = $custom["gaca10-gacontent"][0];
      }
      else { $gacontent = ’; }
      if ($custom["gaca10-gadescription"][0]) {
         $gadescription = $custom["gaca10-gadescription"][0];
      }
      else { $gadescription = ’; }

      $url = trackable_url();
      if ($custom["campaign_tinyurl"][0]) {
         if($gaurl == ’) { $shortenedurl = ’; }
         else{ $shortenedurl = create_tiny_url($url); }
      }

      ?>
      <label><?php _ex('Website URL:','website url label'); ?></label><input name="gaca10-gaurl" value="<?php echo $gaurl; ?>" /><br />
      <em><?php _ex('(e.g., https://www.google.com)','website url example'); ?></em><br /><br />

      <label><?php _ex('Campaign Term:','campaign term label'); ?></label><input name="gaca10-gaterm" value="<?php echo $gaterm; ?>" /><br />
      <em><?php _ex('(identify the paid keywords)','campaign term information'); ?></em><br /><br />
      <label><?php _ex('Campaign Content:','campaign content label'); ?></label><input name="gaca10-gacontent" value="<?php echo $gacontent; ?>" /><br />
      <em><?php _ex('(use to differentiate ads)','campaign content information'); ?></em><br /><br />

      <label><?php _ex('Campaign Description:','campaign description label'); ?></label><input name="gaca10-gadescription" value="<?php echo $gadescription; ?>" /><br />
      <em><?php _ex('(use to remind yourself about this specific link)','campaign description information'); ?></em><br /><br />

      <label><?php _ex('Shortened URL:','shortened URL label'); ?></label><input name="gaca10-gashortened-url" value="<?php echo $shortenedurl; ?>" readonly="readonly" /><br />

      <?php
   }
}

}

Вот как будет выглядеть экран «Добавить/редактировать кампанию»:

Добавить новый пост

Если CampaignTracker10 существует, то мы запускаем плагин:

if(class_exists('CampaignTracker10')){

      // Initiate the plugin
      add_action("init", "CampaignTracker10Init");

      function CampaignTracker10Init() {
         global $gaca10;
         $gaca10 = new CampaignTracker10();

      }
   }

Объедините эти функции в campaign-tracker.php файл.

Следующие примеры таксономии также должны появиться на экране «Добавить/редактировать кампанию» после того, как все будет добавлено. Вот таксономия «Названия кампаний»:

Названия кампаний

Вот таксономия «Средств кампании»:

Каналы кампании

Вот таксономия «Источники кампании»:

Источники кампании

Подобно тому, как настраиваются традиционные категории сообщений, вы можете создавать новые категории или выбирать предыдущие категории.

Примечание по использованию: Когда вы начнете использовать систему, попробуйте выбрать только одну категорию из названия, источника и носителя. Одна категория для каждого типа таксономии окажется наиболее полезной при реальном анализе в Google Analytics. Итак, как правило: одно имя, один источник и один носитель для каждого URL.

Полезные функции дисплея

Каждая из функций в этом разделе является частью ga-functions.php файл. Функции были отделены от других функций, чтобы сохранить функции дисплея вместе.

Наш файл будет начинаться с formatted_utm_taxonomy_terms функция, которая будет отображать удобную для URL версию терминов таксономии:

<?php
   /* Some Helpful Display Functions */

   function formatted_utm_taxonomy_terms($the_term) {
      global $post;
      $post_terms = get_the_terms( $post->ID, $the_term );
      if ( $post_terms && ! is_wp_error( $post_terms ) ) :
      $encoded_terms = array();
      foreach ($post_terms as $term ) {
         if(!$encoded_terms[] = $term->slug){
            $encoded_terms[] = urlencode($term->name);
         }
      }
      $return_terms = implode('+',$encoded_terms);
      return $return_terms;
      endif;
   }

То trackable_url Функция генерирует отслеживаемый URL-адрес из полей на экране администратора, а также из таксономий. При этом к URL-адресу добавляются соответствующие критерии отслеживания, чтобы Google Analytics могла использовать переменные и предоставлять информацию на основе этих конкретных переменных. Для этого мы будем использовать add_query_arg функция вордпресс.

function trackable_url() {
      global $post;
      $custom = get_post_custom($post->ID);

      // the url
      if ($custom["gaca10-gaurl"][0]) {
         $gaurl = $custom["gaca10-gaurl"][0];
      }
      else { $gaurl = ’; }

      // the term(s)
      if ($gaterm = $custom["gaca10-gaterm"][0]) {
         $gaterm = $custom["gaca10-gaterm"][0];
         $gaterm = urlencode($gaterm);
      }
      else { $gaterm = ’; }

      // the content(s)
      if ($custom["gaca10-gacontent"][0]) {
         $gacontent = $custom["gaca10-gacontent"][0];
         $gacontent = urlencode($gacontent);
      }
      else { $gacontent = ’; }
      $arr_params = array ( 'utm_campaign' => formatted_utm_taxonomy_terms('ganame'), 'utm_source' => formatted_utm_taxonomy_terms('gasource'), 'utm_medium' => formatted_utm_taxonomy_terms('gamedium'), 'utm_term' => $gaterm, 'utm_content' => $gacontent);
      return add_query_arg( $arr_params, $gaurl );

   }

Следующие функции берут отслеживаемый URL-адрес кампании и сокращают его с помощью TinyURL. Этот метод использует wp_remote_get для создания сокращенного URL. Затем он сохраняет сокращенный URL-адрес в метаданных сообщения при сохранении сообщения. То trackable_url_tiny Функция позволяет нам получить сокращенный URL-адрес в шаблоне.

// Save the shortened trackable URL to the post meta
   function save_shortened_meta($post_ID) {
      $url = trackable_url();
      $shortened_url = create_tiny_url($url);
      update_post_meta($post_ID, "campaign_tinyurl", $shortened_url);
      return $post_ID;
   }

   // Add an action to save it when the post is saved.
   add_action('save_post', 'save_shortened_meta');

   // Retrieve the shortened URL from post meta
   function trackable_url_tiny($url = null, $post_ID) {
      global $post;
      $custom_fields = get_post_custom($post->ID);
      $campaign_tinyurl = $custom_fields['campaign_tinyurl'][0];
      return $campaign_tinyurl;

      return $post_ID;
   }

   // Create shortened trackable URL through the wp_remote_get function
   function create_tiny_url($strURL) {
      $tinyurl = wp_remote_get( 'https://tinyurl.com/api-create.php?url=".$strURL );
      if( is_wp_error( $response ) ) {
         return "Something went wrong!';
      } else {
         return $tinyurl['body'];

      }
   }

То trackable_url_report Функция — это то, что предоставляет удобочитаемую версию переменных. Они разбиты по каждому разделу. Целевая страница, название кампании, источник, среда, термины и контент разделены и отображаются отдельно, если они существуют.

function trackable_url_report() {
      global $post;
      $custom = get_post_custom($post->ID);

      // get the url
      if ($custom["gaca10-gaurl"][0]) {
         $gaurl = $custom["gaca10-gaurl"][0];
      }
      else { $gaurl = ’; }
      // get the term(s)
      if ($gaterm = $custom["gaca10-gaterm"][0]) {
         $gaterm = $custom["gaca10-gaterm"][0];
      }
      else { $gaterm = ’; }

      // get the content(s)
      if ($custom["gaca10-gacontent"][0]) {
         $gacontent = $custom["gaca10-gacontent"][0];
      }
      else { $gacontent = ’; }

      // The Landing page
      $url_info =’;
      $url_info.= "<strong>". _x( 'Landing Page:','landing page label') . "</strong> ";
      $url_info.= $gaurl;
      $url_info.= "<br />";

      // The campaign name
      $url_info.= "<strong>". _x( 'Campaign:','campaign label') . "</strong> ";
      $url_info.= formatted_utm_taxonomy_terms('ganame');
      $url_info.= "<br />";

      // The Source
      $url_info.= "<strong>". _x( 'Source:','source label') . "</strong> ";
      $url_info.= formatted_utm_taxonomy_terms('gasource');
      $url_info.= "<br />";

      // The medium
      $url_info.= "<strong>". _x( 'Medium:','medium label') . "</strong> ";
      $url_info.= formatted_utm_taxonomy_terms('gamedium');
      $url_info.= "<br />";

      // The term
      $url_info.= "<strong>". _x( 'Term:','term label') . "</strong> ";
      $url_info.= $gaterm;
      $url_info.= "<br />";

      // The content
      $url_info.= "<strong>". _x( 'Content:','content label') . "</strong> ";
      $url_info.= $gacontent;
      $url_info.= "<br />";

      return $url_info;
   }

То display_description Функция отображает описание URL. Мы разбили эту часть здесь, чтобы сохранить вместе все части, относящиеся к URL-адресу. Это также последняя функция в ga-functions.php файл.

  &lt;label&gt;&lt;?php _ex('Campaign Description:','campaign description label'); ?&gt;&lt;/label&gt;&lt;input name="gaca10-gadescription" value="&lt;?php echo $gadescription; ?&gt;" /&gt;&lt;br /&gt;
  &lt;em&gt;&lt;?php _ex('(use to remind yourself about this specific link)','campaign description information'); ?&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;

  &lt;label&gt;&lt;?php _ex('Shortened URL:','shortened URL label'); ?&gt;&lt;/label&gt;&lt;input name="gaca10-gashortened-url" value="&lt;?php echo $shortenedurl; ?&gt;" readonly="readonly" /&gt;&lt;br /&gt;

  &lt;?php

} }

}

Вот как будет выглядеть экран «Добавить/редактировать кампанию»:

Добавить новый пост

Если CampaignTracker10 существует, то мы запускаем плагин:

if(class_exists('CampaignTracker10')){

      // Initiate the plugin
      add_action("init", "CampaignTracker10Init");

      function CampaignTracker10Init() {
         global $gaca10;
         $gaca10 = new CampaignTracker10();

      }
   }

Объедините эти функции в campaign-tracker.php файл.

Следующие примеры таксономии также должны появиться на экране «Добавить/редактировать кампанию» после того, как все будет добавлено. Вот таксономия «Названия кампаний»:

Названия кампаний

Вот таксономия «Средств кампании»:

Каналы кампании

Вот таксономия «Источники кампании»:

Источники кампании

Подобно тому, как настраиваются традиционные категории сообщений, вы можете создавать новые категории или выбирать предыдущие категории.

Примечание по использованию: Когда вы начнете использовать систему, попробуйте выбрать только одну категорию из названия, источника и носителя. Одна категория для каждого типа таксономии окажется наиболее полезной при реальном анализе в Google Analytics. Итак, как правило: одно имя, один источник и один носитель для каждого URL.

Полезные функции дисплея

Каждая из функций в этом разделе является частью ga-functions.php файл. Функции были отделены от других функций, чтобы сохранить функции дисплея вместе.

Наш файл будет начинаться с formatted_utm_taxonomy_terms функция, которая будет отображать удобную для URL версию терминов таксономии:

<?php
   /* Some Helpful Display Functions */

   function formatted_utm_taxonomy_terms($the_term) {
      global $post;
      $post_terms = get_the_terms( $post->ID, $the_term );
      if ( $post_terms && ! is_wp_error( $post_terms ) ) :
      $encoded_terms = array();
      foreach ($post_terms as $term ) {
         if(!$encoded_terms[] = $term->slug){
            $encoded_terms[] = urlencode($term->name);
         }
      }
      $return_terms = implode('+',$encoded_terms);
      return $return_terms;
      endif;
   }

То trackable_url Функция генерирует отслеживаемый URL-адрес из полей на экране администратора, а также из таксономий. При этом к URL-адресу добавляются соответствующие критерии отслеживания, чтобы Google Analytics могла использовать переменные и предоставлять информацию на основе этих конкретных переменных. Для этого мы будем использовать add_query_arg функция вордпресс.

function trackable_url() {
      global $post;
      $custom = get_post_custom($post->ID);

      // the url
      if ($custom["gaca10-gaurl"][0]) {
         $gaurl = $custom["gaca10-gaurl"][0];
      }
      else { $gaurl = ’; }

      // the term(s)
      if ($gaterm = $custom["gaca10-gaterm"][0]) {
         $gaterm = $custom["gaca10-gaterm"][0];
         $gaterm = urlencode($gaterm);
      }
      else { $gaterm = ’; }

      // the content(s)
      if ($custom["gaca10-gacontent"][0]) {
         $gacontent = $custom["gaca10-gacontent"][0];
         $gacontent = urlencode($gacontent);
      }
      else { $gacontent = ’; }
      $arr_params = array ( 'utm_campaign' => formatted_utm_taxonomy_terms('ganame'), 'utm_source' => formatted_utm_taxonomy_terms('gasource'), 'utm_medium' => formatted_utm_taxonomy_terms('gamedium'), 'utm_term' => $gaterm, 'utm_content' => $gacontent);
      return add_query_arg( $arr_params, $gaurl );

   }

Следующие функции берут отслеживаемый URL-адрес кампании и сокращают его с помощью TinyURL. Этот метод использует wp_remote_get для создания сокращенного URL. Затем он сохраняет сокращенный URL-адрес в метаданных сообщения при сохранении сообщения. То trackable_url_tiny Функция позволяет нам получить сокращенный URL-адрес в шаблоне.

// Save the shortened trackable URL to the post meta
   function save_shortened_meta($post_ID) {
      $url = trackable_url();
      $shortened_url = create_tiny_url($url);
      update_post_meta($post_ID, "campaign_tinyurl", $shortened_url);
      return $post_ID;
   }

   // Add an action to save it when the post is saved.
   add_action('save_post', 'save_shortened_meta');

   // Retrieve the shortened URL from post meta
   function trackable_url_tiny($url = null, $post_ID) {
      global $post;
      $custom_fields = get_post_custom($post->ID);
      $campaign_tinyurl = $custom_fields['campaign_tinyurl'][0];
      return $campaign_tinyurl;

      return $post_ID;
   }

   // Create shortened trackable URL through the wp_remote_get function
   function create_tiny_url($strURL) {
      $tinyurl = wp_remote_get( 'https://tinyurl.com/api-create.php?url=".$strURL );
      if( is_wp_error( $response ) ) {
         return "Something went wrong!';
      } else {
         return $tinyurl['body'];

      }
   }

То trackable_url_report Функция — это то, что предоставляет удобочитаемую версию переменных. Они разбиты по каждому разделу. Целевая страница, название кампании, источник, среда, термины и контент разделены и отображаются отдельно, если они существуют.

function trackable_url_report() {
      global $post;
      $custom = get_post_custom($post->ID);

      // get the url
      if ($custom["gaca10-gaurl"][0]) {
         $gaurl = $custom["gaca10-gaurl"][0];
      }
      else { $gaurl = ’; }
      // get the term(s)
      if ($gaterm = $custom["gaca10-gaterm"][0]) {
         $gaterm = $custom["gaca10-gaterm"][0];
      }
      else { $gaterm = ’; }

      // get the content(s)
      if ($custom["gaca10-gacontent"][0]) {
         $gacontent = $custom["gaca10-gacontent"][0];
      }
      else { $gacontent = ’; }

      // The Landing page
      $url_info =’;
      $url_info.= "<strong>". _x( 'Landing Page:','landing page label') . "</strong> ";
      $url_info.= $gaurl;
      $url_info.= "<br />";

      // The campaign name
      $url_info.= "<strong>". _x( 'Campaign:','campaign label') . "</strong> ";
      $url_info.= formatted_utm_taxonomy_terms('ganame');
      $url_info.= "<br />";

      // The Source
      $url_info.= "<strong>". _x( 'Source:','source label') . "</strong> ";
      $url_info.= formatted_utm_taxonomy_terms('gasource');
      $url_info.= "<br />";

      // The medium
      $url_info.= "<strong>". _x( 'Medium:','medium label') . "</strong> ";
      $url_info.= formatted_utm_taxonomy_terms('gamedium');
      $url_info.= "<br />";

      // The term
      $url_info.= "<strong>". _x( 'Term:','term label') . "</strong> ";
      $url_info.= $gaterm;
      $url_info.= "<br />";

      // The content
      $url_info.= "<strong>". _x( 'Content:','content label') . "</strong> ";
      $url_info.= $gacontent;
      $url_info.= "<br />";

      return $url_info;
   }

То display_description Функция отображает описание URL. Мы разбили эту часть здесь, чтобы сохранить вместе все части, относящиеся к URL-адресу. Это также последняя функция в ga-functions.php файл.

function display_description(){
      global $post;
      $custom = get_post_custom($post->ID);
      $description = $custom["gaca10-gadescription"][0];
      return $description;
   }

   ?>

Объедините эти функции в ga-functions.php файл, а затем мы можем перейти к созданию файла шаблона.

Файл шаблона

Последний файл, который мы будем использовать для создания представления отслеживаемого URL-адреса: campaign-template.php. Вы помните из campaign-tracker.php файл, который у нас есть вызов в template_redirect() функция для перенаправления пользователей на этот шаблон при просмотре кампаний пользовательского типа публикации.

Для целей отображения мы будем использовать single.php файл из текущей темы WordPress по умолчанию, TwentyEleven. Вы можете, конечно, использовать другую тему и другие стили.

Во-первых, мы включаем ga-functions.php файл, чтобы мы могли использовать некоторые из наших функций отображения. Шаблон кампании также использует API Google Charts для создания QR-кода.

Следующий код выполнит всю тяжелую работу по отображению URL-адреса, отслеживаемого нашей кампанией, информации об URL-адресе, сокращенного URL-адреса и QR-кода. Это также позволит нам редактировать сообщение, если нам нужно изменить переменную. Просто поместите этот код в цикл.

<h1 class="entry-title"><?php the_title() ?></h1><br />

   <?php
   echo "<strong>". _x( 'Description:','description label') . "</strong> ";
   echo display_description();
   echo "<br />";
   echo trackable_url_report();
   echo "<br />";
   echo "<strong>". _x('Trackable URL:','trackable URL label') . "</strong> ";
   echo "<a href="https://www.smashingmagazine.com/2012/02/how-to-use-custom-post-types-toanize-online-marketing-campaigns/.trackable_url()." target="_blank">"https://www.smashingmagazine.com/2012/02/how-to-use-custom-post-types-toanize-online-marketing-campaigns/.trackable_url()."</a><br />";

   echo "<strong>" . _x('Shortened Trackable URL:','shortened trackable URL label') . "</strong> ";
   echo "<a href=".trackable_url_tiny()." target="_blank">".trackable_url_tiny()."</a><br />";
   ?>

   <br />
   <img src="https://chart.googleapis.com/chart?chs=150x150&amp;cht=qr&amp;chl=<?php trackable_url_tiny(); ?>" /><br />
   <?php edit_post_link( __( 'Edit', 'twentyeleven' ), '<span class="edit-link">', '</span>' ); ?>

Когда мы объединим код, шаблон кампании будет следующим:

<?php
   /**
   * The Template for displaying all single posts.
   *
   * @package WordPress
   * @subpackage Twenty_Eleven
   * @since Twenty Eleven 1.0
   */

   // Include the ga-functions.php file so that we can easily display the results
   include_once('ga-functions.php');

   get_header(); ?>

   <div id="primary">
   <div id="content" role="main">

   <?php while ( have_posts() ) : the_post(); ?>

   <nav id="nav-single">
   <h3 class="assistive-text"><?php _e( 'Post navigation', 'twentyeleven' ); ?></h3>
   <span class="nav-previous"><?php previous_post_link( '%link', __( '<span class="meta-nav">&larr;</span> Previous', 'twentyeleven' ) ); ?></span>
   <span class="nav-next"><?php next_post_link( '%link', __( 'Next <span class="meta-nav">&rarr;</span>', 'twentyeleven' ) ); ?></span>
   </nav><!-- #nav-single -->

   <h1 class="entry-title"><?php the_title() ?></h1><br />

   <?php
   echo "<strong>". _x( 'Description:','description label') . "</strong> ";
   echo display_description();
   echo "<br />";
   echo trackable_url_report();
   echo "<br />";
   echo "<strong>". _x('Trackable URL:','trackable URL label') . "</strong> ";
   echo "<a href="https://www.smashingmagazine.com/2012/02/how-to-use-custom-post-types-toanize-online-marketing-campaigns/.trackable_url()." target="_blank">"https://www.smashingmagazine.com/2012/02/how-to-use-custom-post-types-toanize-online-marketing-campaigns/.trackable_url()."</a><br />";

   echo "<strong>" . _x('Shortened Trackable URL:','shortened trackable URL label') . "</strong> ";
   echo "<a href=".trackable_url_tiny()." target="_blank">".trackable_url_tiny()."</a><br />";
   ?>

   <br />
   <img src="https://chart.googleapis.com/chart?chs=150x150&amp;cht=qr&amp;chl=<?php trackable_url_tiny(); ?>" /><br />
   <?php edit_post_link( __( 'Edit', 'twentyeleven' ), '<span class="edit-link">', '</span>' ); ?>

   <?php comments_template( ’, true ); ?>

   <?php endwhile; // end of the loop. ?>

   </div><!-- #content -->
   </div><!-- #primary -->

   <?php get_footer(); ?>

Когда шаблон настроен и кампания добавлена, должна отображаться следующая страница:

Показать информацию

В заключение

Используя пользовательские типы записей WordPress в описанном методе, можно организовать маркетинговые кампании с соответствующим URL-адресом отслеживания кампании Google Analytics, сокращенным URL-адресом и QR-кодом. Это делает организацию маркетинговых кампаний намного проще и эффективнее.

Пользовательские типы сообщений позволяют очень легко настроить систему для организации контента. И мы можем проявить творческий подход к использованию пользовательских типов сообщений. Они могут быть очень полезны при организации контента за пределами обычной структуры WordPress и других систем управления контентом (т. е. постов, страниц и т. д.).

Другие возможные варианты использования настраиваемых типов сообщений включают следующее:

  • Управление контактами клиентов,
  • Создайте каталог сотрудников,
  • Ведите инвентаризацию предметов,
  • Организуйте другие данные.

Ресурсы

Вам могут быть интересны следующие ресурсы и статьи:

  • «Пользовательские типы записей в WordPress 3.0», Константин Ковшенин
  • «Пользовательские типы записей в WordPress», Джастин Тэдлок
  • «Создание TinyURL с помощью API TinyURL», Ричард Кастера.
  • «Начало работы с инфографикой» (QR-коды с API Google Charts), Google Code
  • «Типы сообщений», WordPress Codex
  • Инструмент создания URL-адресов Google Analytics
  • «Уроки IQ», Google Analytics
Сокрушительная редакция
(аль)



[ad_2]
Source: https://smashingmagazine.com

Заключение

Вы ознакомились с статьей — Как использовать пользовательские типы сообщений для организации маркетинговых кампаний в Интернете

Пожалуйста оцените статью, и напишите комментарий.

Похожие статьи

Добавить комментарий

Ваш адрес email не будет опубликован.

Кнопка «Наверх»