我正在创建的WordPress网站上有一个常见问题解答页面。每个问题/答案对都是通过使用SiteOrigin Page Builder Plugin和自定义小部件创建的。我希望能够添加新问题并重新排列,而无需手动重新编号。
这就是现在的样子:
我只想简单地将问题动态编号(1.,2.,3,而且在问题之前)。
我可以想到一些可能完成此任务的黑客方法,例如滥用<ol>
标记或全局变量。我也许可以使用一些代码来计算用“问题”类创建的元素的数量,但感觉这会增加不必要的代码/延迟,使用仅存在的简单整数变量应该可能此页面正在呈现。
可以在WordPress中使用吗?如果是这样,我该如何完成它?如果没有,是否有比我提到的更好的方法?
如果有帮助,这是我的widget的PHP文件中的渲染代码:
public function widget( $args, $instance )
{
$question = $instance['question'];
$answer = $instance['answer'];
echo $args['before_widget'];
if ( ! empty( $question ) )
{
echo '<h3 class="question">';
echo '. ';
echo $question;
echo '</h3>';
}
if ( ! empty( $answer ) )
{
echo '<p>';
echo $answer;
echo '</p>';
}
echo $args['after_widget'];
}
答案 0 :(得分:0)
有很多方法可以做到这一点,但我最终使用Advanced Custom Fields(我已经用于其他事情)来存储/设置变量。在ACF中设置一个整数变量后,我做了以下(在我的Widget PHP文件中):
public function widget( $args, $instance )
{
$question = $instance['question'];
$answer = $instance['answer'];
echo $args['before_widget'];
if ( ! empty( $question ) )
{
echo '<h3 class="question">';
$question_count = (int) get_field('question_count');
$question_count++;
update_field('question_count', $question_count);
echo $question_count;
echo '. ';
echo $question;
echo '</h3>';
}
if ( ! empty( $answer ) )
{
echo '<p>';
echo $answer;
echo '</p>';
}
echo $args['after_widget'];
}
我将离开帖子几天,看看是否有人在没有使用ACF的情况下提出更好的答案,以防有人在路上遇到与我不同的用例。 / p>