Wordpress - 如何在执行 1 次短代码后读取 Post HTML 输出
Wordpress - How to read Post HTML output after 1 shortcode execution
我有自定义的 WP 插件,通常会在 Post 中注册一些简码和 运行 它们。
一个 Post 通常有 2 个或更多这样的简码。
我需要查明第一个简码是否已执行并以某种方式更改 Post HTML - 所以第二个和下一个 运行 简码不会替换 HTML第一个简码 运行.
但我不知道怎么做。
我知道,应该通过向 [shortcode first_run="true"] 之类的简码添加一些参数来完成,但这是最后一个可接受的解决方案,因为它需要更改以前生成的简码Post秒。
我知道我不能使用 get_the_content() - 它在短代码 运行 之前显示来自数据库的 Post 内容。
我知道我不能使用 the_content() - 因为它会循环 WP 运行
感谢您的帮助。
我的代码示例(我想它并没有太大帮助,但是..只是想像一下):
function joreviewstable_func( $atts ) {
if (is_singular() || is_tag() ) {
$a = shortcode_atts( array(
'type' => "",
'id' => NULL,
'params' => NULL,
'limit' => NULL,
'tablesorter_disable' => NULL,
'disallow_images' => NULL,
'product_ids' => NULL,
'manufacturer' => NULL,
'manufacturer_serie' => NULL,
'no_sum' => NULL,
'custom_order' => NULL,
'vertical_design' => NULL
), $atts );
require_once( plugin_dir_path( __FILE__ ) . 'inc/shortcode.php');
$return = jo_reviews_shortcode_generate_table( $a['type'], $a['id'], $a['params'],
$a['limit'], $a['tablesorter_disable'], $a['disallow_images'],
$a['product_ids'], $a['manufacturer'], $a['manufacturer_serie'],
$a['no_sum'], $a['custom_order'], $a['vertical_design'] );
//$return = "<table><tr><td>data</td></tr></table>";
return $return;
} else {
return NULL;
}
add_shortcode( 'joreviewstable', 'joreviewstable_func' );
jo_reviews_shortcode_generate_table 函数发挥了一些作用,returns html 回到了 joreviewstable_func。
但我不知道如何将已编辑的 Post HTML 包含到 strpos 中。
您可以使用全局变量来完成。
f.e.
function joreviewstable_func( $atts ) {
global $first_run;
if(!empty($first_run)) return;
$first_run=1;
//REST LINES HERE
}
我有自定义的 WP 插件,通常会在 Post 中注册一些简码和 运行 它们。 一个 Post 通常有 2 个或更多这样的简码。 我需要查明第一个简码是否已执行并以某种方式更改 Post HTML - 所以第二个和下一个 运行 简码不会替换 HTML第一个简码 运行.
但我不知道怎么做。
我知道,应该通过向 [shortcode first_run="true"] 之类的简码添加一些参数来完成,但这是最后一个可接受的解决方案,因为它需要更改以前生成的简码Post秒。 我知道我不能使用 get_the_content() - 它在短代码 运行 之前显示来自数据库的 Post 内容。 我知道我不能使用 the_content() - 因为它会循环 WP 运行
感谢您的帮助。
我的代码示例(我想它并没有太大帮助,但是..只是想像一下):
function joreviewstable_func( $atts ) {
if (is_singular() || is_tag() ) {
$a = shortcode_atts( array(
'type' => "",
'id' => NULL,
'params' => NULL,
'limit' => NULL,
'tablesorter_disable' => NULL,
'disallow_images' => NULL,
'product_ids' => NULL,
'manufacturer' => NULL,
'manufacturer_serie' => NULL,
'no_sum' => NULL,
'custom_order' => NULL,
'vertical_design' => NULL
), $atts );
require_once( plugin_dir_path( __FILE__ ) . 'inc/shortcode.php');
$return = jo_reviews_shortcode_generate_table( $a['type'], $a['id'], $a['params'],
$a['limit'], $a['tablesorter_disable'], $a['disallow_images'],
$a['product_ids'], $a['manufacturer'], $a['manufacturer_serie'],
$a['no_sum'], $a['custom_order'], $a['vertical_design'] );
//$return = "<table><tr><td>data</td></tr></table>";
return $return;
} else {
return NULL;
}
add_shortcode( 'joreviewstable', 'joreviewstable_func' );
jo_reviews_shortcode_generate_table 函数发挥了一些作用,returns html 回到了 joreviewstable_func。
但我不知道如何将已编辑的 Post HTML 包含到 strpos 中。
您可以使用全局变量来完成。
f.e.
function joreviewstable_func( $atts ) {
global $first_run;
if(!empty($first_run)) return;
$first_run=1;
//REST LINES HERE
}