对于我正在开发的一个wordpress自定义主题,
我需要做什么才能获得:
<a class="archive_link" href...>
代替:<a href...>
是否为小部件?
在functions.php中我有这个:
function sxo_widgets_init() {
register_sidebar( array(
'name' => __( 'Primary Widget Area', 'sxo' ),
'id' => 'sidebar-1',
'before_widget' => '<aside id="%1$s" class="widget %2$s">',
'after_widget' => '</aside>',
'before_title' => '<h1 class="widget-title">',
'after_title' => '</h1>'
) );
}
add_action( 'widgets_init', 'sxo_widgets_init' );
在aside.php模板中,我有:
...
<ul>
<?php wp_get_archives( array( 'type' => 'monthly') ); ?>
</ul>
...
(更新)而且,我忘了在funtions.php中说:
function sxo_widgets_init() {
register_sidebar( array(
'name' => __( 'Primary Widget Area', 'sxo' ),
'id' => 'sidebar-1',
'before_widget' => '<aside id="%1$s" class="widget %2$s">',
'after_widget' => '</aside>',
'before_title' => '<h1 class="widget-title">',
'after_title' => '</h1>'
) );
}
add_action( 'widgets_init', 'sxo_widgets_init' );
(更新2 - aside.php:)
<?php
/**
* The Sidebar containing the main widget areas.
*
* @package sxo
* @since sxo 1.0
*/
?>
<div id="secondary" class="widget-area" role="complementary">
<?php do_action( 'before_sidebar' ); ?>
<?php if ( ! dynamic_sidebar( 'sidebar-1' ) ) : ?>
<aside id="search" class="widget widget_search">
<?php get_search_form(); ?>
</aside>
<aside id="archives" class="widget">
<h1 class="widget-title"><?php _e( 'Archives', 'sxo' ); ?></h1>
<ul class="archive-sidebar">
<?php wp_get_archives( array( 'type' => 'monthly') ); ?> <!--'before' => '<a class="widget-link">', 'after' => '</a>'?>-->
<?php /*wp_get_archives( array( 'type' => 'monthly', 'format' => 'custom', 'before' => '<a class="widget-link">', 'after' => '</a>') ); ?> <!--'before' => '<a class="widget-link">', 'after' => '</a>'?>-->
<?php //<?php wp_get_archives( 'format=custom&before=<p id="test">&after=</p>&type=postbypost&limit=100' );
/*Step #3
Now instead of a unordered list using <li></li>, the code will now be <p></p> and you are ready to go to town on customizations. Endless possibilities.*/?>
</ul>
</aside>
<aside id="meta" class="widget">
<h1 class="widget-title"><?php _e( 'Meta', 'sxo' ); ?></h1>
<ul>
<?php wp_register(); ?>
<li><?php wp_loginout(); ?></li>
<?php wp_meta(); ?>
</ul>
</aside>
<?php endif; // end sidebar widget area ?>
</div><!-- #secondary .widget-area -->
<?php if ( is_active_sidebar( 'sidebar-2' ) ) : ?>
<div id="tertiary" class="widget-area" role="supplementary">
<?php dynamic_sidebar( 'sidebar-2' ); ?>
</div><!-- #tertiary .widget-area -->
<?php endif; ?>
(更新3) - 其中(从我的front-page.php模板中提取的代码)我正在尝试包括aside.php:
<?php
/*
Template Name: Front-page - Portada de sxo
@package WordPress
* @subpackage sxo
*/
get_header('front-page'); ?>
<div id="contenido" class="wrapper clearfix">
<section id="list_posts_home">
<div id="content" class="widecolumn">
<?php if (have_posts()) : while (have_posts()) : the_post();?>
<div class="listed_post_home">
<h2 id="post-<?php the_ID(); ?>"><a class="linkHomeBlog" href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title(); ?>"><?php the_title(); ?></a></h2>
<div class="entrytext">
<div style="float:left;margin-right:1.5em;"><?php the_post_thumbnail(); ?></div>
<p><?php
the_excerpt('<a href="<?php the_permalink(); ?>">Read more</a></p>');?>
<?php edit_post_link('Edit this entry.', '<p>', '</p>'); ?>
</div>
</div>
<?php endwhile;
sxo_content_nav( 'nav-below' );
endif; ?>
</div>
<?php get_sidebar(); ?>
</section>
(更新4)sidebar.php模板:
<?php
/**
* The sidebar containing the main widget area.
*
* If no active widgets in sidebar, let's hide it completely.
*
* @package WordPress
* @subpackage sxo
* @since sxo
*/
?>
<?php if ( is_active_sidebar( 'sidebar-1' ) ) : ?>
<div id="secondary" class="widget-area" role="complementary">
<?php dynamic_sidebar( 'sidebar-1' ); ?>
</div><!-- #secondary -->
<?php endif; ?>
提前致谢!
答案 0 :(得分:0)
您正在使用的注册边栏功能构建围绕窗口小部件的html,而不是窗口小部件中的实际代码。但是,您的代码表明您直接在php文件中输出链接,而不是通过小部件。考虑到这一点,有两种可能的解决方案。
选项1
您可以在aside.php文件中的ul
添加一个类,并从样式表中定位(如果需要)。
aside.php
<ul class="archive-sidebar">
<?php wp_get_archives( array( 'type' => 'monthly') ); ?>
</ul>
的style.css
archive-sidebar a {
// Some funky styles
}
选项2
如果上述内容不是您的后续内容,则可以在wp调用中添加过滤器。此代码未经测试,但至少应指向正确的方向。将以下内容添加到functions.php文件中。
的functions.php
function get_archives_link_mod ( $link_html ) {
return str_replace("<a", '<a class="archive_link"', $link_html);
}
add_filter("get_archives_link", "get_archives_link_mod");
如果您愿意,使用这两个选项,您将能够从您的javascript文件中定位链接。如果你正在使用jQuery,你可以用......来实现这个目标。
$('.archive-link a')
或
$('.archive-link')
取决于您使用的选项。
答案 1 :(得分:0)
继续我的其他答案中的评论。将sidebar.php
更新为以下内容可以获得您想要的内容。这是原始问题中发布的旁边和侧边栏文件的组合,为清晰起见删除了注释。
<?php
/**
* The Sidebar containing the main widget areas.
*
* @package sxo
* @since sxo 1.0
*/
?>
<div id="secondary" class="widget-area" role="complementary">
<aside id="search" class="widget widget_search">
<?php get_search_form(); ?>
</aside>
<aside id="archives" class="widget">
<h1 class="widget-title"><?php _e( 'Archives', 'sxo' ); ?></h1>
<ul class="archive-sidebar">
<?php wp_get_archives( array( 'type' => 'monthly') ); ?>
</ul>
</aside>
<aside id="meta" class="widget">
<h1 class="widget-title"><?php _e( 'Meta', 'sxo' ); ?></h1>
<ul>
<?php wp_register(); ?>
<li><?php wp_loginout(); ?></li>
<?php wp_meta(); ?>
</ul>
</aside>
<?php do_action( 'before_sidebar' ); ?>
<?php if ( is_active_sidebar( 'sidebar-1' ) ) : ?>
<?php dynamic_sidebar( 'sidebar-1' ); ?>
<?php endif; ?>
<?php if ( is_active_sidebar( 'sidebar-2' ) ) : ?>
<?php dynamic_sidebar( 'sidebar-2' ); ?>
<?php endif; ?>
</div>
首先显示您的静态内容&#39;,然后是侧边栏-1,然后是侧边栏-2。