如何在博客文章中嵌入页面内容

时间:2012-08-17 作者:patrickgamer

我已经构建了一个HTML表,发布在我网站的一个页面上,我希望在博客帖子中使用相同的内容(某种程度上是表发布的公告)。该表可能会不时更新,因此我希望有一个单一的源来进行维护。

是否有一种方法可以一次性将表的源代码嵌入到博客帖子中,以便在页面更新时始终更新?这种情况预计不会经常发生,所以我不想在这方面投入太多精力。

提前感谢!

编辑

所以我用http://wordpress.org/extend/plugins/shortcode-exec-php/

extract(shortcode_atts(array(\'arg\' => \'default\'), $atts));
$id = 2328;
$post = get_post( $id );
return apply_filters(\'the_content\', $post->post_content );
感谢所有帮助过我的人。我没有代表投票来决定答案,但当我得到更多的分数时,我会的。

3 个回复
最合适的回答,由SO网友:fuxia 整理而成

创建一个短代码以嵌入内容。这将始终同步。

来自旧项目的示例代码。刚刚更新。:)

GitHub:https://gist.github.com/3380118 · 这篇文章是用德语写的on my blog.

<?php # -*- coding: utf-8 -*-
/**
 * Plugin Name: T5 Embed Post Shortcode
 * Description: Embed any page, post or custom post type with shortcode.
 * Plugin URI:  http://wordpress.stackexchange.com/q/62156/73
 * Version:     2012.08.17
 * Author:      Thomas Scholz
 * Author URI:  http://toscho.de
 * License:     MIT
 * License URI: http://www.opensource.org/licenses/mit-license.php
 *
 * T5 Embed Page Shortcode, Copyright (C) 2012 Thomas Scholz
 */

add_shortcode( \'embed_post\', \'t5_embed_post\' );

/**
 * Get a post per shortcode.
 *
 * @param  array $atts There are three possible attributes:
 *         id: A post ID. Wins always, works always.
 *         title: A page title. Show the latest if there is more than one post
 *              with the same title.
 *         type: A post type. Only to be used in combination with one of the
 *              first two attributes. Might help to find the best match.
 *              Defaults to \'page\'.
 * @return string
 */
function t5_embed_post( $atts )
{
    extract(
        shortcode_atts(
            array (
                \'id\'    => FALSE,
                \'title\' => FALSE,
                \'type\'  => \'page\'
            ),
            $atts
        )
    );

    // Not enough input data.
    if ( ! $id and ! $title )
    {
        return;
    }

    $post = FALSE;

    if ( $id )
    {
        $post = get_post( $id );
    }
    elseif( $title )
    {
        $post = get_page_by_title( $title, OBJECT, $type );
    }

    // Nothing found.
    if ( ! $post )
    {
        return;
    }

    return apply_filters( \'the_content\', $post->post_content );
}
只需确保不要嵌入两个帖子,反之亦然。

SO网友:Jeff Shinn

我将研究如何使用WordPress短代码API:

http://codex.wordpress.org/Shortcode_API

这将允许您按照[announceTable]之类的行创建一些内容,以便您可以调用原始页面中表示的表的数据和样式(这也是短代码)。然后,当您想要更新表时,您需要更新短代码本身。

我希望我了解你想要什么,这会有所帮助。快乐编程!

SO网友:Vince Pettit

如果您正在寻找快速简便的解决方案,您可能需要查看WP-Table Reloaded plugin.

这允许用户创建任意多(或尽可能少)的表,然后通过在页面/帖子内容中添加简单的快捷码来显示这些表。

由于它是通过快捷码链接到的,因此用户可以更新表,并且它将在链接到的任何地方更改。

我曾在一家公司网站上使用过它,其中的内容由许多技术表格组成,它非常棒,因为在哪里对规范进行了任何更改,我只是去管理员那里更新表格,然后到处更新。

结束

相关推荐

在我的多站点网络中找到至少发布了一个帖子的随机Blogid

我需要在我的多站点网络中找到一个随机的博客,其中至少有一篇发布了某种post\\u类型的文章,并将其blogid作为变量返回,以便在switch_to_blog() 呼叫我需要弄清楚如何在此场景中构建$randomblog变量(我知道当前的SQL查询是假的):// Find a random blog that has at least one post of post_type published and return its blogid as $randomblog $randomblog