如何在短码中插入当前用户ID?

时间:2016-11-22 作者:Bunjip

我有一个名为Pods的插件的短代码,它的用法如下

[pods-form name="user" id="" fields="my_field, my_field_2, my_field_3"] 
参数name 包含自定义帖子类型的名称(此处:增强了WP用户帖子类型)。参数id 现在应接收当前登录用户的用户ID。包含此短代码的页面仅对登录用户可用。如何将当前用户ID作为变量添加到此短代码中?

我在找这样的东西

[pods-form name="user" id="{@user_ID}" fields="my_field, my_field_2, my_field_3"]

1 个回复
SO网友:rudtek

您没有说明如何实现代码:如果您使用的是页面模板或自定义贴子页面,您可以这样做:

<?php

$user_id = get_current_user_id();
if ($user_id == 0) {
    echo \'You are currently not logged in.\';
} else {
    echo do_shortcode(\'[pods-form name="user" id="\'.$user_id.\'" fields="my_field, my_field_2, my_field_3"]\');
}
?>
您是否希望在内容之后或之前在所有页面上添加此内容,您可以将其添加到功能中。php

function 247070_before_after($content) {
    $user_id = get_current_user_id();
    if ($user_id == 0) {
        $formstatement = \'You are currently not logged in.\';
    } else {
        $formstatement = do_shortcode(\'[pods-form name="user" id="\'.$user_id.\'" fields="my_field, my_field_2, my_field_3"]\');
    }

$addlcontent = $formstatement;
$fullcontent = $content . $addlcontent;  //move $addlcontent in front of $content to add your from to the front.
return $fullcontent;
}
add_filter(\'the_content\', \'247070_before_after\');

相关推荐

Set MySQL variables in WPDB

我有一个SQL查询,它可以很好地作为原始SQL查询工作,但是当我将其放入WPDB时,它会抛出一个错误:global $wpdb; $sql = "SET @product_group = (SELECT product_group FROM insert_temporary LIMIT 1); SELECT * FROM insert_temporary WHERE product_group in (SELECT product_group