每个人都知道如何做时事通讯。 许多人知道如何创建触发链。 有人知道如何通过博客的RSS供稿设置新闻通讯。 我们必须更深入地研究,因为我们希望简讯不那么简单,而是美观而详尽。 毕竟,它是由一个有趣的博客制作的,在该博客上,我们也付出了很多努力。
对于一封简单的信件中的每个细节,我都不得不与这只可爱的猴子搏斗。 全部解决了。 我们告诉你如何。
Mailhimp是英语的,有时是不合逻辑的界面服务。 但是他知道有多少并且如此受欢迎,以致于他为以各种可能的方式向读者提供内容而精心编写了说明。
我们还在PromoPult博客文章中选择了Mailhimp。 Mailhimp的功能之一是自动广告系列。 您可以安排常规邮件,个人信件,设置欢迎信等等。
这个故事是关于设置博客文章自动发布的。 每周一次向用户的邮件中提取新鲜材料的摘要。
自动链接的标准选项以及为什么它不适合我们
Mailhimp本身在所有功能方面都有出色的文档,尤其是在以下方面: 与Mailchimp共享您的博客文章 。 也可以找到各种程度的适当程度的俄文翻译。
简要地说,您需要进行自动链接:
- 为MailChimp创建一个单独的RSS feed(甚至不创建,但使用标准feed)。
- 创建活动,指定来源,配置发送条件。
- 创建并选择一个模板。
- 做完了 你真厉害!
不适合我们的是,根本不可能添加任何我们自己的东西。
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标签不理解,因此不应为此归咎于此。 我们需要寻找一种适合所有人并且不会破损的解决方案。
摘要模板中需要在单独的明信片中显示的数据与外观相关。 设计师画了画,排字工人受了很多苦,所以把这封信写下来。
每周摘要中的PromoPult博客明信片
我们如何解决问题
创建RSS提要
首先要做的是为MailChimp创建一个单独的RSS feed。 PromoPult博客上已经有一些类似的提要: Yandex.Zen和Turbo页面 。
您可以通过add_feed()创建新的供稿。 这是主题功能文件中的代码:
functions.php:
add_action( 'init', 'customRSSforMC' ); function customRSSforMC() { add_feed( 'mchimp', 'customRSSforMCFunc' ); } function customRSSforMCFunc() { get_template_part( 'rss', 'mchimp' ); }
在第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服务解析器能够正确理解,那么您可以简单地在提要中单独的
<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()中的内容 。
同时选择封面照片。 我们有与文章相关的两张图片:一个小预览(显示在主页上的明信片中)和该帖子标题的封面。 盖个大盖子。
PromoPult博客文章中带有背景的标题示例
由于所有这些都是在标准WordPress周期中发生的,因此所有排序方法都可用。 例如,显示最近12天内观看次数最多和喜欢的次数,从多到少排序。
从电子邮件模板中的提要输出内容
由于单个明信片的所有数据都位于单独的<item>
元素中嵌入的<description>
标记内,因此只需要在消息模板中显示它们即可:
<h1> PromoPult</h1> <p>*|RSSFEED:DESCRIPTION|*</p> *|RSSITEMS:|* *|RSSITEM:CONTENT|* *|END:RSSITEMS|*
正确显示数据,将HTML代码插入循环中,自动广告系列有效。
关于RSSFEED和FEEDBLOCK的单独一行
*|RSSFEED|*
和*|FEEDBLOCK|*?
找出差异很容易:
*|FEEDBLOCK|*
可在任何电子邮件和广告系列模板中使用。 例如,如果您想在定期通讯中谈论最新帖子,请使用它。 您可以指定到任何RSS源的链接。*|RSSFEED|*
仅在自动广告系列中有效,并且在源中看到广告系列设置中指定的内容。
总计:如果一切对您而言都是标准且容易的,请使用标准的MailChimp工具,不要担心
但是,如果您的博客设计和邮件列表经过专门设计和协调三遍,如果您想将可用数据添加到自动电子邮件中,或者至少要用俄语声明日期,那么您将不得不弄乱一点,然后将现成的打包数据发送给MailChimp。
怎么样-我们告诉过。
MailChimp中RSS提要主题的链接: