0

ページ上のショートコードのオブジェクト(または配列)を取得しようとしています。つまり、基本的に、ユーザーがページにアンカーを挿入できるショートコードがあり、ページのショートコードに基づいてメニューを動的に出力しようとしています。ユーザーがページレンダリングで入力したものを取得する方法はありますか?

4

1 に答える 1

0

投稿の一部をサイドバーに配置できるようにするために私がしたことは次のとおりです。

header.php で、情報を保持するグローバル変数を定義します。

// Initialize sidebar content.
$GLOBALS['mySidebar'] = '';

ショートコードを実装するたびに、そのグローバル変数に情報を追加する必要があります。私のショートコードは、ショートコード コンテンツの HTML を追加するだけです。ショートコードの意味をキャプチャする必要があります。

add_shortcode('sidebar', 'addToSidebar');

// Add content to the sidebar.
function addToSidebar($attributes, $content) {
    $GLOBALS['mySidebar'] .= do_shortcode($content);
    return '';
}

グローバル変数を使用して、ページ要素をレンダリングします。

<?php if (have_posts()) :
    the_post();

    // Get content first to retrieve the sidebar.
    $content = get_the_content();
    $content = apply_filters('the_content', $content);
    $content = str_replace(']]>', ']]&gt;', $content); ?>

    <?php if (!empty($GLOBALS['mySidebar'])) :?>
        <div id="sidebar"> <?php echo $GLOBALS['mySidebar']; ?> </div>
    <?php endif; ?>
    <div id="content">
    ... render the post.
<?php endif; ?>
于 2011-08-25T21:56:09.677 に答える