Html到php var+;解析+;Wordpress->;获取摘录()
我想这是一个解析的问题,但在几个小时后就无法解决了。我已接近解决方案,但陷入困境,开始让我发疯 问题:我无法动态获取我的摘录(描述),因为当我将变量$my_id推入函数get_-extract()时,它似乎返回nullHtml到php var+;解析+;Wordpress->;获取摘录(),php,html,wordpress,Php,Html,Wordpress,我想这是一个解析的问题,但在几个小时后就无法解决了。我已接近解决方案,但陷入困境,开始让我发疯 问题:我无法动态获取我的摘录(描述),因为当我将变量$my_id推入函数get_-extract()时,它似乎返回null {{data[index].选项{u id} 我已经尝试直接按如下方式推送id: <?php $product_description = get_the_excerpt(123456); ?> 你猜怎么着?它起作用了 我还尝试将$my\u id解析为(i
{{data[index].选项{u id}
我已经尝试直接按如下方式推送id:
<?php $product_description = get_the_excerpt(123456); ?>
你猜怎么着?它起作用了
我还尝试将$my\u id解析为(int)。我的gettype()将它作为int返回,但在这种情况下,我的变量返回“0”
echo$my_id正在返回正确的数字(id),因此当我将它推到变量中时,我无法理解它为什么不工作get_摘录($my_id)强>
有什么线索吗
干杯
编辑1:
我已经用vardump&print\r更新了我的代码以查看返回
<?php ob_start(); ?>
{{ data[ index ].option_id }}
<?php $my_id = ob_get_clean(); ?>
<?php var_dump($my_id); ?>
<?php $product_description = get_the_excerpt( $my_id ); ?>
<?php print_r(get_the_excerpt( $my_id )); ?> <!-- return nothing */ -->
<span class="radio_button_desc"><?php echo apply_filters( 'woocommerce_composited_product_excerpt', wpautop( do_shortcode( wp_kses_post( $product_description ) ) ), $product_id, $component_id, $composite ); ?></span>
{{data[index].选项{u id}
输出:
当我通过添加$my\u id=is\u int($my\u id)将其解析为一个整数时,输出$my_id:(int)$my_id;:
这基本上是返回我实际帖子的摘录,不是动态地使用$my_id我的想法是有额外的空格字符打断了字符串到int的转换:
get_the_excerpt( trim( $my_id ) );
或者可能:
get_the_excerpt( (int) trim( $my_id ) );
或删除输出缓冲功能之间的空格:
<?php ob_start(); ?>{{ data[ index ].option_id }}<?php $my_id = ob_get_clean(); ?>
{{data[index].选项{u id}
但是我觉得第一个更安全。我的想法是有额外的空格字符打断了字符串到int的转换:
get_the_excerpt( trim( $my_id ) );
或者可能:
get_the_excerpt( (int) trim( $my_id ) );
或删除输出缓冲功能之间的空格:
<?php ob_start(); ?>{{ data[ index ].option_id }}<?php $my_id = ob_get_clean(); ?>
{{data[index].选项{u id}
但我觉得第一个更安全。这里有一点学术性的东西值得注意:我们总是从ob_get_clean(或ob_get_contents)获取字符串类型的值。因为PHP是松散类型的,因此通常不会对这类事情发出噪音,它会很高兴地将字符串“1”添加到数字中 您可以执行以下任一操作
$my_id = $my_id + 0;
或
或者更好
$my_id = is_int($my_id) ? $my_id : (int) $my_id;
这里有一点学术性的东西值得注意:我们总是从ob_get_clean(或ob_get_contents)获取字符串类型的值。因为PHP是松散类型的,因此通常不会对这类事情发出噪音,它会很高兴地将字符串“1”添加到数字中 您可以执行以下任一操作
$my_id = $my_id + 0;
或
或者更好
$my_id = is_int($my_id) ? $my_id : (int) $my_id;
忘了提到我已经试过了,每当我删除这些额外的空白时,它都会给我(不是从id中动态地)我的产品摘录。所以我猜当我删除这些空格时,会返回$my_id为空,所以“获取_摘录()”。。。而且没有得到摘录($my_id);我已经更新/编辑了我的问题,并添加了一些输出截图。您的截图var_dump显示了一个45个字符的字符串,用于
string(45)“1904463”
大量空白。比较var\u dump($my\u id)代码>到变量转储(修剪($my_id))代码>查看你的浏览器源代码以确认空白。好的,我做了。输出现在是字符串(29),它与:{{data[index].option{u id}}
->29个字符相关,所以我猜这里出现了错误,看起来它没有从{data[index].option{u id}
返回。我不明白为什么当我echo
/print\u r
/var\u dump
我的号码被返回时。你看到的可能是在你的代码被另一个过滤器执行后被处理的?忘了提一下我已经尝试过了,每当我删除这些额外的空白时,它都会给我(不是动态地从id中)我的产品摘录。所以我猜当我删除这些空格时,它会将$my_id返回为空,因此“get_the_extract()”…而不是get_the_extract($my_id);我已经更新/编辑了我的问题,并添加了一些输出截图。您的屏幕截图var_dump为string(45)“1904463”显示了一个由45个字符组成的字符串
大量的空白。将var_dump($my_id);
与var_dump(trim($my_id));
查看浏览器源代码以确认空白。好的,我这样做了。输出现在是字符串(29),与:{data[index].option_id}
->29个字符,所以我猜这里出现了错误,看起来它没有从{data[index].option_id}返回
。我不明白为什么当我echo
/print\u r
/var\u dump
我的号码被返回时,你所看到的可能是在你的代码被另一个过滤器执行后被处理的。我已经尝试了前两个解决方案,但都不起作用。每当我解析它时,它都会给我相同的结果(不是从id动态地)我的产品的摘录。因此,当我解析为“int”时,$my_id返回我0,所以我猜因为$my_id为空,它调用“get_the_extract()”…而不是get_摘录($my_id);写入,ob_start();the_id()$id=ob_get_clean()
不作为_id():正在返回实际帖子的ID。我已经更新/编辑了我的问题,并添加了一些输出截图。我已经尝试了前两种解决方案,但都不起作用。每当我解析它时,它都会给我(而不是从ID动态地)我的产品摘录。所以当我解析为“int”时echo$my_id返回0,所以我猜,因为$my_id为空,它调用“get_the_extract()”…而不是get_the_extract($my_id);write,ob_start();the_id();$id=ob_get_clean();
与_id()不一样:返回实际帖子的id。我已经更新/编辑了我的问题,并添加了一些输出截图。