在Wordpress页面中使用URL查询字符串变量或发布

时间:2017-06-15 15:06:57

标签: php wordpress

我想访问和使用WordPress页面中的URL中传递的变量(不是模板文件,而是页面本身)。

这就是我想要完成的事情。我想创建一个单页,通过使用URL中的短代码和页面上的其他地方传递的文本来显示不同的WP内容。因此,如果URL指定为:

www.greenneedham.org/blog/topicpage/?topic=solar

我将能够在短代码和页面中的其他位置使用传递的文本('solar'),如下所示:

[documents category_name="solar" numberposts="-1" orderby="title" order="ASC"]

理想情况下,我希望能够创建一个我可以在页面文本中使用的变量或字段。我只是不知道如何做到这一点。

这是我考虑/尝试的内容:

1)有些插件可以访问传递的变量(例如URL参数),但这似乎需要嵌套的短代码:

[documents category_name="[urlparam param="topic" default="home-energy-savings"/]" numberposts="-1" orderby="title" order="ASC"]

这不起作用,我不知道有任何方法可以实现这一点。

已添加http://codex.wordpress.org/Shortcode_API#Square_Brackets上的Shortcode API文档说明短代码解析器无法处理属性中的方括号。不幸的是,这正是我想要做的。

如果这不起作用,现在的问题是 - 在页面内容中是否有某种方式呈现基于查询变量修改的短代码字符串?
EndAdded

2)使用过滤器添加变量允许我访问页面模板中的变量(例如page.php),但我想在页面本身中使用该值。

3)插件允许在页面或帖子中使用PHP代码段。这似乎通常是气馁的。它也很复杂,页面本身(可能由非编码人员使用)将难以使用。

非常感谢任何帮助或指导。谢谢!

1 个答案:

答案 0 :(得分:0)

add_shortcode('cat','get_name');

function get_name(){

返回'[category_name ='。$ _ GET ['topic']”。 numberposts =“-1” orderby =“ title” order =“ ASC”]';

}

or echo do_shortcode('[[category_name ='。$ _ GET ['topic']。'numberposts =“-1” orderby =“ title” order =“ ASC”]'); //而不是返回。

应作为摘要功能使用。然后将其用作[cat]简码