twine_如何在WordPress中嵌入Twine故事
twine
从一开始,我就希望我的WordPress网站romanluks.eu上的“关于我”页面是交互式的。
最初,我尝试了Dart,这是Google开发的一种编程语言,可以转换为JavaScript。 当我意识到自己在开发游戏而不是“关于我”页面时,我终止了该项目。
稍后,我发现了Twine ,这是一个用于创建交互式故事的开源工具。 它使我想起了我小时候喜欢的游戏本。 在Twine中创建相互关联的文本非常容易,并且非常适合我想要的类似于采访的格式。 因为Twine直接发布为HTML,所以您可以用它做很多有趣的事情-包括创建交互式小说和冒险游戏或在博客或网站上发布故事。
早期的斗争
我在Twine中创建了“关于我”页面,然后尝试将其粘贴到WordPress页面中。
WordPress和Twine说:“不行。”
您会看到,从Twine导出的Twine故事只是一个网页(即HTML格式的文件)。 但是,它不仅包括HTML,还包括JavaScript代码。 而且,当您仅尝试复制粘贴内容时,它不起作用。 我尝试将粘贴内容仅缠绕在Twine故事页面的正文中而没有成功。
我以为“我想我需要单独添加该JavaScript代码”,然后尝试了自定义字段。
不。
我从调查中休息了一下。 我刚刚通过FTP上传了“关于我”麻线的故事,并从我的网站菜单中链接了该故事。 人们可以访问它并与该故事进行交互,但是,没有菜单,并且感觉不像是我的网站的一部分。 我为自己做了一个陷阱。 这让我意识到我真的很希望我的“关于我”直接出现在我的网站上。
DIY嵌入
我对这个问题不屑一顾,并提出了解决方案 。
有效。 它不是完美的,但是有效。
但这并不完美 。 有没有更好的办法? 肯定会有更好的方法……
这花了我几毛,但我设法获得了响应性的iframe和自动滚动 。
感觉好多了。 我为自己感到骄傲,并在Reddit上分享了它。
嵌入麻线之路
突然,一个主意! 如果人们可以使用WordPress插件而不是按照我的教程怎么办?
他们只需要给插件一个Twine的故事,其余的工作就可以解决。 轻松自如。 无需复制粘贴任何JavaScript代码。
那不是光荣的吗?!
我不知道WordPress插件如何工作。 我只知道它们是用PHP编写的。 不久前,我从事PHP开发人员的兼职工作,而且我还记得一些基础知识。
容器和WordPress
我向朋友提到了我的想法,他建议我可以将容器用作WordPress开发环境。
过去,我一直使用XAMPP ,但是我想尝试一会儿容器。
没问题,我想! 在学习如何制作WordPress插件并恢复PHP技能的同时,我将学习容器。 那应该足够刺激。
是的。
我不记得我停下,移走并重建了容器多少次。 我必须使用命令行。 而且文件权限很麻烦。
好家伙! 这就像在玩一个您喜欢玩的游戏,尽管这会让您非常生气。 这具有挑战性,但很有意义。
我发现创建一个简单的WordPress插件非常容易:
- 编写源代码
- 将其保存在WP插件目录中
- 测试一下
- 重复
容器使您可以轻松使用特定的环境,并且在拧紧并需要重新开始时很容易清理。
使用Git可以避免意外删除整个代码库。 我使用Sourcetree作为我的Git用户界面。 最初,我用Notepad ++编写代码,但是当我将代码分成多个文件时,我切换到了Atom 。 对于极客来说,它是一个很棒的编辑器。 使用它就像代码自己编写。
中场休息
那么,到目前为止我们知道些什么?
- 我想要一个交互式的“关于我”页面
- 我在Twine中创作了一个“关于我”的故事
- Twine导出网页(作为包含JavaScriptHTML文件)
- WP插件易于制作
- 容器很棒
嵌入麻线诞生
我想要一种将Twine故事嵌入WordPress的简单方法。 因此,我使用了软件开发的能力,无所事事地使用了容器,编写了一些PHP代码,并将结果发布为一个名为Embed Twine的WordPress插件。
安装插件
- 将插件文件上传到/ wp-content / plugins / plugin-name目录,或通过WordPress插件屏幕安装插件。
- 通过WordPress中的“插件”屏幕激活插件。
使用插件
安装Embed Twine插件并创建Twine 2故事后,将其嵌入到WordPress网站中:
- 将您的Twine 2故事导出到HTML文件中。
- 通过插件的界面上传。
- 将简码插入页面或帖子中。
- 享受您的嵌入式故事。
该插件还提供自动滚动功能,使用户可以轻松浏览您的故事。
配置插件
该插件可通过简码参数进行配置。 要使用简码,只需将[embed_twine]放入您的帖子中。
您可以使用以下格式的其他参数: [embed_twine story =“ Story” aheight = 112 autoscroll = true ascroll = 100] ,如下所示:
- 故事:指定故事名称(不带扩展名的文件名)。
- 如果story参数被省略,则默认为“ Story”。 这意味着如果您的Twine文件名是Story.html,则无需使用此参数。
- 如果您上载名为MyFooBar.html的Twine故事,请使用简码: [embed_twine story =“ MyFooBar”] 。
- aheight:使用此参数可以调整iframe的高度。 您可能需要调整高度以摆脱iframe滚动条。 预设值为112; 将此值添加到iframe高度,并用于设置iframe的style.height 。
- 自动滚动:默认情况下启用自动滚动。 您可以使用简码参数[embed_twine autoscroll = false]将其关闭。
- 升序:使用此选项可以调整自动滚动的默认位置。 预设值为100; 从iframe的顶部位置减去此值,然后将其输入JavaScript方法window.scrollTo()中 。
已知错误
当前,包含图像的Twine段落可能会错误地报告其高度,并且滚动条可能会显示这些段落。 调整shortcode参数aheight摆脱它们。
剧本
1 <?php
2
3 /**
4 * Plugin Name: Embed Twine
5 * Description: Insert Twine stories into WordPress
6 * Version: 0.0.6
7 * Author: Roman Luks
8 * Author URI: https://romanluks.eu/
9 * License: GPLv2 or later
10 */
11
12 require_once ( 'include/embed-twine-load-file.php' ) ;
13 require_once ( 'include/embed-twine-parent-page.php' ) ;
14 require_once ( 'include/embed-twine-process-story.php' ) ;
15
16 // Add plugin to WP menu
17 function embed_twine_customplugin_menu ( ) {
18
19 add_menu_page ( "Embed Twine" , "Embed Twine" , "manage_options" , __FILE__ , "embed_twine_uploadfile" ) ;
20 }
21
22 add_action ( "admin_menu" , "embed_twine_customplugin_menu" ) ;
23
24 function embed_twine_uploadfile ( ) {
25 include "include/embed-twine-upload-file.php" ;
26 }
27
28 // Add shortcode
29 function embed_twine_shortcodes_init ( )
30 {
31 function embed_twine_shortcode ( $atts = [ ] , $content = null )
32 {
33 // Attributes
34 $atts = shortcode_atts (
35 array (
36 'story' => 'Story' ,
37 'aheight' => 112 , //adjust for style.height (30) and margins of tw-story (2x41)
38 'autoscroll' => true , //autoscroll enabled by default
39 'ascroll' => 100 , //adjust for autoscroll
40 ) ,
41 $atts ,
42 'embed_twine'
43 ) ;
44
45 $content = embed_twine_buildParentPage ( $atts [ 'story' ] , $atts [ 'aheight' ] , $atts [ 'autoscroll' ] , $atts [ 'ascroll' ] ) ;
46
47 return $content ;
48 }
49 add_shortcode ( 'embed_twine' , 'embed_twine_shortcode' ) ;
50 }
51 add_action ( 'init' , 'embed_twine_shortcodes_init' ) ;
本文改编自Roman Luks的博客和WordPress插件上的Embed Twine页面。
翻译自: https://opensource.com/article/20/2/embed-twine-wordpress
twine
twine_如何在WordPress中嵌入Twine故事相关推荐
- wordpress地图_如何在WordPress中嵌入必应地图
wordpress地图 Do you want to embed Bing Maps on your WordPress website? If you are looking for a Googl ...
- wordpress 数据库_如何在WordPress中创建视频库(逐步)
wordpress 数据库 Recently, a user asked us how to create a video gallery in WordPress. WordPress makes ...
- wordpress创建_如何在WordPress中轻松创建工作申请表
wordpress创建 Do you want to add a job application form to the careers page on your WordPress website? ...
- wordpress添加媒体_如何在WordPress中添加新帖子并利用所有功能
wordpress添加媒体 Are you trying to create a new post in WordPress? Do you want to learn about all the W ...
- wordpress创建_如何在WordPress中创建问卷(简易方式)
wordpress创建 Do you want to create a questionnaire in WordPress to survey your visitors or collect da ...
- wordpress谷歌字体_如何在WordPress中添加Google Maps
wordpress谷歌字体 You can add all kind of content into your WordPress site. At WPBeginner we have shown ...
- 如何在WordPress中添加Google Maps Store Locator
Do you want to add Google Maps store locator in WordPress? A store locator is a map pointing to your ...
- 如何在WordPress中创建一个人格测验
想知道如何在WordPress中创建一个人格测验吗? 首先将展示如何使用一个名为Thrive Quiz Builder的WordPress插件来建立人格测验.该工具允许用户从测验中获得尽可能多的流量. ...
- wordpress 自定义_如何在WordPress中添加自定义字体
wordpress 自定义 Do you want to add custom fonts in WordPress? Custom fonts allow you to use beautiful ...
最新文章
- Lync与Exchange 2013 UM集成配置
- 已解决:Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: TLS handshaketimeout
- HDU 4864 Task(2014多校--贪心)
- ansible企业级自动化运维工具
- mysql全量备份、增量备份实现方法
- Android开发之基本概念
- 为基于类的策略选择突发数据量和超额突发数据量
- redis cluster中添加删除重分配节点例子
- 《网管员必读》系列丛书试读连载
- http://www.ajaxload.info/
- ACM ICMR 2021雷达目标检测挑战赛(ROD2021)
- 康奈尔大学计算机科学人工智能,美国康奈尔大学工程学院申请之计算机科学
- Log4Cpp 使用实例
- PAT 乙级真题题解 java实现
- Bulma 教程,Bulma 指南,Bulma 实战,Bulma 中文手册
- Unity3D角色换装及换装编辑器
- 2019年美国大学生数学建模注意事项(摘https://www.comap.com/undergraduate/contests/)(重点:论文提交方式)
- 如何同时给多个视频加水印?
- 期权:短期交易日内波动为主 静待市场情绪拐点
- 今日收获(数据库方向)
热门文章
- pytorch每日一学1(torch.is_tensor(obj))
- 2022湖南最新通信施工安全员模拟考试试题及答案
- linux 触摸屏程序,触摸屏工作原理以及驱动程序详细分析
- 怎样将无线鼠标连接到Mac电脑?
- 华为数据之道-读书笔记4
- 如何利用RPA机器人开启货代行业数字化转型第一步?
- 计算机知识普及活动口号,科技节活动主题口号
- Solidity - 介绍
- 暴风php视频怎么打开,暴风影音飞屏怎么用?暴风影影音飞屏功能及使用方法图文详解...
- Excel餐饮数据分析