首先,我建议不要在post内容插件中使用PHP。创建自己的插件非常简单,只需创建一个php文件并在文件顶部添加一个插件头即可:
<?php
/**
* Plugin Name: Delivery Plugin
*/
将文件上载到plugins目录,并通过admin中的plugins菜单激活它。
从这里开始,我们假设您已经在Pages菜单下创建了一个带有slug的页面delivery
.
下一步是为“pretty”URL添加重写规则和查询变量delivery_location
要保存URL中传递的任何位置的值,请执行以下操作:
function wpd_delivery_rewrite() {
add_rewrite_tag(
\'%delivery_location%\',
\'([^/]+)\'
);
add_rewrite_rule(
\'^delivery/([^/]+)/?\',
\'index.php?pagename=delivery&delivery_location=$matches[1]\',
\'top\'
);
}
add_action( \'init\', \'wpd_delivery_rewrite\' );
将此功能添加到插件文件后,转到管理中的设置>永久链接页面,这将刷新重写规则并激活此规则。
现在您可以访问/delivery/some-location/
您将看到交付页面的内容。
接下来,我们将向the_content
因此,我们可以在查看页面内容时动态将一些文本插入其中:
function wpd_delivery_content( $content ) {
if( false !== get_query_var( \'delivery_location\', false ) ){
$content .= \'Delivery location is \' . get_query_var( \'delivery_location\' );
}
return $content;
}
add_filter( \'the_content\', \'wpd_delivery_content\' );
检查是否
delivery_location
设置,并输出值(如果存在)。您可以在此函数中添加代码,以获取需要输出到页面的任何数据。请注意,函数必须
return
其内容为页面正确呈现,无法通过直接输出
echo
或者直接打印。
最后一步是钩住wp_head
操作,我们可以在其中插入自己的元标记。我们对自定义查询变量执行相同的检查,并输出所需的任何标记:
function wpd_meta_tags(){
if( false !== get_query_var( \'delivery_location\', false ) ){
echo \'<meta name="description" content="\' . get_query_var( \'delivery_location\' ) . \'" />\';
}
}
add_action( \'wp_head\', \'wpd_meta_tags\', 0 );