如何调用页面/帖子中的函数来动态生成内容?

时间:2012-10-09 作者:Sven

我在文件中添加了以下函数functions.php

function contentGenerator($param) {
   if($param) {
      echo "Content true";
   } else {
      echo "Content false";
   }
}
如何在specific 博客帖子或页面?

2 个回复
最合适的回答,由SO网友:hampusn 整理而成

如果你谈论的是帖子/页面的内容,这是不可能的。这里有三种不同的方法来解决你的问题。第一种方法可以将生成的内容添加到帖子(或页面)的内容中。其他两个将打印在一个模板文件中。E、 g.在您的single.phppage.php.

1. Shortcode

这或多或少是从Shortcode API 示例。把它放在你的functions.php 或者在您的自定义插件中。

您可以使用以下语法包含帖子或页面所见即所得的函数:

[unique_shortcode_name foo="123" bar="medium"]
将此放在您的函数中。php或您的自定义插件之一:

add_shortcode(\'unique_shortcode_name\', \'generate_content\');
function generate_content($attributes) {
    // Parses the parameters/attributes and makes them available as variables.
    extract(shortcode_atts(array(
        \'foo\' => \'default value for foo\',
        \'bar\' => \'default value for bar\',
    ), $attributes));

    // Generate stuff
    $output = complex_content_generation_goes_here();

    return $output;
}
您还可以创建一个包含内容的短代码。封闭短代码使您能够将文本作为参数。可以这样称呼:

[unique_shortcode_name foo="123"]Some text input[/unique_shortcode_name]
Shortcode API documentation.

2. Page template

这将使您能够为page (这不适用于常规职位)。这是关于Page templates.

您可以根据现有模板文件创建模板,如page.php. 唯一的要求是在模板文件的顶部放置多行注释,如下所示:

<?php
/*
Template Name: Products Page
*/
?>
实际上对文件名没有任何要求,但尽量不要命名,这样WordPress就可以通过模板层次结构获取文件名(请参见nr 3)。如果您这样做,WordPress可能也会将您的模板用于其他页面,这将给您带来意外的结果。

如果正确执行了上述操作,则在编辑或创建页面时,应该会在页面属性下看到一个带有下拉列表的模板部分。像这样:

Image showing the template settings on a page edit

3. Template Hierarchy

The Template Hierarchy 决定当前页面视图应使用哪个模板,并通过按其名称查找适当的文件来执行此操作。有a really descriptive image of the Template Hierarchy 在抄本上。请检查这一点,以更好地了解模板层次结构的工作原理。

SO网友:dipali

contentGenerator($param);
只需将此代码放入第页即可。php文件
如果在函数中定义函数。php函数可以在主题的多个模板文件中使用。

结束

相关推荐

pre_get_posts on a page

是否可以使用pre_get_posts 滤器我试过了,但似乎不起作用。function pre_wp_queries( $query ) { // only trigger on main qyery if ( !$query->is_main_query() ) return; if (is_page_template(\'TEMPLATE_NAME.php\')) { $query->