WordPress‘二十四’主题中的POST特定小工具

时间:2014-02-23 作者:Forseti

使用Wordpress 3.8.1和“2144年”主题,我想把我的帖子安排成这样,它的主要内容转到主(中)列,而与这篇帖子相关的图库、附件和链接转到右侧的内容侧边栏。我该怎么做?我需要一些特定的插件吗?

现在,我只能在内容提要栏中放置特定于站点的小部件。我认为,名为“内容”的侧栏以及视觉上放置和样式类似于post的侧栏应该显示特定于post的小部件,但我无法强制它这样做。

2 个回复
SO网友:Brad Dalton

您可以安装如下插件widget visibilityWidget Logic 允许您添加conditional tags 指定小部件显示的帖子、页面等。

否则,您需要将条件标记添加到主题本地侧栏小部件区域,以控制它们显示的帖子、页面等。

示例:

如果您只想让小部件显示在单个帖子上,您可以添加条件标记:

is_single()

is_singular(\'post\')
要将小部件排除在单个帖子上显示,可以使用相同的条件标记,如下所示:

!is_single()
See this code example 如果您想编写自己的自定义边栏小部件。

您可以在子主题函数文件中注册小部件,然后将其直接挂接到任何模板文件中,或者使用子主题函数文件中的自定义函数。

Registers a new widget

add_action( \'widgets_init\', \'wpsites_add_widget\' );

function wpsites_add_widget() {

register_sidebar(array(
\'name\'=>\'Custom Widget\',
\'id\' => \'custom-widget\',
));
}
!is_single()
 来源:http://codex.wordpress.org/Function_Reference/dynamic_sidebar

SO网友:s_ha_dum

虽然逻辑可能会变得复杂,但您可以使用widget_display_callback 滤器

例如,这将只允许在ID为“sidebar-1”的侧栏中显示核心文本小部件:

add_filter(
  \'widget_display_callback\',
  function ($instance, $widget, $sidebar){
    if (
      is_single()
      && \'sidebar-1\' === $sidebar[\'id\']
    ) {
      if (\'WP_Widget_Text\' !== get_class($widget)) {
        return false;
      }
    }
    return $instance;
  },
  10,3
);

结束

相关推荐

Prevent widgets removal

我正在用许多小部件构建一个网站。它们是高度定制的。当站点处于活动状态时,几个管理员/编辑器必须编辑这些小部件。现在,我很害怕看到一个小部件(及其配置)可以在一次鼠标移动中完全擦除(将其从侧栏中删除)。有没有什么方法可以防止小部件被删除,同时保持编辑其内容的能力?此外,在我看来,管理中的widget管理页面为“添加widget”模块提供了太多的空间,而为“激活的widget”模块提供的空间不足。这在创建站点时很有用,但在完成站点时却毫无用处。有没有办法切换这些模块的大小?非常感谢

WordPress‘二十四’主题中的POST特定小工具 - 小码农CODE - 行之有效找到问题解决它

WordPress‘二十四’主题中的POST特定小工具

时间:2014-02-23 作者:Forseti

使用Wordpress 3.8.1和“2144年”主题,我想把我的帖子安排成这样,它的主要内容转到主(中)列,而与这篇帖子相关的图库、附件和链接转到右侧的内容侧边栏。我该怎么做?我需要一些特定的插件吗?

现在,我只能在内容提要栏中放置特定于站点的小部件。我认为,名为“内容”的侧栏以及视觉上放置和样式类似于post的侧栏应该显示特定于post的小部件,但我无法强制它这样做。

2 个回复
SO网友:Brad Dalton

您可以安装如下插件widget visibilityWidget Logic 允许您添加conditional tags 指定小部件显示的帖子、页面等。

否则,您需要将条件标记添加到主题本地侧栏小部件区域,以控制它们显示的帖子、页面等。

示例:

如果您只想让小部件显示在单个帖子上,您可以添加条件标记:

is_single()

is_singular(\'post\')
要将小部件排除在单个帖子上显示,可以使用相同的条件标记,如下所示:

!is_single()
See this code example 如果您想编写自己的自定义边栏小部件。

您可以在子主题函数文件中注册小部件,然后将其直接挂接到任何模板文件中,或者使用子主题函数文件中的自定义函数。

Registers a new widget

add_action( \'widgets_init\', \'wpsites_add_widget\' );

function wpsites_add_widget() {

register_sidebar(array(
\'name\'=>\'Custom Widget\',
\'id\' => \'custom-widget\',
));
}
!is_single()
 来源:http://codex.wordpress.org/Function_Reference/dynamic_sidebar

SO网友:s_ha_dum

虽然逻辑可能会变得复杂,但您可以使用widget_display_callback 滤器

例如,这将只允许在ID为“sidebar-1”的侧栏中显示核心文本小部件:

add_filter(
  \'widget_display_callback\',
  function ($instance, $widget, $sidebar){
    if (
      is_single()
      && \'sidebar-1\' === $sidebar[\'id\']
    ) {
      if (\'WP_Widget_Text\' !== get_class($widget)) {
        return false;
      }
    }
    return $instance;
  },
  10,3
);

相关推荐

Using add_filter() in Widgets

只需查询引用add_filter() 作用您可以在WordPress小部件类中使用此函数吗。Example我有一个带有动态创建代码的小部件,我想将其传递给插件中创建的另一个函数。这能实现吗?<?php /** * Display the actual Widget * * @param Array $args * @param Array $instance */ public function widget($args, $inst