Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在Wordpress模板上替换或更改单词?_Javascript_Html_Wordpress_Wordpress Theming_Custom Wordpress Pages - Fatal编程技术网

Javascript 如何在Wordpress模板上替换或更改单词?

Javascript 如何在Wordpress模板上替换或更改单词?,javascript,html,wordpress,wordpress-theming,custom-wordpress-pages,Javascript,Html,Wordpress,Wordpress Theming,Custom Wordpress Pages,这是我试图实现的一个例子 假设我有美国各州,每个州有5个城市和一个自定义模板,其中包含每个州的内容 我想在不更改内容的情况下,在每个城市页面上交替/更改城市名称 如果我去加利福尼亚,然后我点击圣地亚哥,我想让它说废话,废话,桑迪哥,废话,如果我点击洛杉矶,我想让它说废话,废话,废话,废话 我正在做的层次结构,将有这个内容的模板 我试图通过创建一个模板并在文本中交替使用城市名称来节省时间 内容可以保持不变,只是每个州的城市必须改变一个 我为每个州创建了一个模板,但我需要为每个城市使用相同的模板 在

这是我试图实现的一个例子

假设我有美国各州,每个州有5个城市和一个自定义模板,其中包含每个州的内容

我想在不更改内容的情况下,在每个城市页面上交替/更改城市名称

如果我去加利福尼亚,然后我点击圣地亚哥,我想让它说废话,废话,桑迪哥,废话,如果我点击洛杉矶,我想让它说废话,废话,废话,废话

我正在做的层次结构,将有这个内容的模板

我试图通过创建一个模板并在文本中交替使用城市名称来节省时间

内容可以保持不变,只是每个州的城市必须改变一个


我为每个州创建了一个模板,但我需要为每个城市使用相同的模板

