urgent release 2.4.0
git-svn-id: https://plugins.svn.wordpress.org/footnotes/tags/2.4.0@2449988 b8457f37-d9ea-0310-8a92-e5e31aec5664
This commit is contained in:
parent
82cb6d5268
commit
49a7ff7dc7
4 changed files with 63 additions and 33 deletions
|
@ -8,7 +8,7 @@
|
||||||
*
|
*
|
||||||
* Edited for v2.0.0 and following.
|
* Edited for v2.0.0 and following.
|
||||||
*
|
*
|
||||||
* Last modified: 2021-01-03T2056+0100
|
* Last modified: 2021-01-04T1623+0100
|
||||||
*
|
*
|
||||||
* @since 2.0.5 Autoload / infinite scroll support added thanks to code from @docteurfitness
|
* @since 2.0.5 Autoload / infinite scroll support added thanks to code from @docteurfitness
|
||||||
* @see <https://wordpress.org/support/topic/auto-load-post-compatibility-update/>
|
* @see <https://wordpress.org/support/topic/auto-load-post-compatibility-update/>
|
||||||
|
@ -68,6 +68,10 @@
|
||||||
* @since 2.3.0 swap Custom CSS migration Boolean from 'migration complete' to 'show legacy' 2020-12-27T1243+0100
|
* @since 2.3.0 swap Custom CSS migration Boolean from 'migration complete' to 'show legacy' 2020-12-27T1243+0100
|
||||||
* @since 2.4.0 syntax validation for balanced footnote start and end tags 2021-01-01T0227+0100
|
* @since 2.4.0 syntax validation for balanced footnote start and end tags 2021-01-01T0227+0100
|
||||||
* @since 2.4.0 scroll offset to a safety default value 34 right in the properties section 2021-01-03T2056+0100
|
* @since 2.4.0 scroll offset to a safety default value 34 right in the properties section 2021-01-03T2056+0100
|
||||||
|
* @since 2.4.0 initialize scroll offset variable to 34 as a more robust default, thanks to @lukashuggenberg 2021-01-04T0504+0100
|
||||||
|
* @since 2.4.0 set empty reference container label to NNBSP to make it more robust, thanks to @lukashuggenberg 2021-01-04T0504+0100
|
||||||
|
* @since 2.4.0 optimize template load and process, thanks to @misfist 2021-01-04T1355+0100
|
||||||
|
* @since 2.4.0 initialize hard link address as empty to fix undefined variable bug, thanks to @a223123131 2021-01-04T1622+0100
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// If called directly, abort:
|
// If called directly, abort:
|
||||||
|
@ -143,6 +147,17 @@ class MCI_Footnotes_Task {
|
||||||
*/
|
*/
|
||||||
public static $l_int_ReferenceContainerId = 1;
|
public static $l_int_ReferenceContainerId = 1;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Load tooltip inline script only if jQuery tooltips are enabled
|
||||||
|
* Streamline process depending on tooltip enabled status
|
||||||
|
*
|
||||||
|
* @author Patrizia Lutz @misfist
|
||||||
|
*
|
||||||
|
* @since 2.4.0d0
|
||||||
|
*/
|
||||||
|
public static $l_bool_TooltipsEnabled = false;
|
||||||
|
public static $l_bool_AlternativeTooltipsEnabled = false;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Hard links for AMP
|
* Hard links for AMP
|
||||||
*
|
*
|
||||||
|
@ -153,9 +168,10 @@ class MCI_Footnotes_Task {
|
||||||
* @see <https://wordpress.org/support/topic/footnotes-is-not-amp-compatible/>
|
* @see <https://wordpress.org/support/topic/footnotes-is-not-amp-compatible/>
|
||||||
* @since 2.3.0
|
* @since 2.3.0
|
||||||
* @var bool|str|int
|
* @var bool|str|int
|
||||||
*
|
*
|
||||||
* @since 2.4.0 scroll offset to a safety default value 34 right here 2021-01-03T2055+0100
|
* @since 2.4.0 initialize scroll offset to a safety default value 34 right here 2021-01-03T2055+0100
|
||||||
* Some websites are using really high fixed headers not contracting at scroll.
|
* By accident, this variable may not be updated with settings storage.
|
||||||
|
* Websites may use high fixed headers not contracting at scroll.
|
||||||
*/
|
*/
|
||||||
public static $l_bool_HardLinksEnable = false;
|
public static $l_bool_HardLinksEnable = false;
|
||||||
public static $l_str_ReferrerLinkSlug = 'r';
|
public static $l_str_ReferrerLinkSlug = 'r';
|
||||||
|
@ -409,10 +425,10 @@ class MCI_Footnotes_Task {
|
||||||
}
|
}
|
||||||
|
|
||||||
// tooltips:
|
// tooltips:
|
||||||
$l_bool_TooltipsEnabled = MCI_Footnotes_Convert::toBool(MCI_Footnotes_Settings::instance()->get(MCI_Footnotes_Settings::C_BOOL_FOOTNOTES_MOUSE_OVER_BOX_ENABLED));
|
self::$l_bool_TooltipsEnabled = MCI_Footnotes_Convert::toBool(MCI_Footnotes_Settings::instance()->get(MCI_Footnotes_Settings::C_BOOL_FOOTNOTES_MOUSE_OVER_BOX_ENABLED));
|
||||||
$l_bool_AlternativeTooltipsEnabled = MCI_Footnotes_Convert::toBool(MCI_Footnotes_Settings::instance()->get(MCI_Footnotes_Settings::C_BOOL_FOOTNOTES_MOUSE_OVER_BOX_ALTERNATIVE));
|
self::$l_bool_AlternativeTooltipsEnabled = MCI_Footnotes_Convert::toBool(MCI_Footnotes_Settings::instance()->get(MCI_Footnotes_Settings::C_BOOL_FOOTNOTES_MOUSE_OVER_BOX_ALTERNATIVE));
|
||||||
|
|
||||||
if ($l_bool_TooltipsEnabled) {
|
if (self::$l_bool_TooltipsEnabled) {
|
||||||
|
|
||||||
echo '.footnote_tooltip {';
|
echo '.footnote_tooltip {';
|
||||||
|
|
||||||
|
@ -467,7 +483,7 @@ class MCI_Footnotes_Task {
|
||||||
}
|
}
|
||||||
|
|
||||||
// alternative tooltips:
|
// alternative tooltips:
|
||||||
if ( ! $l_bool_AlternativeTooltipsEnabled) {
|
if ( ! self::$l_bool_AlternativeTooltipsEnabled) {
|
||||||
|
|
||||||
// tooltip position:
|
// tooltip position:
|
||||||
$l_int_MaxWidth = MCI_Footnotes_Settings::instance()->get(MCI_Footnotes_Settings::C_INT_FOOTNOTES_MOUSE_OVER_BOX_MAX_WIDTH);
|
$l_int_MaxWidth = MCI_Footnotes_Settings::instance()->get(MCI_Footnotes_Settings::C_INT_FOOTNOTES_MOUSE_OVER_BOX_MAX_WIDTH);
|
||||||
|
@ -535,7 +551,7 @@ class MCI_Footnotes_Task {
|
||||||
echo "\r\n</style>\r\n";
|
echo "\r\n</style>\r\n";
|
||||||
|
|
||||||
// alternative tooltip script printed formatted not minified:
|
// alternative tooltip script printed formatted not minified:
|
||||||
if ($l_bool_AlternativeTooltipsEnabled) {
|
if (self::$l_bool_AlternativeTooltipsEnabled) {
|
||||||
?>
|
?>
|
||||||
<script content="text/javascript">
|
<script content="text/javascript">
|
||||||
function footnoteTooltipShow(footnoteTooltipId) {
|
function footnoteTooltipShow(footnoteTooltipId) {
|
||||||
|
@ -754,7 +770,7 @@ class MCI_Footnotes_Task {
|
||||||
* @return string
|
* @return string
|
||||||
*
|
*
|
||||||
* Edited since 2.0.0
|
* Edited since 2.0.0
|
||||||
*
|
*
|
||||||
* @since 2.4.0 footnote shortcode syntax validation
|
* @since 2.4.0 footnote shortcode syntax validation
|
||||||
*/
|
*/
|
||||||
public function search($p_str_Content, $p_bool_ConvertHtmlChars, $p_bool_HideFootnotesText) {
|
public function search($p_str_Content, $p_bool_ConvertHtmlChars, $p_bool_HideFootnotesText) {
|
||||||
|
@ -816,13 +832,19 @@ class MCI_Footnotes_Task {
|
||||||
|
|
||||||
// load referrer templates if footnotes text not hidden:
|
// load referrer templates if footnotes text not hidden:
|
||||||
if (!$p_bool_HideFootnotesText) {
|
if (!$p_bool_HideFootnotesText) {
|
||||||
// load two template files:
|
|
||||||
if (MCI_Footnotes_Convert::toBool(MCI_Footnotes_Settings::instance()->get(MCI_Footnotes_Settings::C_BOOL_FOOTNOTES_MOUSE_OVER_BOX_ALTERNATIVE))) {
|
// load footnote referrer template file:
|
||||||
|
if (self::$l_bool_AlternativeTooltipsEnabled) {
|
||||||
$l_obj_Template = new MCI_Footnotes_Template(MCI_Footnotes_Template::C_STR_PUBLIC, "footnote-alternative");
|
$l_obj_Template = new MCI_Footnotes_Template(MCI_Footnotes_Template::C_STR_PUBLIC, "footnote-alternative");
|
||||||
} else {
|
} else {
|
||||||
$l_obj_Template = new MCI_Footnotes_Template(MCI_Footnotes_Template::C_STR_PUBLIC, "footnote");
|
$l_obj_Template = new MCI_Footnotes_Template(MCI_Footnotes_Template::C_STR_PUBLIC, "footnote");
|
||||||
}
|
}
|
||||||
$l_obj_TemplateTooltip = new MCI_Footnotes_Template(MCI_Footnotes_Template::C_STR_PUBLIC, "tooltip");
|
|
||||||
|
// load tooltip inline script if jQuery tooltips are enabled:
|
||||||
|
if (self::$l_bool_TooltipsEnabled && ! self::$l_bool_AlternativeTooltipsEnabled) {
|
||||||
|
$l_obj_TemplateTooltip = new MCI_Footnotes_Template(MCI_Footnotes_Template::C_STR_PUBLIC, "tooltip");
|
||||||
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
$l_obj_Template = null;
|
$l_obj_Template = null;
|
||||||
$l_obj_TemplateTooltip = null;
|
$l_obj_TemplateTooltip = null;
|
||||||
|
@ -911,11 +933,13 @@ class MCI_Footnotes_Task {
|
||||||
$l_int_Index = MCI_Footnotes_Convert::Index($l_int_FootnoteIndex, MCI_Footnotes_Settings::instance()->get(MCI_Footnotes_Settings::C_STR_FOOTNOTES_COUNTER_STYLE));
|
$l_int_Index = MCI_Footnotes_Convert::Index($l_int_FootnoteIndex, MCI_Footnotes_Settings::instance()->get(MCI_Footnotes_Settings::C_STR_FOOTNOTES_COUNTER_STYLE));
|
||||||
|
|
||||||
// display only a truncated footnote text if option enabled:
|
// display only a truncated footnote text if option enabled:
|
||||||
$l_str_ExcerptText = $l_str_FootnoteText;
|
|
||||||
$l_bool_EnableExcerpt = MCI_Footnotes_Convert::toBool(MCI_Footnotes_Settings::instance()->get(MCI_Footnotes_Settings::C_BOOL_FOOTNOTES_MOUSE_OVER_BOX_EXCERPT_ENABLED));
|
$l_bool_EnableExcerpt = MCI_Footnotes_Convert::toBool(MCI_Footnotes_Settings::instance()->get(MCI_Footnotes_Settings::C_BOOL_FOOTNOTES_MOUSE_OVER_BOX_EXCERPT_ENABLED));
|
||||||
$l_int_MaxLength = intval(MCI_Footnotes_Settings::instance()->get(MCI_Footnotes_Settings::C_INT_FOOTNOTES_MOUSE_OVER_BOX_EXCERPT_LENGTH));
|
$l_int_MaxLength = intval(MCI_Footnotes_Settings::instance()->get(MCI_Footnotes_Settings::C_INT_FOOTNOTES_MOUSE_OVER_BOX_EXCERPT_LENGTH));
|
||||||
|
|
||||||
if ($l_bool_EnableExcerpt) {
|
// define excerpt text as footnote text by default:
|
||||||
|
$l_str_ExcerptText = $l_str_FootnoteText;
|
||||||
|
|
||||||
|
if (self::$l_bool_TooltipsEnabled && $l_bool_EnableExcerpt) {
|
||||||
$l_str_DummyText = strip_tags($l_str_FootnoteText);
|
$l_str_DummyText = strip_tags($l_str_FootnoteText);
|
||||||
if (is_int($l_int_MaxLength) && strlen($l_str_DummyText) > $l_int_MaxLength) {
|
if (is_int($l_int_MaxLength) && strlen($l_str_DummyText) > $l_int_MaxLength) {
|
||||||
$l_str_ExcerptText = substr($l_str_DummyText, 0, $l_int_MaxLength);
|
$l_str_ExcerptText = substr($l_str_DummyText, 0, $l_int_MaxLength);
|
||||||
|
@ -1006,7 +1030,7 @@ class MCI_Footnotes_Task {
|
||||||
"index" => $l_int_Index,
|
"index" => $l_int_Index,
|
||||||
"after" => MCI_Footnotes_Settings::instance()->get(MCI_Footnotes_Settings::C_STR_FOOTNOTES_STYLING_AFTER),
|
"after" => MCI_Footnotes_Settings::instance()->get(MCI_Footnotes_Settings::C_STR_FOOTNOTES_STYLING_AFTER),
|
||||||
"anchor-element" => $l_str_ReferrerAnchorElement,
|
"anchor-element" => $l_str_ReferrerAnchorElement,
|
||||||
"text" => MCI_Footnotes_Convert::toBool(MCI_Footnotes_Settings::instance()->get(MCI_Footnotes_Settings::C_BOOL_FOOTNOTES_MOUSE_OVER_BOX_ENABLED)) ? $l_str_ExcerptText : "",
|
"text" => self::$l_bool_TooltipsEnabled ? $l_str_ExcerptText : "",
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
$l_str_FootnoteReplaceText = $l_obj_Template->getContent();
|
$l_str_FootnoteReplaceText = $l_obj_Template->getContent();
|
||||||
|
@ -1014,11 +1038,9 @@ class MCI_Footnotes_Task {
|
||||||
// reset the template
|
// reset the template
|
||||||
$l_obj_Template->reload();
|
$l_obj_Template->reload();
|
||||||
|
|
||||||
if (
|
// if standard tooltips are enabled but alternative are not:
|
||||||
// standard tooltip is enabled:
|
if (self::$l_bool_TooltipsEnabled && ! self::$l_bool_AlternativeTooltipsEnabled) {
|
||||||
MCI_Footnotes_Convert::toBool(MCI_Footnotes_Settings::instance()->get(MCI_Footnotes_Settings::C_BOOL_FOOTNOTES_MOUSE_OVER_BOX_ENABLED)) &&
|
|
||||||
!MCI_Footnotes_Convert::toBool(MCI_Footnotes_Settings::instance()->get(MCI_Footnotes_Settings::C_BOOL_FOOTNOTES_MOUSE_OVER_BOX_ALTERNATIVE))
|
|
||||||
) {
|
|
||||||
$l_int_OffsetY = intval(MCI_Footnotes_Settings::instance()->get(MCI_Footnotes_Settings::C_INT_FOOTNOTES_MOUSE_OVER_BOX_OFFSET_Y));
|
$l_int_OffsetY = intval(MCI_Footnotes_Settings::instance()->get(MCI_Footnotes_Settings::C_INT_FOOTNOTES_MOUSE_OVER_BOX_OFFSET_Y));
|
||||||
$l_int_OffsetX = intval(MCI_Footnotes_Settings::instance()->get(MCI_Footnotes_Settings::C_INT_FOOTNOTES_MOUSE_OVER_BOX_OFFSET_X));
|
$l_int_OffsetX = intval(MCI_Footnotes_Settings::instance()->get(MCI_Footnotes_Settings::C_INT_FOOTNOTES_MOUSE_OVER_BOX_OFFSET_X));
|
||||||
$l_int_FadeInDelay = intval(MCI_Footnotes_Settings::instance()->get(MCI_Footnotes_Settings::C_INT_MOUSE_OVER_BOX_FADE_IN_DELAY ));
|
$l_int_FadeInDelay = intval(MCI_Footnotes_Settings::instance()->get(MCI_Footnotes_Settings::C_INT_MOUSE_OVER_BOX_FADE_IN_DELAY ));
|
||||||
|
@ -1254,7 +1276,10 @@ class MCI_Footnotes_Task {
|
||||||
// INDEX COLUMN WITH ONE BACKLINK PER TABLE ROW
|
// INDEX COLUMN WITH ONE BACKLINK PER TABLE ROW
|
||||||
|
|
||||||
// if enabled, and for the case the footnote is single, compose hard link:
|
// if enabled, and for the case the footnote is single, compose hard link:
|
||||||
if (self::$l_bool_HardLinksEnable) {
|
// define variable as empty for the reference container if not enabled:
|
||||||
|
$l_str_HardLinkAddress = '';
|
||||||
|
|
||||||
|
if (self::$l_bool_HardLinksEnable) {
|
||||||
|
|
||||||
// compose fragment ID anchor with offset, for use in reference container, an
|
// compose fragment ID anchor with offset, for use in reference container, an
|
||||||
// empty span child of empty span to avoid tall dotted rectangles in browser:
|
// empty span child of empty span to avoid tall dotted rectangles in browser:
|
||||||
|
@ -1459,6 +1484,9 @@ class MCI_Footnotes_Task {
|
||||||
// streamline:
|
// streamline:
|
||||||
$l_bool_CollapseDefault = MCI_Footnotes_Convert::toBool(MCI_Footnotes_Settings::instance()->get(MCI_Footnotes_Settings::C_BOOL_REFERENCE_CONTAINER_COLLAPSE));
|
$l_bool_CollapseDefault = MCI_Footnotes_Convert::toBool(MCI_Footnotes_Settings::instance()->get(MCI_Footnotes_Settings::C_BOOL_REFERENCE_CONTAINER_COLLAPSE));
|
||||||
|
|
||||||
|
// prevent empty from being less robust:
|
||||||
|
$l_str_ReferenceContainerLabel = MCI_Footnotes_Settings::instance()->get(MCI_Footnotes_Settings::C_STR_REFERENCE_CONTAINER_NAME);
|
||||||
|
|
||||||
// load 'templates/public/reference-container.html':
|
// load 'templates/public/reference-container.html':
|
||||||
$l_obj_TemplateContainer = new MCI_Footnotes_Template(MCI_Footnotes_Template::C_STR_PUBLIC, "reference-container");
|
$l_obj_TemplateContainer = new MCI_Footnotes_Template(MCI_Footnotes_Template::C_STR_PUBLIC, "reference-container");
|
||||||
$l_obj_TemplateContainer->replace(
|
$l_obj_TemplateContainer->replace(
|
||||||
|
@ -1466,7 +1494,7 @@ class MCI_Footnotes_Task {
|
||||||
"post_id" => self::$l_int_PostId,
|
"post_id" => self::$l_int_PostId,
|
||||||
"container_id" => self::$l_int_ReferenceContainerId,
|
"container_id" => self::$l_int_ReferenceContainerId,
|
||||||
"element" => MCI_Footnotes_Settings::instance()->get(MCI_Footnotes_Settings::C_STR_REFERENCE_CONTAINER_LABEL_ELEMENT),
|
"element" => MCI_Footnotes_Settings::instance()->get(MCI_Footnotes_Settings::C_STR_REFERENCE_CONTAINER_LABEL_ELEMENT),
|
||||||
"name" => MCI_Footnotes_Settings::instance()->get(MCI_Footnotes_Settings::C_STR_REFERENCE_CONTAINER_NAME),
|
"name" => empty($l_str_ReferenceContainerLabel) ? ' ' : $l_str_ReferenceContainerLabel,
|
||||||
"button-style" => !$l_bool_CollapseDefault ? 'display: none;' : '',
|
"button-style" => !$l_bool_CollapseDefault ? 'display: none;' : '',
|
||||||
"style" => $l_bool_CollapseDefault ? 'display: none;' : '',
|
"style" => $l_bool_CollapseDefault ? 'display: none;' : '',
|
||||||
"content" => $l_str_Body,
|
"content" => $l_str_Body,
|
||||||
|
|
|
@ -4,12 +4,12 @@
|
||||||
Plugin URI: https://wordpress.org/plugins/footnotes/
|
Plugin URI: https://wordpress.org/plugins/footnotes/
|
||||||
Description: time to bring footnotes to your website! footnotes are known from offline publishing and everybody takes them for granted when reading a magazine.
|
Description: time to bring footnotes to your website! footnotes are known from offline publishing and everybody takes them for granted when reading a magazine.
|
||||||
Author: Mark Cheret
|
Author: Mark Cheret
|
||||||
Version: 2.4.0d0
|
Version: 2.4.0
|
||||||
Author URI: http://cheret.de/plugins/footnotes-2/
|
Author URI: http://cheret.de/plugins/footnotes-2/
|
||||||
Text Domain: footnotes
|
Text Domain: footnotes
|
||||||
Domain Path: /languages
|
Domain Path: /languages
|
||||||
*/
|
*/
|
||||||
define( 'FOOTNOTES_VERSION', '2.4.0d0' );
|
define( 'FOOTNOTES_VERSION', '2.4.0' );
|
||||||
/*
|
/*
|
||||||
Copyright 2020 Mark Cheret (email: mark@cheret.de)
|
Copyright 2020 Mark Cheret (email: mark@cheret.de)
|
||||||
|
|
||||||
|
|
13
readme.txt
13
readme.txt
|
@ -4,7 +4,7 @@ Tags: footnote, footnotes, bibliography, formatting, notes, Post, posts, referen
|
||||||
Requires at least: 3.9
|
Requires at least: 3.9
|
||||||
Tested up to: 5.6
|
Tested up to: 5.6
|
||||||
Requires PHP: 5.6
|
Requires PHP: 5.6
|
||||||
Stable Tag: 2.3.0
|
Stable Tag: 2.4.0
|
||||||
License: GPLv3 or later
|
License: GPLv3 or later
|
||||||
License URI: http://www.gnu.org/licenses/gpl-3.0.html
|
License URI: http://www.gnu.org/licenses/gpl-3.0.html
|
||||||
|
|
||||||
|
@ -81,13 +81,16 @@ Visit this swift write-up from a **footnotes** user by the name of **Southwest**
|
||||||
== Changelog ==
|
== Changelog ==
|
||||||
|
|
||||||
= 2.4.0 =
|
= 2.4.0 =
|
||||||
|
- Bugfix: initialize hard link address as empty to fix undefined variable bug, thanks to @a223123131
|
||||||
- Bugfix: Shortcodes: Dashboard: warning about '>' escapement disruption in WordPress Block Editor
|
- Bugfix: Shortcodes: Dashboard: warning about '>' escapement disruption in WordPress Block Editor
|
||||||
- Bugfix: Shortcodes: Dashboard: remove new option involving HTML comment tags only usable in source mode
|
- Bugfix: Shortcodes: Dashboard: remove new option involving HTML comment tags only usable in source mode
|
||||||
- Add: Customization: support for custom templates in active theme, thanks to @misfist
|
- Add: Customization: Enable template location stack, contributed by @misfist
|
||||||
|
- Bugfix: optimize template load and process according to settings, thanks to @misfist
|
||||||
- Add: Shortcodes: syntax validation for balanced footnote start and end tag short codes
|
- Add: Shortcodes: syntax validation for balanced footnote start and end tag short codes
|
||||||
- Add: Reference container: Row borders: more options for border width, style and color
|
- Bugfix: Reference container: Row borders: adapt left padding to the presence of an optional left border
|
||||||
- Bugfix: Reference container: Row borders: adapt left padding to the presence of a left border
|
- Bugfix: Reference container: Label: set empty label to U+202F NNBSP for more robustness, thanks to @lukashuggenberg
|
||||||
- Bugfix: Reference container: add class footnote_plugin_symbol to disambiguate repurposed class footnote_plugin_link
|
- Bugfix: Scroll offset: initialize to safer one third window height for more robustness, thanks to @lukashuggenberg
|
||||||
|
- Bugfix: Reference container: add class 'footnote_plugin_symbol' to disambiguate repurposed class footnote_plugin_link
|
||||||
|
|
||||||
= 2.3.0 =
|
= 2.3.0 =
|
||||||
- Add: optional hard links in referrers and backlinks for AMP compatibility, thanks to @psykonevro and @martinneumannat
|
- Add: optional hard links in referrers and backlinks for AMP compatibility, thanks to @psykonevro and @martinneumannat
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
note-for-developers.txt
|
note-for-developers.txt
|
||||||
2020-12-19T0609+0100
|
2020-12-19T0609+0100
|
||||||
|
Last modified: 2021-01-01T2249+0100
|
||||||
Last modified: 2021-01-02T1207+0100
|
|
||||||
|
|
||||||
Footnotes plugin for WordPress, v2.2.6 and later
|
Footnotes plugin for WordPress, v2.2.6 and later
|
||||||
|
|
||||||
|
@ -11,7 +10,7 @@ Support for custom templates
|
||||||
Since v2.2.6, Footnotes supports custom templates.
|
Since v2.2.6, Footnotes supports custom templates.
|
||||||
|
|
||||||
Custom templates may be loaded from a sibling folder 'footnotes-custom'
|
Custom templates may be loaded from a sibling folder 'footnotes-custom'
|
||||||
or since v2.4.0 from a folder 'templates/footnotes/' in the active theme.
|
or since v2.3.1 from a folder 'templates/footnotes/' in the active theme.
|
||||||
|
|
||||||
Priority order:
|
Priority order:
|
||||||
1. active theme
|
1. active theme
|
||||||
|
|
Reference in a new issue