我有一个网站,其中显示每个帖子,每个帖子都有解释帖子的说明。
如何才能显示我的类别页面(总结所有帖子的页面),以便仅显示帖子的小摘要,而不显示任何其他内容。目前我正在使用
the_excerpt();
但是这会将文本限制为55个单词,但有些小于此单词,因此其他文本会显示在我不想要的类别中。
例如,这是一个示例帖子: http://thestudentbubble.com/hidden-gems/hidden-gems-restaurants/ganges-indian/
如下所示,该说明是我不希望它出现在类别页面上的其他信息。
这是类别页面 - http://thestudentbubble.com/hidden-gems/hidden-gems-restaurants/
但仍然会显示我不想显示的其他信息。
我想要出现的文字是:
<div class = "bioText">
如何才能使div中的文字出现在类别页面中? 谢谢你的帮助!
这是类别循环:
<div class="comment">
<?php
$cats = get_the_category();
$category_id = $cats[0]->cat_ID;
$args = array( 'posts_per_page' => 1, 'category' => $category_id);
$lastposts = get_posts( $args );
foreach ( $lastposts as $post ) :
$this_post_ID = get_the_ID();
$this_post_preview = get_post_meta( $this_post_ID, 'post_preview', true );
echo $this_post_preview;
//the_excerpt();
//the_content();
wp_reset_postdata();
endforeach;
?>
</div>
答案 0 :(得分:0)
好的,首先要做的是在每个帖子的管理面板中创建一个自定义文本区域。它将出现在编辑器下面。让我们创建包含我们代码的.php文件,将其命名为post_preview_field.php,并将其放在主题根文件夹中。完成后,我们需要在functions.php文件中引用它。只需添加以下行即可完成此操作:
require_once(get_template_directory().'/post_preview_field.php');
让我们打开post_preview_field.php文件并编写代码。
<?php
add_action( 'add_meta_boxes', 'post_preview_metabox' );
add_action( 'save_post', 'post_preview_save_postdata' );
function post_preview_metabox() {
$screens = array( 'post' );
foreach ($screens as $screen) {
add_meta_box(
'post_preview_metabox_id',
__( 'Post Preview', 'post_preview_textdomain'),
'post_preview_inner_boxes',
$screen
);
}
}
function post_preview_inner_boxes( $post ) {
wp_nonce_field( plugin_basename( __FILE__ ), 'post_preview_noncename' );
$post_preview_value = get_post_meta( $post->ID, 'post_preview', true );
echo '<label for="post_preview_new_field">';
_e("", 'post_preview_textdomain' );
?>
</label>
<textarea name="post_preview_new_field" id="post_preview_new_field" ><?php echo $post_preview_value; ?></textarea>
<?php }
function post_preview_save_postdata( $post_id ) {
if ( 'post' == $_POST['post_type'] ) {
if ( ! current_user_can( 'edit_page', $post_id ) )
return;
} else {}
if ( ! isset( $_POST['post_preview_noncename'] ) || ! wp_verify_nonce( $_POST['post_preview_noncename'], plugin_basename( __FILE__ ) ) )
return;
$post_ID = $_POST['post_ID'];
$post_preview = ( $_POST['post_preview_new_field'] );
add_post_meta($post_ID, 'post_preview', $post_preview, true) or
update_post_meta($post_ID, 'post_preview', $post_preview);
}
?>
我们走了。我们刚创建了一个textarea字段,显示在每个帖子的面板中,可以包含一些文本,每次保存\更新帖子时都会保存,并存储在帖子的元数据中。
现在,我们所要做的就是在前端访问此值并回显它。我们怎么做? 在循环中,我们首先将帖子ID分配给变量:
$this_post_ID = get_the_ID();
然后将我们存储的数据分配给另一个:
$this_post_preview = get_post_meta( $this_post_ID, 'post_preview', true );
那就是它。我们现在可以回应预览:
echo $this_post_preview;
答案 1 :(得分:0)
我设法通过添加
解决了这个问题<!--more-->
在每个描述之后。