当前位置: 首页 > 知识库问答 >
问题:

Wordpress-如何在执行1个短代码后读取PostHTML输出

何安宜
2023-03-14

我有一个自定义的WP插件,它注册了一些短代码并在Post中运行它们。一个Post通常有两个或多个这样的短代码。我需要找出第一个短代码是否在HTML之后执行并以某种方式更改了——因此第二次和下一次运行的短代码不会替换第一次运行的短代码所生成的HTML。

但我不知道怎么做。

我知道,这应该通过向shortcode添加一些参数来实现,比如[shortcode first_run=“true”],但这是最后一个可以接受的解决方案,因为它需要更改以前在POST中生成的shortcode。我知道我不能使用get_the_content()-它在短代码运行之前显示来自DB的帖子内容。我知道我不能使用_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函数发挥了一些神奇的作用,并将html返回给joreviewstable_func。

但是我不知道,如果它包含一些东西,如何将经过编辑的PostHTML转换成strpos。

共有1个答案

宿景曜
2023-03-14

您可以通过使用全局变量来实现这一点。

F. E.

function joreviewstable_func( $atts ) {
  global $first_run;
  if(!empty($first_run)) return;
  $first_run=1;
  //REST LINES HERE
}
 类似资料:
  • 我有一个短代码(outputURL),用于将值输出到URL中。该值从短代码(valueURL)中检索。valueURL输出是文本包装在div中: 我只需要textForURL值,不包括div标记。到目前为止,我只能输出div标记和文本,而不能输出纯文本的干净版本。 这是我的简码函数: 我进行了研究,并能够将其整合在一起,但我不确定我是否朝着正确执行的方向前进。任何能帮助我实现目标的人都将不胜感激。

  • 我有2个WordPress短代码正在使用: 一章。[章节名称="开始"]...内容...[/章] 目录[toc][/toc]。toc需要显示章节的简单列表。 规范: 一篇文章可以有很多章节。 帖子中可以有一个、两个或没有toc短代码。 toc可以在章节之前或之后,也可以在章节之前和之后。这取决于帖子作者,所以我事先不知道。 我不能使用嵌套的简码,因为这些对作者来说很难使用。 我想到了使用静态toc

  • 我有一个wordpress插件,可以上传用户头像。我正在尝试使用一段显示缩略图的代码,并将其放在一个短代码中,这样我就可以将缩略图放在网站的任何位置。 我对php比较陌生,我知道如何为wordpress启动一个短代码,但我不知道如何构造短代码来承载php。有谁能给我提个建议吗? php下面的代码是插件文件的原文: 我想放在短代码中的代码如下,基本上它显示了缩略图。我试图用这个在functions.

  • 我用WooCommerce插件设置了WordPress,产品被循环输出...直到那里。 我想增加访问者能够投票支持产品的可能性。所以我在找一个插件,找到了一个。 但这才是真正的问题!名为“喜欢照片”的插件为我提供了WordPress简码功能。如果我在WordPress编辑器中插入短代码(图像前后),一切都工作正常。 但是我需要把代码放在PHP文件(循环输出产品的文件)本身。 因此,我尝试使用PHP

  • 问题内容: 我正在对执行SQL到DBMS并检索数据的python模块进行编程。我正在尝试使用jdbc jar文件而不是本机数据库驱动程序。我想知道如何在python中执行jar文件并从jar执行中获取输出。而且我想知道如何将SQL字符串传递给jar参数。这是简化的代码。任何帮助是极大的赞赏。 [Java代码] [python代码] 问题答案: 您可以通过管道读取输出: 关于将字符串传递到stdin

  • 我正在制作wordpress插件,我想用短代码在帖子中插入一些非常庞大的代码。我得到了这个模拟我的问题的简单代码 并发布此内容 给出了这样的结果: 我希望它在开始和结束之间插入“通缉”文本。我知道最简单的解决方案是在want()中返回“want”,但我已经有了所有这些函数,它们非常庞大。有没有一个简单的解决方案,而不必从头开始写? @编辑:也许有什么方法可以将函数的所有回音存储在字符串中而不打印?