在WordPress中,为了实现州和城市的本地页面,我们可以使用WordPress页面(我们也可以使用自定义的发布路线,但有时客户端更喜欢url的根级页面,而不需要深度嵌套,即site.abc/state而不是site.abc/cpt/state)

  • 我们可以将状态添加为页面,以便进行状态全名和短名称跟踪,我们使用的方式如下: 页面名称:州全名,如纽约 Slug:短的两个字母代码,例如ny
  • 因此,在任何给定的时间,只要在状态页面上,我们就可以从标题中找到状态全名,从页面slug中找到状态短代码,等等

  • 对于城市,我们可以使用地址和WP permalink规则(例如site.abc/st/city)使它们看起来像州的子页面
  • 这个url为我们提供了两条线索,即它是子页面,所以它是城市页面,所以我们将为此页面加载城市模板,父部分告诉它属于哪个页面/状态,这样我们也可以从那里获取一些数据,比如最后从同一状态显示所有其他城市等等

    用于URL解析:(未经测试的代码,仅供参考)

    现在我们可以将这些重写标记作为查询变量添加到查询中

    function custom_endpoints() {
    add_rewrite_rule(
        '([^/]{2})/([^/]*)',
        'index.php?state=$matches[1]&city=$matches[2]',
        'top'
    );
    
    add_rewrite_tag( '%state%', '([^&]+)' );
    add_rewrite_tag( '%city%', '([^&]+)' );
    }
    add_action( 'init', 'custom_endpoints' );
    
    function em_query_vars($vars) {
        array_push($vars, 'state');
        array_push($vars, 'city');
        return $vars;
    }
    add_filter('query_vars','em_query_vars');
    
    现在,对于模板加载,我们可以使用这些查询标记:(未测试的代码,仅用于想法)

    add_filter('template_include','custom_function_for_templates',1,1)

    最后,在模板中,您可以使用城市的当前查询标记替换内容中的任意位置,将%%City%%和%%st%%以及%%state%%标记替换为正确的城市名称,以显示包含与当前城市和州相关内容的页面

    希望它能给你足够的想法,按照你目前的设置来实现它。我包含的代码未经测试,因此可能无法运行。但WordPressAPI中使用的钩子和过滤器是正确的,所以您可以始终将自己的逻辑/函数钩子到这些步骤中,以实现它

    编辑:在模板中搜索Php级别的替换操作

    $content = str_replace("%%city%%", $new_page, $content);
    $content = str_replace("%%state%%", get_the_title($state), $content);
    $content = str_replace("%%st%%", strtoupper(get_post_field( 'post_name',$state)), $content);
    

    在这里,您将看到我正在搜索/替换WordPress中使用的内容的任何标记,以实现州和城市的本地页面。我们可以使用WordPress页面(我们也可以使用自定义发布路线,但有时客户端更喜欢url的根级页面,而不需要深度嵌套,即site.abc/state,而不是site.abc/cpt/state)

  • 我们可以将状态添加为页面,以便进行状态全名和短名称跟踪,我们使用的方式如下: 页面名称:州全名,如纽约 Slug:短的两个字母代码,例如ny
  • 因此,在任何给定的时间,只要在状态页面上,我们就可以从标题中找到状态全名,从页面slug中找到状态短代码,等等

  • 对于城市,我们可以使用地址和WP permalink规则(例如site.abc/st/city)使它们看起来像州的子页面
  • 这个url为我们提供了两条线索,即它是子页面,所以它是城市页面,所以我们将为此页面加载城市模板,父部分告诉它属于哪个页面/状态,这样我们也可以从那里获取一些数据,比如最后从同一状态显示所有其他城市等等

    用于URL解析:(未经测试的代码,仅供参考)

    现在我们可以将这些重写标记作为查询变量添加到查询中

    function custom_endpoints() {
    add_rewrite_rule(
        '([^/]{2})/([^/]*)',
        'index.php?state=$matches[1]&city=$matches[2]',
        'top'
    );
    
    add_rewrite_tag( '%state%', '([^&]+)' );
    add_rewrite_tag( '%city%', '([^&]+)' );
    }
    add_action( 'init', 'custom_endpoints' );
    
    function em_query_vars($vars) {
        array_push($vars, 'state');
        array_push($vars, 'city');
        return $vars;
    }
    add_filter('query_vars','em_query_vars');
    
    现在,对于模板加载,我们可以使用这些查询标记:(未测试的代码,仅用于想法)

    add_filter('template_include','custom_function_for_templates',1,1)

    最后,在模板中,您可以使用城市的当前查询标记替换内容中的任意位置,将%%City%%和%%st%%以及%%state%%标记替换为正确的城市名称,以显示包含与当前城市和州相关内容的页面

    希望它能给你足够的想法,按照你目前的设置来实现它。我包含的代码未经测试,因此可能无法运行。但WordPressAPI中使用的钩子和过滤器是正确的,所以您可以始终将自己的逻辑/函数钩子到这些步骤中,以实现它

    编辑:在模板中搜索Php级别的替换操作

    $content = str_replace("%%city%%", $new_page, $content);
    $content = str_replace("%%state%%", get_the_title($state), $content);
    $content = str_replace("%%st%%", strtoupper(get_post_field( 'post_name',$state)), $content);
    

    在这里,您将看到我正在搜索/替换内容中使用的任何标记

    如果您将其用作WP页面,我曾经做过类似的设置,其中州是父页面,所有城市都是该州的子页面。模板是相同的,但有逻辑,若父对象显示状态内容,若子对象显示城市内容。。。等等,州的内容将是独一无二的,不像城市。城市内容将有所不同,但城市名称必须更改,以便我可以在每个州的每个城市重复使用它。我不想使用与州政府相同的内容。如果我上次没有说清楚的话,我向你道歉。。这样我就搞定了,你在模板中会有相同的内容,但城市占位符会被更改为实际名称吗?看起来这是可以做到的,拥有自己的城市模板,其中包含城市名称作为搜索/替换操作的内容,并执行永久链接添加/重写规则以捕获url并加载正确的模板/城市。所以site.xyz/st/city。。它告诉我们加载城市模板,城市名称,并链接到父页面,即国家…哇,这是有意义的。有没有