我想编写一个与astoundify.com一起使用的joibify主题的插件,该插件将名称和徽标从合作伙伴转移到小部件。我想有一个选项,可以让我将合作伙伴洛格斯放到运行WP-Jobmanager和Jobify-theme的网站上。如果这适合小部件,那会很好。
好吧,我已经沉思了一段时间,最后以为我们可以这样做:
要在我的网站上显示合作伙伴徽标,该网站运行WP作业经理并乔布里(Jobify)主题,我们可以创建一个自定义的窗口小部件,显示徽标。我已经考虑过,我想这些步骤是必要的:
首先,我们通过将以下代码添加到您的functions.php文件:
来为合作伙伴创建自定义帖子类型
function create_partner_post_type() {
register_post_type( 'partner',
array(
'labels' => array(
'name' => __( 'Partners' ),
'singular_name' => __( 'Partner' )
),
'public' => true,
'has_archive' => true,
'menu_icon' => 'dashicons-heart',
)
);
}
add_action( 'init', 'create_partner_post_type' );
此代码将在WordPress Admin菜单中创建一种新的帖子类型,称为“合作伙伴”。
-
**通过安装和激活高级自定义字段插件(link:)来添加合作伙伴徽标**和网站URL的自定义字段。
现在,我们必须创建一个新的字段组,并为合作伙伴徽标添加一个字段和网站URL的另一个字段。 -
在此步骤中,我们必须**创建一个自定义窗口小部件**,通过将以下代码添加到您的functions.php文件:
来显示我们的合作伙伴徽标
class Partner_Widget extends WP_Widget {
function __construct() {
parent::__construct(
'partner_widget',
__( 'Partner Logos', 'text_domain' ),
array( 'description' => __( 'Display partner logos', 'text_domain' ), )
);
}
public function widget( $args, $instance ) {
$partners = get_posts( array(
'post_type' => 'partner',
'posts_per_page' => -1,
) );
echo $args['before_widget'];
if ( ! empty( $instance['title'] ) ) {
echo $args['before_title'] . apply_filters( 'widget_title', $instance['title'] ) . $args['after_title'];
}
echo '<div class="partner-logos">';
foreach ( $partners as $partner ) {
$logo = get_field( 'partner_logo', $partner->ID );
$url = get_field( 'partner_url', $partner->ID );
if ( $logo ) {
echo '<a href="' . $url . '"><img src="' . $logo['url'] . '" alt="' . $logo['alt'] . '"></a>';
}
}
echo '</div>';
echo $args['after_widget'];
}
public function form( $instance ) {
$title = ! empty( $instance['title'] ) ? $instance['title'] : __( 'Partners', 'text_domain' );
?>
<p>
<label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e( 'Title:' ); ?></label>
<input class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" type="text" value="<?php echo esc_attr( $title ); ?>">
</p>
<?php
}
public function update( $new_instance, $old_instance ) {
$instance = array();
$instance['title'] = ( ! empty( $new_instance['title'] ) ) ? sanitize_text_field( $new_instance['title'] ) : '';
return $instance;
}
}
function register_partner_widget() {
register_widget( 'Partner_Widget' );
}
add_action( 'widgets_init', 'register_partner_widget' );
*如何使用此方法: *
要使用此小部件,我们需要为合作伙伴创建自定义帖子类型,并使用高级自定义字段插件为合作伙伴徽标和网站URL添加自定义字段。完成此操作后,我们可以将合作伙伴添加为帖子及其徽标和网站URL作为自定义字段。
然后,转到外观>小部件,然后将“伙伴徽标”小部件拖到所需的小部件区域。我们可以输入小部件的标题,它将在小部件中显示所有与其网站URL的伙伴徽标。