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

WordPress:从内容字段获取所有短代码

万俟高峻
2023-03-14

我使用自定义短代码来显示我的内容内的引导模式。问题是,

我想更改短代码,只显示模态的链接,并显示模态-

为此,我检查内容字段是否有短代码,如果是这样,我将在内容后显示所有模态。

下面是代码:(从这里开始的部分:https://stackoverflow.com/a/18196564/1788961)

$content = get_sub_field("textfield");
//write the begining of the shortcode
$shortcode = 'term';

$check = strpos($content,$shortcode);
if($check=== false) {
    //echo '<h1>NO Shortcode</h1>';
} else {
    //echo '<h1>HAS Shortcode</h1>';


    $str = '[term value="Term Name" id="600"][term value="Another Term" id="609"]';

    preg_match_all('~\[term value="(.+?)" id="(.+?)"]~', $str, $matches);

    var_dump($matches[2]);

    foreach($matches[2] as $match){
        echo 
            '<div class="modal fade" id="termModal_'.$match.'" tabindex="-1" role="dialog" aria-labelledby="termModal_'.$match.'_Title" aria-hidden="true">
                (rest of modal)
            </div>
        ';


    }


}

到目前为止一切正常。但是现在我需要内容字段中的短代码。

我不知道怎么弄到它们。这是我的短代码:

[term value="Custom Link Title" id="123"]

我需要的ID从每个短代码里面的内容和存储在$str变量。


共有1个答案

常元章
2023-03-14

使用preg\u match()函数的此方法应该可以工作:

$id = 0;
$matches = array();
preg_match('#\[term(.*) id="([0-9]{1,})"(.*)\]#', $content, $matches);
if (count($matches) > 2) {
    $id = $matches[2];
}

无论快捷码属性的顺序如何,它都会起作用,但它假定id属性值周围有双引号,并且该值仅由数字组成。

 类似资料:
  • 问题内容: 我怎么知道我可以从对象/界面访问的字段?我尝试过反射,但看来您必须首先知道字段名称。如果我需要了解所有可用字段怎么办? 问题答案: 您可以使用该函数获取类型描述符。从那里,您可以列出存储在界面中的动态值的字段。 例: 输出: 调用的结果是一个值为,其中包含字段名称以及其他内容: 如果还需要这些字段的值,则可以使用获取,然后可以使用或: 输出: 在Go Playground上尝试一下。

  • 我需要围绕WordPress的短代码翻译的内容。这些是问题的先决条件: 我必须围绕“短代码”,而不是短代码的内容。例如

  • 问题内容: 我正在做大学项目。 我需要从课堂上获取所有字段。甚至是私有的并继承的。我试图获取所有声明的字段,然后转换为超类并重复。我的代码片段: 但这行不通。强制转换后仍然是同一类(不是超类)。 我将感谢您提供任何有关如何解决铸造问题或如何以其他方式检索这些字段的帮助。 问题不是要访问字段,而是要获取字段名称! 我以这种方式进行管理: 问题答案: obj = obj.getClass().getS

  • 问题内容: 我想知道是否有一种方法可以获取java中某个类的所有私有字段及其类型。 例如,假设我有一堂课 现在,我想获得的所有私有字段(,,类)(如果不知道所有领域前期的名称),并检查它们的类型。 问题答案: 有可能获得与方法的所有字段的。然后,您必须检查每个字段的修饰符以查找私有字段: 请注意,这不会返回继承的字段。 最终,您可以使用Field.getType()方法获得字段的类型。

  • 现在,我想获取类的所有私有字段(、、)(事先不知道所有字段的名称)并检查它们的类型。

  • 我试图显示用AFC创建的产品字段的值。我可以看到完整的产品对象,并且值显示正确。愚弄我该用的医生 或 但是值总是空的,我也尝试传递产品id和项目id,如 我已经打印了完整的对象,下面是相关部分 我想打印的是地址,纬度和纬度