gpt4 book ai didi

php - 提取内容中的简码参数 - Wordpress

转载 作者:可可西里 更新时间:2023-11-01 00:30:47 25 4
gpt4 key购买 nike

考虑如下帖子内容:

[shortcode a="a_param"]
... Some content and shortcodes here
[shortcode b="b_param"]
.. Again some content here
[shortcode c="c_param"]

我有一个带有 3 个或更多参数的简码。我想知道短代码在内容及其参数中使用了多少次,例如,

array (
[0] => array(a => a_param, b=> null, c=>null),
[1] => array(a => null, b=> b_param, c=>null),
[2] => array(a => null, b=> null, c=>c_param),
)

我需要在 the_content 过滤器、wp_head 过滤器或类似的东西中执行此操作。

我该怎么做?

谢谢,

最佳答案

在 WordPress 中 get_shortcode_regex()函数返回用于在帖子中搜索简码的正则表达式。

$pattern = get_shortcode_regex();

然后preg_match模式与帖子内容

if (   preg_match_all( '/'. $pattern .'/s', $post->post_content, $matches ) )

如果它返回 true,那么提取的短代码详细信息将保存在 $matches 变量中。

尝试

global $post;
$result = array();
//get shortcode regex pattern wordpress function
$pattern = get_shortcode_regex();


if ( preg_match_all( '/'. $pattern .'/s', $post->post_content, $matches ) )
{
$keys = array();
$result = array();
foreach( $matches[0] as $key => $value) {
// $matches[3] return the shortcode attribute as string
// replace space with '&' for parse_str() function
$get = str_replace(" ", "&" , $matches[3][$key] );
parse_str($get, $output);

//get all shortcode attribute keys
$keys = array_unique( array_merge( $keys, array_keys($output)) );
$result[] = $output;

}
//var_dump($result);
if( $keys && $result ) {
// Loop the result array and add the missing shortcode attribute key
foreach ($result as $key => $value) {
// Loop the shortcode attribute key
foreach ($keys as $attr_key) {
$result[$key][$attr_key] = isset( $result[$key][$attr_key] ) ? $result[$key][$attr_key] : NULL;
}
//sort the array key
ksort( $result[$key]);
}
}

//display the result
print_r($result);


}

关于php - 提取内容中的简码参数 - Wordpress,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32523265/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com