Php 如何在elementor SELECT2控件中显示帖子名称和帖子链接
我在这里创建了一个elementor控件,我显示了所有帖子列表,但是当我在Php 如何在elementor SELECT2控件中显示帖子名称和帖子链接,php,wordpress,wordpress-theming,elementor,Php,Wordpress,Wordpress Theming,Elementor,我在这里创建了一个elementor控件,我显示了所有帖子列表,但是当我在受保护函数render()中显示帖子标题时,它会显示帖子ID而不是帖子名称,我想显示帖子名称,还想在中获得该帖子的永久链接 $options=array(); $posts=获取_posts(数组( “post_类型”=>“数字卡” ) ); foreach($key=>$post){ $options[$post->ID]=获取标题($post->ID); } $this->add_控件( “职位名称”, [ 'labe
受保护函数render()
中显示帖子标题时,它会显示帖子ID而不是帖子名称,我想显示帖子名称,还想在
中获得该帖子的永久链接
$options=array();
$posts=获取_posts(数组(
“post_类型”=>“数字卡”
) );
foreach($key=>$post){
$options[$post->ID]=获取标题($post->ID);
}
$this->add_控件(
“职位名称”,
[
'label'=>\('Select Posts','plugin domain'),
“label_block”=>(“bool”),
'type'=>\Elementor\Controls\u Manager::SELECT,
“多个”=>true,
“选项”=>$options,
]
);
受保护的函数render(){
$settings=$this->get_settings();
$show_title=$settings['post_name'];
?>
因此,您想要获取所有自定义post\u类型的所有ID
和post\u标题
s
“数字\u卡”?!您不需要$key
和获取\u标题()
获取控件类型的选项值控件管理器::SELECT2
。如果希望编辑器面板上的选择字段全宽,可以将'label\u block'=>设置为true
受保护功能中的部件\u寄存器\u控件()
:
因此,现在所选帖子的ID
s将保存在控制数据posts
中
要显示post_title
s和相关帖子的链接,可以通过帖子的ID
获取值,这些值作为数组存储在$settings['posts']
中
受保护函数render()中的部分
$settings=$this->get_settings();
$posts=$settings['posts'];
foreach($posts作为$post){
echo获得标题($post);
?>
你能解析@Bhautik吗
$options = array();
$posts = get_posts( array(
'post_type' => 'digital_card'
) );
foreach ( $posts as $key => $post ) {
$options[$post->ID] = get_the_title($post->ID);
}
$this->add_control(
'post_name',
[
'label' => __( 'Select Posts', 'plugin-domain' ),
'label_block' => ('bool'),
'type' => \Elementor\Controls_Manager::SELECT,
'multiple' => true,
'options' => $options,
]
);
protected function render() {
$settings = $this->get_settings();
$show_title = $settings['post_name'];
?>
<?php echo $show_title; ?>
<a href="<?php the_permalink(); ?>">Read More</a>
<?php
}
}
$options = [];
$posts = get_posts( [
'post_type' => 'digital_card'
] );
foreach ( $posts as $post ) {
$options[ $post->ID ] = $post->post_title;
}
$this->add_control(
'posts',
[
'label' => __( 'Select Posts', 'your-plugin-domain' ),
'type' => \Elementor\Controls_Manager::SELECT2,
'label_block' => true,
'multiple' => true,
'options' => $options,
]
);
$settings = $this->get_settings();
$posts = $settings[ 'posts' ];
foreach( $posts as $post ) {
echo get_the_title( $post );
?>
<a href="<?php echo get_permalink( $post ); ?>">Read More</a>
<?php
}