从RSS提要自定义MailChimp自动提要

从RSS提要自定义MailChimp自动提要

每个人都知道如何做时事通讯。 许多人知道如何创建触发链。 有人知道如何通过博客的RSS供稿设置新闻通讯。 我们必须更深入地研究,因为我们希望简讯不那么简单,而是美观而详尽。 毕竟,它是由一个有趣的博客制作的,在该博客上,我们也付出了很多努力。


对于一封简单的信件中的每个细节,我都不得不与这只可爱的猴子搏斗。 全部解决了。 我们告诉你如何。


Mailhimp是英语的,有时是不合逻辑的界面服务。 但是他知道有多少并且如此受欢迎,以致于他为以各种可能的方式向读者提供内容而精心编写了说明。


我们还在PromoPult博客文章中选择了Mailhimp。 Mailhimp的功能之一是自动广告系列。 您可以安排常规邮件,个人信件,设置欢迎信等等。


这个故事是关于设置博客文章自动发布的。 每周一次向用户的邮件中提取新鲜材料的摘要。



自动链接的标准选项以及为什么它不适合我们


Mailhimp本身在所有功能方面都有出色的文档,尤其是在以下方面: 与Mailchimp共享您的博客文章 。 也可以找到各种程度的适当程度的俄文翻译。


简要地说,您需要进行自动链接:


  1. 为MailChimp创建一个单独的RSS feed(甚至不创建,但使用标准feed)。
  2. 创建活动,指定来源,配置发送条件。
  3. 创建并选择一个模板。
  4. 做完了 你真厉害!

不适合我们的是,根本不可能添加任何我们自己的东西。


Mailhimp可以从RSS feed中获得一些基本数据:


  • 有关提要的基本信息(标题,链接,描述,提要的形成或更新日期)- *|RSSFEED|*
  • 链接到单独的帖子标记*|RSSFEED:URL|* ,查看<item>内部的<item> <link> <item> (以下简称)。
  • 单个帖子的标题是标签*|RSSITEM:TITLE|* ,其显示为<title>
  • 单个后标记的发布日期 *|RSSITEM:DATE|* ,请*|RSSITEM:DATE|* <pubDate>
  • 单独的后标记*|RSSITEM:CONTENT|*文本声明 ,请查看<description> ,如果该标记不在<item>内-MailChimp将查看<content:encoded> 。 您可以在其中使用HTML标记。
  • 单个帖子的全部内容是标签*|RSSITEM:CONTENT_FULL|* ,它查看<content:encoded> *|RSSITEM:CONTENT_FULL|* <content:encoded>
  • 帖子的图像 ,通常是预览(WordPress术语中的缩略图 )-标签*|RSSITEM:IMAGE|* ,查看<media:content> ,不要忘记媒体附件的其他标签和属性 :年龄标记,有关文件本身的信息等等。

我们在单独的帖子中还有其他内容:


  • 评论柜台
  • 查看柜台;
  • 像柜台
  • 想以人的格式显示该帖子的发布日期 :首先,用俄语表示偏斜,并且如果该帖子是今年发布的-不要显示发布年份(现在博客中的所有内容都有效,我希望同样注意细节的信件)
  • 单独的自定义帖子封面 ,您需要以某种方式与之联系;
  • 类别以及指向该类别中所有帖子的链接。

而且您不能将其放入常规RSS Feed中-没有相应的标签。 自定义MailChimp标签不理解,因此不应为此归咎于此。 我们需要寻找一种适合所有人并且不会破损的解决方案。


摘要模板中需要在单独的明信片中显示的数据与外观相关。 设计师画了画,排字工人受了很多苦,所以把这封信写下来。


从RSS提要自定义MailChimp自动提要

每周摘要中的PromoPult博客明信片



我们如何解决问题


创建RSS提要


首先要做的是为MailChimp创建一个单独的RSS feed。 PromoPult博客上已经有一些类似的提要: Yandex.ZenTurbo页面


您可以通过add_feed()创建新的供稿。 这是主题功能文件中的代码:


functions.php:


 /* start       MailChimp */ add_action( 'init', 'customRSSforMC' ); function customRSSforMC() { add_feed( 'mchimp', 'customRSSforMCFunc' ); } function customRSSforMCFunc() { get_template_part( 'rss', 'mchimp' ); } /* end       MailChimp */ 

在第7行中get_template_part ( 'rss', 'mchimp' ); -表示供稿的模板位于主题文件夹的根目录中,称为rss-zen.php


