WordPress-如何为自定义生成的内容调用默认页面模板()

【WordPress-如何为自定义生成的内容调用默认页面模板()】我已经开发了一种拦截器, 用于在匹配用户定义的块时呈现自定义页面。用户可以定义这些页面及其标签, 并将它们存储在表中。
我的问题是:如何为动态内容周围的页面添加默认模板(针对当前主题)?它的行为应与用户进入” 新页面” 并手动输入此内容完全相同。
我的第一步是像这样包含页眉, 侧栏和页脚($ myhtml包含要发出的自定义html内容):

get_header(); print $myhtml; get_sidebar(); get_footer();

但是, 这样做的结果与使用常规页面模板不一致, 并且对页面主题模板的结构方式做出了一些假设。
是否有另一种方法可以使用提供的内容来呈现默认页面模板?像这样吗此处的基本做法是什么?
render_with_page_temaplte($myhtml)

#1我不知道为什么你要这样做, 而不是仅仅创建标准的WordPress页面。
但是你应该在主题中查找page.php-这将具有用于显示每个页面的结构。用$ myhtml变量替换the_content(), 它应该与你想要的变量接近。
#2+1, 因为我也追求主题独立的自定义页面解决方案-但在你的情况下, 如果你不需要更改< head> 元标记等, 并且可以明确标识用户信息, 则可能没有必要, 如下所示可能是你的解决方案。
仅作为概念, 因为我还需要更改元标记, 这对我来说是没有用的, 因此我尚未进行测试, 并且可能错过了一些阻止其工作的内容:
  1. 通过页面编辑器创建一个名为” 用户” 的新普通页面, 其唯一内容就是你的简码(请参见下文)。例如[my_user_html]
  2. 在你的站点功能插件或自定义页面插件的替代品中(如有必要, 请创建一个)并添加以下内容:
创建页面重写规则:
function user_rewrite_rules($rules) { global $wp_rewrite; //AFTER ACTIVATING THIS PLUGIN YOU NEED TO RE_SAVE PERMALINKS ON DASHBOARD TO LOAD THIS REWRITE RULE $user_rule = array( 'users/(.+)/?' => 'index.php?pagename=' . 'users' . '& usersslug=$matches[1]' ); return array_merge($user_rule, $rules); } add_filter('page_rewrite_rules', 'user_rewrite_rules');

这会将” example.com/users/david” 的请求” 转换” 为” example.com/index.php?pagename=users& usersslug=david” 。注意:” users /” 之后的任何内容现在都将位于” usersslug” 中, 例如” 大卫” 或” 大卫/电影”
我们需要让Wordpress知道查询变量。所以:
function my_query_vars_filter($vars) { $vars[] = 'usersslug'; return $vars; } add_filter( 'query_vars', 'my_query_vars_filter' );

添加你的my_user_html简码功能
function user_insert_in_post($attrs, $content = null) { $my_params = get_query_var('usersslug'); // then use $my_params to determine html to show etc } add_shortcode('my_user_html', 'user_insert_in_post');

  1. 激活插件, 然后从仪表板保存永久链接(为你的用户重写规则更新它们)

    推荐阅读