Wordpress 自定义演示侧边栏未出现在帖子上

Posted

技术标签:

【中文标题】Wordpress 自定义演示侧边栏未出现在帖子上【英文标题】:Wordpress custom demo sidebar not appearing on posts 【发布时间】:2020-11-11 13:30:04 【问题描述】:

以下 php 文件获取自定义演示侧边栏以显示在管理小部件菜单中,但不显示在实际帖子中(文件位于同名文件夹中,位于 WP 文件目录中的插件文件夹中)– 添加文本小部件到自定义侧边栏进行测试:

<?php

/**
* Plugin Name:    Single Post CTA
* Plugin URI:     https://github.com/cdils/single-post-cta
* Description:    Adds sidebar (widget area) to single posts
* Version:        0.1
* Author:         Carrie Dils
* Author URI:     https://carriedils.com
* License:        GPL v2+
* License URI:    https://www.gnu.org/licenses/gpl-2.0.html
* Text Domain:    spc
*/

// If this file is called directly, abort
if ( !defined( 'ABSPATH' ) ) 
  die;


/**
* Load stylesheet
*/

function spc_load_stylesheet() 
  if ( is_single() ) 
    wp_enqueue_style( 'spc_stylesheet', plugin_dir_url(__FILE__) .'spc-styles.css' );
  


// Hook stylesheet
add_action( 'wp_enqueue_scripts', 'spc_load_stylesheet' );

// Register a custom sidebar
function spc_register_sidebar() 
      register_sidebar( array(
        'name'          => __( 'Single Post CTA', 'spc' ),
        'id'            => 'spcsidebar',
        'description'   => __( 'Displays widget area on single posts', 'spc' ),
        'before_widget' => '<div class="widget spc">',
        'after_widget'  => '</div>',
        'before_title'  => '<h2 class="widgettitle spc-title">',
        'after_title'   => '</h2>',
   ) );


// Hook sidebar
add_action( 'widgets_init', 'spc_register_sidebar' );

// Display sidebar on single posts
function spc_display_sidebar( $content ) 
    if ( is_single() ) 
      dynamic_sidebar( 'spcsidebar' );
    
    return $content;


// Add dynamic sidebar
add_filter( 'the content', 'spc_display_sidebar' );

以下是与自定义侧边栏文件位于同一文件夹中的关联样式表:

.spc 
    background: gray;
    color: blue;

定制器下的小部件菜单显示“您的主题有 1 个其他小部件区域,但此特定页面不显示它”。这个WordPress指南https://developer.wordpress.org/themes/functionality/sidebars/似乎表明必须在主题或子主题的functions.php文件中注册侧边栏/小部件,然后创建一个sidebar-name.php文件来运行dynamic_sidebar函数。是不是这样?我正在使用 Genesis Sample 子主题,并切换到 2020 和 2017 的 wordpress 主题,或者停用所有其他插件都没有解决问题。

【问题讨论】:

【参考方案1】:

过滤器应该是add_filter( 'the_content', 'spc_display_sidebar' );。您忘记了下划线。

如果您尝试在页面帖子类型中显示侧边栏,那么is_single() 将无法正常工作。请改用is_singular()

【讨论】:

【参考方案2】:

Mistack 在钩子中不是“内容”,使用“the_content”

例如。 add_filter('the_content', 'spc_display_sidebar');

【讨论】:

以上是关于Wordpress 自定义演示侧边栏未出现在帖子上的主要内容,如果未能解决你的问题,请参考以下文章

自定义演示未加载到 Magnolia CMS

如何使用 TypedRowControllerType 在 Eureka 4.3 中创建自定义演示者行?

如何在尺寸类更改期间从自定义演示控制器过渡到模态?

SB Admin 2 侧边栏未折叠

在WordPress侧边栏中显示最近帖子的发布日期

将wordpress帖子内容添加到侧边栏