Как встроить содержимое страницы в сообщение в блоге
Я создал таблицу 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 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 );
}
Просто убедитесь, что не вставляете два сообщения наоборот.
Я бы посмотрел на использование API шорткодов WordPress:
Http://codex.wordpress.org/Shortcode_API
Это позволит вам создать что-то вроде [Объявляемый] или что-то подобное, чтобы вы могли вызывать данные и стиль таблицы, представленные на исходной странице (которая также является шорткодом). Затем, когда вы хотите обновить таблицу, вы обновляете сам шорткод.
Надеюсь, я понял, чего вы хотели, и что это помогает. Счастливый программирование!
Если вы ищете быстрое и простое решение, вы можете взглянуть на Плагин перезагрузки WP-таблицы.
, Который позволяет пользователям создавать столько (или так мало) таблиц, сколько им нравится, которые затем отображаются путем добавления простого шорткода в содержимое страницы/публикации.
Поскольку он связан с помощью шорткода, пользователь может затем обновить таблицу, и она изменится везде, где она связана.
Я использовал его на веб-сайте компании, где создается контент составлено множество технических таблиц, и это было здорово, так как там, где были какие-либо изменения в спецификациях, я просто иду к администратору и обновляю таблицу, а затем она обновляется повсюду.