gpt4 book ai didi

wordpress - 在 Wordpress 中为小部件提供我自己的 ID 或类

转载 作者:行者123 更新时间:2023-12-04 04:35:28 26 4
gpt4 key购买 nike

我正在编写一个带有小部件的 Wordpress 插件。在我的 jQuery 代码中,我想指向那个小部件,所以我虽然给它一个 HTML ID 会很好。 (已编辑,谢谢指出。)

在互联网(和 Codex)上进行了一些搜索后,我知道我可以为主题中的小部件提供 ID,但这不是我想要的。这种方法有缺陷。更改主题可能会导致错误(当然, 知道它必须在functions.php 中更改,但它只是meh)。另一件事是我的小部件得到了一个可能在我不知道的情况下改变的数字。

因此,为了 100% 确定它有效并且将来有效,我可以提供我的小部件 我自己的ID ?

最佳答案

我可能不完全理解你的问题和什么 "ID"你的意思是(小部件 ID,或实际的 HTML div ID - 它们实际上是一个和相同的..)但是如果你已经阅读了代码,那里给出了如何给出 ID 的例子..

function __construct() {
parent::__construct(
'foo_widget', // Base ID
__('Widget Title', 'text_domain'), // Name
array( 'description' => __( 'A Foo Widget', 'text_domain' ), ) // Args
);
}
另一种方法来做同样的事情(如果你在谈论 HTML 元素,比如 divs - 你可以分配一个 class )
function My_Widget() {  
function My_Widget() {
$widget_ops = array( 'classname' => 'example', 'description' => __('A widget that displays nothing ', 'example') );
$control_ops = array( 'width' => 300, 'height' => 350, 'id_base' => 'example-widget' );
$this->WP_Widget( 'example-widget', __('Example Widget', 'example'), $widget_ops, $control_ops );
}
请注意,分子将根据启动的实例数量自动添加到您的小部件 ID 中,例如:
foo_widget
foo_widget-2
foo_widget-3
等等...
编辑我 - 评论后
无论如何,恕我直言,硬编码一个固定的 ID 是个坏主意在小部件中,原因很简单,从开发人员的角度来看,对小部件的偏好是始终允许支持多个实例。给一个 HTML ID小部件上的任何地方都会导致验证错误,并且在 jQuery 的情况下- 还有 JS错误原因很简单,如果一个用户有 2 个小部件,它也会有一个重复的 ID。
换句话说 - 这与您在原始问题中的陈述完全相反。

So to be 100% sure it works and will work in the future, can I give mywidget my own ID


为您的小部件提供固定的硬编码 ID 实际上将确保它 不是 100% 的时间工作。
首选总是使用 class 来解决此类问题。 (或类似 div[id^="my_widget_id"] )并让 wordpress “做它的事”(通过自动递增 ID)。
出于完全相同的原因 - 主题在 register sidebar() 中应该始终具有相同的结构。功能如下:
<?php $args = array(
'name' => __( 'Sidebar name', 'theme_text_domain' ),
'id' => 'unique-sidebar-id',
'description' => '',
'class' => '',
'before_widget' => '<li id="%1$s" class="widget %2$s">', // LOOK AT THIS LINE
'after_widget' => '</li>',
'before_title' => '<h2 class="widgettitle">',
'after_title' => '</h2>' ); ?>
这将允许特定的侧边栏 auto increment小部件的 ID 以避免上述问题。
来自法典:

before_widget - HTML to place before every widget(default: '') Note: uses sprintf for variablesubstitution


说了这么多,如果你坚持在某处提供一个硬编码的固定 ID(而不是上面描述的方法),你总是可以把它放在嵌套的 div 中。或 span在你的小部件的 HTML 输出中,但我认为如果你仔细阅读了这个答案 - 你现在会避免它。
现在,-由于您没有在问题中包含任何代码(这在 SE 上总是不好的做法),所以我无能为力。如果您遇到针对没有 ID 的小部件的任何问题 - 我建议您打开一个新问题,并可能在此处的评论中指向一个链接,以便我自己(和其他人)可以帮助您解决这个问题。

关于wordpress - 在 Wordpress 中为小部件提供我自己的 ID 或类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19825774/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com