如何使用帖子ID显示具体的帖子内容

时间:2018-07-06 作者:Yajuvendra

我正在尝试创建一个插件,通过使用post ID来显示特定的post内容。

example:

[post id="2"]

但我不知道如何将POST ID从函数发送到$my_postid 下面是我的代码

function post_function($atts) {
    extract(shortcode_atts(array(
   \'id\' => 21504,
   ), $atts));

 //getting post content
 $my_postid = 21504;//This is page id or post id

$content_post = get_post($my_postid);
$content = $content_post->post_content;
$content = apply_filters(\'the_content\', $content);

return $content;
}
add_shortcode(\'post\', \'post_function\');`

1 个回复
SO网友:Jacob Peattie

首先,我建议不要使用extract(). 这使得很难准确地说出可用变量是什么以及它们是如何设置的,这是这里混乱的一部分。相反,只需使用$atts 直接地执行此操作时,可以在$atts 如下数组:

$id = $atts[\'id\'];
使用shortcode_atts() 确保接受的属性具有默认值,以便在用户未设置id 在短代码上。

当您使用该方法时,您的短代码如下所示:

<?php
function post_function( $atts ) {
    // Set defaults for attributes.
    $atts = shortcode_atts( array(
        \'id\' => 21504,
    ), $atts );

    // Get the ID attribute.
    $post_id = $atts[\'id\'];

    // Get post by ID.
    $post = get_post( $post_id );

    // Check there is a post with that ID. If so, return the content, with filters applied.
    if ( $post ) {
        $content = $post->post_content;

        return apply_filters( \'the_content\', $content );
    }
}
add_shortcode( \'post\', \'post_function\' );

结束

相关推荐

从函数获取返回的变量到ADD_SHORTCODE函数

接下来,我成功地将一个ajax对象传递到后端(JS中的脚本实际上并不重要,因为我已经很好地完成了):add_action( \'wp_ajax_my_action\', \'my_action_callback\' ); add_action( \'wp_ajax_nopriv_my_action\', \'my_action_callback\' ); add_action( \'wp_enqueue_scripts\', \'theme_name_scripts\' ); ad