如何向小工具标题添加链接?

时间:2011-04-28 作者:Ian Young

我使用了三个小部件,其中两个是默认的WP小部件(最近的帖子和归档),第三个是一个自定义小部件,其作用类似于最近的帖子,但用于特定的自定义帖子类型。

我的问题是如何使小部件标题可单击链接?WordPress似乎不接受标题字段中的HTML,并自动将其删除。理想情况下,我不想用插件来实现这一点,尽管我知道Linkable Title HTML and PHP Widget exist. 这不是我真正想要的。

到目前为止,我的自定义小部件的代码可以在这里看到:http://pastie.org/1847651

6 个回复
SO网友:EAMann

使标题能够单击WordPress不会让您在小部件的标题中传递HTML代码,但它确实有方便的参数$before_title$after_title 你可以用来操纵事物。

在小部件中,只需添加链接的第一部分(<a href="...">) 到的末尾$before_title 链接的最后一部分(</a>) 到的开头$after_title 您的标题将自动链接。

在提取widget() 方法因此,请在代码中找到以下部分:

ob_start();
extract($args);

$title = apply_filters(\'widget_title\', empty($instance[\'title\']) ? __(\'Recent Staff News\') : $instance[\'title\'], $instance, $this->id_base);
并添加:

$before_title .= \'<a href="http://something.com">\';
$after_title = \'</a>\' . $after_title;
然后你将被链接!

更改默认小部件

您不能将此方法直接应用于默认小部件,但有一种使用对象继承的解决方法。只需定义自己的自定义小部件即可扩展默认小部件:

class My_Widget_Recent_Posts extends WP_Widget_Recent_Posts {

}
您必须在构造函数中重新定义小部件名称等,然后重新定义widget() 方法复制已有内容,但应用$before_title/$after_title 从上面砍。新版本的默认小部件将具有可链接的标题!

SO网友:kevtrout

如果默认小部件没有提供您想要的功能,特别是允许标题上的自定义链接,那么您最好编写自己的小部件。

http://justintadlock.com/archives/2009/05/26/the-complete-guide-to-creating-widgets-in-wordpress-28

http://churchco.de/the-complete-guide-to-writing-a-wordpress-widget/

这通常采取编写插件的形式,将自定义小部件添加到小部件屏幕。对现有小部件进行一个小的调整非常简单,只需将代码复制到原始小部件,并以修改后的方式将其包含在插件中。

默认小部件位于wp includes/Default小部件中。php

Edit如果您不熟悉WordPress代码,您需要决定是否要变得更熟悉。如果是这样,您需要在小部件表单中添加一个字段,允许用户输入链接地址,并且需要编辑小部件代码,以便在小部件代码输出标题时插入链接。

如果你不想变得熟悉,那么我相信,你运气不好。小部件不具备在不修改WordPress代码的情况下修改其功能的能力。

SO网友:ragulka

我刚刚发布了一个插件,任何人都可以在小部件设置中添加链接。它适用于大多数插件。在此处获取:http://wordpress.org/extend/plugins/widget-title-links/

SO网友:Alfred

实际上,您可以直接将html放入标题中。有一点编码。查看这篇文章,它向您展示了如何:

http://ponderwell.net/2011/05/how-to-use-html-in-wordpresss-widgets-title/

SO网友:shana.

或者,您可以简单地使用一个纯文本小部件,允许在内容中使用HTML,并将标题留空,然后在该小部件的顶部添加内容。。。

<a href="yourlink"><div class="widget-title">Your Title</div></a>

SO网友:Tatev Grigoryan
$instance[\'title\'] = strip_tags($new_instance[\'title\']);

remove this line.

结束

相关推荐

Why use widgets?

我对使用WordPress很陌生,我想知道使用小部件的好处是什么?看here 这听起来像是为那些不是程序员的人准备的,他们想在他们的网站上添加插件。对吗?或者小部件是否在某种程度上使站点更加健壮?