Wordpress:在多个页面中插入不同参数的相同代码。

问题描述 投票:0回答:1

我还是个Wordpress新手,所以(希望)这是一个完全愚蠢的问题。

我需要在一个网站内的几个不同的Wordpress页面中插入相同的嵌入代码(类似于这样的,只是从Tableau公众号上的可视化中复制过来的)(...)。

<div class='tableauPlaceholder' id='viz1591173837909' style='position: relative'><noscript><a href='http:&#47;&#47;issarfwd.cenia.cz&#47;jihocesky-kraj&#47;ovzdusi&#47;'><img alt=' ' src='https:&#47;&#47;public.tableau.com&#47;static&#47;images&#47;Kr&#47;Kraje-Ovzdu&#47;Emisnsituace&#47;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&#47;Kraje-Ovzdu&#47;Emisnsituace?:embed=y&amp;:toolbar=yes&amp;:embed_code_version=3&amp;Parameters.Kraj=Jiho%C4%8Desk%C3%BD%20kraj&amp;:loadOrderID=0&amp;:display_count=y?:embed%3Dy' /> <param name='toolbar' value='yes' /><param name='static_image' value='https:&#47;&#47;public.tableau.com&#47;static&#47;images&#47;Kr&#47;Kraje-Ovzdu&#47;Emisnsituace&#47;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:&#47;&#47;public.tableau.com&#47;static&#47;images&#47;Kr&#47;Kraje-Ovzdu&#47;Emisnsituace&#47;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&#47;Kraje-Ovzdu&#47;Emisnsituace?:embed=y&amp;: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:&#47;&#47;public.tableau.com&#47;static&#47;images&#47;Kr&#47;Kraje-Ovzdu&#47;Emisnsituace&#47;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新手。

php html wordpress custom-wordpress-pages
1个回答
1
投票

你可以用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

© www.soinside.com 2019 - 2024. All rights reserved.