我正在为客户创建wordpress网站。
MY AIM:
该网站将有来自不同网站的产品链接。这些链接实际上是网站和服务的附属链接。这些链接需要转换为http://www.example.com/go/123 或者类似的东西,当单击时,它们重定向到实际链接。下一个要求是跟踪传出链接的数量。
各位,wordpress专家,能告诉我任何可以完成这项工作的插件,甚至是我想要的东西吗。
我还搜索了这个网站以及wordpress上的插件目录。org,但尚未找到任何合适的插件。
我正在为客户创建wordpress网站。
MY AIM:
该网站将有来自不同网站的产品链接。这些链接实际上是网站和服务的附属链接。这些链接需要转换为http://www.example.com/go/123 或者类似的东西,当单击时,它们重定向到实际链接。下一个要求是跟踪传出链接的数量。
各位,wordpress专家,能告诉我任何可以完成这项工作的插件,甚至是我想要的东西吗。
我还搜索了这个网站以及wordpress上的插件目录。org,但尚未找到任何合适的插件。
我会让Google Analytics之类的东西通过事件跟踪之类的东西为您进行跟踪。看看Yoast的Google Analytics插件,它会让你很容易做到这一点。
否则Redirection 有利于创建重定向。当然,你可以看到每个被点击的次数。我已经使用这个插件多年了,它非常好。
如果要自动执行某些操作,则需要创建自定义重写规则和查询变量:
<?php
add_action( \'init\', \'wpse36168_add_rewrite_rule\' );
/**
* Add our rewrite rule
*/
function wpse36168_add_rewrite_rule()
{
add_rewrite_rule(
\'^go/(.*?)$\',
\'index.php?go=$matches[1]\',
\'top\'
);
}
add_filter( \'query_vars\', \'wpse36168_add_go_var\' );
/**
* Tell WP not to strip out or "go" query var
*/
function wpse36168_add_go_var( $vars )
{
$vars[] = \'go\';
return $vars;
}
然后钩住template_redirect
如果捕获到该查询变量,则将用户抛出到其他URL。<?php
add_action( \'template_redirect\', \'wpse36168_catch_external\' );
/**
* Catch external links from our "go" url and redirect them
*/
function wpse36168_catch_external()
{
if( $url = get_query_var( \'go\' ) )
{
wp_redirect( esc_url( $url ), 302 );
exit();
}
}
最后,你可以the_content
将所有外部链接自动替换为yoursite.com/go/someurlhere.com/asdf
链接。<?php
add_filter( \'the_content\', \'wpse36168_replace_links\', 1 );
/**
* Replace external links with our "go" links
*/
function wpse36168_replace_links( $content )
{
$content = preg_replace_callback( \'%<a.*?href="(.*?)"[^<]+</a>%i\', \'wpse36168_maybe_replace_links\', $content );
return $content;
}
function wpse36168_maybe_replace_links( $matches )
{
if( ! preg_match( sprintf( \'#^%s#i\', home_url() ), $matches[1] ) )
{
$url = $matches[1];
// http:// we\'ll add it later
$url = str_replace( \'http://\', \'\', $url );
$url = sprintf( \'/go/%s\', $url );
return str_replace( $matches[1], home_url( $url ), $matches[0] );
}
else
{
return $matches[0];
}
}
这是所有的烂摊子as a plugin.我正在使用Sidebar Generator 在我所有的主题中。该插件在“plugins”目录下正常工作,但我想以某种方式将其嵌入到我的主题中,因此它不会显示在已安装的插件列表中。我刚刚复制了sidebar\\u生成器。php(幸运的是,整个代码都在一个文件中)到mytheme/插件,并将其包含在函数中。phprequire_once (MY_PLUGINS . \'/sidebar_generator.php\'); 现在,它适用于所有其他插件,但不适用于这个插件!这样,当我点击“侧栏”时
我正在为客户创建wordpress网站。
MY AIM:
该网站将有来自不同网站的产品链接。这些链接实际上是网站和服务的附属链接。这些链接需要转换为http://www.example.com/go/123 或者类似的东西,当单击时,它们重定向到实际链接。下一个要求是跟踪传出链接的数量。
各位,wordpress专家,能告诉我任何可以完成这项工作的插件,甚至是我想要的东西吗。
我还搜索了这个网站以及wordpress上的插件目录。org,但尚未找到任何合适的插件。
我会让Google Analytics之类的东西通过事件跟踪之类的东西为您进行跟踪。看看Yoast的Google Analytics插件,它会让你很容易做到这一点。
否则Redirection 有利于创建重定向。当然,你可以看到每个被点击的次数。我已经使用这个插件多年了,它非常好。
如果要自动执行某些操作,则需要创建自定义重写规则和查询变量:
<?php
add_action( \'init\', \'wpse36168_add_rewrite_rule\' );
/**
* Add our rewrite rule
*/
function wpse36168_add_rewrite_rule()
{
add_rewrite_rule(
\'^go/(.*?)$\',
\'index.php?go=$matches[1]\',
\'top\'
);
}
add_filter( \'query_vars\', \'wpse36168_add_go_var\' );
/**
* Tell WP not to strip out or "go" query var
*/
function wpse36168_add_go_var( $vars )
{
$vars[] = \'go\';
return $vars;
}
然后钩住template_redirect
如果捕获到该查询变量,则将用户抛出到其他URL。<?php
add_action( \'template_redirect\', \'wpse36168_catch_external\' );
/**
* Catch external links from our "go" url and redirect them
*/
function wpse36168_catch_external()
{
if( $url = get_query_var( \'go\' ) )
{
wp_redirect( esc_url( $url ), 302 );
exit();
}
}
最后,你可以the_content
将所有外部链接自动替换为yoursite.com/go/someurlhere.com/asdf
链接。<?php
add_filter( \'the_content\', \'wpse36168_replace_links\', 1 );
/**
* Replace external links with our "go" links
*/
function wpse36168_replace_links( $content )
{
$content = preg_replace_callback( \'%<a.*?href="(.*?)"[^<]+</a>%i\', \'wpse36168_maybe_replace_links\', $content );
return $content;
}
function wpse36168_maybe_replace_links( $matches )
{
if( ! preg_match( sprintf( \'#^%s#i\', home_url() ), $matches[1] ) )
{
$url = $matches[1];
// http:// we\'ll add it later
$url = str_replace( \'http://\', \'\', $url );
$url = sprintf( \'/go/%s\', $url );
return str_replace( $matches[1], home_url( $url ), $matches[0] );
}
else
{
return $matches[0];
}
}
这是所有的烂摊子as a plugin.请帮助我克服重定向问题。我需要在子域上工作,而不是在主域上工作,但这里两个域是不同的。我所做的是-将所有(website.com)文件复制到另一个子域(demo.websiteA.com),并根据wp配置更改数据库名称。php文件。但每当我尝试打开演示时。网站a。com它重定向到网站。com公司请帮帮我提前感谢