自定义主题、自定义快捷代码不起作用

时间:2019-05-29 作者:Scott

ENV:WordPress版本5.1/MAMP Pro php版本7.2.14

我正在为一个有旧的自定义主题的站点构建一个新的自定义主题。新站点只是一个主题,而旧站点有一个父主题和一个chid主题。

当我将活动主题更改为新主题时,位于页面内容区域的短代码只呈现短代码的文本。

当我激活“old child”主题时,它会完美呈现。

在我的新自定义主题中,是否有一些我没有做的事情没有启用这些短代码?

启用调试时,无法通过if()语句到达的第196行shortcodes.php

if ( empty( $tagnames ) ) {
    return $content;
}

// line 196 --v
$content = do_shortcodes_in_html_tags( $content, $ignore_html, $tagnames ); 
好像我的快捷码没有正确注册。

shortcode code in functions.php

function first_shortcode() {
    $content = \'<h1>This is my first shortcode</h1>\';
    return $content;
}
add_shortcode(\'my_shortcode\', \'first_shortcode\');
更新添加模板代码段:

第页。php

/**
 *Template Name: Page
 *
 */

global $pageType;
$pageType = "tier"; // this is used as a body tag class

get_header();

get_template_part( \'template-parts/navigation\');

?>
<main id="main" class="main-container">
    <?php
        while ( have_posts() ) :
            the_post();

            get_template_part( \'template-parts/content\', \'page\' );

        endwhile; // End of the loop.
    ?>
</main>

<?php

get_footer();
内容页。php

<?php
/**
 * Template part for displaying page content in page.php
 *
 * @link https://developer.wordpress.org/themes/basics/template-hierarchy/
 *
 * @package hdms
 */
?>

<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>

    <div class="container fat-margin">
        <div class="entry-content">
            <?php
            the_content();
            ?>
            <?php echo do_shortcode("[my_shortcode]"); ?>
            <p><strong>the above lives in php calling:</strong></p>
            <pre>
                &lt;?php echo do_shortcode("[my_shortcode]"); ?&gt;
            </pre>

        </div><!-- .entry-content -->
    </div><!-- .container -->
</article><!-- #post-<?php the_ID(); ?> -->

<小时>Admin (editing) Page Content:

enter image description here

<人力资源>

Rendered using my new theme

enter image description here

<人力资源>Rendered using old theme:

enter image description here

1 个回复
SO网友:Remzi Cavdar

如果您想包含一些HTML,我建议您使用单引号,还需要返回一些内容,否则什么都不会发生。

// WP Shortcode
function text_shortcode() {
    return \'<strong>bold text:</strong> <a href="https://wordpress.stackexchange.com/questions/318934/shortcode-returns-escaped-html-tags">See wordpress.stackexchange.com</a>\';
}
add_shortcode(\'bold-text\', \'text_shortcode\');
您的WordPress短代码为:

[bold-text]
请参阅我的其他答案和示例:
-Shortcode created to check language not works
-Shortcode returns escaped HTML tags