将WordPress快捷码转换为纯html

时间:2018-09-12 作者:Alessandro Biagini

我正在WordPress根文件夹上构建一个静态登录页,我需要从位于wp-content 目录

我要做的是导入$post = get_post($post_id) 包含我的短代码的帖子,然后我将其提取->

$输出=应用\\u筛选器(\'内容\',$发布->发布\\u内容);

我终于做到了->

echo do\\u短代码($输出);

这里的问题是,我在页面上只显示了短代码的原始格式,如[shortcode];

有一种方法可以将短代码转换为纯html,这样我的页面就可以正确显示它,或者我缺少一些require/include 在某处我已经添加了define( \'WP_USE_THEMES\', false ); require "wp-load.php";

2 个回复
最合适的回答,由SO网友:Alessandro Biagini 整理而成

对于其他对此感到好奇的人:我决定添加WPBMap::addAllMappedShortcodes(); 到我的函数,它呈现所有短代码!

define( \'WP_USE_THEMES\', false ); 
require_once "wp-load.php";
require_once "wp-content/themes/salient/functions.php";
/*
Function that gets an object containing post data
and returns in output the post_content value.

Return string.
*/
function get_post_content(){

    //renderize shortcode
    WPBMap::addAllMappedShortcodes();

    $post = get_post(INSERT_POST_NUMBER);
    $output = apply_filters( \'the_content\', $post->post_content );
    $value = do_shortcode($output);
    return $value;
}

SO网友:Pim

首先,您有一个语法错误。如果您的短代码存储在$output 变量,则需要调用echo do_schortcode($output);.

但是,不仅仅是the_content(); 达到理想的结果我相信如果你这样做的话,短代码将会被处理。

您可以使用进行新查询WP_Query, 然后使用the_content() 消息灵通的

$args = array(
  \'post_type\' => \'post\', // This selects only posts
  \'post_status\' => \'publish\' // Only published posts
);
// The Query
$the_query = new WP_Query( $args );

// The Loop
if ( $the_query->have_posts() ) {
    echo \'<ul>\';
    while ( $the_query->have_posts() ) {
        $the_query->the_post(); ?>
        <li><?php the_content(); ?></li>
    <?php }
    echo \'</ul>\';
    /* Restore original Post Data */
    wp_reset_postdata();
} else {
    // no posts found
}

结束

相关推荐

Shortcode with foreach

我不能对foreach使用shortcode。它给了我语法错误。我错在哪里?function create_galeri_shortcode($atts) { $atts = shortcode_atts( array( ), $atts, \'galeri\' ); if ( has_post_format( \'gallery\' )) { $images = get_post_