我正试图在我的WordPress网站上实现同位素和分页(这对大多数人来说显然是一个问题).我想出了一个方案,如果我可以解决一些问题,可能会有用.
在我的页面上,我有这部分同位素脚本 -
$('.goforward').click(function(event) {
var href = $(this).attr('href');
$('.isotope').empty();
$('.isotope').load(href +".html .isotope > *");
$( 'div.box' ).addClass( 'isotope-item' );
$container.append( $items ).isotope( 'insert', $items, true );
event.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)
然后我使用这个分页功能,我从这里修改了'goforward'类 -
function isotope_pagination($pages = '', $range = 2)
{
$showitems = ($range * 2)+1;
global $paged;
if(empty($paged)) $paged = 1;
if($pages == '')
{
global $wp_query;
$pages = $wp_query->max_num_pages;
if(!$pages)
{
$pages = 1;
}
}
if(1 != $pages)
{
echo "<div class='pagination'>";
for ($i=1; $i <= $pages; …Run Code Online (Sandbox Code Playgroud) 我正在使用angularjs来加载我的wordpress帖子列表,但是我无法使用我的部分文件处理我的任何php函数.
我尝试过使用像search.php而不是search.html这样的东西,但是当这样做时我得到了致命错误等错误,get_post_meta是未定义的.
现在我知道我们不应该将客户端与服务器端混合,我可以使用某种服务来解析我的php,但我不知道如何去做.我需要我的search.php来渲染我的php标签,这样我就可以显示自定义字段,并使用我在那里的几个php函数.
这是最好的方法吗?
在我的页面模板(.php)上,我有 -
<div id="page" ng-app="app">
<header>
<h1>
<a href="<?php echo home_url(); ?>">Search</a>
</h1>
</header>
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<div ng-Cloak ng-controller="MyController" class="my-controller">
<div ng-view></div>
</div>
<?php endwhile; ?>
<?php endif; ?>
<?php rewind_posts(); ?>
<div ng-controller="OtherController" class="other-controller">
<div class="text-center">
<dir-pagination-controls boundary-links="true" on-page-change="pageChangeHandler(newPageNumber)" template-url="/partials/dirPagination.tpl.html"></dir-pagination-controls>
</div>
</div>
<footer>
© <?php echo date( 'Y' ); ?>
</footer>
</div>
Run Code Online (Sandbox Code Playgroud)
在我的php文件中我希望被调用到视图中具有如下功能 -
<?php
$pcomp1b = get_post_meta(get_the_ID(), 'pa_meta_comp1b', true);
$pcomp1c = get_post_meta(get_the_ID(), 'pa_meta_comp1c', true);
$pcomp1d …Run Code Online (Sandbox Code Playgroud) 我在wordpress单个帖子页面上有一个谷歌地图,可以从2个自定义字段中获取地址.它工作正常,但现在我正在尝试添加街景链接/选项.
我在我的页面上 -
<iframe width="100%" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="https://www.google.com/maps/embed/v1/place?q=<?php echo $add; ?>,%20<?php $terms = wp_get_post_terms(get_the_ID(), 'city-type');
if ( ! empty( $terms ) && ! is_wp_error( $terms ) ){
foreach ( $terms as $term ) {
if ($term->parent == 0) //check for parent terms only
echo '' . $term->name . '';
}
} ?>&zoom=17&key=mytoken"></iframe>
Run Code Online (Sandbox Code Playgroud)
然后输出这样的东西 -
<iframe width="100%" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="https://www.google.com/maps/embed/v1/place?q=100 las vegas ave,%20Las Vegas, NV&zoom=17&key=mytoken"></iframe>
Run Code Online (Sandbox Code Playgroud)
有没有办法在不使用坐标的情况下添加街景?
我尝试了坐标,但它们略有偏差 -
<?php
function getCoordinates($address){
$address = str_replace(" ", …Run Code Online (Sandbox Code Playgroud) 我试图使用以下代码在JS函数中传递php表单值 -
<script type="text/javascript">
var titleV = document.getElementById("mrp-title-<?php echo $sequence ?>").value;
var commentV = document.getElementById("comment-<?php echo $sequence; ?>").value;
mrp_data_callbacks.push( function(index, data) {
data["<?php echo "htitle-" . $sequence ?>"] = titleV;
return data;
});
mrp_data_callbacks.push( function(index, data) {
data["<?php echo "comment-" . $sequence ?>"] = commentV;
return data;
});
</script>
Run Code Online (Sandbox Code Playgroud)
得到这样的东西 -
jQuery(document).ready(function() {
mrp_data_callbacks.push( function(index, data) {
data["hello"] = "world";
return data;
});
});
Run Code Online (Sandbox Code Playgroud)
我直接尝试这样 -
mrp_data_callbacks.push( function(index, data) {
data["<?php echo "htitle-" . $sequence ?>"] = "<?php echo $htitle …Run Code Online (Sandbox Code Playgroud) 在我的网站上,我有一个<a download></a>链接以及一个php函数,可以很好地将文件下载到桌面上-
ob_start();
$nameOld = 'https://my-other-server.online/path/to/file.mp4';
$save = '/var/path/to/file.mp4';
$nameNew = "download.mp4";
file_put_contents($save, fopen($nameOld, 'r'));
set_time_limit(0);
header('Connection: Keep-Alive');
header('Content-Description: File Transfer');
header('Content-Type: application/force-download');
header("Content-Disposition: attachment; filename=$nameNew");
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . filesize($save));
while (ob_get_level()) {
ob_end_clean();
}
readfile($save);
exit;
unlink($save);
Run Code Online (Sandbox Code Playgroud)
在移动设备(iPhone)上,此功能不适用于Chrome浏览器。(即使我已经看到一些下载提示用户打开另一个应用程序以继续,我也已经知道Safari ios下载。)
因此,我尝试使用<a></a> download链接,但是单击它时,它只是在新标签中打开视频并播放。
如果我尝试使用php脚本,它将在新标签页中打开视频并显示划掉的播放按钮(视频甚至无法播放)。我一直在寻找答案的几天,我已经编辑了.htaccess文件并测试了不同的脚本,内容类型,标头等。
这是特定于移动设备的当前脚本的样子-
... first few lines same as above script ...
file_put_contents($save, fopen($nameOld, 'r'));
//echo file_get_contents($save);
//$headers = get_headers($nameOld, 1);
//$filesize = $headers['Content-Length'];
//set_time_limit(0); …Run Code Online (Sandbox Code Playgroud) 我的wordpress页面上有一个脚本,可让用户在我的网站上创建视频帖子,然后将视频上传到他们的YouTube.
用户单击我站点上的一个按钮,该按钮将表单数据从隐藏的输入字段发送到运行youtube上传api脚本的新窗口,如果用户未登录则要求他们这样做.
我遇到的问题是,当用户必须登录并重定向回页面时,帖子值会丢失并导致我的上传脚本失败,因为他们假定要定义视频路径.
我已经尝试了多次尝试以不同方式尝试并传递变量,但似乎没有任何工作,数据在登录后永远不会传递给页面.
如果已经登录,它总是有效.单击按钮时,变量将被传递.
$videoTitle = $_POST['ytu_title'];
$authorID = $_POST['a_id'];
$vidID = $_POST['vid_id'];
$dirpath = $_SERVER["DOCUMENT_ROOT"] ."/wp-content/uploads/".$authorID."/".$vidID;
// Set session variables
$_SESSION["favcolor"] = $_POST['vid_id'];
file_put_contents($dirpath."/videoTitle.txt", $videoTitle);
file_put_contents($dirpath."/authorID.txt", $authorID);
file_put_contents($dirpath."/vidID.txt", $vidID);
file_put_contents($dirpath."/dir.txt", $dirpath);
$vID = file_get_contents($dirpath.'/vidID.txt');
$auID = file_get_contents($dirpath.'/authorID.txt');
// Check to ensure that the access token was successfully acquired.
if ($client->getAccessToken()) {
$htmlBody = '';
$htmlBody2 = '';
try{
// REPLACE this value with the path to the file you are uploading.
$videoPath = $_SERVER["DOCUMENT_ROOT"] ."/wp-content/uploads/".$auID."/". $vID."/output-".$vID.".mp4";
Run Code Online (Sandbox Code Playgroud)
上面显示了我尝试的尝试,以便我可以定义videoPath.我尝试修改前的原始脚本 - …
在我的 WordPress 网站上,我有一个使用 AJAX 和 PHP 将文本转换为音频的表单。更新转换后的文本时,文件名保持不变,只是重新创建文件。
一切似乎都工作正常,除了当我更新文本时要播放的音频源没有重新加载/刷新。
默认下载按钮为我提供更新的文件,如果我刷新整个页面,我只能听到更新的文件播放。
我的代码(为了相关性而简化)--
jQuery(document).on('click', '#savetext', function(e) {
e.preventDefault();
var myVideo = $('#player');
var path = $("#path").val();
myVideo.src = path;
$.ajax({
data: {
action: 'polly_pros',
pollytext: txt,
rate: rate,
voice: voice
},
type: 'post',
url: polpro.ajax_url,
cache: false,
success: function(data) {
console.log(data);
myVideo.load();
myVideo.get(0).play();
},
error: function() {
console.log("Error");
}
});
});
Run Code Online (Sandbox Code Playgroud)
<audio id="player" controls>
<source id="audiosource" src="<?php echo $thepath; ?>" type="audio/mpeg">
Your browser does not support the audio element.
</audio>
<textarea name="pollytext" id="pollytext"></textarea> …Run Code Online (Sandbox Code Playgroud) 我正在运行一个带有ffmpeg的WordPress网站,我允许用户使用表单创建视频.视频工作正常,每个帖子都保存在自己的目录中.
我现在正试图允许用户将他们创建的视频上传到他们自己的YouTube频道.
使用来自youtube api的 PHP代码和谷歌控制台上的应用程序,我能够成功将视频上传到我自己的帐户.它只要求我进行一次身份验证.
PHP代码 -
<?php
require_once $_SERVER['DOCUMENT_ROOT'] . '/gap/google-api-php-client/vendor/autoload.php';
$key = file_get_contents('the_key.txt');
set_include_path($_SERVER['DOCUMENT_ROOT'] . '/gap/google-api-php-client/');
require_once 'src/Google/Client.php';
require_once 'src/Google/Service/YouTube.php';
$application_name = 'youtube4true';
$OAUTH2_CLIENT_ID = 'REMOVED FOR STACK';
$OAUTH2_CLIENT_SECRET = 'REMOVED FOR STACK';
$client = new Google_Client();
$client->setClientId($OAUTH2_CLIENT_ID);
$client->setClientSecret($OAUTH2_CLIENT_SECRET);
$client->setScopes('https://www.googleapis.com/auth/youtube');
$redirect = filter_var('https://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'],
FILTER_SANITIZE_URL);
$client->setRedirectUri($redirect);
$client->setAccessType("offline");
$client->setApprovalPrompt("force");
// Define an object that will be used to make all API requests.
$youtube = new Google_Service_YouTube($client);
// Check if an auth token exists …Run Code Online (Sandbox Code Playgroud) 我正在使用wordpress搜索表单来优化当前搜索,我想要做的是搜索结果页面的搜索,并根据查询设置值.
到目前为止,我已经成功地使用单选下拉和单个复选框这样做 -
<!-- SINGLE SELECT -->
<select name="baths" class="form-control">
<?php if (isset($_GET['baths'])) {
$bths = $_GET['baths']; ?>
<option value="<?php echo $bths; ?>"><?php echo $bths; ?></option>
<?php } else { ?>
<option value="Any">Any</option>
<?php } ?>
<option value="Any">Any</option>
<option value="1">1+</option>
<option value="2">2+</option>
<option value="3">3+</option>
<option value="4">4+</option>
<option value="5">5+</option>
<option value="6">6+</option>
<option value="7">7+</option>
<option value="8">8+</option>
<option value="9">9+</option>
<option value="10">10+</option>
</select>
<!-- SINGLE CHECKBOX -->
<input type="checkbox" name="dogs" class="styled" value ="yes" <?php if (isset($_GET['dogs'])) { ?>checked<?php } ?>>
Run Code Online (Sandbox Code Playgroud)
这是有效的,但对于多个值,它没有.这是我生成一组复选框以选择设施的功能 -
<?php
$amenity_array …Run Code Online (Sandbox Code Playgroud) 我正在一个网站上工作,并且在模板文件中使用具有开头和结尾的短代码。我想知道是否可以在短代码之间放置 wordpress the_content php 标签,以及是否可以在开始和结束标签之间放置另一个短代码。
我试过这个 -
<?php echo do_shortcode('[membership level="1"]''.$the_content.''[/membership]'); ?>
Run Code Online (Sandbox Code Playgroud)
但这不起作用,我也尝试了其他一些方法。我错过了什么或做错了什么?任何帮助深表感谢。谢谢。
php ×9
wordpress ×4
javascript ×3
jquery ×3
ajax ×2
html ×2
youtube-api ×2
access-token ×1
ajaxform ×1
angularjs ×1
checkbox ×1
content-type ×1
download ×1
echo ×1
forms ×1
google-maps ×1
html5 ×1
html5-audio ×1
http-headers ×1
isotope ×1
isset ×1
json ×1
pagination ×1
post ×1
shortcode ×1
token ×1
variables ×1
youtube ×1