【问题标题】:WordPress Shortcode - Get post data by IDWordPress 简码 - 按 ID 获取帖子数据
【发布时间】:2014-08-23 21:21:53
【问题描述】:

我创建了一个帖子类型名称“Gallery”,并向其中添加了一些帖子元框。现在,假设每个画廊都有一个标题和一个内容。

现在,我想通过 Shortcode 使用该数据。这怎么可能?

例如 -
[画廊 id=x]

我知道如何获取 ID (x) 的值,但是如何输出带有该值 ID 的帖子?

我这样注册这个简码(当然它还没有完成)

function shortcote_gallery( $atts , $content = null ) {
    extract( shortcode_atts(
        array(
            'title' => 'Default Gallery Title'
        ), $
    return "<h3>$title</h3><p>$content</p>";
}
add_shortcode( 'gallery', 'shortcote_gallery' );

我希望我已经足够清楚了。如果没有,请告诉我,以便我更好地解释自己。 提前致谢。

【问题讨论】:

    标签: php wordpress shortcode


    【解决方案1】:

    你需要这个功能吗?或者我没有理解你的问题。 https://codex.wordpress.org/Function_Reference/get_post

    享受您的代码!

    【讨论】:

    • 这确实是解决方案,非常感谢。很抱歉我不能对此表示赞同:(。
    • 不客气 :) 如果解决方案将其标记为胜利。再见
    【解决方案2】:

    在你的例子中:

    [gallery id=x] 将字段id 作为参数。

    所以在你的简码函数中,你也需要提取它。

    function shortcote_gallery( $atts , $content = null ) {
        extract( shortcode_atts(
            array(
                'title' => 'Default Gallery Title',
                'id' => '',
            ), $atts));
        return "<h3>$title</h3><p>$content</p>";
    }
    

    你现在可以用通常的 php 方式做你想做的一切。 $id 现在具有您在帖子中输入的值。因此,如果您想输出具有此 ID 的内容,只需向数据库发起查询并获取您需要的结果。

    如果你有这样的事情:

    global $wpdb;
    $results = $wpdb->get_results("SELECT * FROM `myTable` WHERE id ='".$id."'");
    

    你去格式化输出:

    $content = "You have selected ".$results[0]->myField." with the id: $id";
    return $content;
    

    【讨论】:

    • 非常感谢您的评论。这正是我想要做的,我确信这会奏效。但我不确定 get_results 是否足够安全使用。这是通过ID“拉”帖子的唯一方法吗?再次感谢您。
    • 我对此不是 100% 确定,但您可以(并且应该)对变量进行一些验证。例如,将 id 转换为 int(或检查它是否为 int)。如果你使用内置函数,你应该信任框架。您可以在没有“get_results”-thingy 的情况下访问您的数据库,并使用mysql_real_escape_string() 或其他东西进行正常的 sql 查询。为此,我完全用数据库来做
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-13
    • 2011-06-21
    • 2010-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-23
    相关资源
    最近更新 更多