我正在构建一个自定义主题,其中包含许多我希望在整个过程中使用的变量.
例:
$tv = $options['tv'];
$movies = $options['movies'];
$print = $options['print'];
//....and about 50 more.
Run Code Online (Sandbox Code Playgroud)
为此,我只是将它们全部放在一个名为vars.php的文件中,然后在主题的header.php中包含它...
require_once('vars.php');
Run Code Online (Sandbox Code Playgroud)
虽然这确实有效,但它并不是最好的方式.我在很多场合读过使用全局变量(大概是在function.php中)并不是一个好主意,但这是真的吗?
但是如果在functions.php中使用全局变量(甚至很多都是)这是正确的,那么这是正确的方法吗?:
global $tv;
$tv = $options['tv'];
global $movies
$movies = $options['movies'];
global $print
$print = $options['print'];
Run Code Online (Sandbox Code Playgroud) 我有一个像这样的领域......
<input type="text" name="summary" value="" required />
Run Code Online (Sandbox Code Playgroud)
...我可以轻松地使用sanitize_text_field和add_post_meta ......
$summary = sanitize_text_field($_POST["summary"]);
add_post_meta( $post_id, 'summary', $summary);
Run Code Online (Sandbox Code Playgroud)
但是当谈到我需要存储在DB中的额外post_meta时,我不知道如何去做,因为我不知道表单中会有多少其他字段.它会有所不同.
所以额外的表单字段可能是这样的......
<input type="text" name="cat_01" value="" />
<input type="number" name="dog_01" value="" />
<input type="number" name="rabbit_01" value="" />
<input type="text" name="mouse_01" value="" />
<input type="text" name="cat_02" value="" />
<input type="number" name="dog_02" value="" />
<input type="number" name="rabbit_02" value="" />
<input type="text" name="mouse_02" value="" />
Run Code Online (Sandbox Code Playgroud)
...但有时可能会有第3组这些领域,或者第四组等,并且实际上没有限制,我不知道将会有多少组这些领域.
因此,例如,如果存在第3组这些字段,它们将如下所示:
<input type="text" name="cat_03" value="" />
<input type="number" name="dog_03" value="" />
<input type="number" name="rabbit_03" value="" />
<input type="text" name="mouse_03" value="" /> …Run Code Online (Sandbox Code Playgroud) 我限制我的查询使用6个月前的show post工作正常.
但我需要它基于post_meta表中的日期而不是'post_date_gmt'.
在我的情况下,我调用payment_date了meta_keys ,值当然是31-10-2016例如日期.
$months_ago = 6;
$args = array(
'date_query' => array(
array(
'column' => 'post_date_gmt',
'after' => $months_ago . ' months ago',
)
),
'numberposts' => -1
);
Run Code Online (Sandbox Code Playgroud) 我确定自己有99.9%的权利,但是由于某些原因,它无法正常工作。
我正在做一个chrome扩展程序,它将CSS注入到页面上,而CSS一直可以正常工作,直到我想更改字体为止。
所以我的清单上有这个...
"css": ["css/my-custom.css"],
"js": [ "js/jquery.js", "js/my-custom.js", "js/jquery.cookie.js"],
"web_accessible_resources": ["css/my-custom.css", "fonts/Roboto-Regular.ttf", "images/*.*"]
Run Code Online (Sandbox Code Playgroud)
...而我的CSS有这个...
@font-face {
font-family: 'RobotoLtRegular';
src: url('chrome-extension://__MSG_@@extension_id__/fonts/Roboto-Regular.ttf');
font-weight: normal;
font-style: normal;
}
body {
background: #f1f1f1 !important;
font-size: 1.2em !important;
font-family: RobotoLtRegular !important;
}
p {
font-family: RobotoLtRegular !important;
}
Run Code Online (Sandbox Code Playgroud)
...但是当我重新加载扩展名时,我看不到新字体。chrome元素检查器还显示,该字体应为body和p上显示的字体(没有其他字体可以覆盖RobotoLtRegular。
仅供参考,我的字体存储在扩展名的css目录中,因此路径正确。
我完全不知所措。
任何的意见都将会有帮助。
更新:如果有帮助,我将其作为未打包的扩展程序加载。
我一直在用这个......
echo PHP_VERSION;
Run Code Online (Sandbox Code Playgroud)
...显示在服务器上运行的PHP版本,通常显示类似...
5.4.6.1
Run Code Online (Sandbox Code Playgroud)
但我刚刚发现,在某些服务器上,我获得的版本号超过版本号,而是显示:
5.4.6.1ububtu1.8
Run Code Online (Sandbox Code Playgroud)
有没有办法可以得到数字?
原因是我需要检查PHP的版本并显示一条消息,比如......
$phpversion = PHP_VERSION;
if($phpversion >= "5.5") {
echo "All good";
} else {
echo "Your version of PHP is too old";
}
Run Code Online (Sandbox Code Playgroud)
...但是当然如果$ phpversion包含除数字之外的任何内容,那么此脚本将无法正常工作.
提前致谢.
这个脚本主要工作:
$_wp_additional_image_sizes[$name] = array($width, $height, $crop);
$image_sizes = get_intermediate_image_sizes();
foreach ($image_sizes as $size) {
echo $size . ' ';
echo $image_sizes[ $size ][ 'width' ] = intval( get_option( "{$size}_size_w" ) );
echo ' x ';
echo $image_sizes[ $size ][ 'height' ] = intval( get_option( "{$size}_size_h" ) ) . '<br />';
}
Run Code Online (Sandbox Code Playgroud)
默认的 WordPress 图像大小(缩略图、中、大等)显示了它们的正确尺寸。
但问题是自定义图像大小始终将其宽度和高度显示为 0。
这是返回的内容:
thumbnail 150 x 150
medium 300 x 300
medium_large 768 x 0
large 1024 x 1024
post-thumbnail 0 x 0
Custom Blog Image …Run Code Online (Sandbox Code Playgroud) 我似乎无法找出为什么此代码不输出层次结构中的类别:
<ul>
<?php
$args = array(
'show_option_all' => '',
'container' => false,
'orderby' => 'name',
'order' => 'ASC',
'hide_empty' => 0,
'use_desc_for_title' => 0,
'child_of' => 0,
'hierarchical' => 1,
'number' => null,
'echo' => 1,
'depth' => -1,
'taxonomy' => 'category'
);
$categories = get_categories( $args );
foreach ( $categories as $category ) {
echo '<li><a href="' . get_category_link( $category->term_id ) . '">' . $category->name . '(' . $category->count . ')</a></li>';
}
?>
</ul>
Run Code Online (Sandbox Code Playgroud)
相反,所有列表项都作为父级输出,如下所示......
<ul>
<li><a href="http://test.dev/category/media/">Media(1)</a></li>
<li><a …Run Code Online (Sandbox Code Playgroud) 我需要从变量中获取一个现有日期,并显示一个日期,该日期始终是下个月的第一天(01)(并且也计算年份).
所以,如果我有这个:
$date = '2017-03-17'; // YYYY-MM-DD
Run Code Online (Sandbox Code Playgroud)
我需要采取该日期并使其输出:
2017-04-01 // The first day of the next month
Run Code Online (Sandbox Code Playgroud)
再举一个例子......
$date = '2017-12-23'; // YYYY-MM-DD
Run Code Online (Sandbox Code Playgroud)
......应该转换成......
2018-01-01 // The first day of the next month
Run Code Online (Sandbox Code Playgroud)