自动将帖子ID/标题等秘密传递到短码表单中,以将提交链接到帖子

时间:2018-03-20 作者:Ebe

The issue

插件短代码在每个帖子下面显示一个表单。在这样显示的表单中,有许多可见字段需要用户填写。还有一个隐藏字段,用于更新仅在后端可见的元键,并在其中放置值,如图所示。我想偷偷地传递表单(通过快捷码)出现的帖子的ID(或标题、姓名或slug等),这样我至少知道表单是从哪里填写的。

请考虑调整您的解决方案,以便初学者能够理解。(我的问题历史记录显示)

我试过很多方法$post 过去20天的变量-假设它是超全局的,使用挂钩,但提交表单时的新会话意味着我无法访问post数据。。。要么在functions.php 文件或插件PHP文件-同样,通过PHP POST方法发送数据似乎过于费力(它还放置了一个额外的提交按钮)。

我现在迷失了方向!

我有权访问$post 在循环中,在显示的单个帖子上-但我希望任何帖子属性(ID/标题/slug等)在有人点击提交时自动填充到该字段!!!?

注:自$post 无法访问,直接放置在“值”字段中时,这些操作均无效:$post->ID $post->ID post_id $postid $post_id {$postid} {$post_id} the_ID ID get_the_ID();the_title(); get_queried_object_id()

1 个回复
SO网友:Milo

如果在此处放置唯一的占位符值,则可以通过the_content 过滤器,它在呈现短代码之后,但在模板中输出内容之前运行。

例如,这将替换replacethisthing 使用post ID:

function wpd_replace_something_in_the_content( $content ){
    return str_replace( "replacethisthing", get_the_ID(), $content );
}
add_filter( \'the_content\', \'wpd_replace_something_in_the_content\', PHP_INT_MAX );

结束

相关推荐

PHP code inside Shortcode

我有一个显示我上传的mp3链接的代码, <?php the_field(\'preview\'); ?> 但我想把它显示在这个短代码中,上面写着MP3文件的URL; <?php echo do_shortcode(\"[sc_embed_player fileurl=\"URL OF THE MP3 FILE\"]\"); ?> 我对这样做有意见。基本上,短代码是一个播放按钮,\\u字段预览显示播放按钮播放mp3链接所需的mp3链接。