Как встроить содержимое страницы в сообщение в блоге


Я создал таблицу 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 );

Спасибо всем, кто помог. У меня нет репутации, чтобы озвучивать ответы, но я сделаю это, когда наберу больше очков.

Author: fuxia, 2012-08-17

3 answers

Создайте шорткод для встраивания содержимого. Это всегда будет синхронизировано.

Пример кода из более старого проекта. Только что обновлено. :)

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

Просто убедитесь, что не вставляете два сообщения наоборот.

 3
Author: fuxia, 2012-08-17 17:40:35

Я бы посмотрел на использование API шорткодов WordPress:

Http://codex.wordpress.org/Shortcode_API

Это позволит вам создать что-то вроде [Объявляемый] или что-то подобное, чтобы вы могли вызывать данные и стиль таблицы, представленные на исходной странице (которая также является шорткодом). Затем, когда вы хотите обновить таблицу, вы обновляете сам шорткод.

Надеюсь, я понял, чего вы хотели, и что это помогает. Счастливый программирование!

 1
Author: Jeff Shinn, 2012-08-17 14:45:26

Если вы ищете быстрое и простое решение, вы можете взглянуть на Плагин перезагрузки WP-таблицы.

, Который позволяет пользователям создавать столько (или так мало) таблиц, сколько им нравится, которые затем отображаются путем добавления простого шорткода в содержимое страницы/публикации.

Поскольку он связан с помощью шорткода, пользователь может затем обновить таблицу, и она изменится везде, где она связана.

Я использовал его на веб-сайте компании, где создается контент составлено множество технических таблиц, и это было здорово, так как там, где были какие-либо изменения в спецификациях, я просто иду к администратору и обновляю таблицу, а затем она обновляется повсюду.

 0
Author: Vince Pettit, 2012-08-17 16:03:02