创建文件并添加功能后,您需要转到WordPress管理面板,CNC设置:“控制台→设置→永久链接”,然后单击“保存更改”按钮,以便WordPress更新/feed/URL设置并在第4行第一个参数的给定/feed/URL中打开。新的RSS提要。


创建磁带时,只需执行一次。


请参阅我们的示例: https : //blog.promopult.ru/feed/mchimp


磁带里面有什么


提要本身内部是一个常规的WordPress发布循环: query_posts() 。 这使您可以非常灵活地选择和过滤帖子:就像您要设置单个类别,带有选择内容,存档的页面以及WordPress帖子所需的一切一样。


但是,在您找到解决问题的完美方法之前,有几次尝试将重要的数据塞满数据,这些数据对于在RSS feed的标准设计中进行编写并将其用于MailChimp中。


例如, 评论计数器有一个这样的选项:


 <item> [...] <title><?php the_title_rss(); ?></title> <link><?php the_permalink_rss(); ?>?utm_source=newsletter</link> //      1,    <?php if (get_comments_number() >= 1) { ?> <commentsCounter><?php comments_number('0', '1', '%'); ?></commentsCounter> <?php } ?> [...] </item> 

当然,此选项在数据方面有效:所需的所有内容均已获得并正确显示。 但是MailChimp不像任何其他非标准<commentsCounter>一样理解<commentsCounter>标签。


另外,例如,带有日期。 MailChimp有其自己的标签: *|RSSITEM:DATE:d/m/y|* ,并且您可以将日期格式选项传递给它 。 但是,不幸的是,在这封信中,它看起来根本不是人类。 关于日期翻译,一般来说,你不会说。


另一个问题是图片。 你受了苦,弥补了你的美丽写作。 您需要显示图片。 在电子邮件模板中,您可以执行以下操作:


 <img src="*|RSSITEM:IMAGE|*" alt="*|RSSITEM:TITLE|*" /> 

但是MailChimp解析器可以破坏布局,将其属性,类和其他代码添加到<img ... /> image标记中。


提示。 如果您使用标准供稿和标签,请不要忘记在广告系列设置中启用“ 根据模板调整RSS供稿的图像大小 ”复选框:


从RSS提要自定义MailChimp自动提要

中间结论:出问题了,标准选项还不够,这封信太糟糕了,还没有人道。 非标准数据无法显示。


假冒耳朵:自己标记一切


如果RSS提要中无法执行任何标准,以便MailChimp服务解析器能够正确理解,那么您可以简单地在提要中单独的<item>元素的<description>为明信片传递完成的标记和折叠代码段。

