为了账号安全,请及时绑定邮箱和手机立即绑定

WordPress 自定义演示侧边栏未出现在帖子中

WordPress 自定义演示侧边栏未出现在帖子中

PHP
偶然的你 2023-08-19 10:25:57
以下 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, abortif ( !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 stylesheetadd_action( 'wp_enqueue_scripts', 'spc_load_stylesheet' );// Register a custom sidebarfunction 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 sidebaradd_action( 'widgets_init', 'spc_register_sidebar' );// Display sidebar on single postsfunction spc_display_sidebar( $content ) {    if ( is_single() ) {      dynamic_sidebar( 'spcsidebar' );    }    return $content;}// Add dynamic sidebaradd_filter( 'the content', 'spc_display_sidebar' );以下是与自定义侧边栏文件位于同一文件夹中的关联样式表:.spc {    background: gray;    color: blue;}定制器下的小部件菜单显示“您的主题有 1 个其他小部件区域,但此特定页面不显示它”。这个 WordPress 指南https://developer.wordpress.org/themes/functionity/sidebars/似乎表明必须在主题或子主题的functions.php 文件中注册侧边栏/小部件,然后创建一个侧边栏-{name}在其中运行dynamic_sidebar 函数的.php 文件。是这样吗?我正在使用 Genesis Sample 子主题,并切换到 2020 年和 2017 年 WordPress 主题,或停用所有其他插件都没有解决问题。
查看完整描述

2 回答

?
潇潇雨雨

TA贡献1833条经验 获得超4个赞

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

如果您尝试在页面帖子类型中显示侧边栏,那么这is_single()是行不通的。尝试is_singular()一下。



查看完整回答
反对 回复 2023-08-19
?
慕勒3428872

TA贡献1848条经验 获得超6个赞

Mistack 位于钩子中,而不是“内容”,请使用“the_content”

前任。add_filter( 'the_content', 'spc_display_sidebar' );


查看完整回答
反对 回复 2023-08-19
  • 2 回答
  • 0 关注
  • 118 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信