Wordpress:将具有不同参数的相同代码插入多个页面
Wordpress: insert same code with different parameters into multiple pages
我仍然是 Wordpress 新手,所以(希望)这是一个完全愚蠢的问题。
我需要插入相同的嵌入代码(像这样,它只是从 Tableau 上的可视化中复制的 Public)(...):
<div class='tableauPlaceholder' id='viz1591173837909' style='position: relative'><noscript><a href='http://issarfwd.cenia.cz/jihocesky-kraj/ovzdusi/'><img alt=' ' src='https://public.tableau.com/static/images/Kr/Kraje-Ovzdu/Emisnsituace/1_rss.png' style='border: none' /></a></noscript><object class='tableauViz' style='display:none;'><param name='host_url' value='https%3A%2F%2Fpublic.tableau.com%2F' /> <param name='embed_code_version' value='3' /> <param name='path' value='views/Kraje-Ovzdu/Emisnsituace?:embed=y&:toolbar=yes&:embed_code_version=3&Parameters.Kraj=Jiho%C4%8Desk%C3%BD%20kraj&:loadOrderID=0&:display_count=y?:embed%3Dy' /> <param name='toolbar' value='yes' /><param name='static_image' value='https://public.tableau.com/static/images/Kr/Kraje-Ovzdu/Emisnsituace/1.png' /> <param name='animate_transition' value='yes' /><param name='display_static_image' value='yes' /><param name='display_spinner' value='yes' /><param name='display_overlay' value='yes' /><param name='display_count' value='yes' /><param name='filter' value='Parameters.Kraj=Jiho%C4%8Desk%C3%BD%20kraj' /></object></div> <script type='text/javascript'> var divElement = document.getElementById('viz1591173837909'); var vizElement = divElement.getElementsByTagName('object')[0]; vizElement.style.width='1024px';vizElement.style.height='850px'; var scriptElement = document.createElement('script'); scriptElement.src = 'https://public.tableau.com/javascripts/api/viz_v1.js'; vizElement.parentNode.insertBefore(scriptElement, vizElement); </script>
进入一个站点内的几个不同的 Wordpress 页面。每次,嵌入代码都应该有一个不同的参数。我选择参数作为页面的副标题,并想出了这段代码(有效):
if (is_page()) {
$subtitle = apply_filters( 'plugins/wp_subtitle/get_subtitle', '', array(
) );
if ((strpos($subtitle , 'kraj') == false) && (strpos($subtitle , 'Praha') == false) && (strpos($subtitle , 'Vysočina') == false)) {$subtitle = "Všechny kraje";};
echo
"<div class='tableauPlaceholder' id='viz1591084101025' style='position: relative'><noscript>
<a href='#'><img alt=' ' src='https://public.tableau.com/static/images/Kr/Kraje-Ovzdu/Emisnsituace/1_rss.png' style='border: none' />
</a></noscript><object class='tableauViz' style='display:none;'><param name='host_url' value='https%3A%2F%2Fpublic.tableau.com%2F' />
<param name='embed_code_version' value='3' /> <param name='path' value='views/Kraje-Ovzdu/Emisnsituace?:embed=y&:display_count=y' />
<param name='filter' value='Parameters.Kraj=" . $query->post->post_title . $subtitle . "'>
<param name='toolbar' value='yes' /><param name='static_image' value='https://public.tableau.com/static/images/Kr/Kraje-Ovzdu/Emisnsituace/1.png' /> <param name='animate_transition' value='yes' /><param name='display_static_image' value='yes' /><param name='display_spinner' value='yes' /><param name='display_overlay' value='yes' /><param name='display_count' value='yes' /></object></div> <script type='text/javascript'> var divElement = document.getElementById('viz1591084101025'); var vizElement = divElement.getElementsByTagName('object')[0];
vizElement.style.width='1024px';vizElement.style.height='850px'; var scriptElement = document.createElement('script'); scriptElement.src = 'https://public.tableau.com/javascripts/api/viz_v1.js'; vizElement.parentNode.insertBefore(scriptElement, vizElement); </script>";}?> ```
嵌入代码(=在上面的引号中)很乱,所以只是为了突出我在其中更改的单个内容:
<param name='filter' value='Parameters.Kraj=" . $query->post->post_title . $subtitle . "'>
我想将类似上面的内容插入到页面模板中,这样我就不必将稍微更改过的代码分别插入到每个页面中。
问题是:我应该从哪里加载嵌入代码?如果它发生变化,我希望人们能够从管理区域对其进行编辑。这应该是一个地方:用户将它粘贴到那里 → 它被页面模板读取 → 代码在具有该模板的任何页面中被更改。这是否可以从不会制作 public 的页面来完成?还有其他提示吗?
非常感谢!
您可以使用 ACF 为 WP 创建一个选项页面:
add_action('acf/init', 'register_my_options_pages');
function register_my_options_pages() {
if( !function_exists('acf_add_options_page') )
return;
$option_page = acf_add_options_page(array(
'page_title' => __('Settings page'),
'menu_title' => __('Settings page'),
'menu_slug' => 'my-general-settings',
'capability' => 'edit_posts',
'redirect' => false
));
}
按照此 link 查找逐步用法:
https://www.advancedcustomfields.com/add-ons/options-page/
我仍然是 Wordpress 新手,所以(希望)这是一个完全愚蠢的问题。
我需要插入相同的嵌入代码(像这样,它只是从 Tableau 上的可视化中复制的 Public)(...):
<div class='tableauPlaceholder' id='viz1591173837909' style='position: relative'><noscript><a href='http://issarfwd.cenia.cz/jihocesky-kraj/ovzdusi/'><img alt=' ' src='https://public.tableau.com/static/images/Kr/Kraje-Ovzdu/Emisnsituace/1_rss.png' style='border: none' /></a></noscript><object class='tableauViz' style='display:none;'><param name='host_url' value='https%3A%2F%2Fpublic.tableau.com%2F' /> <param name='embed_code_version' value='3' /> <param name='path' value='views/Kraje-Ovzdu/Emisnsituace?:embed=y&:toolbar=yes&:embed_code_version=3&Parameters.Kraj=Jiho%C4%8Desk%C3%BD%20kraj&:loadOrderID=0&:display_count=y?:embed%3Dy' /> <param name='toolbar' value='yes' /><param name='static_image' value='https://public.tableau.com/static/images/Kr/Kraje-Ovzdu/Emisnsituace/1.png' /> <param name='animate_transition' value='yes' /><param name='display_static_image' value='yes' /><param name='display_spinner' value='yes' /><param name='display_overlay' value='yes' /><param name='display_count' value='yes' /><param name='filter' value='Parameters.Kraj=Jiho%C4%8Desk%C3%BD%20kraj' /></object></div> <script type='text/javascript'> var divElement = document.getElementById('viz1591173837909'); var vizElement = divElement.getElementsByTagName('object')[0]; vizElement.style.width='1024px';vizElement.style.height='850px'; var scriptElement = document.createElement('script'); scriptElement.src = 'https://public.tableau.com/javascripts/api/viz_v1.js'; vizElement.parentNode.insertBefore(scriptElement, vizElement); </script>
进入一个站点内的几个不同的 Wordpress 页面。每次,嵌入代码都应该有一个不同的参数。我选择参数作为页面的副标题,并想出了这段代码(有效):
if (is_page()) {
$subtitle = apply_filters( 'plugins/wp_subtitle/get_subtitle', '', array(
) );
if ((strpos($subtitle , 'kraj') == false) && (strpos($subtitle , 'Praha') == false) && (strpos($subtitle , 'Vysočina') == false)) {$subtitle = "Všechny kraje";};
echo
"<div class='tableauPlaceholder' id='viz1591084101025' style='position: relative'><noscript>
<a href='#'><img alt=' ' src='https://public.tableau.com/static/images/Kr/Kraje-Ovzdu/Emisnsituace/1_rss.png' style='border: none' />
</a></noscript><object class='tableauViz' style='display:none;'><param name='host_url' value='https%3A%2F%2Fpublic.tableau.com%2F' />
<param name='embed_code_version' value='3' /> <param name='path' value='views/Kraje-Ovzdu/Emisnsituace?:embed=y&:display_count=y' />
<param name='filter' value='Parameters.Kraj=" . $query->post->post_title . $subtitle . "'>
<param name='toolbar' value='yes' /><param name='static_image' value='https://public.tableau.com/static/images/Kr/Kraje-Ovzdu/Emisnsituace/1.png' /> <param name='animate_transition' value='yes' /><param name='display_static_image' value='yes' /><param name='display_spinner' value='yes' /><param name='display_overlay' value='yes' /><param name='display_count' value='yes' /></object></div> <script type='text/javascript'> var divElement = document.getElementById('viz1591084101025'); var vizElement = divElement.getElementsByTagName('object')[0];
vizElement.style.width='1024px';vizElement.style.height='850px'; var scriptElement = document.createElement('script'); scriptElement.src = 'https://public.tableau.com/javascripts/api/viz_v1.js'; vizElement.parentNode.insertBefore(scriptElement, vizElement); </script>";}?> ```
嵌入代码(=在上面的引号中)很乱,所以只是为了突出我在其中更改的单个内容:
<param name='filter' value='Parameters.Kraj=" . $query->post->post_title . $subtitle . "'>
我想将类似上面的内容插入到页面模板中,这样我就不必将稍微更改过的代码分别插入到每个页面中。
问题是:我应该从哪里加载嵌入代码?如果它发生变化,我希望人们能够从管理区域对其进行编辑。这应该是一个地方:用户将它粘贴到那里 → 它被页面模板读取 → 代码在具有该模板的任何页面中被更改。这是否可以从不会制作 public 的页面来完成?还有其他提示吗?
非常感谢!
您可以使用 ACF 为 WP 创建一个选项页面:
add_action('acf/init', 'register_my_options_pages');
function register_my_options_pages() {
if( !function_exists('acf_add_options_page') )
return;
$option_page = acf_add_options_page(array(
'page_title' => __('Settings page'),
'menu_title' => __('Settings page'),
'menu_slug' => 'my-general-settings',
'capability' => 'edit_posts',
'redirect' => false
));
}
按照此 link 查找逐步用法: https://www.advancedcustomfields.com/add-ons/options-page/