在您的页面模板中,您的代码可以是这样简单的:
do_action(\'archive_page_html\');
问题是,如果你正在构建一个插件,让你的用户修改他们的主题模板以在5月份发布,或者可能不是那么理想,但由于不同的主题有不同的模板,而你正在编写插件,这也可能是不可避免的。。。
在插件/主题编码中,您可以添加如下内容:
add_action(\'archive_page_html\',\'custom_archive_page_html\');
function custom_archive_page_html() {
// get your theme option value, however you are doing that
$archivehtml = get_option(\'archive_page_html\');
// allow it to be further customized on a condition basis,
// eg. to use different HTML for different archives
$archivehtml = apply_filters(\'archive_page_html_filter\',$archivehtml);
// process the HTML using the_content filter
// (this will also process any shortcodes)
$archivehtml = apply_filters(\'the_content\',$archivehtml);
echo $archivehtml;
}
然后,这取决于您希望为向每种页面类型添加内容提供何种用户界面。
您可以通过自定义程序在主题选项中添加不同的HTML部分,我看到类似的块也可以这样做。但要获得所见即所得编辑器,您可能必须在插件/主题中添加一个TinyMCE自定义程序控件,例如此项目中的文本编辑器控件:
https://github.com/paulund/Wordpress-Theme-Customizer-Custom-Controls
(为了最好地为自定义程序本身编码以找到教程,这可能有点棘手。)
另一个选项是创建一个仅限管理员的自定义帖子类型来处理模板(请参见register_post_type()
) 并让你的插件/主题自动创建所有带有匹配slug的帖子(请参阅wp_insert_post()
) 激活时(检查它们是否已经存在)。。。然后,该模板内容将可供用户通过该自定义帖子类型的帖子编写屏幕进行编辑对操作功能代码的更改将代替使用get_option
等等。您可以使用get_posts
使用自定义post类型和slug,例如。
$posts = get_posts(array(
\'post_type\' => \'templates\', // The Custom Post Type registered
\'name\' => \'archive\' // The slug for the CPT template created
)
);
$archivehtml = $posts[0]->post_content;
第三种选择是自己将这些接口添加到自己的自定义主题/插件设置页面中,但当然你必须自己决定如何最好地完成这项工作。:-)