这个星期在Autumn Pro微信群里谈到了外链跳转页面,为了安全和SEO就下载了wpjam-external-links插件,并上传到了博客里。
设置还挺方便在wordpress后台的WPJAM的链接设置,就可以开启外链跳转页面。
可以在文章,评论里识别外链,并点击外链时跳转到外链跳转页面。
效果如下图
不过这个插件还是有问题的,并不是十分完善。
- 如果外链设置了在新窗口打开,点击外链是直接跳转的目标网站,并没有经过外链跳转页面。
- 少了个返回主页的按键,用户只能点击继续访问,而不能返回博客
- 上面的图片的继续访问按键是没有颜色加深
- 点击插件有时候会报非法请求
- 想在外链跳转页面添加谷歌广告
而我自己能力有限,并不知道怎么修改。然后我就试了下chatgpt。
把相关代码输入,然后提出想要的结果。
当代码出来,运行惊呆了,符合我的预期。真的是太厉害了。先给出chatgpt修改后的效果。
厉不厉害,添加了返回主页的按键,然后继续访问按键背景加深,添加谷歌广告。
下面给出部分chatpgt给的结果(答案)
1、第一次把全部代码输入
我的提问:输入全部完整的代码
ChatGpt:
这段代码看起来是一个 WordPress 插件或主题中的 PHP 代码,用于处理外部链接的设置和跳转。它似乎是使用 WPJAM 插件开发的,用于管理外部链接的行为。以下是对代码的主要功能的解释:
- 定义了一个名为
WPJAM_External_Links_Setting
的 PHP 类,用于处理外部链接的设置和跳转。 get_fields
方法定义了外部链接设置的字段和选项,包括文章中的外部链接的设置、评论中的外部链接设置、以及例外情况。这些字段将在后台管理界面上用于配置插件的行为。get_menu_page
方法定义了在 WordPress 后台管理中的菜单选项,以便用户可以访问和配置外部链接的设置。is_exception
方法用于检查给定的链接是否是例外情况,如果链接包含在例外列表中,将不会进行跳转处理。add_redirect_query_arg
方法用于在文章内容中查找外部链接,并根据设置添加rel
属性、target
属性以及跳转链接,以确保外部链接的跳转和安全性。filter_content
方法用于过滤文章内容,以添加跳转链接。filter_comment_text
和filter_comment_author_link
方法用于过滤评论内容和评论作者链接,以添加跳转链接。filter_robots_txt
方法用于生成 robots.txt 文件,以阻止搜索引擎抓取跳转链接。init
方法用于初始化插件,在此方法中根据设置添加相应的过滤器来处理外部链接。- 最后,通过
wpjam_register_option
注册了一个名为 'wpjam-external-links' 的选项,这个选项将与插件的设置相关联。
总之,这段代码主要是一个用于处理外部链接设置和跳转的 WordPress 插件或主题的代码,它通过在文章内容、评论以及评论作者链接中添加跳转链接来管理外部链接的行为,并且可以根据设置排除某些链接不进行跳转处理。
2、然后提问添加返回主页的要求
我的提问:添加返回主页的按键
ChatGpt:如果你想在 "非法请求" 错误页面上添加一个返回主页的按钮,你可以在 $message
变量中添加相应的 HTML 代码。以下是如何在代码中添加返回主页的按钮:
public static function init() {
$redirect = wpjam_get_parameter('redirect');
if ($redirect) {
error_log('Debug: ' . print_r($redirect, true));
$blog_name = get_bloginfo('title');
$message = '<h1>即将离开「' . $blog_name . '」';
$message .= '<p style="font-weight:initial;">您即将离开「' . $blog_name . '」,请注意您的帐号和财产安全。</p>';
$message .= '<p style="font-weight:initial;">' . $redirect . '</p>';
// 添加返回主页的按钮
$message .= '<p style="height:30px;"><a style="height:30px; float:right;" class="button button-large" href="' . esc_url(home_url()) . '">返回主页</a></p>';
wp_die($message, $blog_name . ' - 安全中心', 302);
} else {
if (self::get_setting('content')) {
add_filter('the_content', [self::class, 'filter_content']);
}
if (self::get_setting('comment')) {
add_filter('comment_text', [self::class, 'filter_comment_text'], 10, 2);
add_filter('get_comment_author_link', [self::class, 'filter_comment_author_link'], 10, 2);
}
add_filter('robots_txt', [self::class, 'filter_robots_txt'], 999, 2);
}
}
上述代码在 $message
变量中添加了一个返回主页的按钮。这个按钮链接到网站的主页(使用 home_url()
函数)。当用户访问非法请求时,他们将看到一个 "返回主页" 的按钮,以便他们可以回到网站的主页。
确保你的修改已保存,并清除缓存以查看效果。这将允许用户返回主页,以改善用户体验。
3、添加谷歌广告
我的提问:在广告的地方提示这是谷歌广告
ChatGpt:要在广告的位置添加提示,说明这是 Google 广告,你可以在广告代码周围添加自定义 HTML 标记。下面是一个示例,如何将提示添加到广告的顶部:
// ...
// 添加 Google AdSense 广告
$ad_code = '<div class="google-adsense-ad">'; // 使用自定义类名
$ad_code .= '<p style="font-size: 14px; color: #777; margin-bottom: 10px;">这是 Google 广告</p>'; // 添加提示
$ad_code .= '<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3359266734998614" crossorigin="anonymous"></script>';
$ad_code .= '<!-- 添加你的广告标识 -->'; // 替换为你的广告代码
$ad_code .= '<ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-3359266734998614" data-ad-slot="1817985332" data-ad-format="auto" data-full-width-responsive="true"></ins>';
$ad_code .= '<script>(adsbygoogle = window.adsbygoogle || []).push({});</script>';
$ad_code .= '</div>';
$message .= $ad_code;
// ...
上述示例在广告的顶部添加了一个提示,说明这是 Google 广告。你可以根据需要自定义提示的样式和文本。
本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。
暂无评论
要发表评论,您必须先 登录