验证 WordPress 标题是否以字符开头
Verify if WordPress title starts with character
我正在尝试验证 WordPress post 标题是否以某些前 3 个字符开头以达到条件。这是我尝试过的,它带回了标题本身。
$verify = the_title();
if(substr($verify,0,3) == '000'){
$maptitle = 'test 1';
} else {
$maptitle = 'none';}
你应该使用 get_the_title()
。 the_title()
会将标题打印到屏幕上。在您的情况下,您需要 return 标题以便您可以解析它。
$verify = get_the_title();
https://developer.wordpress.org/reference/functions/get_the_title/
如果你想使用 the_title()
,你可以,但你需要指定你想要 returned 的值。
$verify = the_title('', '', false);
https://developer.wordpress.org/reference/functions/get_the_title/
如何使用 https://codex.wordpress.org/Plugin_API/Filter_Reference/wp_insert_post_data
在编辑时应用过滤器
function my_wp_insert_post_data_filter( $data )
{
if( substr( $data['post_title'], 0, 3 ) == '000' )
{
$data['post_title'] = 'test 1';
}
else
{
$data['post_title'] = 'none';
}
return $data;
}
add_filter( 'wp_insert_post_data', 'my_wp_insert_post_data_filter' );
使用 "exact" 比较,否则它将通过将类型强制转换为 0 或 false 进行比较,并且会向您显示误导性记录
将 if 更改为
if (substr(get_the_title(), 0, 3) === '000') {
注意是三个=
我正在尝试验证 WordPress post 标题是否以某些前 3 个字符开头以达到条件。这是我尝试过的,它带回了标题本身。
$verify = the_title();
if(substr($verify,0,3) == '000'){
$maptitle = 'test 1';
} else {
$maptitle = 'none';}
你应该使用 get_the_title()
。 the_title()
会将标题打印到屏幕上。在您的情况下,您需要 return 标题以便您可以解析它。
$verify = get_the_title();
https://developer.wordpress.org/reference/functions/get_the_title/
如果你想使用 the_title()
,你可以,但你需要指定你想要 returned 的值。
$verify = the_title('', '', false);
https://developer.wordpress.org/reference/functions/get_the_title/
如何使用 https://codex.wordpress.org/Plugin_API/Filter_Reference/wp_insert_post_data
在编辑时应用过滤器function my_wp_insert_post_data_filter( $data )
{
if( substr( $data['post_title'], 0, 3 ) == '000' )
{
$data['post_title'] = 'test 1';
}
else
{
$data['post_title'] = 'none';
}
return $data;
}
add_filter( 'wp_insert_post_data', 'my_wp_insert_post_data_filter' );
使用 "exact" 比较,否则它将通过将类型强制转换为 0 或 false 进行比较,并且会向您显示误导性记录
将 if 更改为
if (substr(get_the_title(), 0, 3) === '000') {
注意是三个=