以下 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/functionity/sidebars/似乎表明必须在主题或子主题的functions.php 文件中注册侧边栏/小部件,然后创建一个侧边栏-{name}在其中运行dynamic_sidebar 函数的.php 文件。是这样吗?我正在使用 Genesis Sample 子主题,并切换到 2020 年和 2017 年 WordPress 主题,或停用所有其他插件都没有解决问题。
潇潇雨雨
慕勒3428872