只有一个单独的减号:所有书写样式都应内联,即通过.class描述的所有内容都将变为属性style=”...”中的style=”...”


 <!--   : --> <style> .post-meta { Margin: 8px 0; } .post-category { border-radius: 3px; border: #adb2b2 1px solid; color: #adb2b2 !important; border-bottom: #adb2b2 1px solid !important; padding: 2px 6px; font-size: 13px; line-height: 13px; Margin: 0 8px 0 0; } </style> <div class="post-meta"> <a href="https://blog.promopult.ru/category/seo" target="_blank" class="post-category">SEO:    </a> </div> <!--   : --> <div style="Margin: 8px 0;"> <a href="https://blog.promopult.ru/category/seo?utm_source=newsletter" target="_blank" style="Margin: 0 8px 0 0; border: #adb2b2 1px solid; border-bottom: #adb2b2 1px solid !important; border-radius: 3px; color: #adb2b2 !important; font-size: 13px; line-height: 13px; padding: 2px 6px; text-decoration: none;">SEO:    </a> </div> 

对于博客字母的布局,使用了“ Pechkin”-字母模板的收集器,它从块和内联样式本身中收集字母。 您还可以使用在线样式内联,例如Premailer.io


RSS提要模板中提供了一个提要循环。 因此,您可以根据需要拉伸和变形所有物体。


解决方案的第一种方法是局部的:将标题,URL,简短描述标签保留为标准,但是发布元信息:视图,喜欢,评论,类别和发布日期应形成为单独的HTML代码,并插入所需的标记位置。


由于版面损坏并且对版面和图像样式缺乏控制,因此也不得不放弃此选项。 然后将所有明信片块的标记转移到<description>


 <?php while (have_posts()): the_post(); ?> <item> <description><![CDATA[ <div class="post-card"> <?php if ( get_post_meta($post->ID, 'imga', true) ) { ?> <div class="post-card__img"> <a href="<?php the_permalink(); ?>?utm_source=newsletter" target="_blank"> <img src="<?php echo $postImg[0]; ?>" alt="<?php the_title(); ?>"> </a> </div> <?php } ?> <div class="post-card__info"> <h2> <a href="<?php the_permalink(); ?>?utm_source=newsletter"><?php the_title(); ?></a> </h2> <p> <a href="<?php the_permalink(); ?>?utm_source=newsletter"> <?php if ( !empty( get_post_meta($post->ID, 'intro', true) ) ) { echo get_post_meta($post->ID, 'intro', true); } else { $content = get_the_content(); $trimmed_content = wp_trim_words( $content, 12, '...' ); echo $trimmed_content; } ?> </a> </p> <div> <p> <?php if (get_the_date('Y') == date('Y')) { the_time('j F'); } else { the_time('j F Y'); } ?>, <?php $categories = get_the_category(); if( $categories[0] ) { echo '<a href="' . get_category_link($categories[0]->term_id ) . '?utm_source=newsletter">'. $categories[0]->name . '</a>'; } ?> <?php if(function_exists('the_views')) { ?> <span> <span> <img src="icon-views.png" alt=" "> </span> <span class="item__text"><?php the_views(); ?></span> </span> <?php } ?> <?php if (function_exists('get_simple_likes_counter')) { if (get_simple_likes_counter( get_the_ID() ) >= 1) { ?> <span> <span class="item__icon"> <img src="icon-like.png" alt=" "> </span> <span><?php echo get_simple_likes_counter( get_the_ID() ); ?></span> </span> <?php } } ?> <?php if (get_comments_number() >= 1) { ?> <span> <span> <img src="icon-comments.png" alt=" "> </span> <span><?php comments_number('0', '1', '%'); ?></span> </span> <?php } ?> </p> </div> </div> </div> ]]></description> </item> <?php endwhile; wp_reset_query(); ?> 

示例代码中没有内联样式以使所有内容看起来都整洁。 磁带的实战版本带有完整的标记和样式。


示例中图形的所有地址也得到了简化。 在实战版本中,所有必需的图片,图标,照片和所有重要的书写内容都通过Content Studio上传到MailChimp管理面板,并且模板已经使用<img />标签的src-属性的完整地址。


在第20-24行中,我们选择文章的文本声明(简介)的版本。 如果该自定义填充在记录的任意字段的post属性中-get_post_meta() ,则显示它,如果不存在,则显示get_the_content()中的内容


同时选择封面照片。 我们有与文章相关的两张图片:一个小预览(显示在主页上的明信片中)和该帖子标题的封面。 盖个大盖子。


从RSS提要自定义MailChimp自动提要

PromoPult博客文章中带有背景的标题示例


由于所有这些都是在标准WordPress周期中发生的,因此所有排序方法都可用。 例如,显示最近12天内观看次数最多和喜欢的次数,从多到少排序。


从电子邮件模板中的提要输出内容


由于单个明信片的所有数据都位于单独的<item>元素中嵌入的<description>标记内,因此只需要在消息模板中显示它们即可:


 <h1>     PromoPult</h1> <p>*|RSSFEED:DESCRIPTION|*</p> <!-- *|RSSFEED:DESCRIPTION|* : «21  — 28 »,   <description>   --> *|RSSITEMS:|* *|RSSITEM:CONTENT|* *|END:RSSITEMS|* 

正确显示数据,将HTML代码插入循环中,自动广告系列有效。


关于RSSFEED和FEEDBLOCK的单独一行


*|RSSFEED|**|FEEDBLOCK|*?


找出差异很容易:


  • *|FEEDBLOCK|*可在任何电子邮件和广告系列模板中使用。 例如,如果您想在定期通讯中谈论最新帖子,请使用它。 您可以指定到任何RSS源的链接。
  • *|RSSFEED|*仅在自动广告系列中有效,并且在源中看到广告系列设置中指定的内容。

总计:如果一切对您而言都是标准且容易的,请使用标准的MailChimp工具,不要担心


但是,如果您的博客设计和邮件列表经过专门设计和协调三遍,如果您想将可用数据添加到自动电子邮件中,或者至少要用俄语声明日期,那么您将不得不弄乱一点,然后将现成的打包数据发送给MailChimp。


怎么样-我们告诉过。


MailChimp中RSS提要主题的链接:


Source: https://habr.com/ru/post/zh-CN466193/


All Articles