描述
The Ten&Two XSLT Processor plugin brings the power of PHP’s XSL extension to WordPress. Once enabled, the plugin creates three (3) shortcodes – [xslt_transform_xml/]
, [xslt_select_xml/]
, and [xslt_select_csv/]
– which can be used separately or in tandem to enrich your site with content from XML and CSV sources. The plugin also enables two (2) custom post types – XSL Stylesheets
and XML Documents
– for managing and validating sources within WP Admin.
Detailed documentation and sample code can be found at https://plugins.tenandtwo.com/
Custom Post Types
The XSLT Processor plugin provides two (2) custom post types for managing sources within WordPress – XSL Stylesheets
and XML Documents
. Both types include basic syntax validation. XML Documents can be validated further using DTD, XSD, or RNG. Both types are enabled in Settings > XSLT Processor Settings > Activate Content Types.
Shortcode : [xslt_transform_xml/]
[xslt_transform_xml/] is the plugin's primary function. This shortcode processes XML data using an XSL stylesheet, and then outputs the result as HTML, more XML, or as simple TEXT.
[xslt_transform_xml xsl="{file|url|id|slug}" xml="{file|url|id|slug}" /]
[xslt_transform_xml xsl="{file|url|id|slug}"]<DATA>...</DATA>[/xslt_transform_xml]
If either the xsl
or xml
parameter is left unspecified, defaults are used. The default XML value is <NODATA/>
. The default XSL stylesheet prints all of the incoming data as HTML. If extra attributes are specified in the shortcode – eg, mykey="myval"
– those keys/values are passed along as parameters to the stylesheet – <xsl:param name="mykey"/>
.
Shortcode : [xslt_select_xml/]
[xslt_select_xml/] is a helper function. It reads XML and returns a selection of the data, based on a supplied XPath expression. There are two (2) options for specifying the XPath. First, using the `select` attribute or, second, using the body of the shortcode. Complex select statements with quotes, square brackets or other special syntax, should use the second pattern :
[xslt_select_xml xml="{file|url|id|slug}" select="{XPath}" /]
[xslt_select_xml xml="{file|url|id|slug}"]{XPath}[/xslt_select_xml]
If the XPath select parameter is left unspecified, the default /
is used, which returns the entire document. The default output is format="xml"
. If format="json"
is specified, the result is encoded as a JSON string.
Shortcode : [xslt_select_csv/]
[xslt_select_csv/] is a helper function for converting CSV file data to XML. The result can be output directly as an HTML `<table>`, or the result can be passed to `[xslt_transform_xml/]` for further processing.
[xslt_select_csv csv="{file|url}" /]
[xslt_select_csv]{csv,data}[/xslt_select_csv]
Three (3) parameters – separator
, enclosure
, escape
– control reading the input. See PHP’s fgetcsv()
function for details.
[xslt_select_csv separator="," enclosure="\"" escape="\\" /]
Two (2) parameters – key_row
, col
– control writing columns to the output. The key_row
attribute is optional, but allows labels from that row to be used in col
and key_col
.
[xslt_select_csv key_row="{num}" col="{num|letter|label}+" /]
Three (3) parameters – row
, key_col
, key
– control writing rows to the output.
[xslt_select_csv row="{num}+" /]
[xslt_select_csv key_col="{num|letter|label}" key="{val}+" /]
Nested Shortcodes
Combine [xslt_transform_xml]
with [xslt_select_xml]
:
[xslt_transform_xml][xslt_select_xml/][/xslt_transform_xml]
Combine [xslt_transform_xml]
with [xslt_select_csv]
:
[xslt_transform_xml][xslt_select_csv/][/xslt_transform_xml]
Combine [xslt_transform_xml]
with itself using [/xslt_transform_alias]
(WP does not support nested shortcodes with identical names) :
[xslt_transform_alias][xslt_transform_xml/][/xslt_transform_alias]
Combine multiple shortcodes/sources to create a single XML Document
(see Custom Post Types above) :
<DATA><PART1>[xslt_select_xml xml="f1.xml" /]</PART1><PART2>[xslt_select_xml xml="f2.xml" /]</PART2></DATA>
Cache Parameters
When a shortcode specifies a remote file – xml="{url}"
or csv="{url}"
– that source is cached locally using WP Transients. The default cache duration is set in the XSLT Processor Settings. To override the default, add cache="{minutes}"
to the shortcode.
[xslt_transform_xml xml="{url}" cache="{minutes}" /]
[xslt_select_xml xml="{url}" cache="{minutes}" /]
[xslt_select_csv csv="{url}" cache="{minutes}" /]
Namespace Parameters
Within [xslt_select_xml/]
the plugin provides two (2) methods for handling XML containing namespaces. The first is to add strip-namespaces
to the shortcode. The second method is to add the needed prefixes and namespace URIs using xslns
.
[xslt_select_xml xml="{file}" strip-namespaces="yes" select="//node" /]
[xslt_select_xml xml="{file}" xmlns="ns1" ns1="{namespace-uri-1}" select="//ns1:node" /]
[xslt_select_xml xml="{file}" xmlns="ns1 ns2" ns1="{namespace-uri-1}" ns2="{namespace-uri-2}" select="//ns1:node/ns2:node" /]
WP-CLI
All three (3) shortcodes have command-line equivalents. They can be used, for instance, to run quick tests. Or they can be used, by piping the outputs into files, to pre-generate results.
-
wp xslt transform_xml --xsl='{file|url|id|slug}' --xml='{file|url|id|slug}' --cache='{minutes, if xsl|xml={url}}' --tidy='{yes|html}' or tidy or --tidy='xml' --{myparam}='{myvalue}' --outfile='{filepath}' --htmlentities or --htmlentities='yes'
-
wp xslt select_xml --xml='{file|url|id|slug}' --cache='{minutes, if xml={url}}' --select='{xpath}' --root='{nodename|empty}' --tidy='{yes|html}' or tidy or --tidy='xml' --strip-namespaces='yes' or strip-namespaces --strip-declaration='no' --format='{xml|json}' --htmlentities or --htmlentities='yes'
-
wp xslt select_csv --csv='{file|url}' --cache='{minutes, if csv={url}}' --separator=',' --enclosure='\"' --escape='\\' --key_row='{row number for column labels}' --col='{return column number(s), letter(s), or label(s)}' --key_col='{col number, letter, or label for key matching}' --key='{value(s) for key_col matching}' --row='{return row number(s)}' --class='{css classname(s) for result table}' --htmlentities or --htmlentities='yes'
XSL Stylesheets
The XSLT Processor plugin includes a number of useful XSL templates that you can include and use in your own projects. They are grouped into five files.
- date.xsl :
date-format
,date-microtime
- file.xsl :
file-exists-local
,file-exists-remote
- string.xsl :
string-replace
,string-upper
,string-lower
,string-title-case
,string-trim
,string-rtrim
,string-ltrim
,string-maxlength
,string-maxwords
,string-add-slashes
,string-urlencode
,string-strip-tags
,string-nl2br
,string-entity-decode
,string-to-nodeset
- util.xsl :
util-bytsize
,util-hash-data
,util-print-nodes
,util-print-node-names
,util-super-global
- wp.xsl :
wp-select-xml
,wp-select-csv
,wp-post-item
,wp-post-meta
,wp-sanitize-title
,wp-size-format
Requirements
The Ten&Two XSLT Processor plugin relies upon PHP’s XSL extension. If the extension is installed, the XSLT Processor Settings screen will display a message similar to the first message below. If LIBXSLT_VERSION
is undefined, all plugin options are disabled automatically and the second message is displayed.
PHP's XSL extension is available : XSLT v1.1.32, EXSLT v1.1.32, LIBXML v2.9.4
PHP's XSL extension is NOT available
The XSL extension’s requirements are detailed at php.net – https://www.php.net/manual/en/book.xsl.php
“This extension requires the libxml PHP extension. This means passing the –with-libxml,
or prior to PHP 7.4 the –enable-libxml, configuration flag, although this is implicitly
accomplished because libxml is enabled by default.This extension uses libxslt which can be found at » http://xmlsoft.org/XSLT/. libxslt
version 1.1.0 or greater is required.”
屏幕截图
安装
WordPress installation
- Go to Plugins > Add New > Search for “tenandtwo-xslt-processor”
- Press “Install Now” for the “Ten&Two XSLT Processor” plugin
- Press “Activate Plugin”
WP-CLI installation
wp plugin install tenandtwo-xslt-processor --activate
Manual installation
- Download the latest archive from the Plugin Homepage : https://wordpress.org/plugins/tenandtwo-xslt-processor
- Upload the
tenandtwo-xslt-processor
directory to your/wp-content/plugins/
directory - Activate the plugin through the “Plugins” menu in WordPress
For more details on installation options, see Manage Plugins at wordpress.org – https://wordpress.org/documentation/article/manage-plugins/
常见问题
-
Where are the plugin options?
-
In WordPress, go to Settings > XSLT Processor Settings. There are four (4) sections :
- Activate Content Types
- Activate Shortcodes
- Cache Lifetime
- Local File Search Paths
-
Where is the documentation?
-
For a quick reference to the shortcodes and their main parameters, go to Settings > XSLT Processor Settings. The samples for each shortcode show common usage.
Full documentation and working examples are available at https://plugins.tenandtwo.com/. There are four (4) main sections :
- Getting Started : https://plugins.tenandtwo.com/xslt-processor/getting-started
- Shortcodes : https://plugins.tenandtwo.com/xslt-processor/shortcodes
- Stylesheets : https://plugins.tenandtwo.com/xslt-processor/stylsheets
- How To : https://plugins.tenandtwo.com/xslt-processor/how-to
评价
此插件暂无评价。
贡献者及开发者
更新日志
1.0.x
- Initial Release
- Add WP-CLI commands
- Test with WP 6.5