Como incorporar o conteúdo da página em uma postagem do blog

4

Eu criei uma tabela HTML publicada em uma página do meu site e gostaria de usar o mesmo conteúdo em uma postagem do blog (algo como um anúncio da publicação da tabela). É provável que a tabela seja atualizada de tempos em tempos, por isso gostaria de ter uma única fonte para fins de manutenção.

Existe uma maneira de fazer uma incorporação única da origem da tabela na postagem do blog, para que ela seja sempre atualizada quando a página é atualizada? Não se espera que isso aconteça com freqüência, então eu não quero colocar muita gordura no trabalho.

Obrigado antecipadamente!

EDITAR

Então eu criei uma solução shortcode realmente curta usando enlace

extract(shortcode_atts(array('arg' => 'default'), $atts));
$id = 2328;
$post = get_post( $id );
return apply_filters('the_content', $post->post_content );

Obrigado a todos que ajudaram. Eu não tenho representante para fazer votos positivos, mas quando tiver mais pontos.

    
por patrickgamer 17.08.2012 / 16:32

3 respostas

3

Crie um shortcode para incorporar o conteúdo. Isso sempre será sincronizado.

Exemplo de código de um projeto antigo. Acabado de atualizar. :)

GitHub: enlace · Esta publicação em Alemão ( auf Deutsch ) no meu 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 );
}

Apenas certifique-se de não incorporar dois posts, vice-versa.

    
por fuxia 17.08.2012 / 16:56
1

Eu procuraria usar a API SHortcode do WordPress:

enlace

Isso permitirá que você crie algo nos moldes de [announceTable] ou de modo que você possa chamar os dados e o estilo da tabela, conforme representado na página original (que também é o Shortcode). Então, quando você quiser atualizar a tabela, atualize o Shortcode em si.

Espero ter entendido o que você queria e que isso ajude. Programação feliz!

    
por Jeff Shinn 17.08.2012 / 16:45
0

Se você está procurando uma solução rápida e fácil, talvez queira dar uma olhada na Tabela WP Plug-in recarregado .

Isso permite que os usuários criem quantas (ou tão pequenas) tabelas que quiserem, que são exibidas adicionando um shortcode simples no conteúdo da página / postagem.

Como está vinculado por meio do shortcode, o usuário pode atualizar a tabela e ela será alterada em todos os lugares aos quais ela está vinculada.

Eu usei isso em um site da empresa onde o conteúdo é composto de muitas tabelas técnicas e tem sido ótimo como onde houve alguma alteração nas especificações. Eu só vou ao admin e atualizo a tabela e então é atualizado em todos os lugares.

    
por Vince Pettit 17.08.2012 / 18:03