0

我想在前端列出一些 pod 项目。为此,我通常使用pods简码。为了过滤数据,我where在 pod 短代码中使用属性。例如:

[pods name="salon" where="author.ID = '2'"]
    <li>{@name}</li>
[/pods]

我想按author.ID. 用户应该看到自己创建的 pod 项。可以通过 wordpress api 访问当前用户 global $current_user;。也可以通过使用 Pods 的魔法标签来获得它{@user.ID}

但问题是我不能在短代码中使用 php 代码或魔法标签,例如:

[pods name="salon" where="author.ID = '{@user.ID}'"]

我正在寻找一种方法来克服这个问题。

我想也许我可以编写一个新的简码函数,我可以在其中获取当前用户的 ID,然后调用pods简码函数,如下所示:

function pods_by_current_user($atts) {
    $current_user = wp_get_current_user();
    $user_id = $current_user->ID;
    // put it into 'where' attribute and delegate to the "pods" function

你认为这是解决这个问题的正确方法吗?您知道如何将其余部分放入$user_id实际的短代码功能$atts并将其委托给实际的pods短代码功能吗?

4

1 回答 1

1

在您的 pods_by_current_user 函数中,尝试执行以下操作:

$atts[ 'where' ] = 'author.ID = ' . (int) $user_id;

然后返回正常的 Pods 简码:

return pods_shortcode( $atts );

这将允许您像往常一样使用任何普通的 [pods] 短代码属性,但会将“位置”设置为自动限制为当前用户 ID。我相信你可以让这更复杂,但这会做你所追求的。

于 2012-11-21T17:22:22.547 回答