我同意你提到的占位符方法。
您可以向用户提供一个“可接受”占位符列表,然后对其执行regex替换。
诀窍是将带有占位符的字符串存储在数据库中,以便在用户下次访问“选项”页面时向用户显示其输入方式。做你的str_ireplace
或preg_replace
在主题的其他地方使用它之前,先对它施魔法。
<小时>EDIT:
这是我今天提出的代码,可以实现这一点。我假设您已经熟悉设置选项页面。这将让您安全地保存以下内容<a href="{{url}}">{{url}}</a>
进入wp_options
表,并在主题中使用它作为<a href="http://www.wp.dev/hello-world/">http://www.wp.dev/hello-world/</a>
使用选项页保存HTML{{url}}
占位符:
public function parse_placeholder_url( ) {
$placeholder_url = esc_html( $_POST[\'wpse108301\'][\'placeholder_url\'] );
if ( isset( $placeholder_url ) && is_string( $placeholder_url ) ) {
if ( get_option( \'wpse108301_placeholder_url\' ) === false ) {
add_option( \'wpse108301_placeholder_url\', $placeholder_url );
}
else {
update_option( \'wpse108301_placeholder_url\', $placeholder_url );
}
}
else {
$placeholder_url = \'\';
}
return $placeholder_url;
}
public function create_a_url_field() {
?><input type="text" id="wpse108301_placeholder_url" name="wpse108301[placeholder_url]" value="<?php echo stripslashes( get_option( \'wpse108301_placeholder_url\' ) ); ?>" /><?php
}
functions.php
在您的主题中:
function test_link() {
$db_url = stripslashes( get_option( \'wpse108301_placeholder_url\' ) );
$url = preg_replace( \'/\\{\\{\\burl\\b\\}\\}/i\', get_permalink(), $db_url );
return $url;
}
主题模板页面内:
<p><?php echo test_link(); ?></p>