gpt4 book ai didi

php - 将 php 放入一个快捷方式的函数中

转载 作者:可可西里 更新时间:2023-11-01 00:41:42 26 4
gpt4 key购买 nike

PHP 新手,但我已经了解它的工作原理(我的意思是,我可以编写 PHP 并执行 YouTube 教程中的操作)。不过,我很难将它应用到实际使用中:

我想缩短我需要放在 frontpage.php 上的 php 数量(WordPress,但我听说这个问题不是 WordPress 问题;只是一个 php 问题)。

我将多次调用同一个 php 以每次显示 1 个帖子,只需更改要在 php 中显示的类别 - 所以,现在我有:

lots of php cat=33 lots of php

我想创建一个函数,以便在我的 frontpage.php 上,我只需要写:

whatever cat=33 whatever 

或者只是

whatever 33

如果有我的代码有帮助,它是(这有标签,但我在这里和那里同时使用标签和猫):

<?php
$args=array(
'tag' => 'feature-left',
'showposts'=>1,
'caller_get_posts'=>1
);
$my_query = new WP_Query($args);
$offset = 3;
if( $my_query->have_posts() ) {
while ($my_query->have_posts()) : $my_query->the_post(); ?>
<a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>" itemscope="itemscope" itemtype="http://schema.org/BlogPosting" itemprop="blogPost">
<h4><?php the_excerpt(); ?> </h4>
</a>
<a href="<?php the_permalink() ?>" >
<div class="front-first-article-title" itemprop="headline"><h2 style="color:#00589C; margin-bottom:5px;"><b><?php the_title(); ?></b></h2>
</div>
<?php
endwhile;
} //if ($my_query)
wp_reset_query(); // Restore global post data stomped by the_post().
?>

最佳答案

在您的主题文件夹中,找到您的 functions.php 文件。

在该文件中,将此代码(来自您的问题)放入函数中,如下所示:

function my_custom_loop($category) {
$args=array(
'tag' => 'feature-left',
// showposts has been replaced, use 'posts_per_page' instead
// 'showposts' =>1,
'posts_per_page' => 1,
// this has been replaced, use 'ignore_sticky_posts'
// 'caller_get_posts' => 1,
'ignore_sticky_posts' => true,
'cat' => $category
);

$my_query = new WP_Query($args);
$offset = 3;
if( $my_query->have_posts() ) {
while ($my_query->have_posts()) : $my_query->the_post(); ?>
<a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>" itemscope="itemscope" itemtype="http://schema.org/BlogPosting" itemprop="blogPost">
<h4><?php the_excerpt(); ?> </h4>
</a>
<a href="<?php the_permalink() ?>" >
<div class="front-first-article-title" itemprop="headline"><h2 style="color:#00589C; margin-bottom:5px;"><b><?php the_title(); ?></b></h2>
</div>
<?php
endwhile;
} //if ($my_query)

wp_reset_query(); // Restore global post data stomped by the_post().
}

现在,在您的主页文件中,您可以放入 my_custom_loop(33)让它输出您的自定义后循环。

注意循环中的 HTML 存在一些问题。你不应该把 <div><h2><h4> <a> 中的元素标签。另外,你的 <a>标签没有正确关闭。最后,我建议在您的 <h2> 上使用类/CSS 而不是内联样式,因为它会多次输出到屏幕,多次输出完全相同的内联 CSS 有点傻。

编辑
根据您最近的评论,是的,您可以使该函数也处理标签,并使“数字”成为动态的。请注意,有多种方法可以解决此类问题,但最直接的(给定您现有的功能)是这样的:

/* Note the "default values" for $tag and $offset. 
* You can call this function in many ways:
* my_custom_loop(33); just get the categories, with an offset of 3
* my_custom_loop(33, NULL, 5); get the categories, offset of 5
* my_custom_loop(NULL, 'feature-left'); get the tags, offset of 3
* my_custom_loop(NULL, 'feature-left', 5); get the tags, offset of 5
*/
function my_custom_loop($category, $tag = NULL, $offset = 3) {
$args=array(
// showposts has been replaced, use 'posts_per_page' instead
// 'showposts' =>1,
'posts_per_page' => 1,
// this has been replaced, use 'ignore_sticky_posts'
// 'caller_get_posts' => 1,
'ignore_sticky_posts' => true,
);

if ($category) {
$args['cat'] = $category;
}

if ($tag) {
$args['tag'] = 'feature-left';
}

$my_query = new WP_Query($args);
// ... rest of function to output loop
}

关于php - 将 php 放入一个快捷方式的函数中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34456976/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com