我还是个Wordpress新手,所以(希望)这是一个完全愚蠢的问题。
我需要在一个网站内的几个不同的Wordpress页面中插入相同的嵌入代码(类似于这样的,只是从Tableau公众号上的可视化中复制过来的)(...)。
<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 . "'>
我想把上面这样的东西插入到一个页面模板中,这样我就不用在每个页面中都单独插入稍加修改的代码。
问题是:我应该从哪里加载嵌入代码?如果它改变了,我希望人们能够从管理区编辑它。这应该是一个单一的地方:用户把它粘贴到那里→它被页面模板读取→代码在任何有这个模板的页面中被修改。这也许可以在一个不公开的页面上完成?还有什么其他的技巧吗?
非常感谢!我还是个Wordpress新手。
你可以用WP的ACF创建一个选项页。
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
));
}
按照这个链接可以找到一步步的用法。https:/www.advancedcustomfields.comadd-onsoptions-page