web-dev-qa-db-ja.com

ブログ投稿にページコンテンツを埋め込む方法

私は私のサイトのページに投稿されるHTMLテーブルを作成しました、そして私はその同じコンテンツをブログ投稿の中で使いたいのです(テーブルの公表のアナウンスのようなものです)。テーブルは時々更新される可能性があるので、メンテナンス目的のために単一の情報源を持ちたいです。

ページの更新時に常に更新されるように、テーブルのソースをブログ投稿に1回限りで埋め込むことができる方法はありますか。これは頻繁に起こるとは予想されていないので、私はこの作品を作るのにたくさんの肘のグリースを入れたくありません。

前もって感謝します!

編集

だから私は 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 );

助けてくれた皆さんに感謝します。私は回答を支持する代表者を持っていません、しかし、私は私がより多くのポイントを得るとき私はします。

4
patrickgamer

コンテンツを埋め込むためのショートコードを作成します。これは常に同期します。

古いプロジェクトからのサンプルコード。更新しました。 :)

GitHub: https://Gist.github.com/3380118 ・ドイツ語のこの投稿(auf Deutsch私のブログで

<?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 );
}

2つの投稿を逆に埋めないようにしてください。

3
fuxia

私はWordPressのSHortcode APIを使ってみるでしょう。

http://codex.wordpress.org/Shortcode_API

これにより、[announceTable]などの行に沿って何かを作成して、元のページ(Shortcodeでもあ​​る)に表されているようにテーブルのデータとスタイルを呼び出すことができます。それからあなたがテーブルを更新したいとき、あなたはショートコード自体を更新します。

私はあなたが何を望んでいたか、そしてこれが助けになることを私が理解したことを願っています。ハッピープログラミング!

1
Jeff Shinn

あなたが迅速で簡単な解決策を探しているなら、 WP-Table Reloadedプラグイン を見たいと思うかもしれません。

これにより、ユーザーは必要な数だけ(またはできるだけ少ない数の)テーブルを作成してから、ページ/投稿コンテンツに簡単なショートコードを追加して表示できます。

ショートコードでリンクされているので、ユーザーはテーブルを更新することができ、リンク先のどこでも変更されます。

私はこれを会社のWebサイトで使用しました。そこでは、コンテンツが多くのテクニカルテーブルで構成されていて、管理者に移動してテーブルを更新すると、どこでも更新されます。

0
Vince Pettit